Loading core/res/res/values/cm_strings.xml +5 −0 Original line number Diff line number Diff line Loading @@ -321,4 +321,9 @@ <string name="live_display_outdoor">Outdoor (bright sun)</string> <string name="live_display_outdoor_summary">Use outdoor settings only</string> <string name="live_display_hint">LiveDisplay can help reduce eyestrain and help you sleep at night. Click here to try it out!</string> <!-- Notify use that they are in Lock-to-app (for devices without navbar) --> <string name="lock_to_app_toast_no_navbar">To unpin this screen, touch and hold Menu button.</string> <!-- Lock-to-app dialog description (for devices without navbar) --> <string name="lock_to_app_description_no_navbar">Screen pinning locks the display in a single view.\n\nTo unpin, touch and hold Menu button.</string> </resources> core/res/res/values/cm_symbols.xml +3 −0 Original line number Diff line number Diff line Loading @@ -297,4 +297,7 @@ <java-symbol type="integer" name="config_dayColorTemperature" /> <java-symbol type="integer" name="config_nightColorTemperature" /> <java-symbol type="integer" name="config_outdoorAmbientLux" /> <java-symbol type="string" name="lock_to_app_toast_no_navbar" /> <java-symbol type="string" name="lock_to_app_description_no_navbar" /> </resources> policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +17 −0 Original line number Diff line number Diff line Loading @@ -2821,6 +2821,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { return -1; } } else if (longPress) { if (unpinActivity()) { performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false); return -1; } if (!keyguardOn && mLongPressOnMenuBehavior != KEY_ACTION_NOTHING) { if (mLongPressOnMenuBehavior != KEY_ACTION_APP_SWITCH) { cancelPreloadRecentApps(); Loading Loading @@ -3114,6 +3118,19 @@ public class PhoneWindowManager implements WindowManagerPolicy { return 0; } private boolean unpinActivity() { if (!hasNavigationBar()) { try { if (ActivityManagerNative.getDefault().isInLockTaskMode()) { ActivityManagerNative.getDefault().stopLockTaskModeOnCurrent(); return true; } } catch (RemoteException e) { } } return false; } /** {@inheritDoc} */ @Override public KeyEvent dispatchUnhandledKey(WindowState win, KeyEvent event, int policyFlags) { Loading services/core/java/com/android/server/am/LockTaskNotify.java +10 −2 Original line number Diff line number Diff line Loading @@ -19,10 +19,12 @@ package com.android.server.am; import android.content.Context; import android.os.Handler; import android.os.Message; import android.view.WindowManagerPolicy; import android.view.accessibility.AccessibilityManager; import android.widget.Toast; import com.android.internal.R; import com.android.internal.policy.PolicyManager; /** * Helper to manage showing/hiding a image to notify them that they are entering Loading @@ -33,6 +35,7 @@ public class LockTaskNotify { private final Context mContext; private final H mHandler; private final WindowManagerPolicy mPolicy = PolicyManager.makeNewWindowManager(); private AccessibilityManager mAccessibilityManager; private Toast mLastToast; Loading @@ -50,9 +53,14 @@ public class LockTaskNotify { public void handleShowToast(boolean isLocked) { String text = mContext.getString(isLocked ? R.string.lock_to_app_toast_locked : R.string.lock_to_app_toast); if (!isLocked && mAccessibilityManager.isEnabled()) { if (!isLocked) { if (mAccessibilityManager.isEnabled()) { text = mContext.getString(R.string.lock_to_app_toast_accessible); } if (!mPolicy.hasNavigationBar()) { text = mContext.getString(R.string.lock_to_app_toast_no_navbar); } } if (mLastToast != null) { mLastToast.cancel(); } Loading services/core/java/com/android/server/am/LockToAppRequestDialog.java +11 −3 Original line number Diff line number Diff line Loading @@ -13,10 +13,12 @@ import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.util.Slog; import android.view.WindowManager; import android.view.WindowManagerPolicy; import android.view.accessibility.AccessibilityManager; import android.widget.CheckBox; import com.android.internal.R; import com.android.internal.policy.PolicyManager; import com.android.internal.widget.ILockSettings; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockPatternUtilsCache; Loading @@ -26,6 +28,7 @@ public class LockToAppRequestDialog implements OnClickListener { final private Context mContext; final private ActivityManagerService mService; private final WindowManagerPolicy mPolicy = PolicyManager.makeNewWindowManager(); private AlertDialog mDialog; private TaskRecord mRequestedTask; Loading Loading @@ -87,9 +90,14 @@ public class LockToAppRequestDialog implements OnClickListener { final int unlockStringId = getLockString(task.userId); final Resources r = Resources.getSystem(); final String description= r.getString(mAccessibilityService.isEnabled() final String description; if (mPolicy.hasNavigationBar()) { description = r.getString(mAccessibilityService.isEnabled() ? R.string.lock_to_app_description_accessible : R.string.lock_to_app_description); } else { description = r.getString(R.string.lock_to_app_description_no_navbar); } AlertDialog.Builder builder = new AlertDialog.Builder(mContext) .setTitle(r.getString(R.string.lock_to_app_title)) .setMessage(description) Loading Loading
core/res/res/values/cm_strings.xml +5 −0 Original line number Diff line number Diff line Loading @@ -321,4 +321,9 @@ <string name="live_display_outdoor">Outdoor (bright sun)</string> <string name="live_display_outdoor_summary">Use outdoor settings only</string> <string name="live_display_hint">LiveDisplay can help reduce eyestrain and help you sleep at night. Click here to try it out!</string> <!-- Notify use that they are in Lock-to-app (for devices without navbar) --> <string name="lock_to_app_toast_no_navbar">To unpin this screen, touch and hold Menu button.</string> <!-- Lock-to-app dialog description (for devices without navbar) --> <string name="lock_to_app_description_no_navbar">Screen pinning locks the display in a single view.\n\nTo unpin, touch and hold Menu button.</string> </resources>
core/res/res/values/cm_symbols.xml +3 −0 Original line number Diff line number Diff line Loading @@ -297,4 +297,7 @@ <java-symbol type="integer" name="config_dayColorTemperature" /> <java-symbol type="integer" name="config_nightColorTemperature" /> <java-symbol type="integer" name="config_outdoorAmbientLux" /> <java-symbol type="string" name="lock_to_app_toast_no_navbar" /> <java-symbol type="string" name="lock_to_app_description_no_navbar" /> </resources>
policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +17 −0 Original line number Diff line number Diff line Loading @@ -2821,6 +2821,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { return -1; } } else if (longPress) { if (unpinActivity()) { performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false); return -1; } if (!keyguardOn && mLongPressOnMenuBehavior != KEY_ACTION_NOTHING) { if (mLongPressOnMenuBehavior != KEY_ACTION_APP_SWITCH) { cancelPreloadRecentApps(); Loading Loading @@ -3114,6 +3118,19 @@ public class PhoneWindowManager implements WindowManagerPolicy { return 0; } private boolean unpinActivity() { if (!hasNavigationBar()) { try { if (ActivityManagerNative.getDefault().isInLockTaskMode()) { ActivityManagerNative.getDefault().stopLockTaskModeOnCurrent(); return true; } } catch (RemoteException e) { } } return false; } /** {@inheritDoc} */ @Override public KeyEvent dispatchUnhandledKey(WindowState win, KeyEvent event, int policyFlags) { Loading
services/core/java/com/android/server/am/LockTaskNotify.java +10 −2 Original line number Diff line number Diff line Loading @@ -19,10 +19,12 @@ package com.android.server.am; import android.content.Context; import android.os.Handler; import android.os.Message; import android.view.WindowManagerPolicy; import android.view.accessibility.AccessibilityManager; import android.widget.Toast; import com.android.internal.R; import com.android.internal.policy.PolicyManager; /** * Helper to manage showing/hiding a image to notify them that they are entering Loading @@ -33,6 +35,7 @@ public class LockTaskNotify { private final Context mContext; private final H mHandler; private final WindowManagerPolicy mPolicy = PolicyManager.makeNewWindowManager(); private AccessibilityManager mAccessibilityManager; private Toast mLastToast; Loading @@ -50,9 +53,14 @@ public class LockTaskNotify { public void handleShowToast(boolean isLocked) { String text = mContext.getString(isLocked ? R.string.lock_to_app_toast_locked : R.string.lock_to_app_toast); if (!isLocked && mAccessibilityManager.isEnabled()) { if (!isLocked) { if (mAccessibilityManager.isEnabled()) { text = mContext.getString(R.string.lock_to_app_toast_accessible); } if (!mPolicy.hasNavigationBar()) { text = mContext.getString(R.string.lock_to_app_toast_no_navbar); } } if (mLastToast != null) { mLastToast.cancel(); } Loading
services/core/java/com/android/server/am/LockToAppRequestDialog.java +11 −3 Original line number Diff line number Diff line Loading @@ -13,10 +13,12 @@ import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.util.Slog; import android.view.WindowManager; import android.view.WindowManagerPolicy; import android.view.accessibility.AccessibilityManager; import android.widget.CheckBox; import com.android.internal.R; import com.android.internal.policy.PolicyManager; import com.android.internal.widget.ILockSettings; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockPatternUtilsCache; Loading @@ -26,6 +28,7 @@ public class LockToAppRequestDialog implements OnClickListener { final private Context mContext; final private ActivityManagerService mService; private final WindowManagerPolicy mPolicy = PolicyManager.makeNewWindowManager(); private AlertDialog mDialog; private TaskRecord mRequestedTask; Loading Loading @@ -87,9 +90,14 @@ public class LockToAppRequestDialog implements OnClickListener { final int unlockStringId = getLockString(task.userId); final Resources r = Resources.getSystem(); final String description= r.getString(mAccessibilityService.isEnabled() final String description; if (mPolicy.hasNavigationBar()) { description = r.getString(mAccessibilityService.isEnabled() ? R.string.lock_to_app_description_accessible : R.string.lock_to_app_description); } else { description = r.getString(R.string.lock_to_app_description_no_navbar); } AlertDialog.Builder builder = new AlertDialog.Builder(mContext) .setTitle(r.getString(R.string.lock_to_app_title)) .setMessage(description) Loading