diff options
author | Julia Reynolds <juliacr@google.com> | 2015-04-27 17:29:21 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-04-27 17:29:23 +0000 |
commit | 6ab47fc111a8c5eb814b9bbea7ebd0ae429fa709 (patch) | |
tree | 628b0d8bdbdbbe955ef4843fa60438bd6c292511 /core/java/android/app | |
parent | 0c2d0deb3666c7bb9c315212f5caec1bc1945611 (diff) | |
parent | 13c58bacc8f1ff35bb24ba19069bab8a41aabf68 (diff) | |
download | frameworks_base-6ab47fc111a8c5eb814b9bbea7ebd0ae429fa709.zip frameworks_base-6ab47fc111a8c5eb814b9bbea7ebd0ae429fa709.tar.gz frameworks_base-6ab47fc111a8c5eb814b9bbea7ebd0ae429fa709.tar.bz2 |
Merge "Allow device initializers to set a preferred setup activity." into mnc-dev
Diffstat (limited to 'core/java/android/app')
-rw-r--r-- | core/java/android/app/ActivityManagerNative.java | 23 | ||||
-rw-r--r-- | core/java/android/app/IActivityManager.java | 3 | ||||
-rw-r--r-- | core/java/android/app/admin/DevicePolicyManager.java | 17 | ||||
-rw-r--r-- | core/java/android/app/admin/IDevicePolicyManager.aidl | 2 |
4 files changed, 45 insertions, 0 deletions
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java index b11c509..a71a258 100644 --- a/core/java/android/app/ActivityManagerNative.java +++ b/core/java/android/app/ActivityManagerNative.java @@ -2521,6 +2521,15 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } + case UPDATE_PREFERRED_SETUP_ACTIVITY_TRANSACTION: { + data.enforceInterface(IActivityManager.descriptor); + ComponentName preferredActivity = ComponentName.readFromParcel(data); + int userId = data.readInt(); + updatePreferredSetupActivity(preferredActivity, userId); + reply.writeNoException(); + return true; + } + case GET_PACKAGE_PROCESS_STATE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); String pkg = data.readString(); @@ -5821,6 +5830,20 @@ class ActivityManagerProxy implements IActivityManager } @Override + public void updatePreferredSetupActivity(ComponentName preferredActivity, int userId) + throws RemoteException { + Parcel data = Parcel.obtain(); + Parcel reply = Parcel.obtain(); + data.writeInterfaceToken(IActivityManager.descriptor); + ComponentName.writeToParcel(preferredActivity, data); + data.writeInt(userId); + mRemote.transact(UPDATE_PREFERRED_SETUP_ACTIVITY_TRANSACTION, data, reply, 0); + reply.readException(); + data.recycle(); + reply.recycle(); + } + + @Override public int getPackageProcessState(String packageName) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java index 00558fe..5829fbe 100644 --- a/core/java/android/app/IActivityManager.java +++ b/core/java/android/app/IActivityManager.java @@ -496,6 +496,8 @@ public interface IActivityManager extends IInterface { throws RemoteException; public void updateLockTaskPackages(int userId, String[] packages) throws RemoteException; public void updateDeviceOwner(String packageName) throws RemoteException; + public void updatePreferredSetupActivity(ComponentName preferredActivity, int userId) + throws RemoteException; public int getPackageProcessState(String packageName) throws RemoteException; @@ -839,4 +841,5 @@ public interface IActivityManager extends IInterface { int GET_PACKAGE_PROCESS_STATE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+293; int SHOW_LOCK_TASK_ESCAPE_MESSAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+294; int UPDATE_DEVICE_OWNER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+295; + int UPDATE_PREFERRED_SETUP_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+296; } diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 47133d4..ed814c3 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -4325,4 +4325,21 @@ public class DevicePolicyManager { } } } + + /** + * Called by a device initializer to set the activity to be launched on device boot or after a + * user switch during user setup. This activity will be started regardless of the priority of + * other 'home' activities. Once user setup is complete, the preferred setup activity will be + * ignored. + * + * @param admin Which {@link DeviceAdminReceiver} this request is associated with. + * @param activity The Activity to be started by default during user setup. + */ + public void setPreferredSetupActivity(ComponentName admin, ComponentName activity) { + try { + mService.setPreferredSetupActivity(admin, activity); + } catch (RemoteException re) { + Log.w(TAG, "Failed talking with device policy service", re); + } + } } diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl index 087fc88..a678c51 100644 --- a/core/java/android/app/admin/IDevicePolicyManager.aidl +++ b/core/java/android/app/admin/IDevicePolicyManager.aidl @@ -216,6 +216,8 @@ interface IDevicePolicyManager { String getDeviceInitializer(); ComponentName getDeviceInitializerComponent(); + void setPreferredSetupActivity(in ComponentName admin, in ComponentName activity); + void setUserIcon(in ComponentName admin, in Bitmap icon); void sendDeviceInitializerStatus(int statusCode, String description); |