summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2010-09-30 17:30:22 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-09-30 17:30:22 -0700
commit6ce5f60c791401ed0faf5d36baf4fc6612358676 (patch)
treed49732b6d288f5f9a7ad6f5a37b82a0fa66d7653 /core
parent9af6b53676061db6fc9c18300dc7d8258f7306ab (diff)
parent38cf8867a8d3e8d5159abd0bd0e6a3b0b8348b94 (diff)
downloadframeworks_base-6ce5f60c791401ed0faf5d36baf4fc6612358676.zip
frameworks_base-6ce5f60c791401ed0faf5d36baf4fc6612358676.tar.gz
frameworks_base-6ce5f60c791401ed0faf5d36baf4fc6612358676.tar.bz2
am 38cf8867: Remove OBBs from state list when volume unmounted
Merge commit '38cf8867a8d3e8d5159abd0bd0e6a3b0b8348b94' into gingerbread-plus-aosp * commit '38cf8867a8d3e8d5159abd0bd0e6a3b0b8348b94': Remove OBBs from state list when volume unmounted
Diffstat (limited to 'core')
-rw-r--r--core/java/android/content/res/ObbInfo.java7
-rw-r--r--core/java/android/content/res/ObbScanner.java5
-rw-r--r--core/java/android/os/storage/StorageManager.java5
3 files changed, 13 insertions, 4 deletions
diff --git a/core/java/android/content/res/ObbInfo.java b/core/java/android/content/res/ObbInfo.java
index 7b962e5..5d6ed44 100644
--- a/core/java/android/content/res/ObbInfo.java
+++ b/core/java/android/content/res/ObbInfo.java
@@ -29,6 +29,11 @@ public class ObbInfo implements Parcelable {
public static final int OBB_OVERLAY = 1 << 0;
/**
+ * The canonical filename of the OBB.
+ */
+ public String filename;
+
+ /**
* The name of the package to which the OBB file belongs.
*/
public String packageName;
@@ -66,6 +71,7 @@ public class ObbInfo implements Parcelable {
}
public void writeToParcel(Parcel dest, int parcelableFlags) {
+ dest.writeString(filename);
dest.writeString(packageName);
dest.writeInt(version);
dest.writeInt(flags);
@@ -83,6 +89,7 @@ public class ObbInfo implements Parcelable {
};
private ObbInfo(Parcel source) {
+ filename = source.readString();
packageName = source.readString();
version = source.readInt();
flags = source.readInt();
diff --git a/core/java/android/content/res/ObbScanner.java b/core/java/android/content/res/ObbScanner.java
index 572b75e..1b38eea 100644
--- a/core/java/android/content/res/ObbScanner.java
+++ b/core/java/android/content/res/ObbScanner.java
@@ -45,9 +45,14 @@ public class ObbScanner {
throw new IllegalArgumentException("OBB file does not exist: " + filePath);
}
+ /*
+ * XXX This will fail to find the real canonical path if bind mounts are
+ * used, but we don't use any bind mounts right now.
+ */
final String canonicalFilePath = obbFile.getCanonicalPath();
ObbInfo obbInfo = new ObbInfo();
+ obbInfo.filename = canonicalFilePath;
getObbInfo_native(canonicalFilePath, obbInfo);
return obbInfo;
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index 14da00a..2ebd049 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -434,7 +434,6 @@ public class StorageManager
* @param key secret used to encrypt the OBB; may be <code>null</code> if no
* encryption was used on the OBB.
* @return whether the mount call was successfully queued or not
- * @throws IllegalArgumentException when the OBB is already mounted
*/
public boolean mountObb(String filename, String key, OnObbStateChangeListener listener) {
try {
@@ -468,10 +467,8 @@ public class StorageManager
* @param force whether to kill any programs using this in order to unmount
* it
* @return whether the unmount call was successfully queued or not
- * @throws IllegalArgumentException when OBB is not already mounted
*/
- public boolean unmountObb(String filename, boolean force, OnObbStateChangeListener listener)
- throws IllegalArgumentException {
+ public boolean unmountObb(String filename, boolean force, OnObbStateChangeListener listener) {
try {
mObbActionListener.addListener(listener);
mMountService.unmountObb(filename, force, mObbActionListener);