am b3be7c26: am 80b34d7b: Merge "Add StorageEventListener.onDiskDestroyed()" into mnc-dev

* commit 'b3be7c26977ecebd9efd899ae5ef39e0552785aa':
  Add StorageEventListener.onDiskDestroyed()
This commit is contained in:
Makoto Onuki
2015-06-13 00:16:16 +00:00
committed by Android Git Automerger
4 changed files with 56 additions and 1 deletions

View File

@@ -113,6 +113,13 @@ public interface IMountServiceListener extends IInterface {
reply.writeNoException();
return true;
}
case TRANSACTION_onDiskDestroyed: {
data.enforceInterface(DESCRIPTOR);
final DiskInfo disk = (DiskInfo) data.readParcelable(null);
onDiskDestroyed(disk);
reply.writeNoException();
return true;
}
}
return super.onTransact(code, data, reply, flags);
}
@@ -246,6 +253,22 @@ public interface IMountServiceListener extends IInterface {
_data.recycle();
}
}
@Override
public void onDiskDestroyed(DiskInfo disk) throws RemoteException {
Parcel _data = Parcel.obtain();
Parcel _reply = Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeParcelable(disk, 0);
mRemote.transact(Stub.TRANSACTION_onDiskDestroyed, _data, _reply,
android.os.IBinder.FLAG_ONEWAY);
_reply.readException();
} finally {
_reply.recycle();
_data.recycle();
}
}
}
static final int TRANSACTION_onUsbMassStorageConnectionChanged = (IBinder.FIRST_CALL_TRANSACTION + 0);
@@ -254,6 +277,7 @@ public interface IMountServiceListener extends IInterface {
static final int TRANSACTION_onVolumeRecordChanged = (IBinder.FIRST_CALL_TRANSACTION + 3);
static final int TRANSACTION_onVolumeForgotten = (IBinder.FIRST_CALL_TRANSACTION + 4);
static final int TRANSACTION_onDiskScanned = (IBinder.FIRST_CALL_TRANSACTION + 5);
static final int TRANSACTION_onDiskDestroyed = (IBinder.FIRST_CALL_TRANSACTION + 6);
}
/**
@@ -280,4 +304,6 @@ public interface IMountServiceListener extends IInterface {
public void onVolumeForgotten(String fsUuid) throws RemoteException;
public void onDiskScanned(DiskInfo disk, int volumeCount) throws RemoteException;
public void onDiskDestroyed(DiskInfo disk) throws RemoteException;
}

View File

@@ -49,4 +49,7 @@ public class StorageEventListener {
public void onDiskScanned(DiskInfo disk, int volumeCount) {
}
public void onDiskDestroyed(DiskInfo disk) {
}
}

View File

@@ -101,6 +101,7 @@ public class StorageManager {
private static final int MSG_VOLUME_RECORD_CHANGED = 3;
private static final int MSG_VOLUME_FORGOTTEN = 4;
private static final int MSG_DISK_SCANNED = 5;
private static final int MSG_DISK_DESTROYED = 6;
final StorageEventListener mCallback;
final Handler mHandler;
@@ -135,6 +136,10 @@ public class StorageManager {
mCallback.onDiskScanned((DiskInfo) args.arg1, args.argi2);
args.recycle();
return true;
case MSG_DISK_DESTROYED:
mCallback.onDiskDestroyed((DiskInfo) args.arg1);
args.recycle();
return true;
}
args.recycle();
return false;
@@ -184,6 +189,13 @@ public class StorageManager {
args.argi2 = volumeCount;
mHandler.obtainMessage(MSG_DISK_SCANNED, args).sendToTarget();
}
@Override
public void onDiskDestroyed(DiskInfo disk) throws RemoteException {
final SomeArgs args = SomeArgs.obtain();
args.arg1 = disk;
mHandler.obtainMessage(MSG_DISK_DESTROYED, args).sendToTarget();
}
}
/**

View File

@@ -890,7 +890,10 @@ class MountService extends IMountService.Stub
}
case VoldResponseCode.DISK_DESTROYED: {
if (cooked.length != 2) break;
mDisks.remove(cooked[1]);
final DiskInfo disk = mDisks.remove(cooked[1]);
if (disk != null) {
mCallbacks.notifyDiskDestroyed(disk);
}
break;
}
@@ -2971,6 +2974,7 @@ class MountService extends IMountService.Stub
private static final int MSG_VOLUME_RECORD_CHANGED = 3;
private static final int MSG_VOLUME_FORGOTTEN = 4;
private static final int MSG_DISK_SCANNED = 5;
private static final int MSG_DISK_DESTROYED = 6;
private final RemoteCallbackList<IMountServiceListener>
mCallbacks = new RemoteCallbackList<>();
@@ -3026,6 +3030,10 @@ class MountService extends IMountService.Stub
callback.onDiskScanned((DiskInfo) args.arg1, args.argi2);
break;
}
case MSG_DISK_DESTROYED: {
callback.onDiskDestroyed((DiskInfo) args.arg1);
break;
}
}
}
@@ -3063,6 +3071,12 @@ class MountService extends IMountService.Stub
args.argi2 = volumeCount;
obtainMessage(MSG_DISK_SCANNED, args).sendToTarget();
}
private void notifyDiskDestroyed(DiskInfo disk) {
final SomeArgs args = SomeArgs.obtain();
args.arg1 = disk.clone();
obtainMessage(MSG_DISK_DESTROYED, args).sendToTarget();
}
}
@Override