Skip to content

Commit

Permalink
preferences fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
naman14 committed May 13, 2016
1 parent 0601176 commit 620d4e4
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 56 deletions.
10 changes: 6 additions & 4 deletions app/src/main/java/com/naman14/arcade/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,14 @@ public void onClick(View v) {
}
});

PreferenceManager.setDefaultValues(this, R.xml.preferences, false);

builder = new ArcadeBuilder(MainActivity.this);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
builder.setImageSize(preferences.getInt("preference_image_size", 128));
builder.setIterations(preferences.getInt("preference_iterations", 15));
builder.setContentWeight(preferences.getInt("preference_content_weight", 20));
builder.setStyleWeight(preferences.getInt("preference_style_weight", 200));
builder.setImageSize(Integer.parseInt(preferences.getString("preference_image_size", "128")));
builder.setIterations(Integer.parseInt(preferences.getString("preference_iterations", "15")));
builder.setContentWeight(Integer.parseInt(preferences.getString("preference_content_weight", "20")));
builder.setStyleWeight(Integer.parseInt(preferences.getString("preference_style_weight", "200")));


}
Expand Down
78 changes: 30 additions & 48 deletions app/src/main/java/com/naman14/arcade/SettingsActivity.java
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
package com.naman14.arcade;

import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.preference.SwitchPreference;
import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.InputType;
import android.util.Log;
import android.view.MenuItem;
import android.widget.EditText;

/**
* Created by naman on 13/05/16.
Expand Down Expand Up @@ -48,59 +47,42 @@ public void onCreate(Bundle savedInstanceState) {
addPreferencesFromResource(R.xml.preferences);

preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
findPreference("preference_iterations").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
showEditDialog(getActivity(), preferences, "Number of iterations", "Iterations", "preference_iterations");
return true;
}
});
findPreference("preference_style_weight").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
showEditDialog(getActivity(), preferences, "Style weight", "Style weight", "preference_style_weight");
return true;
}
});
findPreference("preference_content_weight").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
showEditDialog(getActivity(), preferences, "Content weight", "Content weight", "preference_content_weight");
return true;
}
});
preferences.registerOnSharedPreferenceChangeListener(this);
findPreference("preference_iterations").setSummary(preferences.getString("preference_iterations", "15"));
findPreference("preference_style_weight").setSummary(preferences.getString("preference_style_weight", "200"));
findPreference("preference_content_weight").setSummary(preferences.getString("preference_content_weight", "20"));

findPreference("preference_defaults").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
preferences.edit().putInt("preference_iterations", 15).apply();
preferences.edit().putInt("preference_style_weight", 200).apply();
preferences.edit().putInt("preference_content_weight", 20).apply();
preferences.edit().putInt("preference_image_size", 128).apply();
preferences.edit().putString("preference_iterations", "15").apply();
preferences.edit().putString("preference_style_weight", "200").apply();
preferences.edit().putString("preference_content_weight", "20").apply();
preferences.edit().putString("preference_image_size", "128").apply();
preferences.edit().putBoolean("preference_logs", false).apply();
findPreference("preference_iterations").setSummary(preferences.getString("preference_iterations", "15"));
findPreference("preference_style_weight").setSummary(preferences.getString("preference_style_weight", "200"));
findPreference("preference_content_weight").setSummary(preferences.getString("preference_content_weight", "20"));
findPreference("preference_image_size").setSummary(preferences.getString("preference_image_size", "128"));
((SwitchPreference) findPreference("preference_logs")).setChecked(preferences.getBoolean("preference_logs", false));

return true;
}
});
}

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
findPreference(key).setSummary(String.valueOf(preferences.getInt(key, -1)));
Log.d("lol", "b;bfw;");
Preference p = findPreference(key);
if (p instanceof EditTextPreference) {
EditTextPreference editTextPref = (EditTextPreference) p;
Log.d("lodsbc", editTextPref.getText());
p.setSummary(editTextPref.getText());
} else if (p instanceof ListPreference) {
ListPreference listPref = (ListPreference) p;
p.setSummary(listPref.getSummary());
}
}
}

private static void showEditDialog(Context context, final SharedPreferences preferences, String title, String hint, final String key) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
alertDialog.setTitle(title);
final EditText input = new EditText(context);
input.setInputType(InputType.TYPE_NUMBER_FLAG_SIGNED);
input.setHint(hint);
input.setText(String.valueOf(preferences.getInt(key, -1)));
alertDialog.setView(input);
alertDialog.setPositiveButton("Save",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
preferences.edit().putInt(key, Integer.parseInt(input.getText().toString())).apply();
}
});
alertDialog.show();
}
}
16 changes: 12 additions & 4 deletions app/src/main/res/xml/preferences.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,32 @@
android:entries="@array/pref_image_size_entries"
android:entryValues="@array/pref_image_size_values"
android:key="preference_image_size"
android:summary="The size of the output image to be generated"
android:summary="%s"
android:title="Output Image Size" />

<Preference
<EditTextPreference
android:defaultValue="15"
android:inputType="numberSigned"
android:key="preference_iterations"
android:title="Number of iterations" />

<Preference
<EditTextPreference
android:defaultValue="200"
android:inputType="numberSigned"
android:key="preference_style_weight"
android:title="Style weight" />

<Preference
<EditTextPreference
android:defaultValue="20"
android:inputType="numberSigned"
android:key="preference_content_weight"
android:title="Content weight" />

<SwitchPreference
android:defaultValue="false"
android:key="preference_logs"
android:title="Show full logs" />

<Preference
android:key="preference_defaults"
android:title="Reset to defaults" />
Expand Down

0 comments on commit 620d4e4

Please sign in to comment.