diff options
author | Tony Mantler <nicoya@google.com> | 2015-07-15 15:41:49 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-07-15 15:41:50 +0000 |
commit | ce1534283efd29978733a93137b537e825acf3de (patch) | |
tree | c1fbbbf4972d1fad9b6b7b49b7678523a389ed8d /Settings | |
parent | 7caeee2440ac67193c5ee9c56b0727a919e8d264 (diff) | |
parent | b168640c1c16593b6ca7ff1816a56600831b95f3 (diff) | |
download | android_packages_apps_TvSettings-ce1534283efd29978733a93137b537e825acf3de.tar.gz android_packages_apps_TvSettings-ce1534283efd29978733a93137b537e825acf3de.tar.bz2 android_packages_apps_TvSettings-ce1534283efd29978733a93137b537e825acf3de.zip |
Merge "Scan storage volumes post-setup" into mnc-dev
Diffstat (limited to 'Settings')
-rw-r--r-- | Settings/AndroidManifest.xml | 1 | ||||
-rw-r--r-- | Settings/src/com/android/tv/settings/device/storage/NewStorageActivity.java | 47 |
2 files changed, 48 insertions, 0 deletions
diff --git a/Settings/AndroidManifest.xml b/Settings/AndroidManifest.xml index c27d3f52..567d9478 100644 --- a/Settings/AndroidManifest.xml +++ b/Settings/AndroidManifest.xml @@ -483,6 +483,7 @@ <intent-filter> <action android:name="android.os.storage.action.DISK_SCANNED" /> <action android:name="android.os.storage.action.VOLUME_STATE_CHANGED" /> + <action android:name="com.google.android.tungsten.setupwraith.TV_SETTINGS_POST_SETUP" /> </intent-filter> </receiver> diff --git a/Settings/src/com/android/tv/settings/device/storage/NewStorageActivity.java b/Settings/src/com/android/tv/settings/device/storage/NewStorageActivity.java index 9a313daa..df867ce2 100644 --- a/Settings/src/com/android/tv/settings/device/storage/NewStorageActivity.java +++ b/Settings/src/com/android/tv/settings/device/storage/NewStorageActivity.java @@ -284,6 +284,9 @@ public class NewStorageActivity extends Activity { } } else if (TextUtils.equals(intent.getAction(), DiskInfo.ACTION_DISK_SCANNED)) { handleScan(context, intent); + } else if (TextUtils.equals(intent.getAction(), + "com.google.android.tungsten.setupwraith.TV_SETTINGS_POST_SETUP")) { + handleSetupComplete(context); } } @@ -354,6 +357,50 @@ public class NewStorageActivity extends Activity { } } + private void handleSetupComplete(Context context) { + Log.d(TAG, "Scanning for storage post-setup"); + + final List<DiskInfo> diskInfos = mStorageManager.getDisks(); + for (DiskInfo diskInfo : diskInfos) { + Log.d(TAG, "Scanning disk: " + diskInfo); + if (diskInfo.size <= 0) { + Log.d(TAG, "Disk ID " + diskInfo.id + " has no media"); + continue; + } + if (diskInfo.volumeCount != 0) { + Log.d(TAG, "Disk ID " + diskInfo.id + " has usable volumes, deferring"); + continue; + } + // No usable volumes, prompt the user to erase the disk + final Intent i = + NewStorageActivity.getNewStorageLaunchIntent(context, null, diskInfo.id); + setPopupLaunchFlags(i); + context.startActivity(i); + return; + } + + final List<VolumeInfo> volumeInfos = mStorageManager.getVolumes(); + for (final VolumeInfo info : volumeInfos) { + final String uuid = info.getFsUuid(); + Log.d(TAG, "Scanning volume: " + info); + if (info.getType() != VolumeInfo.TYPE_PUBLIC || TextUtils.isEmpty(uuid)) { + continue; + } + final VolumeRecord record = mStorageManager.findRecordByUuid(uuid); + if (record.isInited() || record.isSnoozed()) { + continue; + } + final DiskInfo disk = info.getDisk(); + if (disk.isAdoptable()) { + final Intent i = NewStorageActivity.getNewStorageLaunchIntent(context, + info.getId(), disk.getId()); + setPopupLaunchFlags(i); + context.startActivity(i); + return; + } + } + } + private void setPopupLaunchFlags(Intent intent) { intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); } |