Merge "Remember last time we mounted a volume." into qt-dev
This commit is contained in:
@@ -25,6 +25,7 @@ import android.util.TimeUtils;
|
|||||||
import com.android.internal.util.IndentingPrintWriter;
|
import com.android.internal.util.IndentingPrintWriter;
|
||||||
import com.android.internal.util.Preconditions;
|
import com.android.internal.util.Preconditions;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -45,6 +46,7 @@ public class VolumeRecord implements Parcelable {
|
|||||||
public String nickname;
|
public String nickname;
|
||||||
public int userFlags;
|
public int userFlags;
|
||||||
public long createdMillis;
|
public long createdMillis;
|
||||||
|
public long lastSeenMillis;
|
||||||
public long lastTrimMillis;
|
public long lastTrimMillis;
|
||||||
public long lastBenchMillis;
|
public long lastBenchMillis;
|
||||||
|
|
||||||
@@ -61,6 +63,7 @@ public class VolumeRecord implements Parcelable {
|
|||||||
nickname = parcel.readString();
|
nickname = parcel.readString();
|
||||||
userFlags = parcel.readInt();
|
userFlags = parcel.readInt();
|
||||||
createdMillis = parcel.readLong();
|
createdMillis = parcel.readLong();
|
||||||
|
lastSeenMillis = parcel.readLong();
|
||||||
lastTrimMillis = parcel.readLong();
|
lastTrimMillis = parcel.readLong();
|
||||||
lastBenchMillis = parcel.readLong();
|
lastBenchMillis = parcel.readLong();
|
||||||
}
|
}
|
||||||
@@ -73,6 +76,10 @@ public class VolumeRecord implements Parcelable {
|
|||||||
return fsUuid;
|
return fsUuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getNormalizedFsUuid() {
|
||||||
|
return fsUuid != null ? fsUuid.toLowerCase(Locale.US) : null;
|
||||||
|
}
|
||||||
|
|
||||||
public String getNickname() {
|
public String getNickname() {
|
||||||
return nickname;
|
return nickname;
|
||||||
}
|
}
|
||||||
@@ -97,6 +104,7 @@ public class VolumeRecord implements Parcelable {
|
|||||||
DebugUtils.flagsToString(VolumeRecord.class, "USER_FLAG_", userFlags));
|
DebugUtils.flagsToString(VolumeRecord.class, "USER_FLAG_", userFlags));
|
||||||
pw.println();
|
pw.println();
|
||||||
pw.printPair("createdMillis", TimeUtils.formatForLogging(createdMillis));
|
pw.printPair("createdMillis", TimeUtils.formatForLogging(createdMillis));
|
||||||
|
pw.printPair("lastSeenMillis", TimeUtils.formatForLogging(lastSeenMillis));
|
||||||
pw.printPair("lastTrimMillis", TimeUtils.formatForLogging(lastTrimMillis));
|
pw.printPair("lastTrimMillis", TimeUtils.formatForLogging(lastTrimMillis));
|
||||||
pw.printPair("lastBenchMillis", TimeUtils.formatForLogging(lastBenchMillis));
|
pw.printPair("lastBenchMillis", TimeUtils.formatForLogging(lastBenchMillis));
|
||||||
pw.decreaseIndent();
|
pw.decreaseIndent();
|
||||||
@@ -155,6 +163,7 @@ public class VolumeRecord implements Parcelable {
|
|||||||
parcel.writeString(nickname);
|
parcel.writeString(nickname);
|
||||||
parcel.writeInt(userFlags);
|
parcel.writeInt(userFlags);
|
||||||
parcel.writeLong(createdMillis);
|
parcel.writeLong(createdMillis);
|
||||||
|
parcel.writeLong(lastSeenMillis);
|
||||||
parcel.writeLong(lastTrimMillis);
|
parcel.writeLong(lastTrimMillis);
|
||||||
parcel.writeLong(lastBenchMillis);
|
parcel.writeLong(lastBenchMillis);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -286,6 +286,7 @@ class StorageManagerService extends IStorageManager.Stub
|
|||||||
private static final String ATTR_NICKNAME = "nickname";
|
private static final String ATTR_NICKNAME = "nickname";
|
||||||
private static final String ATTR_USER_FLAGS = "userFlags";
|
private static final String ATTR_USER_FLAGS = "userFlags";
|
||||||
private static final String ATTR_CREATED_MILLIS = "createdMillis";
|
private static final String ATTR_CREATED_MILLIS = "createdMillis";
|
||||||
|
private static final String ATTR_LAST_SEEN_MILLIS = "lastSeenMillis";
|
||||||
private static final String ATTR_LAST_TRIM_MILLIS = "lastTrimMillis";
|
private static final String ATTR_LAST_TRIM_MILLIS = "lastTrimMillis";
|
||||||
private static final String ATTR_LAST_BENCH_MILLIS = "lastBenchMillis";
|
private static final String ATTR_LAST_BENCH_MILLIS = "lastBenchMillis";
|
||||||
|
|
||||||
@@ -1313,7 +1314,7 @@ class StorageManagerService extends IStorageManager.Stub
|
|||||||
private void onVolumeStateChangedLocked(VolumeInfo vol, int oldState, int newState) {
|
private void onVolumeStateChangedLocked(VolumeInfo vol, int oldState, int newState) {
|
||||||
// Remember that we saw this volume so we're ready to accept user
|
// Remember that we saw this volume so we're ready to accept user
|
||||||
// metadata, or so we can annoy them when a private volume is ejected
|
// metadata, or so we can annoy them when a private volume is ejected
|
||||||
if (vol.isMountedReadable() && !TextUtils.isEmpty(vol.fsUuid)) {
|
if (!TextUtils.isEmpty(vol.fsUuid)) {
|
||||||
VolumeRecord rec = mRecords.get(vol.fsUuid);
|
VolumeRecord rec = mRecords.get(vol.fsUuid);
|
||||||
if (rec == null) {
|
if (rec == null) {
|
||||||
rec = new VolumeRecord(vol.type, vol.fsUuid);
|
rec = new VolumeRecord(vol.type, vol.fsUuid);
|
||||||
@@ -1323,14 +1324,15 @@ class StorageManagerService extends IStorageManager.Stub
|
|||||||
rec.nickname = vol.disk.getDescription();
|
rec.nickname = vol.disk.getDescription();
|
||||||
}
|
}
|
||||||
mRecords.put(rec.fsUuid, rec);
|
mRecords.put(rec.fsUuid, rec);
|
||||||
writeSettingsLocked();
|
|
||||||
} else {
|
} else {
|
||||||
// Handle upgrade case where we didn't store partition GUID
|
// Handle upgrade case where we didn't store partition GUID
|
||||||
if (TextUtils.isEmpty(rec.partGuid)) {
|
if (TextUtils.isEmpty(rec.partGuid)) {
|
||||||
rec.partGuid = vol.partGuid;
|
rec.partGuid = vol.partGuid;
|
||||||
writeSettingsLocked();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rec.lastSeenMillis = System.currentTimeMillis();
|
||||||
|
writeSettingsLocked();
|
||||||
}
|
}
|
||||||
|
|
||||||
mCallbacks.notifyVolumeStateChanged(vol, oldState, newState);
|
mCallbacks.notifyVolumeStateChanged(vol, oldState, newState);
|
||||||
@@ -1731,9 +1733,10 @@ class StorageManagerService extends IStorageManager.Stub
|
|||||||
meta.partGuid = readStringAttribute(in, ATTR_PART_GUID);
|
meta.partGuid = readStringAttribute(in, ATTR_PART_GUID);
|
||||||
meta.nickname = readStringAttribute(in, ATTR_NICKNAME);
|
meta.nickname = readStringAttribute(in, ATTR_NICKNAME);
|
||||||
meta.userFlags = readIntAttribute(in, ATTR_USER_FLAGS);
|
meta.userFlags = readIntAttribute(in, ATTR_USER_FLAGS);
|
||||||
meta.createdMillis = readLongAttribute(in, ATTR_CREATED_MILLIS);
|
meta.createdMillis = readLongAttribute(in, ATTR_CREATED_MILLIS, 0);
|
||||||
meta.lastTrimMillis = readLongAttribute(in, ATTR_LAST_TRIM_MILLIS);
|
meta.lastSeenMillis = readLongAttribute(in, ATTR_LAST_SEEN_MILLIS, 0);
|
||||||
meta.lastBenchMillis = readLongAttribute(in, ATTR_LAST_BENCH_MILLIS);
|
meta.lastTrimMillis = readLongAttribute(in, ATTR_LAST_TRIM_MILLIS, 0);
|
||||||
|
meta.lastBenchMillis = readLongAttribute(in, ATTR_LAST_BENCH_MILLIS, 0);
|
||||||
return meta;
|
return meta;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1745,6 +1748,7 @@ class StorageManagerService extends IStorageManager.Stub
|
|||||||
writeStringAttribute(out, ATTR_NICKNAME, rec.nickname);
|
writeStringAttribute(out, ATTR_NICKNAME, rec.nickname);
|
||||||
writeIntAttribute(out, ATTR_USER_FLAGS, rec.userFlags);
|
writeIntAttribute(out, ATTR_USER_FLAGS, rec.userFlags);
|
||||||
writeLongAttribute(out, ATTR_CREATED_MILLIS, rec.createdMillis);
|
writeLongAttribute(out, ATTR_CREATED_MILLIS, rec.createdMillis);
|
||||||
|
writeLongAttribute(out, ATTR_LAST_SEEN_MILLIS, rec.lastSeenMillis);
|
||||||
writeLongAttribute(out, ATTR_LAST_TRIM_MILLIS, rec.lastTrimMillis);
|
writeLongAttribute(out, ATTR_LAST_TRIM_MILLIS, rec.lastTrimMillis);
|
||||||
writeLongAttribute(out, ATTR_LAST_BENCH_MILLIS, rec.lastBenchMillis);
|
writeLongAttribute(out, ATTR_LAST_BENCH_MILLIS, rec.lastBenchMillis);
|
||||||
out.endTag(null, TAG_VOLUME);
|
out.endTag(null, TAG_VOLUME);
|
||||||
|
|||||||
Reference in New Issue
Block a user