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();
+ }
}