Index: src/org/adblockplus/sbrowser/contentblocker/MainPreferences.java |
=================================================================== |
--- a/src/org/adblockplus/sbrowser/contentblocker/MainPreferences.java |
+++ b/src/org/adblockplus/sbrowser/contentblocker/MainPreferences.java |
@@ -21,16 +21,17 @@ import java.io.BufferedReader; |
import java.io.IOException; |
import java.io.InputStreamReader; |
import org.adblockplus.sbrowser.contentblocker.engine.Engine; |
import org.adblockplus.sbrowser.contentblocker.engine.EngineService; |
import org.adblockplus.adblockplussbrowser.R; |
import android.app.AlertDialog; |
+import android.app.Dialog; |
import android.app.ProgressDialog; |
import android.content.DialogInterface; |
import android.content.DialogInterface.OnClickListener; |
import android.content.Intent; |
import android.content.SharedPreferences; |
import android.net.Uri; |
import android.os.Bundle; |
import android.preference.PreferenceActivity; |
@@ -38,19 +39,19 @@ import android.preference.PreferenceMana |
import android.text.Html; |
import android.util.Log; |
public class MainPreferences extends PreferenceActivity implements |
EngineService.OnEngineCreatedCallback, SharedPreferences.OnSharedPreferenceChangeListener |
{ |
private static final String TAG = MainPreferences.class.getSimpleName(); |
private static final String SBROWSER_APP_ID = "com.sec.android.app.sbrowser"; |
- private ProgressDialog progressDialog = null; |
private Engine engine = null; |
- private AlertDialog setupDialog = null; |
+ private Dialog dialog; |
+ private int dialogTitleResId; |
private SharedPreferences getSharedPreferences() |
{ |
return PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext()); |
} |
@Override |
public void onCreate(Bundle savedInstanceState) |
@@ -80,38 +81,51 @@ public class MainPreferences extends Pre |
.clear() |
.commit(); |
} |
} |
@Override |
protected void onStart() |
{ |
- this.progressDialog = ProgressDialog.show(this, |
- this.getString(R.string.initialization_title), |
+ this.dialogTitleResId = R.string.initialization_title; |
+ this.dialog = ProgressDialog.show(this, |
+ this.getString(this.dialogTitleResId), |
this.getString(R.string.initialization_message)); |
super.onStart(); |
this.getSharedPreferences().registerOnSharedPreferenceChangeListener(this); |
EngineService.startService(this.getApplicationContext(), this); |
} |
@Override |
protected void onStop() |
{ |
super.onStop(); |
this.getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); |
+ this.dismissDialog(); |
+ } |
+ |
+ private void dismissDialog() |
+ { |
+ if (this.dialog != null) |
+ { |
+ this.dialogTitleResId = 0; |
+ this.dialog.dismiss(); |
+ this.dialog = null; |
+ } |
} |
private void checkForCompatibleSBrowserAndProceed() |
{ |
if (!Engine.hasCompatibleSBrowserInstalled(this.getApplicationContext())) |
{ |
- final AlertDialog d = new AlertDialog.Builder(this) |
+ this.dialogTitleResId = R.string.sbrowser_dialog_title; |
+ this.dialog = new AlertDialog.Builder(this) |
.setCancelable(false) |
- .setTitle(R.string.sbrowser_dialog_title) |
+ .setTitle(this.dialogTitleResId) |
.setMessage(Html.fromHtml(this.readTextFile(R.raw.sbrowser_dialog))) |
.setNeutralButton(R.string.sbrowser_dialog_button, new OnClickListener() |
{ |
@Override |
public void onClick(DialogInterface dialog, int which) |
{ |
try |
{ |
@@ -120,88 +134,89 @@ public class MainPreferences extends Pre |
} |
catch (final Throwable t) |
{ |
startActivity(new Intent(Intent.ACTION_VIEW, Uri |
.parse("https://play.google.com/store/apps/details?id=" + SBROWSER_APP_ID))); |
} |
} |
}).create(); |
- d.show(); |
+ this.dialog.show(); |
} |
else |
{ |
this.checkAAStatusAndProceed(); |
} |
} |
private void checkAAStatusAndProceed() |
{ |
final SharedPreferences prefs = this.getSharedPreferences(); |
final String keyAaInfoShown = this.getString(R.string.key_aa_info_shown); |
final boolean aaInfoShown = prefs.getBoolean(keyAaInfoShown, false); |
if (!aaInfoShown) |
{ |
- final AlertDialog d = new AlertDialog.Builder(this) |
+ this.dialogTitleResId = R.string.aa_dialog_title; |
+ this.dialog = new AlertDialog.Builder(this) |
.setCancelable(false) |
- .setTitle(R.string.aa_dialog_title) |
+ .setTitle(this.dialogTitleResId) |
.setMessage(Html.fromHtml(this.readTextFile(R.raw.aa_dialog))) |
.setNeutralButton(R.string.aa_dialog_button, new OnClickListener() |
{ |
@Override |
public void onClick(DialogInterface dialog, int which) |
{ |
prefs.edit() |
.putBoolean(keyAaInfoShown, true) |
.commit(); |
MainPreferences.this.checkSetupStatus(); |
} |
}).create(); |
- d.show(); |
+ this.dialog.show(); |
} |
else |
{ |
this.checkSetupStatus(); |
} |
} |
private void checkSetupStatus() |
{ |
final boolean applicationActivated = this.getSharedPreferences() |
.getBoolean(this.getString(R.string.key_application_activated), false); |
if (!applicationActivated) |
{ |
Log.d(TAG, "Showing setup dialog"); |
- this.setupDialog = new AlertDialog.Builder(this) |
+ this.dialogTitleResId = R.string.setup_dialog_title; |
+ this.dialog = new AlertDialog.Builder(this) |
.setCancelable(false) |
- .setTitle(R.string.setup_dialog_title) |
+ .setTitle(this.dialogTitleResId) |
.setMessage(Html.fromHtml(this.readTextFile(R.raw.setup_dialog))) |
.setNeutralButton(R.string.setup_dialog_button, new OnClickListener() |
{ |
@Override |
public void onClick(DialogInterface dialog, int which) |
{ |
Engine.openSBrowserSettings(MainPreferences.this); |
} |
}) |
.create(); |
- this.setupDialog.show(); |
+ this.dialog.show(); |
} |
} |
@Override |
public void onEngineCreated(Engine engine, boolean success) |
{ |
Log.d(TAG, "onEngineCreated: " + success); |
this.engine = success ? engine : null; |
- if (this.progressDialog != null) |
+ if (this.dialogTitleResId == R.string.initialization_title) |
{ |
- this.progressDialog.dismiss(); |
- this.progressDialog = null; |
+ this.dismissDialog(); |
this.checkForCompatibleSBrowserAndProceed(); |
} |
} |
@Override |
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) |
{ |
@@ -213,20 +228,19 @@ public class MainPreferences extends Pre |
{ |
boolean enabled = sharedPreferences.getBoolean(key, true); |
final String id = "url:" + this.engine.getPrefsDefault(Engine.SUBSCRIPTIONS_EXCEPTIONSURL); |
Log.d(TAG, "Acceptable ads " + (enabled ? "enabled" : "disabled")); |
this.engine.changeSubscriptionState(id, enabled); |
} |
else if (this.getString(R.string.key_application_activated).equals(key)) |
{ |
- if (this.setupDialog != null) |
+ if (this.dialogTitleResId == R.string.setup_dialog_title) |
{ |
- this.setupDialog.dismiss(); |
- this.setupDialog = null; |
+ this.dismissDialog(); |
} |
} |
} |
private String readTextFile(int id) |
{ |
try |
{ |