Loading src/com/android/settings/location/LocationEnabler.java +4 −15 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ */ package com.android.settings.location; import android.app.ActivityManager; import android.Manifest.permission; import android.content.BroadcastReceiver; import android.content.Context; Loading @@ -32,6 +33,8 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; import static com.android.settingslib.Utils.updateLocationMode; /** * A class that listens to location settings change and modifies location settings * settings. Loading @@ -40,11 +43,6 @@ public class LocationEnabler implements LifecycleObserver, OnResume, OnPause { private static final String TAG = "LocationEnabler"; @VisibleForTesting static final String MODE_CHANGING_ACTION = "com.android.settings.location.MODE_CHANGING"; private static final String CURRENT_MODE_KEY = "CURRENT_MODE"; private static final String NEW_MODE_KEY = "NEW_MODE"; @VisibleForTesting static final IntentFilter INTENT_FILTER_LOCATION_MODE_CHANGED = new IntentFilter(LocationManager.MODE_CHANGED_ACTION); Loading Loading @@ -122,7 +120,7 @@ public class LocationEnabler implements LifecycleObserver, OnResume, OnPause { return; } updateLocationMode(currentMode, mode); updateLocationMode(mContext, currentMode, mode, ActivityManager.getCurrentUser()); refreshLocationMode(); } Loading Loading @@ -154,13 +152,4 @@ public class LocationEnabler implements LifecycleObserver, OnResume, OnPause { private boolean isRestricted() { return mUserManager.hasUserRestriction(UserManager.DISALLOW_SHARE_LOCATION); } private boolean updateLocationMode(int oldMode, int newMode) { final Intent intent = new Intent(MODE_CHANGING_ACTION); intent.putExtra(CURRENT_MODE_KEY, oldMode); intent.putExtra(NEW_MODE_KEY, newMode); mContext.sendBroadcast(intent, permission.WRITE_SECURE_SETTINGS); return Settings.Secure.putInt( mContext.getContentResolver(), Settings.Secure.LOCATION_MODE, newMode); } } tests/robotests/src/com/android/settings/location/LocationEnablerTest.java +12 −9 Original line number Diff line number Diff line Loading @@ -16,9 +16,7 @@ package com.android.settings.location; import static android.Manifest.permission.WRITE_SECURE_SETTINGS; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; Loading @@ -31,18 +29,21 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.ActivityManager; import android.content.Context; import android.content.Intent; import android.content.pm.UserInfo; import android.location.LocationManager; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.text.TextUtils; import com.android.settings.TestConfig; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowSecureSettings; import com.android.settingslib.core.lifecycle.Lifecycle; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -52,11 +53,10 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import java.util.ArrayList; import java.util.List; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = {ShadowSecureSettings.class}) public class LocationEnablerTest { @Mock Loading Loading @@ -178,8 +178,11 @@ public class LocationEnablerTest { mEnabler.setLocationMode(Settings.Secure.LOCATION_MODE_HIGH_ACCURACY); verify(mContext).sendBroadcast(argThat(actionMatches(mEnabler.MODE_CHANGING_ACTION)), verify(mContext).sendBroadcastAsUser( argThat(actionMatches(LocationManager.MODE_CHANGING_ACTION)), eq(UserHandle.of(ActivityManager.getCurrentUser())), eq(WRITE_SECURE_SETTINGS)); } @Test Loading tests/robotests/src/com/android/settings/location/LocationModeRadioButtonPreferenceControllerTest.java +6 −5 Original line number Diff line number Diff line Loading @@ -16,29 +16,30 @@ package com.android.settings.location; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.provider.Settings; import android.support.v7.preference.PreferenceScreen; import com.android.settings.TestConfig; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowSecureSettings; import com.android.settings.widget.RadioButtonPreference; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config( manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = {ShadowSecureSettings.class}) public class LocationModeRadioButtonPreferenceControllerTest { @Mock Loading Loading
src/com/android/settings/location/LocationEnabler.java +4 −15 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ */ package com.android.settings.location; import android.app.ActivityManager; import android.Manifest.permission; import android.content.BroadcastReceiver; import android.content.Context; Loading @@ -32,6 +33,8 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; import static com.android.settingslib.Utils.updateLocationMode; /** * A class that listens to location settings change and modifies location settings * settings. Loading @@ -40,11 +43,6 @@ public class LocationEnabler implements LifecycleObserver, OnResume, OnPause { private static final String TAG = "LocationEnabler"; @VisibleForTesting static final String MODE_CHANGING_ACTION = "com.android.settings.location.MODE_CHANGING"; private static final String CURRENT_MODE_KEY = "CURRENT_MODE"; private static final String NEW_MODE_KEY = "NEW_MODE"; @VisibleForTesting static final IntentFilter INTENT_FILTER_LOCATION_MODE_CHANGED = new IntentFilter(LocationManager.MODE_CHANGED_ACTION); Loading Loading @@ -122,7 +120,7 @@ public class LocationEnabler implements LifecycleObserver, OnResume, OnPause { return; } updateLocationMode(currentMode, mode); updateLocationMode(mContext, currentMode, mode, ActivityManager.getCurrentUser()); refreshLocationMode(); } Loading Loading @@ -154,13 +152,4 @@ public class LocationEnabler implements LifecycleObserver, OnResume, OnPause { private boolean isRestricted() { return mUserManager.hasUserRestriction(UserManager.DISALLOW_SHARE_LOCATION); } private boolean updateLocationMode(int oldMode, int newMode) { final Intent intent = new Intent(MODE_CHANGING_ACTION); intent.putExtra(CURRENT_MODE_KEY, oldMode); intent.putExtra(NEW_MODE_KEY, newMode); mContext.sendBroadcast(intent, permission.WRITE_SECURE_SETTINGS); return Settings.Secure.putInt( mContext.getContentResolver(), Settings.Secure.LOCATION_MODE, newMode); } }
tests/robotests/src/com/android/settings/location/LocationEnablerTest.java +12 −9 Original line number Diff line number Diff line Loading @@ -16,9 +16,7 @@ package com.android.settings.location; import static android.Manifest.permission.WRITE_SECURE_SETTINGS; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; Loading @@ -31,18 +29,21 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.ActivityManager; import android.content.Context; import android.content.Intent; import android.content.pm.UserInfo; import android.location.LocationManager; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.text.TextUtils; import com.android.settings.TestConfig; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowSecureSettings; import com.android.settingslib.core.lifecycle.Lifecycle; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -52,11 +53,10 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import java.util.ArrayList; import java.util.List; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = {ShadowSecureSettings.class}) public class LocationEnablerTest { @Mock Loading Loading @@ -178,8 +178,11 @@ public class LocationEnablerTest { mEnabler.setLocationMode(Settings.Secure.LOCATION_MODE_HIGH_ACCURACY); verify(mContext).sendBroadcast(argThat(actionMatches(mEnabler.MODE_CHANGING_ACTION)), verify(mContext).sendBroadcastAsUser( argThat(actionMatches(LocationManager.MODE_CHANGING_ACTION)), eq(UserHandle.of(ActivityManager.getCurrentUser())), eq(WRITE_SECURE_SETTINGS)); } @Test Loading
tests/robotests/src/com/android/settings/location/LocationModeRadioButtonPreferenceControllerTest.java +6 −5 Original line number Diff line number Diff line Loading @@ -16,29 +16,30 @@ package com.android.settings.location; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.provider.Settings; import android.support.v7.preference.PreferenceScreen; import com.android.settings.TestConfig; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowSecureSettings; import com.android.settings.widget.RadioButtonPreference; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config( manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = {ShadowSecureSettings.class}) public class LocationModeRadioButtonPreferenceControllerTest { @Mock Loading