diff --git a/Chan/AndroidManifest.xml b/Chan/AndroidManifest.xml index 3a1c33eb..ac698bc9 100644 --- a/Chan/AndroidManifest.xml +++ b/Chan/AndroidManifest.xml @@ -80,6 +80,9 @@ + + Back Close + Developer options + Info Quote diff --git a/Chan/res/xml/preference.xml b/Chan/res/xml/preference.xml index 1aae1eb8..1dc055a2 100644 --- a/Chan/res/xml/preference.xml +++ b/Chan/res/xml/preference.xml @@ -27,7 +27,8 @@ + android:title="@string/about" + android:key="group_about" > + + + + diff --git a/Chan/src/org/floens/chan/activity/DeveloperActivity.java b/Chan/src/org/floens/chan/activity/DeveloperActivity.java new file mode 100644 index 00000000..d0f30599 --- /dev/null +++ b/Chan/src/org/floens/chan/activity/DeveloperActivity.java @@ -0,0 +1,31 @@ +package org.floens.chan.activity; + +import android.app.Activity; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.LinearLayout; + +public class DeveloperActivity extends Activity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + LinearLayout wrapper = new LinearLayout(this); + + Button button = new Button(this); + + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + @SuppressWarnings("unused") + int i = 1 / 0; + } + }); + button.setText("Crash the app"); + + wrapper.addView(button); + + setContentView(wrapper); + } +} diff --git a/Chan/src/org/floens/chan/fragment/SettingsFragment.java b/Chan/src/org/floens/chan/fragment/SettingsFragment.java index 24e0f1d9..c84139bf 100644 --- a/Chan/src/org/floens/chan/fragment/SettingsFragment.java +++ b/Chan/src/org/floens/chan/fragment/SettingsFragment.java @@ -2,6 +2,7 @@ package org.floens.chan.fragment; import org.floens.chan.R; import org.floens.chan.activity.AboutActivity; +import org.floens.chan.utils.ChanPreferences; import android.content.Intent; import android.content.pm.PackageManager.NameNotFoundException; @@ -9,9 +10,13 @@ import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceFragment; +import android.preference.PreferenceGroup; +import android.widget.Toast; public class SettingsFragment extends PreferenceFragment { - private final int clickCount = 0; + private int clickCount = 0; + + private Preference developerPreference; @Override public void onCreate(Bundle savedInstanceState) { @@ -33,27 +38,23 @@ public class SettingsFragment extends PreferenceFragment { Preference aboutVersion = findPreference("about_version"); if (aboutVersion != null) { - /*aboutVersion.setOnPreferenceClickListener(new OnPreferenceClickListener() { + aboutVersion.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { if (++clickCount >= 5) { clickCount = 0; - SharedPreferences p = ChanApplication.getPreferences(); - boolean e = !p.getBoolean("preference_br", false); - p.edit().putBoolean("preference_br", e).commit(); - String m = e ? "Do a barrel roll" : "No barrel rolls this time"; - Toast.makeText(getActivity(), m, Toast.LENGTH_LONG).show(); - /* - * if (PreferenceManager.getDefaultSharedPreferences(baseActivity).getBoolean("preference_br", false)) { - view.animate().setDuration(1000).rotation(Math.random() < 0.5d ? 540f : -360f).setInterpolator(new DecelerateInterpolator(4f)); - } - + boolean enabled = !ChanPreferences.getDeveloper(); + ChanPreferences.setDeveloper(enabled); + updateDeveloperPreference(); + + Toast.makeText(getActivity(), + (enabled ? "Enabled " : "Disabled ") + "developer options", Toast.LENGTH_LONG).show(); } return true; } - });*/ + }); String version = ""; try { @@ -65,5 +66,17 @@ public class SettingsFragment extends PreferenceFragment { aboutVersion.setTitle(R.string.app_name); aboutVersion.setSummary(version); } + + developerPreference = findPreference("about_developer"); + ((PreferenceGroup) findPreference("group_about")).removePreference(developerPreference); + updateDeveloperPreference(); + } + + private void updateDeveloperPreference() { + if (ChanPreferences.getDeveloper()) { + ((PreferenceGroup) findPreference("group_about")).addPreference(developerPreference); + } else { + ((PreferenceGroup) findPreference("group_about")).removePreference(developerPreference); + } } } diff --git a/Chan/src/org/floens/chan/manager/ThreadManager.java b/Chan/src/org/floens/chan/manager/ThreadManager.java index 83d304e4..8a35d39f 100644 --- a/Chan/src/org/floens/chan/manager/ThreadManager.java +++ b/Chan/src/org/floens/chan/manager/ThreadManager.java @@ -133,6 +133,7 @@ public class ThreadManager { break; case 1: // Info showPostInfo(post); + break; case 2: // Show clickables showPostLinkables(post); break; diff --git a/Chan/src/org/floens/chan/utils/ChanPreferences.java b/Chan/src/org/floens/chan/utils/ChanPreferences.java index dfd70ae0..6cde44ac 100644 --- a/Chan/src/org/floens/chan/utils/ChanPreferences.java +++ b/Chan/src/org/floens/chan/utils/ChanPreferences.java @@ -14,4 +14,12 @@ public class ChanPreferences { public static String getDefaultEmail() { return ChanApplication.getPreferences().getString("preference_default_email", ""); } + + public static boolean getDeveloper() { + return ChanApplication.getPreferences().getBoolean("preference_developer", false); + } + + public static void setDeveloper(boolean developer) { + ChanApplication.getPreferences().edit().putBoolean("preference_developer", developer).commit(); + } }