Revert "Revert "Revert "Replace dynamic summary text for SettingPref"""

This reverts commit c1e9f8787f.

Reason for revert: There is an issue when dropdown menu text has a '%' sign in it.
Despite testing it on my own devices, the bug did not show up immediately.

Instead of continuing down this path for OC, we'll just revert
this patch, and then as an ugly, band-aid solution, check the
summary text for the "%s" substring, and hide it when found.
In O-DR onward, we'll look for a more permanent solution.

Change-Id: Ia7a04bfb7b09c436dc0f13564f2134a1f0c436e2
Bug: 36101902
Fix: 62211676
This commit is contained in:
Matthew Fritze
2017-06-06 01:02:19 +00:00
parent c1e9f8787f
commit ed761c4e74
5 changed files with 4 additions and 83 deletions

View File

@@ -22,6 +22,6 @@
<DropDownPreference <DropDownPreference
android:key="turn_on_automatically" android:key="turn_on_automatically"
android:title="@string/battery_saver_turn_on_automatically_title" android:title="@string/battery_saver_turn_on_automatically_title"
android:summary="@string/summary_placeholder" /> android:summary="%s" />
</PreferenceScreen> </PreferenceScreen>

View File

@@ -124,7 +124,7 @@
<DropDownPreference <DropDownPreference
android:key="dock_audio_media" android:key="dock_audio_media"
android:title="@string/dock_audio_media_title" android:title="@string/dock_audio_media_title"
android:summary="@string/summary_placeholder" /> android:summary="%s" />
<!-- Boot sounds --> <!-- Boot sounds -->
<SwitchPreference <SwitchPreference
@@ -135,7 +135,7 @@
<DropDownPreference <DropDownPreference
android:key="emergency_tone" android:key="emergency_tone"
android:title="@string/emergency_tone_title" android:title="@string/emergency_tone_title"
android:summary="@string/summary_placeholder" /> android:summary="%s" />
<com.android.settingslib.RestrictedPreference <com.android.settingslib.RestrictedPreference
android:key="cell_broadcast_settings" android:key="cell_broadcast_settings"

View File

@@ -99,6 +99,7 @@ public class BatterySaverSettings extends SettingsPreferenceFragment
} }
}; };
mTriggerPref.init(this); mTriggerPref.init(this);
mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
} }

View File

@@ -121,19 +121,6 @@ public class SettingPref {
if (mTwoState != null) { if (mTwoState != null) {
mTwoState.setChecked(val != 0); mTwoState.setChecked(val != 0);
} else if (mDropDown != null) { } else if (mDropDown != null) {
if (mValues != null) {
int index = 0;
for (int len = mValues.length; index < len; index++) {
if (mValues[index] == val) {
break;
}
}
if (index < mValues.length) {
CharSequence entry = mDropDown.getEntries()[index];
mDropDown.setSummary(entry);
}
}
mDropDown.setValue(Integer.toString(val)); mDropDown.setValue(Integer.toString(val));
} }
} }

View File

@@ -1,67 +0,0 @@
package com.android.settings.notification;
import android.content.res.Resources;
import android.content.Context;
import android.provider.Settings;
import android.support.v7.preference.DropDownPreference;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class SettingPrefTest {
@Test
public void update_setsDropDownSummaryText() {
Context context = RuntimeEnvironment.application;
String testSetting = "test_setting";
int[] values = new int[] {1,2,3};
String[] entries = new String[] {"one", "two", "three"};
SettingPref settingPref =
spy(new SettingPref(SettingPref.TYPE_GLOBAL, "key", testSetting, 0, values) {
@Override
protected String getCaption(Resources res, int value) {
return "temp";
}
});
DropDownPreference dropdownPref = spy(new DropDownPreference(context));
dropdownPref.setEntries(entries);
settingPref.mDropDown = dropdownPref;
Settings.Global.putInt(context.getContentResolver(), testSetting, values[2]);
settingPref.update(context);
assertThat(settingPref.mDropDown.getSummary()).isEqualTo(entries[2]);
}
@Test
public void update_setsDropDownSummaryText_noMatch_noError() {
Context context = RuntimeEnvironment.application;
String testSetting = "test_setting";
int[] values = new int[] {1,2,3};
String[] entries = new String[] {"one", "two", "three"};
SettingPref settingPref =
spy(new SettingPref(SettingPref.TYPE_GLOBAL, "key", testSetting, 0, values) {
@Override
protected String getCaption(Resources res, int value) {
return "temp";
}
});
DropDownPreference dropdownPref = spy(new DropDownPreference(context));
dropdownPref.setEntries(entries);
settingPref.mDropDown = dropdownPref;
Settings.Global.putInt(context.getContentResolver(), testSetting, -1);
settingPref.update(context);
assertThat(settingPref.mDropDown.getSummary()).isNull();
}
}