resolve merge conflicts of 1104b94dbc
to master
Test: I solemnly swear I tested this conflict resolution. Change-Id: I537fb871134f801ec9489b48fe748b525e5a65ea
This commit is contained in:
@@ -20,21 +20,27 @@ import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.hardware.Sensor;
|
||||
import android.hardware.SensorManager;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
public class DoubleTwistPreferenceController extends GesturePreferenceController {
|
||||
|
||||
private static final String PREF_KEY_VIDEO = "gesture_double_twist_video";
|
||||
private final String mDoubleTwistPrefKey;
|
||||
private final UserManager mUserManager;
|
||||
|
||||
public DoubleTwistPreferenceController(Context context, Lifecycle lifecycle, String key) {
|
||||
super(context, lifecycle);
|
||||
mDoubleTwistPrefKey = key;
|
||||
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -55,9 +61,14 @@ public class DoubleTwistPreferenceController extends GesturePreferenceController
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
final boolean enabled = (boolean) newValue;
|
||||
final int enabled = (boolean) newValue ? 1 : 0;
|
||||
Settings.Secure.putInt(mContext.getContentResolver(),
|
||||
Settings.Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, enabled ? 1 : 0);
|
||||
Settings.Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, enabled);
|
||||
final int managedProfileUserId = getManagedProfileUserId();
|
||||
if (managedProfileUserId != UserHandle.USER_NULL) {
|
||||
Settings.Secure.putIntForUser(mContext.getContentResolver(),
|
||||
Settings.Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, enabled, managedProfileUserId);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -68,6 +79,11 @@ public class DoubleTwistPreferenceController extends GesturePreferenceController
|
||||
return doubleTwistEnabled != 0;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
int getManagedProfileUserId() {
|
||||
return Utils.getManagedProfileId(mUserManager, UserHandle.myUserId());
|
||||
}
|
||||
|
||||
private boolean hasSensor(int nameResId, int vendorResId) {
|
||||
final Resources resources = mContext.getResources();
|
||||
final String name = resources.getString(nameResId);
|
||||
|
@@ -19,11 +19,14 @@ package com.android.settings.gestures;
|
||||
import android.content.Context;
|
||||
import android.hardware.Sensor;
|
||||
import android.hardware.SensorManager;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
|
||||
import com.android.settings.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.testutils.shadow.ShadowSecureSettings;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -39,7 +42,9 @@ import java.util.List;
|
||||
import static android.provider.Settings.Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
@@ -56,9 +61,15 @@ public class DoubleTwistPreferenceControllerTest {
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mock(UserManager.class));
|
||||
mController = new DoubleTwistPreferenceController(mContext, null, KEY_DOUBLE_TWIST);
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
ShadowSecureSettings.clear();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isAvailable_hasSensor_shouldReturnTrue() {
|
||||
// Mock sensors
|
||||
@@ -91,6 +102,27 @@ public class DoubleTwistPreferenceControllerTest {
|
||||
assertThat(mController.isAvailable()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = {ShadowSecureSettings.class})
|
||||
public void onPreferenceChange_hasWorkProfile_shouldUpdateSettingForWorkProfileUser() {
|
||||
final int managedId = 2;
|
||||
ShadowSecureSettings.putIntForUser(
|
||||
null, CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 0, managedId);
|
||||
DoubleTwistPreferenceController controller =
|
||||
spy(new DoubleTwistPreferenceController(mContext, null, KEY_DOUBLE_TWIST));
|
||||
doReturn(managedId).when(controller).getManagedProfileUserId();
|
||||
|
||||
// enable the gesture
|
||||
controller.onPreferenceChange(null, true);
|
||||
assertThat(Settings.Secure.getIntForUser(mContext.getContentResolver(),
|
||||
CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 0, managedId)).isEqualTo(1);
|
||||
|
||||
// disable the gesture
|
||||
controller.onPreferenceChange(null, false);
|
||||
assertThat(Settings.Secure.getIntForUser(mContext.getContentResolver(),
|
||||
CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 1, managedId)).isEqualTo(0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSwitchEnabled_configIsSet_shouldReturnTrue() {
|
||||
// Set the setting to be enabled.
|
||||
|
@@ -68,4 +68,8 @@ public class ShadowSecureSettings {
|
||||
Integer value = (Integer) mValueMap.get(name);
|
||||
return value == null ? defaultValue : value;
|
||||
}
|
||||
|
||||
public static void clear() {
|
||||
mValueMap.clear();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user