From 4b3f15c904e49b18461a37c5e5d982c529949f49 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 11 Oct 2013 10:42:11 -0400 Subject: [PATCH 1/3] [Android] Simplify how ListActivities set their adapters. Since they are ListActivities, there is an underlying method for setting the adapters (setListAdapter()), so now we can remove calls that get the ListView object, since we don't need to directly access them now. --- .../src/org/retroarch/browser/CoreSelection.java | 5 +++-- .../org/retroarch/browser/HistorySelection.java | 15 ++++++++------- .../browser/diractivities/DirectoryActivity.java | 3 +-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/android/phoenix/src/org/retroarch/browser/CoreSelection.java b/android/phoenix/src/org/retroarch/browser/CoreSelection.java index 59bcdab638..f9c8a68630 100644 --- a/android/phoenix/src/org/retroarch/browser/CoreSelection.java +++ b/android/phoenix/src/org/retroarch/browser/CoreSelection.java @@ -33,13 +33,14 @@ public final class CoreSelection extends ListActivity { final String cpuInfo = UserPreferences.readCPUInfo(); final boolean cpuIsNeon = cpuInfo.contains("neon"); + // Setup the layout setContentView(R.layout.line_list); // Setup the list adapter = new IconAdapter(this, R.layout.line_list_item); - ListView list = getListView(); - list.setAdapter(adapter); + setListAdapter(adapter); + // Set the activity title. setTitle(R.string.select_libretro_core); // Populate the list diff --git a/android/phoenix/src/org/retroarch/browser/HistorySelection.java b/android/phoenix/src/org/retroarch/browser/HistorySelection.java index 94f52af3e0..2c2b6e5f44 100644 --- a/android/phoenix/src/org/retroarch/browser/HistorySelection.java +++ b/android/phoenix/src/org/retroarch/browser/HistorySelection.java @@ -24,18 +24,19 @@ public final class HistorySelection extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - + + // Setup the layout. setContentView(R.layout.line_list); // Setup the list adapter = new IconAdapter(this, R.layout.line_list_item); - ListView list = getListView(); - list.setAdapter(adapter); + setListAdapter(adapter); + // Set activity title. setTitle(R.string.recently_played_games); - + File history = new File(getApplicationInfo().dataDir, "retroarch-history.txt"); - + try { BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(history))); @@ -46,14 +47,14 @@ public final class HistorySelection extends ListActivity { String name = br.readLine(); if (game == null || core == null || name == null) break; - + adapter.add(new HistoryWrapper(game, core, name)); } br.close(); } catch (IOException ex) { } } - + @Override public void onListItemClick(ListView listView, View view, int position, long id) { final HistoryWrapper item = adapter.getItem(position); diff --git a/android/phoenix/src/org/retroarch/browser/diractivities/DirectoryActivity.java b/android/phoenix/src/org/retroarch/browser/diractivities/DirectoryActivity.java index c08b746824..a40bf37f0e 100644 --- a/android/phoenix/src/org/retroarch/browser/diractivities/DirectoryActivity.java +++ b/android/phoenix/src/org/retroarch/browser/diractivities/DirectoryActivity.java @@ -80,8 +80,7 @@ public class DirectoryActivity extends ListActivity { // Setup the list adapter = new IconAdapter(this, R.layout.line_list_item); - ListView list = getListView(); - list.setAdapter(adapter); + setListAdapter(adapter); // Load Directory if (savedInstanceState != null) { From b69059629b82fc9e356bcb5fb30ab23a0b0f8765 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 11 Oct 2013 11:58:19 -0400 Subject: [PATCH 2/3] [Android] Use accessors with FileWrapper.java. Maintains encapsulation. Also make FileWrapper.java implement Comparable, since it already implements compareTo. --- .../org/retroarch/browser/FileWrapper.java | 57 ++++++++++++++----- .../diractivities/DirectoryActivity.java | 13 ++--- 2 files changed, 50 insertions(+), 20 deletions(-) diff --git a/android/phoenix/src/org/retroarch/browser/FileWrapper.java b/android/phoenix/src/org/retroarch/browser/FileWrapper.java index cee18e991f..9f0a3ac91f 100644 --- a/android/phoenix/src/org/retroarch/browser/FileWrapper.java +++ b/android/phoenix/src/org/retroarch/browser/FileWrapper.java @@ -6,25 +6,24 @@ import org.retroarch.R; import android.graphics.drawable.Drawable; -public final class FileWrapper implements IconAdapterItem { - public final File file; - public final boolean parentItem; - public final boolean dirSelectItem; - - protected final boolean enabled; - +public final class FileWrapper implements IconAdapterItem, Comparable { + public static final int DIRSELECT = 0; public static final int PARENT = 1; public static final int FILE = 2; - - protected final int typeIndex; + + private final File file; + private final boolean parentItem; + private final boolean dirSelectItem; + private final boolean enabled; + private final int typeIndex; public FileWrapper(File file, int type, boolean isEnabled) { this.file = file; - this.parentItem = type == PARENT; - this.dirSelectItem = type == DIRSELECT; - this.typeIndex = type == FILE ? (FILE + (file.isDirectory() ? 0 : 1)) : type; + this.parentItem = (type == PARENT); + this.dirSelectItem = (type == DIRSELECT); + this.typeIndex = (type == FILE) ? (FILE + (file.isDirectory() ? 0 : 1)) : type; this.enabled = parentItem || dirSelectItem || isEnabled; } @@ -43,7 +42,7 @@ public final class FileWrapper implements IconAdapterItem { else return file.getName(); } - + @Override public String getSubText() { return null; @@ -63,6 +62,38 @@ public final class FileWrapper implements IconAdapterItem { return null; } + /** + * Checks whether or not the wrapped {@link File} is + * the "Parent Directory" item in the file browser. + * + * @return true if the wrapped {@link File} is the "Parent Directory" + * item in the file browser; false otherwise. + */ + public boolean isParentItem() { + return parentItem; + } + + /** + * Checks whether or not the wrapped {@link File} + * is the "use this directory" item. + * + * @return true if the wrapped {@link File} is the "Use this directory" + * item in the file browser; false otherwise. + */ + public boolean isDirSelectItem() { + return dirSelectItem; + } + + /** + * Gets the file wrapped by this FileWrapper. + * + * @return the file wrapped by this FileWrapper. + */ + public File getFile() { + return file; + } + + @Override public int compareTo(FileWrapper other) { if (other != null) { // Who says ternary is hard to follow diff --git a/android/phoenix/src/org/retroarch/browser/diractivities/DirectoryActivity.java b/android/phoenix/src/org/retroarch/browser/diractivities/DirectoryActivity.java index a40bf37f0e..ebcfca2199 100644 --- a/android/phoenix/src/org/retroarch/browser/diractivities/DirectoryActivity.java +++ b/android/phoenix/src/org/retroarch/browser/diractivities/DirectoryActivity.java @@ -122,21 +122,20 @@ public class DirectoryActivity extends ListActivity { public void onListItemClick(ListView listView, View aView, int position, long id) { final FileWrapper item = adapter.getItem(position); - if (item.parentItem && backStack.get(backStack.size() - 1).parentIsBack) { + if (item.isParentItem() && backStack.get(backStack.size() - 1).parentIsBack) { backStack.remove(backStack.size() - 1); wrapFiles(); return; - } else if (item.dirSelectItem) { + } else if (item.isDirSelectItem()) { finishWithPath(listedDirectory.getAbsolutePath()); return; } - final File selected = item.parentItem ? listedDirectory.getParentFile() - : item.file; + final File selected = item.isParentItem() ? listedDirectory.getParentFile() : item.getFile(); if (selected.isDirectory()) { backStack.add(new BackStackItem(selected.getAbsolutePath(), - !item.parentItem)); + !item.isParentItem())); wrapFiles(); } else { String filePath = selected.getAbsolutePath(); @@ -228,8 +227,8 @@ public class DirectoryActivity extends ListActivity { // Sort items adapter.sort(new Comparator() { @Override - public int compare(FileWrapper aLeft, FileWrapper aRight) { - return aLeft.compareTo(aRight); + public int compare(FileWrapper left, FileWrapper right) { + return left.compareTo(right); }; }); From 0977f6dc9f4b9dfc822a699fe638420dcb5072b1 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 11 Oct 2013 12:04:34 -0400 Subject: [PATCH 3/3] [Android] Fix variable accessibility within BackStackItem. These aren't used outside of the class, so they should be made private. --- .../retroarch/browser/diractivities/DirectoryActivity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/phoenix/src/org/retroarch/browser/diractivities/DirectoryActivity.java b/android/phoenix/src/org/retroarch/browser/diractivities/DirectoryActivity.java index ebcfca2199..65f3e36e38 100644 --- a/android/phoenix/src/org/retroarch/browser/diractivities/DirectoryActivity.java +++ b/android/phoenix/src/org/retroarch/browser/diractivities/DirectoryActivity.java @@ -21,8 +21,8 @@ public class DirectoryActivity extends ListActivity { private File listedDirectory; public static class BackStackItem implements Parcelable { - public String path; - public boolean parentIsBack; + private final String path; + private final boolean parentIsBack; public BackStackItem(String path, boolean parentIsBack) { this.path = path;