Merge "Use EmergencyNumberUtils to get/set emergency settings." into sc-dev

This commit is contained in:
Fan Zhang
2021-02-19 21:59:16 +00:00
committed by Android (Google) Code Review
4 changed files with 33 additions and 38 deletions

View File

@@ -17,7 +17,6 @@
package com.android.settings.emergency; package com.android.settings.emergency;
import android.content.Context; import android.content.Context;
import android.provider.Settings;
import android.widget.Switch; import android.widget.Switch;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
@@ -26,6 +25,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.emergencynumber.EmergencyNumberUtils;
import com.android.settingslib.widget.MainSwitchPreference; import com.android.settingslib.widget.MainSwitchPreference;
import com.android.settingslib.widget.OnMainSwitchChangeListener; import com.android.settingslib.widget.OnMainSwitchChangeListener;
@@ -36,16 +36,13 @@ public class EmergencyGesturePreferenceController extends BasePreferenceControll
OnMainSwitchChangeListener { OnMainSwitchChangeListener {
@VisibleForTesting @VisibleForTesting
static final int ON = 1; EmergencyNumberUtils mEmergencyNumberUtils;
@VisibleForTesting
static final int OFF = 0;
private static final String SECURE_KEY = Settings.Secure.EMERGENCY_GESTURE_ENABLED;
private MainSwitchPreference mSwitchBar; private MainSwitchPreference mSwitchBar;
public EmergencyGesturePreferenceController(Context context, String key) { public EmergencyGesturePreferenceController(Context context, String key) {
super(context, key); super(context, key);
mEmergencyNumberUtils = new EmergencyNumberUtils(context);
} }
@Override @Override
@@ -71,11 +68,11 @@ public class EmergencyGesturePreferenceController extends BasePreferenceControll
@VisibleForTesting @VisibleForTesting
public boolean isChecked() { public boolean isChecked() {
return Settings.Secure.getInt(mContext.getContentResolver(), SECURE_KEY, ON) == ON; return mEmergencyNumberUtils.getEmergencyGestureEnabled();
} }
@Override @Override
public void onSwitchChanged(Switch switchView, boolean isChecked) { public void onSwitchChanged(Switch switchView, boolean isChecked) {
Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY, isChecked ? ON : OFF); mEmergencyNumberUtils.setEmergencyGestureEnabled(isChecked);
} }
} }

View File

