import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.search.DatabaseIndexingUtils;
+import com.android.settings.search.InlineListPayload;
+import com.android.settings.search.ResultPayload;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
}
return 0;
}
+
+ @Override
+ public ResultPayload getResultPayload() {
+ final Intent intent = DatabaseIndexingUtils.buildSubsettingIntent(mContext,
+ LocationSettings.class.getName(), KEY_LOCATION,
+ mContext.getString(R.string.location_settings_title));
+
+ return new InlineListPayload(Secure.LOCATION_MODE,
+ ResultPayload.SettingsSource.SECURE, intent, isAvailable(),
+ Secure.LOCATION_MODE_HIGH_ACCURACY + 1);
+ }
+
}
*/
package com.android.settings.location;
+import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.when;
import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.location.LocationManager;
+import android.provider.Settings;
import android.provider.Settings.Secure;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import com.android.settings.R;
+import com.android.settings.display.AutoBrightnessPreferenceController;
+import com.android.settings.search.InlineListPayload;
+import com.android.settings.search.InlinePayload;
+import com.android.settings.search.InlineSwitchPayload;
+import com.android.settings.search.ResultPayload;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
+import com.android.settings.testutils.shadow.ShadowSecureSettings;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
verify(mPreference).setSummary(any());
}
+
+ @Test
+ public void testPreferenceController_ProperResultPayloadType() {
+ final Context context = RuntimeEnvironment.application;
+ mController = new LocationPreferenceController(context, null /* lifecycle */);
+ ResultPayload payload = mController.getResultPayload();
+ assertThat(payload).isInstanceOf(InlineListPayload.class);
+ }
+
+ @Test
+ @Config(shadows = ShadowSecureSettings.class)
+ public void testSetValue_updatesCorrectly() {
+ int newValue = Secure.LOCATION_MODE_BATTERY_SAVING;
+ ContentResolver resolver = mContext.getContentResolver();
+ Settings.Secure.putInt(resolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_OFF);
+
+ ((InlinePayload) mController.getResultPayload()).setValue(mContext, newValue);
+ int updatedValue = Settings.Secure.getInt(resolver, Secure.LOCATION_MODE,
+ Secure.LOCATION_MODE_OFF);
+
+ assertThat(updatedValue).isEqualTo(newValue);
+ }
+
+ @Test
+ @Config(shadows = ShadowSecureSettings.class)
+ public void testGetValue_correctValueReturned() {
+ int expectedValue = Secure.LOCATION_MODE_BATTERY_SAVING;
+ ContentResolver resolver = mContext.getContentResolver();
+ Settings.Secure.putInt(resolver, Secure.LOCATION_MODE, expectedValue);
+
+ int newValue = ((InlinePayload) mController.getResultPayload()).getValue(mContext);
+
+ assertThat(newValue).isEqualTo(expectedValue);
+ }
}