Loading core/java/android/view/IWindowManager.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -416,4 +416,10 @@ interface IWindowManager * Returns true if window trace is enabled. */ boolean isWindowTraceEnabled(); /** * Requests that the WindowManager sends WindowManagerPolicy#ACTION_USER_ACTIVITY_NOTIFICATION * on the next user activity. */ void requestUserActivityNotification(); } core/java/android/view/WindowManagerPolicyConstants.java +6 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,12 @@ public interface WindowManagerPolicyConstants { int NAV_BAR_RIGHT = 1 << 1; int NAV_BAR_BOTTOM = 1 << 2; /** * Broadcast sent when a user activity is detected. */ String ACTION_USER_ACTIVITY_NOTIFICATION = "android.intent.action.USER_ACTIVITY_NOTIFICATION"; /** * Sticky broadcast of the current HDMI plugged state. */ Loading core/res/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ <protected-broadcast android:name="android.intent.action.OVERLAY_CHANGED" /> <protected-broadcast android:name="android.intent.action.OVERLAY_REMOVED" /> <protected-broadcast android:name="android.intent.action.OVERLAY_PRIORITY_CHANGED" /> <protected-broadcast android:name="android.intent.action.USER_ACTIVITY_NOTIFICATION" /> <protected-broadcast android:name="android.os.action.POWER_SAVE_MODE_CHANGED" /> <protected-broadcast android:name="android.os.action.POWER_SAVE_MODE_CHANGING" /> Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +24 −0 Original line number Diff line number Diff line Loading @@ -427,6 +427,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { KeyEvent.KEYCODE_CALCULATOR, Intent.CATEGORY_APP_CALCULATOR); } private static final int USER_ACTIVITY_NOTIFICATION_DELAY = 200; /** Amount of time (in milliseconds) to wait for windows drawn before powering on. */ static final int WAITING_FOR_DRAWN_TIMEOUT = 1000; Loading Loading @@ -674,6 +676,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { private boolean mPendingKeyguardOccluded; private boolean mKeyguardOccludedChanged; private boolean mNotifyUserActivity; boolean mShowingDream; private boolean mLastShowingDream; Loading Loading @@ -828,6 +831,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { private static final int MSG_LAUNCH_ASSIST = 26; private static final int MSG_LAUNCH_ASSIST_LONG_PRESS = 27; private static final int MSG_POWER_VERY_LONG_PRESS = 28; private static final int MSG_NOTIFY_USER_ACTIVITY = 29; private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS = 0; private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_NAVIGATION = 1; Loading Loading @@ -929,6 +933,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { case MSG_HANDLE_ALL_APPS: launchAllAppsAction(); break; case MSG_NOTIFY_USER_ACTIVITY: removeMessages(MSG_NOTIFY_USER_ACTIVITY); Intent intent = new Intent(ACTION_USER_ACTIVITY_NOTIFICATION); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); mContext.sendBroadcastAsUser(intent, UserHandle.ALL, android.Manifest.permission.USER_ACTIVITY); break; } } } Loading Loading @@ -7486,6 +7497,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { mHandler.sendEmptyMessage(MSG_HIDE_BOOT_MESSAGE); } @Override public void requestUserActivityNotification() { if (!mNotifyUserActivity && !mHandler.hasMessages(MSG_NOTIFY_USER_ACTIVITY)) { mNotifyUserActivity = true; } } /** {@inheritDoc} */ @Override public void userActivity() { Loading @@ -7507,6 +7525,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { mHandler.postDelayed(mScreenLockTimeout, mLockScreenTimeout); } } if (mAwake && mNotifyUserActivity) { mHandler.sendEmptyMessageDelayed(MSG_NOTIFY_USER_ACTIVITY, USER_ACTIVITY_NOTIFICATION_DELAY); mNotifyUserActivity = false; } } class ScreenLockTimeout implements Runnable { Loading services/core/java/com/android/server/policy/WindowManagerPolicy.java +6 −0 Original line number Diff line number Diff line Loading @@ -1718,4 +1718,10 @@ public interface WindowManagerPolicy extends WindowManagerPolicyConstants { return Integer.toString(mode); } } /** * Requests that the WindowManager sends WindowManagerPolicy#ACTION_USER_ACTIVITY_NOTIFICATION * on the next user activity. */ public void requestUserActivityNotification(); } Loading
core/java/android/view/IWindowManager.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -416,4 +416,10 @@ interface IWindowManager * Returns true if window trace is enabled. */ boolean isWindowTraceEnabled(); /** * Requests that the WindowManager sends WindowManagerPolicy#ACTION_USER_ACTIVITY_NOTIFICATION * on the next user activity. */ void requestUserActivityNotification(); }
core/java/android/view/WindowManagerPolicyConstants.java +6 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,12 @@ public interface WindowManagerPolicyConstants { int NAV_BAR_RIGHT = 1 << 1; int NAV_BAR_BOTTOM = 1 << 2; /** * Broadcast sent when a user activity is detected. */ String ACTION_USER_ACTIVITY_NOTIFICATION = "android.intent.action.USER_ACTIVITY_NOTIFICATION"; /** * Sticky broadcast of the current HDMI plugged state. */ Loading
core/res/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ <protected-broadcast android:name="android.intent.action.OVERLAY_CHANGED" /> <protected-broadcast android:name="android.intent.action.OVERLAY_REMOVED" /> <protected-broadcast android:name="android.intent.action.OVERLAY_PRIORITY_CHANGED" /> <protected-broadcast android:name="android.intent.action.USER_ACTIVITY_NOTIFICATION" /> <protected-broadcast android:name="android.os.action.POWER_SAVE_MODE_CHANGED" /> <protected-broadcast android:name="android.os.action.POWER_SAVE_MODE_CHANGING" /> Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +24 −0 Original line number Diff line number Diff line Loading @@ -427,6 +427,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { KeyEvent.KEYCODE_CALCULATOR, Intent.CATEGORY_APP_CALCULATOR); } private static final int USER_ACTIVITY_NOTIFICATION_DELAY = 200; /** Amount of time (in milliseconds) to wait for windows drawn before powering on. */ static final int WAITING_FOR_DRAWN_TIMEOUT = 1000; Loading Loading @@ -674,6 +676,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { private boolean mPendingKeyguardOccluded; private boolean mKeyguardOccludedChanged; private boolean mNotifyUserActivity; boolean mShowingDream; private boolean mLastShowingDream; Loading Loading @@ -828,6 +831,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { private static final int MSG_LAUNCH_ASSIST = 26; private static final int MSG_LAUNCH_ASSIST_LONG_PRESS = 27; private static final int MSG_POWER_VERY_LONG_PRESS = 28; private static final int MSG_NOTIFY_USER_ACTIVITY = 29; private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS = 0; private static final int MSG_REQUEST_TRANSIENT_BARS_ARG_NAVIGATION = 1; Loading Loading @@ -929,6 +933,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { case MSG_HANDLE_ALL_APPS: launchAllAppsAction(); break; case MSG_NOTIFY_USER_ACTIVITY: removeMessages(MSG_NOTIFY_USER_ACTIVITY); Intent intent = new Intent(ACTION_USER_ACTIVITY_NOTIFICATION); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); mContext.sendBroadcastAsUser(intent, UserHandle.ALL, android.Manifest.permission.USER_ACTIVITY); break; } } } Loading Loading @@ -7486,6 +7497,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { mHandler.sendEmptyMessage(MSG_HIDE_BOOT_MESSAGE); } @Override public void requestUserActivityNotification() { if (!mNotifyUserActivity && !mHandler.hasMessages(MSG_NOTIFY_USER_ACTIVITY)) { mNotifyUserActivity = true; } } /** {@inheritDoc} */ @Override public void userActivity() { Loading @@ -7507,6 +7525,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { mHandler.postDelayed(mScreenLockTimeout, mLockScreenTimeout); } } if (mAwake && mNotifyUserActivity) { mHandler.sendEmptyMessageDelayed(MSG_NOTIFY_USER_ACTIVITY, USER_ACTIVITY_NOTIFICATION_DELAY); mNotifyUserActivity = false; } } class ScreenLockTimeout implements Runnable { Loading
services/core/java/com/android/server/policy/WindowManagerPolicy.java +6 −0 Original line number Diff line number Diff line Loading @@ -1718,4 +1718,10 @@ public interface WindowManagerPolicy extends WindowManagerPolicyConstants { return Integer.toString(mode); } } /** * Requests that the WindowManager sends WindowManagerPolicy#ACTION_USER_ACTIVITY_NOTIFICATION * on the next user activity. */ public void requestUserActivityNotification(); }