From e33c219b10f75e21a378f173a029efccd76225e5 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 17 Nov 2013 18:52:41 -0500 Subject: [PATCH] [Android] Separate the GPL waiver code into its own DialogFragment. --- .../browser/mainmenu/MainMenuFragment.java | 38 ++--------- .../gplwaiver/GPLWaiverDialogFragment.java | 64 +++++++++++++++++++ 2 files changed, 68 insertions(+), 34 deletions(-) create mode 100644 android/phoenix/src/com/retroarch/browser/mainmenu/gplwaiver/GPLWaiverDialogFragment.java diff --git a/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java b/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java index bb8410007e..5a687b705c 100644 --- a/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java +++ b/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java @@ -27,11 +27,11 @@ import android.widget.Toast; import com.retroarch.R; import com.retroarch.browser.CoreSelection; import com.retroarch.browser.HistorySelection; -import com.retroarch.browser.ModuleWrapper; import com.retroarch.browser.NativeInterface; import com.retroarch.browser.RetroActivity; import com.retroarch.browser.dirfragment.DirectoryFragment; import com.retroarch.browser.dirfragment.DirectoryFragment.OnDirectoryFragmentClosedListener; +import com.retroarch.browser.mainmenu.gplwaiver.GPLWaiverDialogFragment; import com.retroarch.browser.preferences.fragments.util.PreferenceListFragment; import com.retroarch.browser.preferences.util.UserPreferences; @@ -75,40 +75,10 @@ public final class MainMenuFragment extends PreferenceListFragment implements On .setPositiveButton(R.string.ok, null); alert.show(); } - - showGPLWaiver(); - } - } - private void showGPLWaiver() - { - AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()) - .setTitle(R.string.gpl_waiver) - .setMessage(R.string.gpl_waiver_desc) - .setPositiveButton(R.string.keep_cores, null) - .setNegativeButton(R.string.remove_cores, new DialogInterface.OnClickListener() - { - @Override - public void onClick(DialogInterface dialog, int which) - { - final File[] libs = new File(getActivity().getApplicationInfo().dataDir, "/cores").listFiles(); - for (final File lib : libs) - { - ModuleWrapper module = new ModuleWrapper(getActivity().getApplicationContext(), lib); - - boolean gplv3 = module.getCoreLicense().equals("GPLv3"); - boolean gplv2 = module.getCoreLicense().equals("GPLv2"); - - if (!gplv3 && !gplv2) - { - String libName = lib.getName(); - Log.i("GPL WAIVER", "Deleting non-GPL core" + libName + "..."); - lib.delete(); - } - } - } - }); - alert.show(); + // First-run, so we show the GPL waiver agreement dialog. + GPLWaiverDialogFragment.newInstance().show(getFragmentManager(), "gplWaiver"); + } } private void extractAssets() diff --git a/android/phoenix/src/com/retroarch/browser/mainmenu/gplwaiver/GPLWaiverDialogFragment.java b/android/phoenix/src/com/retroarch/browser/mainmenu/gplwaiver/GPLWaiverDialogFragment.java new file mode 100644 index 0000000000..b7c1af9b74 --- /dev/null +++ b/android/phoenix/src/com/retroarch/browser/mainmenu/gplwaiver/GPLWaiverDialogFragment.java @@ -0,0 +1,64 @@ +package com.retroarch.browser.mainmenu.gplwaiver; + +import java.io.File; + +import com.retroarch.R; +import com.retroarch.browser.ModuleWrapper; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.v4.app.DialogFragment; +import android.util.Log; + +/** + * {@link DialogFragment} responsible for displaying + * the GPL waiver dialog on the first-run of this app. + */ +public final class GPLWaiverDialogFragment extends DialogFragment +{ + /** + * Method for statically instatiating a new + * instance of a GPLWaiverDialogFragment. + * + * @return a new instance of a GPLWaiverDialogFragment. + */ + public static GPLWaiverDialogFragment newInstance() + { + return new GPLWaiverDialogFragment(); + } + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) + { + AlertDialog.Builder gplDialog = new AlertDialog.Builder(getActivity()); + gplDialog.setTitle(R.string.gpl_waiver); + gplDialog.setMessage(R.string.gpl_waiver_desc); + gplDialog.setPositiveButton(R.string.keep_cores, null); + gplDialog.setNegativeButton(R.string.remove_cores, new DialogInterface.OnClickListener() + { + @Override + public void onClick(DialogInterface dialog, int which) + { + final File[] libs = new File(getActivity().getApplicationInfo().dataDir, "/cores").listFiles(); + for (final File lib : libs) + { + ModuleWrapper module = new ModuleWrapper(getActivity().getApplicationContext(), lib); + + boolean gplv3 = module.getCoreLicense().equals("GPLv3"); + boolean gplv2 = module.getCoreLicense().equals("GPLv2"); + + if (!gplv3 && !gplv2) + { + String libName = lib.getName(); + Log.i("GPL WAIVER", "Deleting non-GPL core" + libName + "..."); + lib.delete(); + } + } + } + }); + + return gplDialog.create(); + } +}