summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2018-07-18 11:57:08 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-07-18 11:57:08 +0000
commit31e9d9d32b445fb7c79753183e505fad06a6ad17 (patch)
tree978dba1f3425a7360fd5ef57912fb6236eae1036
parent9d77aaec850b54e3bc1657025fe87399b89c8ba1 (diff)
parent0c84996a12ace0a81ecfeb5f3a79e55127a06af0 (diff)
downloadbase-31e9d9d32b445fb7c79753183e505fad06a6ad17.tar.gz
Merge "Repin home once setup is complete" into pi-dev
-rw-r--r--services/core/java/com/android/server/PinnerService.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/PinnerService.java b/services/core/java/com/android/server/PinnerService.java
index cec2028dddae..f5b29e9b76b8 100644
--- a/services/core/java/com/android/server/PinnerService.java
+++ b/services/core/java/com/android/server/PinnerService.java
@@ -34,6 +34,7 @@ import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.database.ContentObserver;
import android.net.Uri;
import android.os.Binder;
import android.os.Build;
@@ -43,6 +44,7 @@ import android.os.Message;
import android.os.RemoteException;
import android.os.UserHandle;
import android.provider.MediaStore;
+import android.provider.Settings;
import android.system.ErrnoException;
import android.system.Os;
import android.system.OsConstants;
@@ -166,7 +168,9 @@ public final class PinnerService extends SystemService {
filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
filter.addDataScheme("package");
mContext.registerReceiver(mBroadcastReceiver, filter);
+
registerUidListener();
+ registerUserSetupCompleteListener();
}
@Override
@@ -238,6 +242,26 @@ public final class PinnerService extends SystemService {
}
}
+ /**
+ * Registers a listener to repin the home app when user setup is complete, as the home intent
+ * initially resolves to setup wizard, but once setup is complete, it will resolve to the
+ * regular home app.
+ */
+ private void registerUserSetupCompleteListener() {
+ Uri userSetupCompleteUri = Settings.Secure.getUriFor(
+ Settings.Secure.USER_SETUP_COMPLETE);
+ mContext.getContentResolver().registerContentObserver(userSetupCompleteUri,
+ false, new ContentObserver(null) {
+ @Override
+ public void onChange(boolean selfChange, Uri uri) {
+ if (userSetupCompleteUri.equals(uri)) {
+ sendPinAppMessage(KEY_HOME, ActivityManager.getCurrentUser(),
+ true /* force */);
+ }
+ }
+ }, UserHandle.USER_ALL);
+ }
+
private void registerUidListener() {
try {
mAm.registerUidObserver(new IUidObserver.Stub() {