am e3b498be: DO NOT MERGE StorageManager: Add getVolumeList() and getVolumeState() methods
* commit 'e3b498be0ae05367e9b84f4fac2ac5cf57a6b091': DO NOT MERGE StorageManager: Add getVolumeList() and getVolumeState() methods
This commit is contained in:
@@ -637,6 +637,22 @@ public interface IMountService extends IInterface {
|
||||
}
|
||||
return _result;
|
||||
}
|
||||
|
||||
public String[] getVolumeList() throws RemoteException {
|
||||
Parcel _data = Parcel.obtain();
|
||||
Parcel _reply = Parcel.obtain();
|
||||
String[] _result;
|
||||
try {
|
||||
_data.writeInterfaceToken(DESCRIPTOR);
|
||||
mRemote.transact(Stub.TRANSACTION_getVolumeList, _data, _reply, 0);
|
||||
_reply.readException();
|
||||
_result = _reply.readStringArray();
|
||||
} finally {
|
||||
_reply.recycle();
|
||||
_data.recycle();
|
||||
}
|
||||
return _result;
|
||||
}
|
||||
}
|
||||
|
||||
private static final String DESCRIPTOR = "IMountService";
|
||||
@@ -699,6 +715,8 @@ public interface IMountService extends IInterface {
|
||||
|
||||
static final int TRANSACTION_changeEncryptionPassword = IBinder.FIRST_CALL_TRANSACTION + 28;
|
||||
|
||||
static final int TRANSACTION_getVolumeList = IBinder.FIRST_CALL_TRANSACTION + 29;
|
||||
|
||||
/**
|
||||
* Cast an IBinder object into an IMountService interface, generating a
|
||||
* proxy if needed.
|
||||
@@ -1004,6 +1022,13 @@ public interface IMountService extends IInterface {
|
||||
reply.writeInt(result);
|
||||
return true;
|
||||
}
|
||||
case TRANSACTION_getVolumeList: {
|
||||
data.enforceInterface(DESCRIPTOR);
|
||||
String[] result = getVolumeList();
|
||||
reply.writeNoException();
|
||||
reply.writeStringArray(result);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.onTransact(code, data, reply, flags);
|
||||
}
|
||||
@@ -1179,4 +1204,8 @@ public interface IMountService extends IInterface {
|
||||
*/
|
||||
public int changeEncryptionPassword(String password) throws RemoteException;
|
||||
|
||||
/**
|
||||
* Returns list of all mountable volumes.
|
||||
*/
|
||||
public String[] getVolumeList() throws RemoteException;
|
||||
}
|
||||
|
||||
@@ -527,4 +527,30 @@ public class StorageManager
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the state of a volume via its mountpoint.
|
||||
* @hide
|
||||
*/
|
||||
public String getVolumeState(String mountPoint) {
|
||||
try {
|
||||
return mMountService.getVolumeState(mountPoint);
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Failed to get volume state", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns list of all mountable volumes.
|
||||
* @hide
|
||||
*/
|
||||
public String[] getVolumeList() {
|
||||
try {
|
||||
return mMountService.getVolumeList();
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Failed to get volume list", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,6 +64,7 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.crypto.SecretKey;
|
||||
import javax.crypto.SecretKeyFactory;
|
||||
@@ -1731,6 +1732,18 @@ class MountService extends IMountService.Stub implements INativeDaemonConnectorC
|
||||
}
|
||||
}
|
||||
|
||||
public String[] getVolumeList() {
|
||||
synchronized(mVolumeStates) {
|
||||
Set<String> volumes = mVolumeStates.keySet();
|
||||
String[] result = new String[volumes.size()];
|
||||
int i = 0;
|
||||
for (String volume : volumes) {
|
||||
result[i++] = volume;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
private void addObbStateLocked(ObbState obbState) throws RemoteException {
|
||||
final IBinder binder = obbState.getBinder();
|
||||
List<ObbState> obbStates = mObbMounts.get(binder);
|
||||
|
||||
Reference in New Issue
Block a user