diff options
author | Kenny Guy <kennyguy@google.com> | 2015-04-13 14:41:34 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-04-13 14:41:37 +0000 |
commit | d10bd4852291f1c99d2fc011606a695d631504fe (patch) | |
tree | 4630b57d5f6d4e196ce4ca7ff0ac69bbb6d36886 | |
parent | fb18a0b5afb372febc76181eae0d4b477ffe4b14 (diff) | |
parent | 99b9030a3ececd9b88e5011c98be0a5b9499c776 (diff) | |
download | frameworks_base-d10bd4852291f1c99d2fc011606a695d631504fe.zip frameworks_base-d10bd4852291f1c99d2fc011606a695d631504fe.tar.gz frameworks_base-d10bd4852291f1c99d2fc011606a695d631504fe.tar.bz2 |
Merge "Add foreground profile changed to user switch observer."
6 files changed, 41 insertions, 0 deletions
diff --git a/core/java/android/app/IUserSwitchObserver.aidl b/core/java/android/app/IUserSwitchObserver.aidl index 845897b..caee14f 100644 --- a/core/java/android/app/IUserSwitchObserver.aidl +++ b/core/java/android/app/IUserSwitchObserver.aidl @@ -22,4 +22,5 @@ import android.os.IRemoteCallback; oneway interface IUserSwitchObserver { void onUserSwitching(int newUserId, IRemoteCallback reply); void onUserSwitchComplete(int newUserId); + void onForegroundProfileSwitch(int newProfileId); } diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java index 18615d9..147ac19 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -763,6 +763,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { mSwitchingUser = false; startListeningForFingerprint(); } + @Override + public void onForegroundProfileSwitch(int newProfileId) { + // Ignore. + } }); } catch (RemoteException e) { // TODO Auto-generated catch block diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java index d92a89f..0f9090d 100644 --- a/services/core/java/com/android/server/InputMethodManagerService.java +++ b/services/core/java/com/android/server/InputMethodManagerService.java @@ -797,6 +797,11 @@ public class InputMethodManagerService extends IInputMethodManager.Stub @Override public void onUserSwitchComplete(int newUserId) throws RemoteException { } + + @Override + public void onForegroundProfileSwitch(int newProfileId) { + // Ignore. + } }); userId = ActivityManagerNative.getDefault().getCurrentUser().id; } catch (RemoteException e) { diff --git a/services/core/java/com/android/server/TextServicesManagerService.java b/services/core/java/com/android/server/TextServicesManagerService.java index 5add88e..9a6f696 100644 --- a/services/core/java/com/android/server/TextServicesManagerService.java +++ b/services/core/java/com/android/server/TextServicesManagerService.java @@ -116,6 +116,11 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { @Override public void onUserSwitchComplete(int newUserId) throws RemoteException { } + + @Override + public void onForegroundProfileSwitch(int newProfileId) { + // Ignore. + } }); userId = ActivityManagerNative.getDefault().getCurrentUser().id; } catch (RemoteException e) { diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index c2af765..6341807 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -1284,6 +1284,7 @@ public final class ActivityManagerService extends ActivityManagerNative static final int NOTIFY_CLEARTEXT_NETWORK_MSG = 50; static final int POST_DUMP_HEAP_NOTIFICATION_MSG = 51; static final int DELETE_DUMPHEAP_MSG = 52; + static final int FOREGROUND_PROFILE_CHANGED_MSG = 53; static final int FIRST_ACTIVITY_STACK_MSG = 100; static final int FIRST_BROADCAST_QUEUE_MSG = 200; @@ -1922,6 +1923,9 @@ public final class ActivityManagerService extends ActivityManagerNative mMemWatchDumpUid = -1; } } break; + case FOREGROUND_PROFILE_CHANGED_MSG: { + dispatchForegroundProfileChanged(msg.arg1); + } break; } } }; @@ -2523,6 +2527,11 @@ public final class ActivityManagerService extends ActivityManagerNative mWindowManager.setFocusedApp(r.appToken, true); } applyUpdateLockStateLocked(r); + if (last != null && last.userId != mFocusedActivity.userId) { + mHandler.removeMessages(FOREGROUND_PROFILE_CHANGED_MSG); + mHandler.sendMessage(mHandler.obtainMessage(FOREGROUND_PROFILE_CHANGED_MSG, + mFocusedActivity.userId, 0)); + } } EventLog.writeEvent(EventLogTags.AM_FOCUSED_ACTIVITY, mCurrentUserId, mFocusedActivity == null ? "NULL" : mFocusedActivity.shortComponentName); @@ -19072,6 +19081,18 @@ public final class ActivityManagerService extends ActivityManagerNative return true; } + void dispatchForegroundProfileChanged(int userId) { + final int N = mUserSwitchObservers.beginBroadcast(); + for (int i = 0; i < N; i++) { + try { + mUserSwitchObservers.getBroadcastItem(i).onForegroundProfileSwitch(userId); + } catch (RemoteException e) { + // Ignore + } + } + mUserSwitchObservers.finishBroadcast(); + } + void sendUserSwitchBroadcastsLocked(int oldUserId, int newUserId) { long ident = Binder.clearCallingIdentity(); try { diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java index 99cf8df..54be380 100644 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -538,6 +538,11 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { @Override public void onUserSwitchComplete(int newUserId) throws RemoteException { } + + @Override + public void onForegroundProfileSwitch(int newProfileId) { + // Ignore. + } }); } catch (RemoteException e) { // TODO Auto-generated catch block |