From 490148cb5babdd5063f331e633f9c9ee3f568ccd Mon Sep 17 00:00:00 2001
From: str4d <str4d@mail.i2p>
Date: Sat, 10 Aug 2013 05:38:28 +0000
Subject: [PATCH] Migrated old Dialog to DialogFragment

---
 .../android/router/fragment/MainFragment.java |  86 ++-----------
 .../router/fragment/VersionDialog.java        | 113 ++++++++++++++++++
 2 files changed, 124 insertions(+), 75 deletions(-)
 create mode 100644 src/net/i2p/android/router/fragment/VersionDialog.java

diff --git a/src/net/i2p/android/router/fragment/MainFragment.java b/src/net/i2p/android/router/fragment/MainFragment.java
index 54d45c1f2..3f60924ff 100644
--- a/src/net/i2p/android/router/fragment/MainFragment.java
+++ b/src/net/i2p/android/router/fragment/MainFragment.java
@@ -32,8 +32,6 @@ public class MainFragment extends I2PFragmentBase {
     private boolean _startPressed = false;
     protected static final String PROP_NEW_INSTALL = "i2p.newInstall";
     protected static final String PROP_NEW_VERSION = "i2p.newVersion";
-    protected static final int DIALOG_NEW_INSTALL = 0;
-    protected static final int DIALOG_NEW_VERSION = 1;
 
     /**
      * Called when the fragment is first created.
@@ -447,83 +445,21 @@ public class MainFragment extends I2PFragmentBase {
     }
 
     private void checkDialog() {
+        VersionDialog dialog = new VersionDialog();
         String oldVersion = getPref(PREF_INSTALLED_VERSION, "??");
-        /*if(oldVersion.equals("??")) {
-            getActivity().showDialog(DIALOG_NEW_INSTALL);
+        if(oldVersion.equals("??")) {
+            Bundle args = new Bundle();
+            args.putInt(VersionDialog.DIALOG_TYPE, VersionDialog.DIALOG_NEW_INSTALL);
+            dialog.setArguments(args);
+            dialog.show(getActivity().getSupportFragmentManager(), "newinstall");
         } else {
             String currentVersion = Util.getOurVersion(getActivity());
             if(!oldVersion.equals(currentVersion)) {
-                getActivity().showDialog(DIALOG_NEW_VERSION);
+                Bundle args = new Bundle();
+                args.putInt(VersionDialog.DIALOG_TYPE, VersionDialog.DIALOG_NEW_VERSION);
+                dialog.setArguments(args);
+                dialog.show(getActivity().getSupportFragmentManager(), "newversion");
             }
-        }*/
-    }
-
-    /*@Override
-    protected Dialog onCreateDialog(int id) {
-        final String currentVersion = Util.getOurVersion(this);
-        Dialog rv = null;
-        AlertDialog.Builder b = new AlertDialog.Builder(this);
-        switch(id) {
-            case DIALOG_NEW_INSTALL:
-                b.setMessage(getResources().getText(R.string.welcome_new_install)).setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {
-
-                    public void onClick(DialogInterface dialog, int id) {
-                        setPref(PREF_INSTALLED_VERSION, currentVersion);
-                        dialog.cancel();
-                        MainActivity.this.removeDialog(id);
-                    }
-                }).setNeutralButton("Release Notes", new DialogInterface.OnClickListener() {
-
-                    public void onClick(DialogInterface dialog, int id) {
-                        setPref(PREF_INSTALLED_VERSION, currentVersion);
-                        dialog.cancel();
-                        MainActivity.this.removeDialog(id);
-                        Intent intent = new Intent(MainActivity.this, TextResourceActivity.class);
-                        intent.putExtra(TextResourceActivity.TEXT_RESOURCE_ID, R.raw.releasenotes_txt);
-                        startActivity(intent);
-                    }
-                }).setNegativeButton("Licenses", new DialogInterface.OnClickListener() {
-
-                    public void onClick(DialogInterface dialog, int id) {
-                        setPref(PREF_INSTALLED_VERSION, currentVersion);
-                        dialog.cancel();
-                        MainActivity.this.removeDialog(id);
-                        Intent intent = new Intent(MainActivity.this, LicenseActivity.class);
-                        startActivity(intent);
-                    }
-                });
-                rv = b.create();
-                break;
-
-            case DIALOG_NEW_VERSION:
-                b.setMessage(getResources().getText(R.string.welcome_new_version) + " " + currentVersion).setCancelable(true).setPositiveButton("OK", new DialogInterface.OnClickListener() {
-
-                    public void onClick(DialogInterface dialog, int id) {
-                        setPref(PREF_INSTALLED_VERSION, currentVersion);
-                        try {
-                            dialog.dismiss();
-                        } catch(Exception e) {
-                        }
-                        MainActivity.this.removeDialog(id);
-                    }
-                }).setNegativeButton("Release Notes", new DialogInterface.OnClickListener() {
-
-                    public void onClick(DialogInterface dialog, int id) {
-                        setPref(PREF_INSTALLED_VERSION, currentVersion);
-                        try {
-                            dialog.dismiss();
-                        } catch(Exception e) {
-                        }
-                        MainActivity.this.removeDialog(id);
-                        Intent intent = new Intent(MainActivity.this, TextResourceActivity.class);
-                        intent.putExtra(TextResourceActivity.TEXT_RESOURCE_ID, R.raw.releasenotes_txt);
-                        startActivity(intent);
-                    }
-                });
-
-                rv = b.create();
-                break;
         }
-        return rv;
-    }*/
+    }
 }
