Merge "Use OneHandedSettingsUtil static utils directly"

This commit is contained in:
TreeHugger Robot
2020-08-14 02:30:22 +00:00
committed by Android (Google) Code Review
7 changed files with 38 additions and 124 deletions

View File

@@ -22,19 +22,13 @@ import android.database.ContentObserver;
import android.net.Uri;
import android.provider.Settings;
import com.android.internal.annotations.VisibleForTesting;
import java.io.PrintWriter;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import javax.inject.Inject;
import javax.inject.Singleton;
/**
* APIs for querying or updating one handed settings .
*/
@Singleton
public final class OneHandedSettingsUtil {
private static final String TAG = "OneHandedSettingsUtil";
@@ -65,11 +59,6 @@ public final class OneHandedSettingsUtil {
*/
public static final int ONE_HANDED_TIMEOUT_LONG_IN_SECONDS = 12;
@VisibleForTesting
@Inject
OneHandedSettingsUtil() {
}
/**
* Register one handed preference settings observer
*
@@ -150,4 +139,6 @@ public final class OneHandedSettingsUtil {
pw.print(innerPrefix + "tapsAppToExit=");
pw.println(getSettingsTapsAppToExit(resolver));
}
private OneHandedSettingsUtil() {}
}

View File

@@ -63,7 +63,6 @@ public class OneHandedUI extends SystemUI implements CommandQueue.Callbacks, Dum
private final CommandQueue mCommandQueue;
private final Handler mMainHandler = new Handler(Looper.getMainLooper());
private final IOverlayManager mOverlayManager;
private final OneHandedSettingsUtil mSettingUtil;
private final OneHandedTimeoutHandler mTimeoutHandler;
private final ScreenLifecycle mScreenLifecycle;
@@ -154,7 +153,6 @@ public class OneHandedUI extends SystemUI implements CommandQueue.Callbacks, Dum
public OneHandedUI(Context context,
CommandQueue commandQueue,
OneHandedManagerImpl oneHandedManager,
OneHandedSettingsUtil settingsUtil,
ScreenLifecycle screenLifecycle) {
super(context);
@@ -163,7 +161,6 @@ public class OneHandedUI extends SystemUI implements CommandQueue.Callbacks, Dum
mCommandQueue = null;
mOneHandedManager = null;
mOverlayManager = null;
mSettingUtil = null;
mTimeoutHandler = null;
mScreenLifecycle = null;
return;
@@ -171,7 +168,6 @@ public class OneHandedUI extends SystemUI implements CommandQueue.Callbacks, Dum
mCommandQueue = commandQueue;
mOneHandedManager = oneHandedManager;
mSettingUtil = settingsUtil;
mTimeoutHandler = OneHandedTimeoutHandler.get();
mScreenLifecycle = screenLifecycle;
mOverlayManager = IOverlayManager.Stub.asInterface(
@@ -252,26 +248,26 @@ public class OneHandedUI extends SystemUI implements CommandQueue.Callbacks, Dum
}
private void setupSettingObservers() {
mSettingUtil.registerSettingsKeyObserver(Settings.Secure.ONE_HANDED_MODE_ENABLED,
OneHandedSettingsUtil.registerSettingsKeyObserver(Settings.Secure.ONE_HANDED_MODE_ENABLED,
mContext.getContentResolver(), mEnabledObserver);
mSettingUtil.registerSettingsKeyObserver(Settings.Secure.ONE_HANDED_MODE_TIMEOUT,
OneHandedSettingsUtil.registerSettingsKeyObserver(Settings.Secure.ONE_HANDED_MODE_TIMEOUT,
mContext.getContentResolver(), mTimeoutObserver);
mSettingUtil.registerSettingsKeyObserver(Settings.Secure.TAPS_APP_TO_EXIT,
OneHandedSettingsUtil.registerSettingsKeyObserver(Settings.Secure.TAPS_APP_TO_EXIT,
mContext.getContentResolver(), mTaskChangeExitObserver);
mSettingUtil.registerSettingsKeyObserver(
OneHandedSettingsUtil.registerSettingsKeyObserver(
Settings.Secure.SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED,
mContext.getContentResolver(), mSwipeToNotificationEnabledObserver);
}
private void updateSettings() {
mOneHandedManager.setOneHandedEnabled(
mSettingUtil.getSettingsOneHandedModeEnabled(mContext.getContentResolver()));
mTimeoutHandler.setTimeout(
mSettingUtil.getSettingsOneHandedModeTimeout(mContext.getContentResolver()));
mOneHandedManager.setTaskChangeToExit(
mSettingUtil.getSettingsTapsAppToExit(mContext.getContentResolver()));
mOneHandedManager.setSwipeToNotificationEnabled(
mSettingUtil.getSettingsSwipeToNotificationEnabled(mContext.getContentResolver()));
mOneHandedManager.setOneHandedEnabled(OneHandedSettingsUtil
.getSettingsOneHandedModeEnabled(mContext.getContentResolver()));
mTimeoutHandler.setTimeout(OneHandedSettingsUtil
.getSettingsOneHandedModeTimeout(mContext.getContentResolver()));
mOneHandedManager.setTaskChangeToExit(OneHandedSettingsUtil
.getSettingsTapsAppToExit(mContext.getContentResolver()));
mOneHandedManager.setSwipeToNotificationEnabled(OneHandedSettingsUtil
.getSettingsSwipeToNotificationEnabled(mContext.getContentResolver()));
}
@Override
@@ -326,9 +322,7 @@ public class OneHandedUI extends SystemUI implements CommandQueue.Callbacks, Dum
mTimeoutHandler.dump(fd, pw, args);
}
if (mSettingUtil != null) {
mSettingUtil.dump(pw, innerPrefix, mContext.getContentResolver());
}
OneHandedSettingsUtil.dump(pw, innerPrefix, mContext.getContentResolver());
if (mOverlayManager != null) {
OverlayInfo info = null;

View File

@@ -79,7 +79,7 @@ public class OneHandedGestureHandlerTest extends OneHandedTestCase {
@Test
public void testOneHandedManager_registerForDisplayAreaOrganizer() {
verify(mMockDisplayAreaOrganizer, times(1)).registerTransitionCallback(mGestureHandler);
verify(mMockDisplayAreaOrganizer).registerTransitionCallback(mGestureHandler);
}
@Test

View File

@@ -40,14 +40,12 @@ import org.junit.runner.RunWith;
@RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper
public class OneHandedSettingsUtilTest extends OneHandedTestCase {
OneHandedSettingsUtil mOneHandedSettingsUtil;
ContentResolver mContentResolver;
ContentObserver mContentObserver;
boolean mOnChanged;
@Before
public void setUp() {
mOneHandedSettingsUtil = new OneHandedSettingsUtil();
mContentResolver = mContext.getContentResolver();
mContentObserver = new ContentObserver(mContext.getMainThreadHandler()) {
@Override
@@ -60,20 +58,20 @@ public class OneHandedSettingsUtilTest extends OneHandedTestCase {
@Test
public void testRegisterSecureKeyObserver() {
final Uri result = mOneHandedSettingsUtil.registerSettingsKeyObserver(
final Uri result = OneHandedSettingsUtil.registerSettingsKeyObserver(
Settings.Secure.ONE_HANDED_MODE_ENABLED, mContentResolver, mContentObserver);
assertThat(result).isNotNull();
mOneHandedSettingsUtil.registerSettingsKeyObserver(
OneHandedSettingsUtil.registerSettingsKeyObserver(
Settings.Secure.ONE_HANDED_MODE_ENABLED, mContentResolver, mContentObserver);
}
@Test
public void testUnregisterSecureKeyObserver() {
mOneHandedSettingsUtil.registerSettingsKeyObserver(
OneHandedSettingsUtil.registerSettingsKeyObserver(
Settings.Secure.ONE_HANDED_MODE_ENABLED, mContentResolver, mContentObserver);
mOneHandedSettingsUtil.unregisterSettingsKeyObserver(mContentResolver, mContentObserver);
OneHandedSettingsUtil.unregisterSettingsKeyObserver(mContentResolver, mContentObserver);
assertThat(mOnChanged).isFalse();
@@ -85,19 +83,19 @@ public class OneHandedSettingsUtilTest extends OneHandedTestCase {
@Test
public void testGetSettingsIsOneHandedModeEnabled() {
assertThat(mOneHandedSettingsUtil.getSettingsOneHandedModeEnabled(
assertThat(OneHandedSettingsUtil.getSettingsOneHandedModeEnabled(
mContentResolver)).isAnyOf(true, false);
}
@Test
public void testGetSettingsTapsAppToExit() {
assertThat(mOneHandedSettingsUtil.getSettingsTapsAppToExit(
assertThat(OneHandedSettingsUtil.getSettingsTapsAppToExit(
mContentResolver)).isAnyOf(true, false);
}
@Test
public void testGetSettingsOneHandedModeTimeout() {
assertThat(mOneHandedSettingsUtil.getSettingsOneHandedModeTimeout(
assertThat(OneHandedSettingsUtil.getSettingsOneHandedModeTimeout(
mContentResolver)).isAnyOf(
ONE_HANDED_TIMEOUT_NEVER,
ONE_HANDED_TIMEOUT_SHORT_IN_SECONDS,
@@ -107,7 +105,7 @@ public class OneHandedSettingsUtilTest extends OneHandedTestCase {
@Test
public void testGetSettingsSwipeToNotificationEnabled() {
assertThat(mOneHandedSettingsUtil.getSettingsSwipeToNotificationEnabled(
assertThat(OneHandedSettingsUtil.getSettingsSwipeToNotificationEnabled(
mContentResolver)).isAnyOf(true, false);
}
}

View File

@@ -77,8 +77,7 @@ public class OneHandedTouchHandlerTest extends OneHandedTestCase {
@Test
public void testOneHandedManager_registerForDisplayAreaOrganizer() {
verify(mMockDisplayAreaOrganizer, times(1))
.registerTransitionCallback(mTouchHandler);
verify(mMockDisplayAreaOrganizer).registerTransitionCallback(mTouchHandler);
}
@Test

View File

@@ -16,7 +16,6 @@
package com.android.systemui.onehanded;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import android.testing.AndroidTestingRunner;
@@ -75,7 +74,6 @@ public class OneHandedTutorialHandlerTest extends OneHandedTestCase {
@Test
public void testOneHandedManager_registerForDisplayAreaOrganizer() {
verify(mMockDisplayAreaOrganizer, times(1))
.registerTransitionCallback(mTutorialHandler);
verify(mMockDisplayAreaOrganizer).registerTransitionCallback(mTutorialHandler);
}
}

View File

@@ -16,8 +16,7 @@
package com.android.systemui.onehanded;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.times;
import static org.junit.Assume.assumeTrue;
import static org.mockito.Mockito.verify;
import android.os.SystemProperties;
@@ -44,7 +43,6 @@ import org.mockito.MockitoAnnotations;
public class OneHandedUITest extends OneHandedTestCase {
private static final String SUPPORT_ONE_HANDED_MODE = "ro.support_one_handed_mode";
boolean mIsSupportOneHandedMode;
CommandQueue mCommandQueue;
KeyguardUpdateMonitor mKeyguardUpdateMonitor;
OneHandedUI mOneHandedUI;
@@ -52,110 +50,58 @@ public class OneHandedUITest extends OneHandedTestCase {
@Mock
OneHandedManagerImpl mMockOneHandedManagerImpl;
@Mock
OneHandedSettingsUtil mMockSettingsUtil;
@Mock
OneHandedTimeoutHandler mMockTimeoutHandler;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
mIsSupportOneHandedMode = SystemProperties.getBoolean(SUPPORT_ONE_HANDED_MODE, false);
mCommandQueue = new CommandQueue(mContext);
mScreenLifecycle = new ScreenLifecycle();
mOneHandedUI = new OneHandedUI(mContext,
mCommandQueue,
mMockOneHandedManagerImpl,
mMockSettingsUtil,
mScreenLifecycle);
mOneHandedUI.start();
mKeyguardUpdateMonitor = mDependency.injectMockDependency(KeyguardUpdateMonitor.class);
}
@Before
public void assumeOneHandedModeSupported() {
assumeTrue(SystemProperties.getBoolean(SUPPORT_ONE_HANDED_MODE, false));
}
@Test
public void testStartOneHanded() {
// Bypass test if device not support one-handed mode
if (!mIsSupportOneHandedMode) {
return;
}
mOneHandedUI.startOneHanded();
verify(mMockOneHandedManagerImpl, times(1)).startOneHanded();
verify(mMockOneHandedManagerImpl).startOneHanded();
}
@Test
public void testStopOneHanded() {
// Bypass test if device not support one-handed mode
if (!mIsSupportOneHandedMode) {
return;
}
mOneHandedUI.stopOneHanded();
verify(mMockOneHandedManagerImpl, times(1)).stopOneHanded();
}
@Test
public void testRegisterSettingsObserver_forEnabled() {
// Bypass test if device not support one-handed mode
if (!mIsSupportOneHandedMode) {
return;
}
final String key = Settings.Secure.ONE_HANDED_MODE_ENABLED;
verify(mMockSettingsUtil, times(1)).registerSettingsKeyObserver(key, any(), any());
}
@Test
public void testRegisterSettingsObserver_forTimeout() {
// Bypass test if device not support one-handed mode
if (!mIsSupportOneHandedMode) {
return;
}
final String key = Settings.Secure.ONE_HANDED_MODE_TIMEOUT;
verify(mMockSettingsUtil, times(1)).registerSettingsKeyObserver(key, any(), any());
}
@Test
public void testRegisterSettingsObserver_forTapAppExit() {
// Bypass test if device not support one-handed mode
if (!mIsSupportOneHandedMode) {
return;
}
final String key = Settings.Secure.TAPS_APP_TO_EXIT;
verify(mMockSettingsUtil, times(1)).registerSettingsKeyObserver(key, any(), any());
verify(mMockOneHandedManagerImpl).stopOneHanded();
}
@Test
public void tesSettingsObserver_updateTapAppToExit() {
// Bypass test if device not support one-handed mode
if (!mIsSupportOneHandedMode) {
return;
}
Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.TAPS_APP_TO_EXIT, 1);
verify(mMockOneHandedManagerImpl, times(1)).setTaskChangeToExit(true);
verify(mMockOneHandedManagerImpl).setTaskChangeToExit(true);
}
@Test
public void tesSettingsObserver_updateEnabled() {
// Bypass test if device not support one-handed mode
if (!mIsSupportOneHandedMode) {
return;
}
Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ONE_HANDED_MODE_ENABLED, 1);
verify(mMockOneHandedManagerImpl, times(1)).setOneHandedEnabled(true);
verify(mMockOneHandedManagerImpl).setOneHandedEnabled(true);
}
@Test
public void tesSettingsObserver_updateTimeout() {
// Bypass test if device not support one-handed mode
if (!mIsSupportOneHandedMode) {
return;
}
Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ONE_HANDED_MODE_TIMEOUT,
OneHandedSettingsUtil.ONE_HANDED_TIMEOUT_MEDIUM_IN_SECONDS);
@@ -166,10 +112,6 @@ public class OneHandedUITest extends OneHandedTestCase {
@Test
public void tesSettingsObserver_updateSwipeToNotification() {
// Bypass test if device not support one-handed mode
if (!mIsSupportOneHandedMode) {
return;
}
Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, 1);
@@ -179,24 +121,16 @@ public class OneHandedUITest extends OneHandedTestCase {
@Ignore("Clarifying do not receive callback")
@Test
public void testKeyguardBouncerShowing_shouldStopOneHanded() {
// Bypass test if device not support one-handed mode
if (!mIsSupportOneHandedMode) {
return;
}
mKeyguardUpdateMonitor.sendKeyguardBouncerChanged(true);
verify(mMockOneHandedManagerImpl, times(1)).stopOneHanded();
verify(mMockOneHandedManagerImpl).stopOneHanded();
}
@Test
public void testScreenTurningOff_shouldStopOneHanded() {
// Bypass test if device not support one-handed mode
if (!mIsSupportOneHandedMode) {
return;
}
mScreenLifecycle.dispatchScreenTurningOff();
verify(mMockOneHandedManagerImpl, times(1)).stopOneHanded();
verify(mMockOneHandedManagerImpl).stopOneHanded();
}
}