summaryrefslogtreecommitdiff
path: root/org.fox.ttrss
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2017-10-30 21:38:00 +0300
committerAndrew Dolgov <[email protected]>2017-10-30 21:38:00 +0300
commit6a41ca13f074f3a91ef142563e578c9d16bcdd97 (patch)
treed31b0ad590cab7a9b40067b998895515740acab9 /org.fox.ttrss
parent0cedb968947c4da1b5700ec7d61fecf152a596bf (diff)
use dialogfragment for the "switch offline success" dialog to make it persist through orientation changes etc
Diffstat (limited to 'org.fox.ttrss')
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java1
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java62
2 files changed, 43 insertions, 20 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java
index 9b210e68..6374704b 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java
@@ -50,6 +50,7 @@ public class CommonActivity extends ActionBarActivity implements SharedPreferenc
public final static String FRAG_ARTICLE = "article";
public final static String FRAG_FEEDS = "feeds";
public final static String FRAG_CATS = "cats";
+ public final static String FRAG_DIALOG = "dialog";
public final static String THEME_DARK = "THEME_DARK";
public final static String THEME_LIGHT = "THEME_LIGHT";
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
index 49f727cb..10ac2e22 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
@@ -17,6 +17,7 @@ import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
+import android.support.v4.app.DialogFragment;
import android.support.v7.view.ActionMode;
import android.support.v7.widget.Toolbar;
import android.util.Log;
@@ -177,46 +178,67 @@ public class OnlineActivity extends CommonActivity {
m_headlinesActionModeCallback = new HeadlinesActionModeCallback();
}
}
-
- protected void switchOffline() {
- if (m_offlineModeStatus == 2) {
-
- AlertDialog.Builder builder = new AlertDialog.Builder(
- OnlineActivity.this)
+
+ // TODO: if necessary rework into a class for multiple alert dialog types
+ public static class SwitchOfflineDialogFragment extends DialogFragment {
+
+ public static SwitchOfflineDialogFragment newInstance() {
+ SwitchOfflineDialogFragment frag = new SwitchOfflineDialogFragment();
+ Bundle args = new Bundle();
+ frag.setArguments(args);
+ return frag;
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+
+ return new AlertDialog.Builder(
+ getActivity())
.setMessage(R.string.dialog_offline_success)
.setPositiveButton(R.string.dialog_offline_go,
new Dialog.OnClickListener() {
public void onClick(DialogInterface dialog,
- int which) {
-
- m_offlineModeStatus = 0;
-
- SharedPreferences localPrefs = getSharedPreferences("localprefs", Context.MODE_PRIVATE);
+ int which) {
+
+ ((OnlineActivity)getActivity()).setOfflineModeStatus(0);
+
+ SharedPreferences localPrefs = getActivity().getSharedPreferences("localprefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = localPrefs.edit();
editor.putBoolean("offline_mode_active", true);
editor.apply();
-
+
Intent offline = new Intent(
- OnlineActivity.this,
+ getActivity(),
OfflineActivity.class);
offline.putExtra("initial", true);
startActivity(offline);
- finish();
+
+ getActivity().finish();
}
})
.setNegativeButton(R.string.dialog_cancel,
new Dialog.OnClickListener() {
public void onClick(DialogInterface dialog,
- int which) {
+ int which) {
- m_offlineModeStatus = 0;
+ ((OnlineActivity)getActivity()).setOfflineModeStatus(0);
}
- });
+ })
+ .create();
+ }
+ }
+
+ protected void setOfflineModeStatus(int status) {
+ m_offlineModeStatus = status;
+ }
+
+ protected void switchOffline() {
+ if (m_offlineModeStatus == 2) {
+
+ DialogFragment frag = SwitchOfflineDialogFragment.newInstance();
+ frag.show(getSupportFragmentManager(), FRAG_DIALOG);
- AlertDialog dlg = builder.create();
- dlg.show();
-
} else if (m_offlineModeStatus == 0) {
AlertDialog.Builder builder = new AlertDialog.Builder(this)