From 1469342f8301745fb7695c5bffd0bde723419ad0 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 23 Aug 2013 11:17:24 -0400 Subject: [PATCH] [Android] Add an option to clear the game list. --- Source/Android/res/values-ja/strings.xml | 2 + Source/Android/res/values/strings.xml | 2 + .../dolphinemu/gamelist/GameListActivity.java | 49 +++++++++++++++++++ .../dolphinemu/gamelist/GameListFragment.java | 10 ++++ 4 files changed, 63 insertions(+) diff --git a/Source/Android/res/values-ja/strings.xml b/Source/Android/res/values-ja/strings.xml index fa466cc25e..1231c753a7 100644 --- a/Source/Android/res/values-ja/strings.xml +++ b/Source/Android/res/values-ja/strings.xml @@ -19,6 +19,8 @@ ファイルサイズ: + クリア + ゲームリストからすべての項目を削除しますか? ゲームリスト フォルダの参照 設定 diff --git a/Source/Android/res/values/strings.xml b/Source/Android/res/values/strings.xml index d9c8cee4f1..01d454c905 100644 --- a/Source/Android/res/values/strings.xml +++ b/Source/Android/res/values/strings.xml @@ -19,6 +19,8 @@ File Size: + Clear game list + Do you want to clear the game list? Game List Browse Folder Settings diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java index 62a9f34189..3678cf7637 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java @@ -7,8 +7,10 @@ package org.dolphinemu.dolphinemu.gamelist; import android.app.Activity; +import android.app.AlertDialog; import android.app.Fragment; import android.app.FragmentManager; +import android.content.DialogInterface; import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; @@ -16,6 +18,7 @@ import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.widget.DrawerLayout; import android.view.*; import android.widget.AdapterView; +import android.widget.ArrayAdapter; import android.widget.ListView; import java.util.ArrayList; import java.util.List; @@ -248,6 +251,20 @@ public final class GameListActivity extends Activity { return super.onPrepareOptionsMenu(menu); } + + @Override + public boolean onCreateOptionsMenu(Menu menu) + { + // Only show this in the game list. + if (this.mCurFragmentNum == 0) + { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.gamelist_menu, menu); + return true; + } + + return false; + } @Override public boolean onOptionsItemSelected(MenuItem item) @@ -259,6 +276,38 @@ public final class GameListActivity extends Activity return true; } + // If clear game list is pressed. + if (item.getItemId() == R.id.clearGameList) + { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.clear_game_list); + builder.setMessage(getString(R.string.clear_game_list_confirm)); + builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener(){ + public void onClick(DialogInterface dialog, int which) + { + String directories = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPathes", "0"); + int intDirs = Integer.parseInt(directories); + + for (int i = 0; i < intDirs; i++) + { + NativeLibrary.SetConfig("Dolphin.ini", "General", "GCMPath" + i, ""); + } + + ArrayAdapter adapter = ((GameListFragment)GameListActivity.this.mCurFragment).getAdapter(); + adapter.clear(); + adapter.notifyDataSetChanged(); + } + }); + builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) + { + // Do nothing. This just make "No" appear. + } + }); + + builder.show(); + } + return super.onOptionsItemSelected(item); } diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java index 0866deba7a..b72509419f 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java @@ -51,6 +51,16 @@ public final class GameListFragment extends Fragment */ void onZeroFiles(); } + + /** + * Gets the adapter for this fragment. + * + * @return the adapter for this fragment. + */ + public GameListAdapter getAdapter() + { + return mGameAdapter; + } private void Fill() {