@@ -17,12 +17,12 @@
package com.android.settings.emergency; package com.android.settings.emergency;
import android.content.Context; import android.content.Context;
import android.provider.Settings;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.emergencynumber.EmergencyNumberUtils;
/** /**
* Preference controller for emergency sos gesture setting * Preference controller for emergency sos gesture setting
@@ -30,14 +30,11 @@ import com.android.settings.core.TogglePreferenceController;
public class EmergencyGestureSoundPreferenceController extends TogglePreferenceController { public class EmergencyGestureSoundPreferenceController extends TogglePreferenceController {
@VisibleForTesting @VisibleForTesting
static final int ON = 1; EmergencyNumberUtils mEmergencyNumberUtils;
@VisibleForTesting
static final int OFF = 0;
private static final String SECURE_KEY = Settings.Secure.EMERGENCY_GESTURE_SOUND_ENABLED;
public EmergencyGestureSoundPreferenceController(Context context, String key) { public EmergencyGestureSoundPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mEmergencyNumberUtils = new EmergencyNumberUtils(context);
} }
private static boolean isGestureAvailable(Context context) { private static boolean isGestureAvailable(Context context) {
@@ -57,12 +54,12 @@ public class EmergencyGestureSoundPreferenceController extends TogglePreferenceC
@Override @Override
public boolean isChecked() { public boolean isChecked() {
return Settings.Secure.getInt(mContext.getContentResolver(), SECURE_KEY, ON) == ON; return mEmergencyNumberUtils.getEmergencyGestureSoundEnabled();
} }
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
return Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY, mEmergencyNumberUtils.setEmergencySoundEnabled(isChecked);
isChecked ? ON : OFF); return true;
} }
} }

View File

@@ -18,24 +18,25 @@ package com.android.settings.emergency;
import static com.android.settings.core.BasePreferenceController.AVAILABLE; import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
import static com.android.settings.emergency.EmergencyGesturePreferenceController.OFF;
import static com.android.settings.emergency.EmergencyGesturePreferenceController.ON;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import android.content.ContentResolver; import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.provider.Settings;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settingslib.emergencynumber.EmergencyNumberUtils;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@@ -43,16 +44,18 @@ import org.robolectric.annotation.Config;
@Config(shadows = SettingsShadowResources.class) @Config(shadows = SettingsShadowResources.class)
public class EmergencyGesturePreferenceControllerTest { public class EmergencyGesturePreferenceControllerTest {
@Mock
private EmergencyNumberUtils mEmergencyNumberUtils;
private Context mContext; private Context mContext;
private ContentResolver mContentResolver;
private EmergencyGesturePreferenceController mController; private EmergencyGesturePreferenceController mController;
private static final String PREF_KEY = "gesture_emergency_button"; private static final String PREF_KEY = "gesture_emergency_button";
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = ApplicationProvider.getApplicationContext(); mContext = ApplicationProvider.getApplicationContext();
mContentResolver = mContext.getContentResolver();
mController = new EmergencyGesturePreferenceController(mContext, PREF_KEY); mController = new EmergencyGesturePreferenceController(mContext, PREF_KEY);
mController.mEmergencyNumberUtils = mEmergencyNumberUtils;
} }
@After @After
@@ -81,8 +84,7 @@ public class EmergencyGesturePreferenceControllerTest {
@Test @Test
public void isChecked_configIsNotSet_shouldReturnTrue() { public void isChecked_configIsNotSet_shouldReturnTrue() {
// Set the setting to be enabled. // Set the setting to be enabled.
Settings.Secure.putInt(mContentResolver, Settings.Secure.EMERGENCY_GESTURE_ENABLED, ON); when(mEmergencyNumberUtils.getEmergencyGestureEnabled()).thenReturn(true);
mController = new EmergencyGesturePreferenceController(mContext, PREF_KEY);
assertThat(mController.isChecked()).isTrue(); assertThat(mController.isChecked()).isTrue();
} }
@@ -90,8 +92,7 @@ public class EmergencyGesturePreferenceControllerTest {
@Test @Test
public void isChecked_configIsSet_shouldReturnFalse() { public void isChecked_configIsSet_shouldReturnFalse() {
// Set the setting to be disabled. // Set the setting to be disabled.
Settings.Secure.putInt(mContentResolver, Settings.Secure.EMERGENCY_GESTURE_ENABLED, OFF); when(mEmergencyNumberUtils.getEmergencyGestureEnabled()).thenReturn(false);
mController = new EmergencyGesturePreferenceController(mContext, PREF_KEY);
assertThat(mController.isChecked()).isFalse(); assertThat(mController.isChecked()).isFalse();
} }

View File

@@ -16,40 +16,42 @@
package com.android.settings.emergency; package com.android.settings.emergency;
import static com.android.settings.emergency.EmergencyGestureSoundPreferenceController.OFF;
import static com.android.settings.emergency.EmergencyGestureSoundPreferenceController.ON;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import android.content.ContentResolver; import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.provider.Settings;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settingslib.emergencynumber.EmergencyNumberUtils;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@Config(shadows = SettingsShadowResources.class) @Config(shadows = SettingsShadowResources.class)
public class EmergencyGestureSoundPreferenceControllerTest { public class EmergencyGestureSoundPreferenceControllerTest {
@Mock
private EmergencyNumberUtils mEmergencyNumberUtils;
private Context mContext; private Context mContext;
private ContentResolver mContentResolver;
private EmergencyGestureSoundPreferenceController mController; private EmergencyGestureSoundPreferenceController mController;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = ApplicationProvider.getApplicationContext(); mContext = ApplicationProvider.getApplicationContext();
mContentResolver = mContext.getContentResolver();
mController = new EmergencyGestureSoundPreferenceController(mContext, "test_key"); mController = new EmergencyGestureSoundPreferenceController(mContext, "test_key");
mController.mEmergencyNumberUtils = mEmergencyNumberUtils;
} }
@After @After
@@ -78,8 +80,7 @@ public class EmergencyGestureSoundPreferenceControllerTest {
@Test @Test
public void isChecked_configIsSet_shouldReturnTrue() { public void isChecked_configIsSet_shouldReturnTrue() {
// Set the setting to be enabled. // Set the setting to be enabled.
Settings.Secure.putInt(mContentResolver, Settings.Secure.EMERGENCY_GESTURE_SOUND_ENABLED, when(mEmergencyNumberUtils.getEmergencyGestureSoundEnabled()).thenReturn(true);
ON);
assertThat(mController.isChecked()).isTrue(); assertThat(mController.isChecked()).isTrue();
} }
@@ -87,8 +88,7 @@ public class EmergencyGestureSoundPreferenceControllerTest {
@Test @Test
public void isChecked_configIsSetToFalse_shouldReturnFalse() { public void isChecked_configIsSetToFalse_shouldReturnFalse() {
// Set the setting to be disabled. // Set the setting to be disabled.
Settings.Secure.putInt(mContentResolver, Settings.Secure.EMERGENCY_GESTURE_SOUND_ENABLED, when(mEmergencyNumberUtils.getEmergencyGestureSoundEnabled()).thenReturn(false);
OFF);
assertThat(mController.isChecked()).isFalse(); assertThat(mController.isChecked()).isFalse();
} }