Loading core/res/res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -6972,6 +6972,9 @@ Note that, indefinitely repeating vibrations are not allowed as shutdown vibrations. --> <string name="config_defaultShutdownVibrationFile" /> <!-- Whether or not vibration is disabled during shutdown --> <bool name="config_disableShutdownVibrationInZen">false</bool> <!-- Whether single finger panning is enabled by default when magnification is on --> <bool name="config_enable_a11y_magnification_single_panning">false</bool> Loading core/res/res/values/symbols.xml +1 −0 Original line number Diff line number Diff line Loading @@ -5425,6 +5425,7 @@ <java-symbol type="drawable" name="focus_event_pressed_key_background" /> <java-symbol type="drawable" name="focus_event_rotary_input_background" /> <java-symbol type="string" name="config_defaultShutdownVibrationFile" /> <java-symbol type="bool" name="config_disableShutdownVibrationInZen" /> <java-symbol type="string" name="lockscreen_too_many_failed_attempts_countdown" /> <java-symbol type="bool" name="config_enable_a11y_magnification_single_panning" /> Loading services/core/java/com/android/server/power/ShutdownThread.java +15 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import android.os.VibrationAttributes; import android.os.VibrationEffect; import android.os.Vibrator; import android.os.vibrator.persistence.VibrationXmlParser; import android.provider.Settings; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.ArrayMap; Loading Loading @@ -743,6 +744,11 @@ public final class ShutdownThread extends Thread { */ @VisibleForTesting // For testing vibrations without shutting down device void playShutdownVibration(Context context) { if (mInjector.isShutdownVibrationDisabled(context)) { Log.i(TAG, "Vibration disabled in config"); return; } Vibrator vibrator = mInjector.getVibrator(context); if (!vibrator.hasVibrator()) { return; Loading Loading @@ -920,5 +926,14 @@ public final class ShutdownThread extends Thread { return context.getResources().getString( com.android.internal.R.string.config_defaultShutdownVibrationFile); } public boolean isShutdownVibrationDisabled(Context context) { boolean disabledInConfig = context.getResources().getBoolean( com.android.internal.R.bool.config_disableShutdownVibrationInZen); boolean isZenMode = Settings.Global.getInt(context.getContentResolver(), Settings.Global.ZEN_MODE, Settings.Global.ZEN_MODE_OFF) != Settings.Global.ZEN_MODE_OFF; return disabledInConfig && isZenMode; } } } services/tests/powerservicetests/src/com/android/server/power/ShutdownThreadTest.java +18 −3 Original line number Diff line number Diff line Loading @@ -17,11 +17,10 @@ package com.android.server.power; import static com.android.server.power.ShutdownThread.DEFAULT_SHUTDOWN_VIBRATE_MS; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -42,7 +41,6 @@ import org.mockito.MockitoAnnotations; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; /** * Tests for {@link com.android.server.power.ShutdownThread} Loading Loading @@ -88,6 +86,7 @@ public class ShutdownThreadTest { @Mock private VibratorInfo mVibratorInfoMock; private String mDefaultShutdownVibrationFilePath; private boolean mShutdownVibrationDisabled; private long mLastSleepDurationMs; private ShutdownThread mShutdownThread; Loading Loading @@ -168,6 +167,17 @@ public class ShutdownThreadTest { .vibrate(any(VibrationEffect.class), any(VibrationAttributes.class)); } @Test public void testVibrationDisabled() throws Exception { setShutdownVibrationFileContent(CLICK_VIB_SERIALIZATION); mShutdownVibrationDisabled = true; mShutdownThread.playShutdownVibration(mContextMock); verify(mVibratorMock, never()) .vibrate(any(VibrationEffect.class), any(VibrationAttributes.class)); } private void assertShutdownVibration(VibrationEffect effect, long vibrationSleepDuration) throws Exception { verify(mVibratorMock).vibrate( Loading Loading @@ -214,5 +224,10 @@ public class ShutdownThreadTest { public void sleep(long durationMs) { mLastSleepDurationMs = durationMs; } @Override public boolean isShutdownVibrationDisabled(Context context) { return mShutdownVibrationDisabled; } } } Loading
core/res/res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -6972,6 +6972,9 @@ Note that, indefinitely repeating vibrations are not allowed as shutdown vibrations. --> <string name="config_defaultShutdownVibrationFile" /> <!-- Whether or not vibration is disabled during shutdown --> <bool name="config_disableShutdownVibrationInZen">false</bool> <!-- Whether single finger panning is enabled by default when magnification is on --> <bool name="config_enable_a11y_magnification_single_panning">false</bool> Loading
core/res/res/values/symbols.xml +1 −0 Original line number Diff line number Diff line Loading @@ -5425,6 +5425,7 @@ <java-symbol type="drawable" name="focus_event_pressed_key_background" /> <java-symbol type="drawable" name="focus_event_rotary_input_background" /> <java-symbol type="string" name="config_defaultShutdownVibrationFile" /> <java-symbol type="bool" name="config_disableShutdownVibrationInZen" /> <java-symbol type="string" name="lockscreen_too_many_failed_attempts_countdown" /> <java-symbol type="bool" name="config_enable_a11y_magnification_single_panning" /> Loading
services/core/java/com/android/server/power/ShutdownThread.java +15 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import android.os.VibrationAttributes; import android.os.VibrationEffect; import android.os.Vibrator; import android.os.vibrator.persistence.VibrationXmlParser; import android.provider.Settings; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.ArrayMap; Loading Loading @@ -743,6 +744,11 @@ public final class ShutdownThread extends Thread { */ @VisibleForTesting // For testing vibrations without shutting down device void playShutdownVibration(Context context) { if (mInjector.isShutdownVibrationDisabled(context)) { Log.i(TAG, "Vibration disabled in config"); return; } Vibrator vibrator = mInjector.getVibrator(context); if (!vibrator.hasVibrator()) { return; Loading Loading @@ -920,5 +926,14 @@ public final class ShutdownThread extends Thread { return context.getResources().getString( com.android.internal.R.string.config_defaultShutdownVibrationFile); } public boolean isShutdownVibrationDisabled(Context context) { boolean disabledInConfig = context.getResources().getBoolean( com.android.internal.R.bool.config_disableShutdownVibrationInZen); boolean isZenMode = Settings.Global.getInt(context.getContentResolver(), Settings.Global.ZEN_MODE, Settings.Global.ZEN_MODE_OFF) != Settings.Global.ZEN_MODE_OFF; return disabledInConfig && isZenMode; } } }
services/tests/powerservicetests/src/com/android/server/power/ShutdownThreadTest.java +18 −3 Original line number Diff line number Diff line Loading @@ -17,11 +17,10 @@ package com.android.server.power; import static com.android.server.power.ShutdownThread.DEFAULT_SHUTDOWN_VIBRATE_MS; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -42,7 +41,6 @@ import org.mockito.MockitoAnnotations; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; /** * Tests for {@link com.android.server.power.ShutdownThread} Loading Loading @@ -88,6 +86,7 @@ public class ShutdownThreadTest { @Mock private VibratorInfo mVibratorInfoMock; private String mDefaultShutdownVibrationFilePath; private boolean mShutdownVibrationDisabled; private long mLastSleepDurationMs; private ShutdownThread mShutdownThread; Loading Loading @@ -168,6 +167,17 @@ public class ShutdownThreadTest { .vibrate(any(VibrationEffect.class), any(VibrationAttributes.class)); } @Test public void testVibrationDisabled() throws Exception { setShutdownVibrationFileContent(CLICK_VIB_SERIALIZATION); mShutdownVibrationDisabled = true; mShutdownThread.playShutdownVibration(mContextMock); verify(mVibratorMock, never()) .vibrate(any(VibrationEffect.class), any(VibrationAttributes.class)); } private void assertShutdownVibration(VibrationEffect effect, long vibrationSleepDuration) throws Exception { verify(mVibratorMock).vibrate( Loading Loading @@ -214,5 +224,10 @@ public class ShutdownThreadTest { public void sleep(long durationMs) { mLastSleepDurationMs = durationMs; } @Override public boolean isShutdownVibrationDisabled(Context context) { return mShutdownVibrationDisabled; } } }