diff options
author | Jorim Jaggi <jjaggi@google.com> | 2018-07-18 11:57:08 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-07-18 11:57:08 +0000 |
commit | 31e9d9d32b445fb7c79753183e505fad06a6ad17 (patch) | |
tree | 978dba1f3425a7360fd5ef57912fb6236eae1036 | |
parent | 9d77aaec850b54e3bc1657025fe87399b89c8ba1 (diff) | |
parent | 0c84996a12ace0a81ecfeb5f3a79e55127a06af0 (diff) | |
download | base-31e9d9d32b445fb7c79753183e505fad06a6ad17.tar.gz |
Merge "Repin home once setup is complete" into pi-dev
-rw-r--r-- | services/core/java/com/android/server/PinnerService.java | 24 |
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() { |