From a0e3306ee39e9d50be52af0b98dbb30744895c0a Mon Sep 17 00:00:00 2001 From: James Sanford Date: Thu, 20 Dec 2012 13:17:16 -0800 Subject: [PATCH] Prepare for disk image selector. --- src/com/froop/app/kegs/ConfigFile.java | 12 ++++++++++++ src/com/froop/app/kegs/KegsMain.java | 5 ++--- src/com/froop/app/kegs/diskimage/DiskImage.java | 13 ++++++++++++- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/com/froop/app/kegs/ConfigFile.java b/src/com/froop/app/kegs/ConfigFile.java index 673f2e4..43d3e4c 100644 --- a/src/com/froop/app/kegs/ConfigFile.java +++ b/src/com/froop/app/kegs/ConfigFile.java @@ -1,6 +1,7 @@ package com.froop.app.kegs; import android.content.Context; +import android.os.Environment; import android.util.Log; import java.io.File; import java.io.BufferedInputStream; @@ -39,6 +40,17 @@ class ConfigFile { return mContext.getExternalCacheDir().getPath(); } + public String[] getAllImageDirs() { + String externalStorage = Environment.getExternalStorageDirectory().getPath(); + String[] dirs = { + getImagePath(), + externalStorage, + externalStorage + "/kegs", + externalStorage + "/Download" + }; + return dirs; + } + public void ensureAssetCopied(String destPath, String zipfile, String exampleFile) { // We only check for a local copy of a single file before unzipping... final File local_copy = new File(destPath, exampleFile); diff --git a/src/com/froop/app/kegs/KegsMain.java b/src/com/froop/app/kegs/KegsMain.java index 0a8c0dc..5ec74ee 100644 --- a/src/com/froop/app/kegs/KegsMain.java +++ b/src/com/froop/app/kegs/KegsMain.java @@ -265,8 +265,7 @@ public class KegsMain extends SherlockFragmentActivity implements KegsKeyboard.S public void run() { withUIActive(new Runnable() { public void run() { - new DiskImageFragment().show(getSupportFragmentManager(), - FRAGMENT_DISKIMAGE); + new DiskImageFragment(mConfigFile).show(getSupportFragmentManager(), FRAGMENT_DISKIMAGE); } }); } @@ -438,7 +437,7 @@ public class KegsMain extends SherlockFragmentActivity implements KegsKeyboard.S supportInvalidateOptionsMenu(); // update icon return true; } else if (item_id == R.id.action_diskimage) { - new DiskImageFragment().show(getSupportFragmentManager(), FRAGMENT_DISKIMAGE); + new DiskImageFragment(mConfigFile).show(getSupportFragmentManager(), FRAGMENT_DISKIMAGE); return true; } else if (item_id == R.id.action_more_keys) { final int vis = areControlsVisible() ? View.GONE : View.VISIBLE; diff --git a/src/com/froop/app/kegs/diskimage/DiskImage.java b/src/com/froop/app/kegs/diskimage/DiskImage.java index a645de6..e9a8223 100644 --- a/src/com/froop/app/kegs/diskimage/DiskImage.java +++ b/src/com/froop/app/kegs/diskimage/DiskImage.java @@ -4,7 +4,10 @@ import android.util.Log; import java.lang.Integer; import java.io.File; -class DiskImage { +class DiskImage implements Comparable { + // NOTE: "this class has a natural ordering that is inconsistent with equals" + // (sorted on the filename excluding path, case insensitive) + // template public static final String BOOT_SLOT_5 = "boot_slot_5"; public static final String BOOT_SLOT_6 = "boot_slot_6"; @@ -111,4 +114,12 @@ class DiskImage { return null; } } + + public int compareTo(Object other) { + if (other instanceof DiskImage) { + return this.getTitle().compareToIgnoreCase(((DiskImage)other).getTitle()); + } else { + throw new ClassCastException(); + } + } }