Search in sources :

Example 16 with VolumeRecord

use of android.os.storage.VolumeRecord in project android_frameworks_base by DirtyUnicorns.

the class MountService method readVolumeRecord.

public static VolumeRecord readVolumeRecord(XmlPullParser in) throws IOException {
    final int type = readIntAttribute(in, ATTR_TYPE);
    final String fsUuid = readStringAttribute(in, ATTR_FS_UUID);
    final VolumeRecord meta = new VolumeRecord(type, fsUuid);
    meta.partGuid = readStringAttribute(in, ATTR_PART_GUID);
    meta.nickname = readStringAttribute(in, ATTR_NICKNAME);
    meta.userFlags = readIntAttribute(in, ATTR_USER_FLAGS);
    meta.createdMillis = readLongAttribute(in, ATTR_CREATED_MILLIS);
    meta.lastTrimMillis = readLongAttribute(in, ATTR_LAST_TRIM_MILLIS);
    meta.lastBenchMillis = readLongAttribute(in, ATTR_LAST_BENCH_MILLIS);
    return meta;
}
Also used : VolumeRecord(android.os.storage.VolumeRecord)

Example 17 with VolumeRecord

use of android.os.storage.VolumeRecord in project android_frameworks_base by DirtyUnicorns.

the class MountService method setVolumeUserFlags.

@Override
public void setVolumeUserFlags(String fsUuid, int flags, int mask) {
    enforcePermission(android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS);
    waitForReady();
    Preconditions.checkNotNull(fsUuid);
    synchronized (mLock) {
        final VolumeRecord rec = mRecords.get(fsUuid);
        if (rec == null)
            return;
        rec.userFlags = (rec.userFlags & ~mask) | (flags & mask);
        mCallbacks.notifyVolumeRecordChanged(rec);
        writeSettingsLocked();
    }
}
Also used : VolumeRecord(android.os.storage.VolumeRecord)

Example 18 with VolumeRecord

use of android.os.storage.VolumeRecord in project android_frameworks_base by DirtyUnicorns.

the class MountService method forgetAllVolumes.

@Override
public void forgetAllVolumes() {
    enforcePermission(android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS);
    waitForReady();
    synchronized (mLock) {
        for (int i = 0; i < mRecords.size(); i++) {
            final String fsUuid = mRecords.keyAt(i);
            final VolumeRecord rec = mRecords.valueAt(i);
            if (!TextUtils.isEmpty(rec.partGuid)) {
                mHandler.obtainMessage(H_PARTITION_FORGET, rec.partGuid).sendToTarget();
            }
            mCallbacks.notifyVolumeForgotten(fsUuid);
        }
        mRecords.clear();
        if (!Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, mPrimaryStorageUuid)) {
            mPrimaryStorageUuid = getDefaultPrimaryStorageUuid();
        }
        writeSettingsLocked();
        mHandler.obtainMessage(H_RESET).sendToTarget();
    }
}
Also used : VolumeRecord(android.os.storage.VolumeRecord)

Example 19 with VolumeRecord

use of android.os.storage.VolumeRecord in project android_frameworks_base by AOSPA.

the class MountService method forgetVolume.

@Override
public void forgetVolume(String fsUuid) {
    enforcePermission(android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS);
    waitForReady();
    Preconditions.checkNotNull(fsUuid);
    synchronized (mLock) {
        final VolumeRecord rec = mRecords.remove(fsUuid);
        if (rec != null && !TextUtils.isEmpty(rec.partGuid)) {
            mHandler.obtainMessage(H_PARTITION_FORGET, rec.partGuid).sendToTarget();
        }
        mCallbacks.notifyVolumeForgotten(fsUuid);
        // reset vold so we bind into new volume into place.
        if (Objects.equals(mPrimaryStorageUuid, fsUuid)) {
            mPrimaryStorageUuid = getDefaultPrimaryStorageUuid();
            mHandler.obtainMessage(H_RESET).sendToTarget();
        }
        writeSettingsLocked();
    }
}
Also used : VolumeRecord(android.os.storage.VolumeRecord)

Example 20 with VolumeRecord

use of android.os.storage.VolumeRecord in project android_frameworks_base by AOSPA.

the class MountService method forgetAllVolumes.

@Override
public void forgetAllVolumes() {
    enforcePermission(android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS);
    waitForReady();
    synchronized (mLock) {
        for (int i = 0; i < mRecords.size(); i++) {
            final String fsUuid = mRecords.keyAt(i);
            final VolumeRecord rec = mRecords.valueAt(i);
            if (!TextUtils.isEmpty(rec.partGuid)) {
                mHandler.obtainMessage(H_PARTITION_FORGET, rec.partGuid).sendToTarget();
            }
            mCallbacks.notifyVolumeForgotten(fsUuid);
        }
        mRecords.clear();
        if (!Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, mPrimaryStorageUuid)) {
            mPrimaryStorageUuid = getDefaultPrimaryStorageUuid();
        }
        writeSettingsLocked();
        mHandler.obtainMessage(H_RESET).sendToTarget();
    }
}
Also used : VolumeRecord(android.os.storage.VolumeRecord)

Aggregations

VolumeRecord (android.os.storage.VolumeRecord)61 VolumeInfo (android.os.storage.VolumeInfo)16 DiskInfo (android.os.storage.DiskInfo)11 Notification (android.app.Notification)10 IOException (java.io.IOException)10 Intent (android.content.Intent)6 Action (android.app.Notification.Action)5 PendingIntent (android.app.PendingIntent)5 IBinder (android.os.IBinder)5 RemoteCallbackList (android.os.RemoteCallbackList)5 StorageVolume (android.os.storage.StorageVolume)5 FastXmlSerializer (com.android.internal.util.FastXmlSerializer)5 IndentingPrintWriter (com.android.internal.util.IndentingPrintWriter)5 FileInputStream (java.io.FileInputStream)5 FileNotFoundException (java.io.FileNotFoundException)5 FileOutputStream (java.io.FileOutputStream)5 ArrayList (java.util.ArrayList)5 LinkedList (java.util.LinkedList)5 List (java.util.List)5 Entry (java.util.Map.Entry)5