diff --git a/src/net/i2p/android/router/fragment/VersionDialog.java b/src/net/i2p/android/router/fragment/VersionDialog.java
new file mode 100644
index 000000000..0610722e9
--- /dev/null
+++ b/src/net/i2p/android/router/fragment/VersionDialog.java
@@ -0,0 +1,113 @@
+package net.i2p.android.router.fragment;
+
+import net.i2p.android.router.R;
+import net.i2p.android.router.activity.LicenseActivity;
+import net.i2p.android.router.util.Util;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
+
+public class VersionDialog extends DialogFragment {
+    protected static final String DIALOG_TYPE = "dialog_type";
+    protected static final int DIALOG_NEW_INSTALL = 0;
+    protected static final int DIALOG_NEW_VERSION = 1;
+
+    @Override
+    public Dialog onCreateDialog(Bundle SavedInstanceState) {
+        final String currentVersion = Util.getOurVersion(getActivity());
+        Dialog rv = null;
+        AlertDialog.Builder b = new AlertDialog.Builder(getActivity());
+        int id = getArguments().getInt(DIALOG_TYPE);
+        switch(id) {
+            case DIALOG_NEW_INSTALL:
+                b.setMessage(R.string.welcome_new_install)
+                 .setCancelable(false)
+                 .setPositiveButton("OK", new DialogInterface.OnClickListener() {
+
+                    public void onClick(DialogInterface dialog, int id) {
+                        I2PFragmentBase fb = (I2PFragmentBase) getActivity()
+                                .getSupportFragmentManager()
+                                .findFragmentById(R.id.main_content);
+                        fb.setPref(MainFragment.PREF_INSTALLED_VERSION, currentVersion);
+                        dialog.cancel();
+                    }
+                }).setNeutralButton(R.string.label_release_notes, new DialogInterface.OnClickListener() {
+
+                    public void onClick(DialogInterface dialog, int id) {
+                        I2PFragmentBase fb = (I2PFragmentBase) getActivity()
+                                .getSupportFragmentManager()
+                                .findFragmentById(R.id.main_content);
+                        fb.setPref(MainFragment.PREF_INSTALLED_VERSION, currentVersion);
+                        dialog.cancel();
+                        TextResourceFragment f = new TextResourceFragment();
+                        Bundle args = new Bundle();
+                        args.putInt(TextResourceFragment.TEXT_RESOURCE_ID, R.raw.releasenotes_txt);
+                        f.setArguments(args);
+                        getActivity().getSupportFragmentManager()
+                                     .beginTransaction()
+                                     .replace(R.id.main_content, f)
+                                     .addToBackStack(null)
+                                     .commit();
+                    }
+                }).setNegativeButton(R.string.label_licenses, new DialogInterface.OnClickListener() {
+
+                    public void onClick(DialogInterface dialog, int id) {
+                        I2PFragmentBase fb = (I2PFragmentBase) getActivity()
+                                .getSupportFragmentManager()
+                                .findFragmentById(R.id.main_content);
+                        fb.setPref(MainFragment.PREF_INSTALLED_VERSION, currentVersion);
+                        dialog.cancel();
+                        Intent intent = new Intent(getActivity(), LicenseActivity.class);
+                        startActivity(intent);
+                    }
+                });
+                rv = b.create();
+                break;
+
+            case DIALOG_NEW_VERSION:
+                b.setMessage(R.string.welcome_new_version + " " + currentVersion)
+                 .setCancelable(true)
+                 .setPositiveButton("OK", new DialogInterface.OnClickListener() {
+
+                    public void onClick(DialogInterface dialog, int id) {
+                        I2PFragmentBase fb = (I2PFragmentBase) getActivity()
+                                .getSupportFragmentManager()
+                                .findFragmentById(R.id.main_content);
+                        fb.setPref(MainFragment.PREF_INSTALLED_VERSION, currentVersion);
+                        try {
+                            dialog.dismiss();
+                        } catch(Exception e) {
+                        }
+                    }
+                }).setNegativeButton(R.string.label_release_notes, new DialogInterface.OnClickListener() {
+
+                    public void onClick(DialogInterface dialog, int id) {
+                        I2PFragmentBase fb = (I2PFragmentBase) getActivity()
+                                .getSupportFragmentManager()
+                                .findFragmentById(R.id.main_content);
+                        fb.setPref(MainFragment.PREF_INSTALLED_VERSION, currentVersion);
+                        try {
+                            dialog.dismiss();
+                        } catch(Exception e) {
+                        }
+                        TextResourceFragment f = new TextResourceFragment();
+                        Bundle args = new Bundle();
+                        args.putInt(TextResourceFragment.TEXT_RESOURCE_ID, R.raw.releasenotes_txt);
+                        f.setArguments(args);
+                        getActivity().getSupportFragmentManager()
+                                     .beginTransaction()
+                                     .replace(R.id.main_content, f)
+                                     .addToBackStack(null)
+                                     .commit();
+                    }
+                });
+
+                rv = b.create();
+                break;
+        }
+        return rv;
+    }
+}
-- 
GitLab