use of android.os.storage.StorageVolume in project cw-omnibus by commonsguy.
the class VolumeHelper method onPreferenceChange.
@Override
public boolean onPreferenceChange(Preference pref, Object o) {
StorageManager storage = pref.getContext().getSystemService(StorageManager.class);
List<StorageVolume> volumes = storage.getStorageVolumes();
String uuid = o.toString();
for (StorageVolume volume : volumes) {
if ((volume.getUuid() == null && uuid.equals(SettingsFragment.STORAGE_FAKE_UUID)) || (uuid.equals(volume.getUuid()))) {
Intent i = volume.createAccessIntent(dirName);
host.startActivityForHelper(i, this);
break;
}
}
return (true);
}
use of android.os.storage.StorageVolume in project android_frameworks_base by ResurrectionRemix.
the class SharedStorageAgent method onFullBackup.
/**
* Full backup of the shared-storage filesystem
*/
@Override
public void onFullBackup(FullBackupDataOutput output) throws IOException {
// "primary" shared storage volume is first in the list.
if (mVolumes != null) {
if (DEBUG)
Slog.i(TAG, "Backing up " + mVolumes.length + " shared volumes");
// Ignore all apps' getExternalFilesDir() content; it is backed up as part of
// each app-specific payload.
ArraySet<String> externalFilesDirFilter = new ArraySet();
final File externalAndroidRoot = new File(Environment.getExternalStorageDirectory(), Environment.DIRECTORY_ANDROID);
externalFilesDirFilter.add(externalAndroidRoot.getCanonicalPath());
for (int i = 0; i < mVolumes.length; i++) {
StorageVolume v = mVolumes[i];
// Express the contents of volume N this way in the tar stream:
// shared/N/path/to/file
// The restore will then extract to the given volume
String domain = FullBackup.SHARED_PREFIX + i;
fullBackupFileTree(null, domain, v.getPath(), null, /* manifestExcludes */
externalFilesDirFilter, /* systemExcludes */
output);
}
}
}
use of android.os.storage.StorageVolume in project android_frameworks_base by ResurrectionRemix.
the class OpenExternalDirectoryActivity method onCreate.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
if (DEBUG)
Log.d(TAG, "activity.onCreateDialog(): reusing instance");
return;
}
final Intent intent = getIntent();
if (intent == null) {
if (DEBUG)
Log.d(TAG, "missing intent");
logInvalidScopedAccessRequest(this, SCOPED_DIRECTORY_ACCESS_INVALID_ARGUMENTS);
setResult(RESULT_CANCELED);
finish();
return;
}
final Parcelable storageVolume = intent.getParcelableExtra(EXTRA_STORAGE_VOLUME);
if (!(storageVolume instanceof StorageVolume)) {
if (DEBUG)
Log.d(TAG, "extra " + EXTRA_STORAGE_VOLUME + " is not a StorageVolume: " + storageVolume);
logInvalidScopedAccessRequest(this, SCOPED_DIRECTORY_ACCESS_INVALID_ARGUMENTS);
setResult(RESULT_CANCELED);
finish();
return;
}
String directoryName = intent.getStringExtra(EXTRA_DIRECTORY_NAME);
if (directoryName == null) {
directoryName = DIRECTORY_ROOT;
}
final StorageVolume volume = (StorageVolume) storageVolume;
if (getScopedAccessPermissionStatus(getApplicationContext(), getCallingPackage(), volume.getUuid(), directoryName) == PERMISSION_NEVER_ASK) {
logValidScopedAccessRequest(this, directoryName, SCOPED_DIRECTORY_ACCESS_ALREADY_DENIED);
setResult(RESULT_CANCELED);
finish();
return;
}
final int userId = UserHandle.myUserId();
if (!showFragment(this, userId, volume, directoryName)) {
setResult(RESULT_CANCELED);
finish();
return;
}
}
use of android.os.storage.StorageVolume in project android_frameworks_base by ResurrectionRemix.
the class PackageHelper method fitsOnExternal.
public static boolean fitsOnExternal(Context context, long sizeBytes) {
final StorageManager storage = context.getSystemService(StorageManager.class);
final StorageVolume primary = storage.getPrimaryVolume();
return (sizeBytes > 0) && !primary.isEmulated() && Environment.MEDIA_MOUNTED.equals(primary.getState()) && sizeBytes <= storage.getStorageBytesUntilLow(primary.getPathFile());
}
use of android.os.storage.StorageVolume in project android_frameworks_base by DirtyUnicorns.
the class MountService method onUnlockUser.
private void onUnlockUser(int userId) {
Slog.d(TAG, "onUnlockUser " + userId);
// bind mount against.
try {
mConnector.execute("volume", "user_started", userId);
} catch (NativeDaemonConnectorException ignored) {
}
// correctly, then synthesize events for any already-mounted volumes.
synchronized (mVolumes) {
for (int i = 0; i < mVolumes.size(); i++) {
final VolumeInfo vol = mVolumes.valueAt(i);
if (vol.isVisibleForRead(userId) && vol.isMountedReadable()) {
final StorageVolume userVol = vol.buildStorageVolume(mContext, userId, false);
mHandler.obtainMessage(H_VOLUME_BROADCAST, userVol).sendToTarget();
final String envState = VolumeInfo.getEnvironmentForState(vol.getState());
mCallbacks.notifyStorageStateChanged(userVol.getPath(), envState, envState);
}
}
mSystemUnlockedUsers = ArrayUtils.appendInt(mSystemUnlockedUsers, userId);
}
}
Aggregations