summaryrefslogtreecommitdiffstats
path: root/core/java/android/app
diff options
context:
space:
mode:
authorJulia Reynolds <juliacr@google.com>2015-04-27 17:29:21 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-04-27 17:29:23 +0000
commit6ab47fc111a8c5eb814b9bbea7ebd0ae429fa709 (patch)
tree628b0d8bdbdbbe955ef4843fa60438bd6c292511 /core/java/android/app
parent0c2d0deb3666c7bb9c315212f5caec1bc1945611 (diff)
parent13c58bacc8f1ff35bb24ba19069bab8a41aabf68 (diff)
downloadframeworks_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.java23
-rw-r--r--core/java/android/app/IActivityManager.java3
-rw-r--r--core/java/android/app/admin/DevicePolicyManager.java17
-rw-r--r--core/java/android/app/admin/IDevicePolicyManager.aidl2
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);