[Android] Separate the GPL waiver code into its own DialogFragment.

This commit is contained in:
Lioncash 2013-11-17 18:52:41 -05:00
parent ef3040a78b
commit e33c219b10
2 changed files with 68 additions and 34 deletions

View File

@ -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()

View File

@ -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();
}
}