diff options
| -rw-r--r-- | core/java/android/widget/AbsListView.java | 4 | ||||
| -rw-r--r-- | core/java/com/android/internal/app/ExternalMediaFormatActivity.java | 5 | ||||
| -rw-r--r-- | libs/androidfw/ZipFileRO.cpp | 4 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java | 18 | ||||
| -rw-r--r--[-rwxr-xr-x] | services/core/java/com/android/server/am/ActivityStack.java | 0 |
5 files changed, 30 insertions, 1 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 60ef693..1f25c1e 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -2379,7 +2379,9 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te lp.itemId = mAdapter.getItemId(position); } lp.viewType = mAdapter.getItemViewType(position); - child.setLayoutParams(lp); + if (lp != vlp) { + child.setLayoutParams(lp); + } } class ListItemAccessibilityDelegate extends AccessibilityDelegate { diff --git a/core/java/com/android/internal/app/ExternalMediaFormatActivity.java b/core/java/com/android/internal/app/ExternalMediaFormatActivity.java index 6ed3bdc..fc213c5 100644 --- a/core/java/com/android/internal/app/ExternalMediaFormatActivity.java +++ b/core/java/com/android/internal/app/ExternalMediaFormatActivity.java @@ -25,6 +25,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; +import android.os.storage.StorageVolume; import android.util.Log; /** @@ -94,6 +95,10 @@ public class ExternalMediaFormatActivity extends AlertActivity implements Dialog if (which == POSITIVE_BUTTON) { Intent intent = new Intent(ExternalStorageFormatter.FORMAT_ONLY); intent.setComponent(ExternalStorageFormatter.COMPONENT_NAME); + // Transfer the storage volume to the new intent + final StorageVolume storageVolume = getIntent().getParcelableExtra( + StorageVolume.EXTRA_STORAGE_VOLUME); + intent.putExtra(StorageVolume.EXTRA_STORAGE_VOLUME, storageVolume); startService(intent); } diff --git a/libs/androidfw/ZipFileRO.cpp b/libs/androidfw/ZipFileRO.cpp index 1ab18ad..a485d2b 100644 --- a/libs/androidfw/ZipFileRO.cpp +++ b/libs/androidfw/ZipFileRO.cpp @@ -53,6 +53,10 @@ public: _ZipEntryRO() : cookie(NULL) { } + ~_ZipEntryRO() { + EndIteration(cookie); + } + private: _ZipEntryRO(const _ZipEntryRO& other); _ZipEntryRO& operator=(const _ZipEntryRO& other); diff --git a/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java b/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java index 481266b..dd4c34c 100644 --- a/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java +++ b/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java @@ -28,6 +28,7 @@ import android.os.HandlerThread; import android.os.UserHandle; import android.os.storage.StorageEventListener; import android.os.storage.StorageManager; +import android.os.storage.StorageVolume; import android.provider.Settings; import android.util.Log; @@ -198,6 +199,8 @@ public class StorageNotification extends SystemUI { */ Intent intent = new Intent(); intent.setClass(mContext, com.android.internal.app.ExternalMediaFormatActivity.class); + intent.putExtra(StorageVolume.EXTRA_STORAGE_VOLUME, + getVolumeByPath(mStorageManager.getVolumeList(), path)); PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0); setMediaStorageNotification( @@ -212,6 +215,8 @@ public class StorageNotification extends SystemUI { */ Intent intent = new Intent(); intent.setClass(mContext, com.android.internal.app.ExternalMediaFormatActivity.class); + intent.putExtra(StorageVolume.EXTRA_STORAGE_VOLUME, + getVolumeByPath(mStorageManager.getVolumeList(), path)); PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0); setMediaStorageNotification( @@ -247,6 +252,19 @@ public class StorageNotification extends SystemUI { } /** + * Get the corresponding StorageVolume object for a specific path. + */ + private final StorageVolume getVolumeByPath(StorageVolume[] volumes, String path) { + for (StorageVolume volume : volumes) { + if (volume.getPath().equals(path)) { + return volume; + } + } + Log.w(TAG, "No storage found"); + return null; + } + + /** * Update the state of the USB mass storage notification */ void updateUsbMassStorageNotification(boolean available) { diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index e309a03..e309a03 100755..100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java |
