Index: src/org/adblockplus/android/Preferences.java |
=================================================================== |
--- a/src/org/adblockplus/android/Preferences.java |
+++ b/src/org/adblockplus/android/Preferences.java |
@@ -27,14 +27,14 @@ |
import android.app.ActivityManager; |
import android.app.ActivityManager.RunningServiceInfo; |
import android.app.AlertDialog; |
+import android.app.Dialog; |
import android.content.BroadcastReceiver; |
import android.content.ComponentName; |
import android.content.Context; |
import android.content.DialogInterface; |
-import android.content.ServiceConnection; |
-import android.content.DialogInterface.OnDismissListener; |
import android.content.Intent; |
import android.content.IntentFilter; |
+import android.content.ServiceConnection; |
import android.content.SharedPreferences; |
import android.content.pm.PackageManager.NameNotFoundException; |
import android.content.res.AssetManager; |
@@ -60,12 +60,13 @@ |
{ |
private static final String TAG = "Preferences"; |
+ private static final int ABOUT_DIALOG = 1; |
+ private static final int HIDEICONWARNING_DIALOG = 2; |
+ |
private static ProxyService proxyService = null; |
private RefreshableListPreference subscriptionList; |
- private AboutDialog aboutDialog; |
- private boolean showAbout = false; |
private boolean trafficDetected = false; |
private String subscriptionSummary; |
@@ -207,9 +208,6 @@ |
setEnabled(true); |
} |
- if (showAbout) |
- onAbout(findViewById(R.id.btn_about)); |
- |
bindService(new Intent(this, ProxyService.class), proxyServiceConnection, 0); |
} |
@@ -239,9 +237,6 @@ |
application.stopInteractive(); |
if (!enabled) |
application.stopEngine(true); |
- |
- if (aboutDialog != null) |
- aboutDialog.dismiss(); |
} |
@Override |
@@ -344,19 +339,32 @@ |
*/ |
public void onAbout(View view) |
{ |
- aboutDialog = new AboutDialog(this); |
- aboutDialog.setOnDismissListener(new OnDismissListener() |
+ showDialog(ABOUT_DIALOG); |
+ } |
+ |
+ @Override |
+ protected Dialog onCreateDialog(int id) |
+ { |
+ Dialog dialog = null; |
+ switch (id) |
{ |
- |
- @Override |
- public void onDismiss(DialogInterface dialog) |
- { |
- showAbout = false; |
- aboutDialog = null; |
- } |
- }); |
- showAbout = true; |
- aboutDialog.show(); |
+ case ABOUT_DIALOG: |
+ dialog = new AboutDialog(this); |
+ break; |
+ case HIDEICONWARNING_DIALOG: |
+ AlertDialog.Builder builder = new AlertDialog.Builder(this); |
+ builder.setTitle(R.string.warning).setMessage(R.string.msg_hideicon_warning).setIcon(android.R.drawable.ic_dialog_alert).setCancelable(false) |
+ .setPositiveButton(R.string.gotit, new DialogInterface.OnClickListener() |
+ { |
+ public void onClick(DialogInterface dialog, int id) |
+ { |
+ dialog.cancel(); |
+ } |
+ }); |
+ dialog = builder.create(); |
+ break; |
+ } |
+ return dialog; |
} |
@Override |
@@ -371,13 +379,21 @@ |
else if (!enabled && serviceRunning) |
stopService(new Intent(this, ProxyService.class)); |
} |
- if (getString(R.string.pref_subscription).equals(key)) |
+ else if (getString(R.string.pref_subscription).equals(key)) |
{ |
String current = sharedPreferences.getString(key, null); |
AdblockPlus application = AdblockPlus.getApplication(); |
Subscription subscription = application.getSubscription(current); |
application.setSubscription(subscription); |
} |
+ else if (getString(R.string.pref_hideicon).equals(key)) |
+ { |
+ boolean hideIcon = sharedPreferences.getBoolean(key, false); |
+ if (hideIcon) |
+ showDialog(HIDEICONWARNING_DIALOG); |
+ if (proxyService != null) |
+ proxyService.setEmptyIcon(hideIcon); |
+ } |
super.onSharedPreferenceChanged(sharedPreferences, key); |
} |
@@ -490,7 +506,6 @@ |
protected void onRestoreInstanceState(Bundle state) |
{ |
super.onRestoreInstanceState(state); |
- showAbout = state.getBoolean("showAbout"); |
trafficDetected = state.getBoolean("trafficDetected"); |
subscriptionSummary = state.getString("subscriptionSummary"); |
} |
@@ -500,7 +515,6 @@ |
{ |
outState.putString("subscriptionSummary", subscriptionSummary); |
outState.putBoolean("trafficDetected", trafficDetected); |
- outState.putBoolean("showAbout", showAbout); |
super.onSaveInstanceState(outState); |
} |