Loading res/xml/display_settings.xml +111 −110 Original line number Diff line number Diff line Loading @@ -14,7 +14,8 @@ limitations under the License. --> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res/com.android.settings" android:title="@string/display_settings" settings:keywords="@string/keywords_display"> Loading Loading @@ -120,9 +121,9 @@ android:title="@string/device_theme" android:summary="%s" /> <DropDownPreference <Preference android:key="vr_display_pref" android:summary="%s" android:title="@string/display_vr_pref_title" /> android:title="@string/display_vr_pref_title" android:fragment="com.android.settings.display.VrDisplayPreferencePicker" /> </PreferenceScreen> src/com/android/settings/display/VrDisplayPreferenceController.java +6 −27 Original line number Diff line number Diff line Loading @@ -17,17 +17,13 @@ import android.app.ActivityManager; import android.content.Context; import android.content.pm.PackageManager; import android.provider.Settings; import android.support.v7.preference.DropDownPreference; import android.support.v7.preference.Preference; import android.util.Log; import com.android.settings.R; import com.android.settings.core.PreferenceController; public class VrDisplayPreferenceController extends PreferenceController implements Preference.OnPreferenceChangeListener { public class VrDisplayPreferenceController extends PreferenceController { private static final String TAG = "VrDisplayPrefContr"; private static final String KEY_VR_DISPLAY_PREF = "vr_display_pref"; public VrDisplayPreferenceController(Context context) { Loading @@ -47,31 +43,14 @@ public class VrDisplayPreferenceController extends PreferenceController implemen @Override public void updateState(Preference preference) { final DropDownPreference pref = (DropDownPreference) preference; pref.setEntries(new CharSequence[]{ mContext.getString(R.string.display_vr_pref_low_persistence), mContext.getString(R.string.display_vr_pref_off), }); pref.setEntryValues(new CharSequence[]{"0", "1"}); int currentUser = ActivityManager.getCurrentUser(); int current = Settings.Secure.getIntForUser(mContext.getContentResolver(), Settings.Secure.VR_DISPLAY_MODE, /*default*/Settings.Secure.VR_DISPLAY_MODE_LOW_PERSISTENCE, Settings.Secure.VR_DISPLAY_MODE, Settings.Secure.VR_DISPLAY_MODE_LOW_PERSISTENCE, currentUser); pref.setValueIndex(current); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { int i = Integer.parseInt((String) newValue); int u = ActivityManager.getCurrentUser(); if (!Settings.Secure.putIntForUser(mContext.getContentResolver(), Settings.Secure.VR_DISPLAY_MODE, i, u)) { Log.e(TAG, "Could not change setting for " + Settings.Secure.VR_DISPLAY_MODE); if (current == 0) { preference.setSummary(R.string.display_vr_pref_low_persistence); } else { preference.setSummary(R.string.display_vr_pref_off); } return true; } } src/com/android/settings/display/VrDisplayPreferencePicker.java 0 → 100644 +99 −0 Original line number Diff line number Diff line /* * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.display; import android.content.Context; import android.graphics.drawable.Drawable; import android.provider.Settings; import android.text.TextUtils; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.widget.RadioButtonPickerFragment; import java.util.ArrayList; import java.util.List; public class VrDisplayPreferencePicker extends RadioButtonPickerFragment { static final String PREF_KEY_PREFIX = "vr_display_pref_"; @Override public int getMetricsCategory() { return MetricsProto.MetricsEvent.VR_DISPLAY_PREFERENCE; } @Override protected List<VrCandidateInfo> getCandidates() { List<VrCandidateInfo> candidates = new ArrayList<>(); final Context context = getContext(); candidates.add(new VrCandidateInfo(context, 0, R.string.display_vr_pref_low_persistence)); candidates.add(new VrCandidateInfo(context, 1, R.string.display_vr_pref_off)); return candidates; } @Override protected String getDefaultKey() { int current = Settings.Secure.getIntForUser(getContext().getContentResolver(), Settings.Secure.VR_DISPLAY_MODE, Settings.Secure.VR_DISPLAY_MODE_LOW_PERSISTENCE, mUserId); return PREF_KEY_PREFIX + current; } @Override protected boolean setDefaultKey(String key) { if (TextUtils.isEmpty(key)) { return false; } switch (key) { case PREF_KEY_PREFIX + 0: return Settings.Secure.putIntForUser(getContext().getContentResolver(), Settings.Secure.VR_DISPLAY_MODE, 0, mUserId); case PREF_KEY_PREFIX + 1: return Settings.Secure.putIntForUser(getContext().getContentResolver(), Settings.Secure.VR_DISPLAY_MODE, 1, mUserId); } return false; } static class VrCandidateInfo extends CandidateInfo { public final String label; public final int value; public VrCandidateInfo(Context context, int value, int resId) { super(true); this.value = value; label = context.getString(resId); } @Override public CharSequence loadLabel() { return label; } @Override public Drawable loadIcon() { return null; } @Override public String getKey() { return PREF_KEY_PREFIX + value; } } } src/com/android/settings/widget/RadioButtonPickerFragment.java +1 −2 Original line number Diff line number Diff line Loading @@ -141,8 +141,7 @@ public abstract class RadioButtonPickerFragment extends InstrumentedPreferenceFr } for (Map.Entry<String, CandidateInfo> app : mCandidates.entrySet()) { RadioButtonPreference pref = new RadioButtonPreference(getPrefContext()); bindPreference( pref, app.getKey(), app.getValue(), defaultKey); bindPreference(pref, app.getKey(), app.getValue(), defaultKey); bindPreferenceExtra(pref, app.getKey(), app.getValue(), defaultKey, systemDefaultKey); screen.addPreference(pref); } Loading tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java +0 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.settings.applications.defaultapps; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; Loading Loading
res/xml/display_settings.xml +111 −110 Original line number Diff line number Diff line Loading @@ -14,7 +14,8 @@ limitations under the License. --> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res/com.android.settings" android:title="@string/display_settings" settings:keywords="@string/keywords_display"> Loading Loading @@ -120,9 +121,9 @@ android:title="@string/device_theme" android:summary="%s" /> <DropDownPreference <Preference android:key="vr_display_pref" android:summary="%s" android:title="@string/display_vr_pref_title" /> android:title="@string/display_vr_pref_title" android:fragment="com.android.settings.display.VrDisplayPreferencePicker" /> </PreferenceScreen>
src/com/android/settings/display/VrDisplayPreferenceController.java +6 −27 Original line number Diff line number Diff line Loading @@ -17,17 +17,13 @@ import android.app.ActivityManager; import android.content.Context; import android.content.pm.PackageManager; import android.provider.Settings; import android.support.v7.preference.DropDownPreference; import android.support.v7.preference.Preference; import android.util.Log; import com.android.settings.R; import com.android.settings.core.PreferenceController; public class VrDisplayPreferenceController extends PreferenceController implements Preference.OnPreferenceChangeListener { public class VrDisplayPreferenceController extends PreferenceController { private static final String TAG = "VrDisplayPrefContr"; private static final String KEY_VR_DISPLAY_PREF = "vr_display_pref"; public VrDisplayPreferenceController(Context context) { Loading @@ -47,31 +43,14 @@ public class VrDisplayPreferenceController extends PreferenceController implemen @Override public void updateState(Preference preference) { final DropDownPreference pref = (DropDownPreference) preference; pref.setEntries(new CharSequence[]{ mContext.getString(R.string.display_vr_pref_low_persistence), mContext.getString(R.string.display_vr_pref_off), }); pref.setEntryValues(new CharSequence[]{"0", "1"}); int currentUser = ActivityManager.getCurrentUser(); int current = Settings.Secure.getIntForUser(mContext.getContentResolver(), Settings.Secure.VR_DISPLAY_MODE, /*default*/Settings.Secure.VR_DISPLAY_MODE_LOW_PERSISTENCE, Settings.Secure.VR_DISPLAY_MODE, Settings.Secure.VR_DISPLAY_MODE_LOW_PERSISTENCE, currentUser); pref.setValueIndex(current); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { int i = Integer.parseInt((String) newValue); int u = ActivityManager.getCurrentUser(); if (!Settings.Secure.putIntForUser(mContext.getContentResolver(), Settings.Secure.VR_DISPLAY_MODE, i, u)) { Log.e(TAG, "Could not change setting for " + Settings.Secure.VR_DISPLAY_MODE); if (current == 0) { preference.setSummary(R.string.display_vr_pref_low_persistence); } else { preference.setSummary(R.string.display_vr_pref_off); } return true; } }
src/com/android/settings/display/VrDisplayPreferencePicker.java 0 → 100644 +99 −0 Original line number Diff line number Diff line /* * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.display; import android.content.Context; import android.graphics.drawable.Drawable; import android.provider.Settings; import android.text.TextUtils; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.widget.RadioButtonPickerFragment; import java.util.ArrayList; import java.util.List; public class VrDisplayPreferencePicker extends RadioButtonPickerFragment { static final String PREF_KEY_PREFIX = "vr_display_pref_"; @Override public int getMetricsCategory() { return MetricsProto.MetricsEvent.VR_DISPLAY_PREFERENCE; } @Override protected List<VrCandidateInfo> getCandidates() { List<VrCandidateInfo> candidates = new ArrayList<>(); final Context context = getContext(); candidates.add(new VrCandidateInfo(context, 0, R.string.display_vr_pref_low_persistence)); candidates.add(new VrCandidateInfo(context, 1, R.string.display_vr_pref_off)); return candidates; } @Override protected String getDefaultKey() { int current = Settings.Secure.getIntForUser(getContext().getContentResolver(), Settings.Secure.VR_DISPLAY_MODE, Settings.Secure.VR_DISPLAY_MODE_LOW_PERSISTENCE, mUserId); return PREF_KEY_PREFIX + current; } @Override protected boolean setDefaultKey(String key) { if (TextUtils.isEmpty(key)) { return false; } switch (key) { case PREF_KEY_PREFIX + 0: return Settings.Secure.putIntForUser(getContext().getContentResolver(), Settings.Secure.VR_DISPLAY_MODE, 0, mUserId); case PREF_KEY_PREFIX + 1: return Settings.Secure.putIntForUser(getContext().getContentResolver(), Settings.Secure.VR_DISPLAY_MODE, 1, mUserId); } return false; } static class VrCandidateInfo extends CandidateInfo { public final String label; public final int value; public VrCandidateInfo(Context context, int value, int resId) { super(true); this.value = value; label = context.getString(resId); } @Override public CharSequence loadLabel() { return label; } @Override public Drawable loadIcon() { return null; } @Override public String getKey() { return PREF_KEY_PREFIX + value; } } }
src/com/android/settings/widget/RadioButtonPickerFragment.java +1 −2 Original line number Diff line number Diff line Loading @@ -141,8 +141,7 @@ public abstract class RadioButtonPickerFragment extends InstrumentedPreferenceFr } for (Map.Entry<String, CandidateInfo> app : mCandidates.entrySet()) { RadioButtonPreference pref = new RadioButtonPreference(getPrefContext()); bindPreference( pref, app.getKey(), app.getValue(), defaultKey); bindPreference(pref, app.getKey(), app.getValue(), defaultKey); bindPreferenceExtra(pref, app.getKey(), app.getValue(), defaultKey, systemDefaultKey); screen.addPreference(pref); } Loading
tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java +0 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.settings.applications.defaultapps; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; Loading