Add font size preference.
Shamelessly stolen from SpareParts. Change-Id: I5bcdc5c738a0b2af7e7bd8dae303997c28298086
This commit is contained in:
@@ -137,6 +137,26 @@
|
|||||||
<item>1800000</item>
|
<item>1800000</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="entries_font_size">
|
||||||
|
<item>Extremely Small</item>
|
||||||
|
<item>Extra Small</item>
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Normal</item>
|
||||||
|
<item>Large</item>
|
||||||
|
<item>Extra Large</item>
|
||||||
|
<item>Extremely Large</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="entryvalues_font_size">
|
||||||
|
<item>0.70</item>
|
||||||
|
<item>0.85</item>
|
||||||
|
<item>0.95</item>
|
||||||
|
<item>1.0</item>
|
||||||
|
<item>1.05</item>
|
||||||
|
<item>1.15</item>
|
||||||
|
<item>1.30</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
<!-- TTS settings -->
|
<!-- TTS settings -->
|
||||||
|
|
||||||
<!-- Default speech rate choices -->
|
<!-- Default speech rate choices -->
|
||||||
|
@@ -1432,6 +1432,12 @@
|
|||||||
<string name="screen_timeout_summary">Screen turns off automatically after <xliff:g id="timeout_description">%1$s</xliff:g></string>
|
<string name="screen_timeout_summary">Screen turns off automatically after <xliff:g id="timeout_description">%1$s</xliff:g></string>
|
||||||
<!-- Sound & display settings screen, setting option name to change whether the screen adjusts automatically based on lighting conditions -->
|
<!-- Sound & display settings screen, setting option name to change whether the screen adjusts automatically based on lighting conditions -->
|
||||||
<string name="automatic_brightness">Automatic brightness</string>
|
<string name="automatic_brightness">Automatic brightness</string>
|
||||||
|
<!-- [CHAR LIMIT=30] Sound & display settings screen, setting option name to change font size -->
|
||||||
|
<string name="title_font_size">Font size</string>
|
||||||
|
<!-- [CHAR LIMIT=40] Sound & display settings screen, setting option summary to change font size -->
|
||||||
|
<string name="summary_font_size">Overall size of fonts</string>
|
||||||
|
<!-- [CHAR LIMIT=40] Sound & display settings screen, title of dialog for picking font size -->
|
||||||
|
<string name="dialog_title_font_size">Select font size</string>
|
||||||
|
|
||||||
<!-- SIM lock settings title -->
|
<!-- SIM lock settings title -->
|
||||||
<string name="sim_lock_settings">SIM card lock settings</string>
|
<string name="sim_lock_settings">SIM card lock settings</string>
|
||||||
|
@@ -41,4 +41,13 @@
|
|||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:entries="@array/screen_timeout_entries"
|
android:entries="@array/screen_timeout_entries"
|
||||||
android:entryValues="@array/screen_timeout_values" />
|
android:entryValues="@array/screen_timeout_values" />
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:key="font_size"
|
||||||
|
android:title="@string/title_font_size"
|
||||||
|
android:summary="@string/summary_font_size"
|
||||||
|
android:entries="@array/entries_font_size"
|
||||||
|
android:entryValues="@array/entryvalues_font_size"
|
||||||
|
android:dialogTitle="@string/dialog_title_font_size" />
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -18,9 +18,11 @@ package com.android.settings;
|
|||||||
|
|
||||||
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
|
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
|
||||||
|
|
||||||
|
import android.app.ActivityManagerNative;
|
||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -46,11 +48,15 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
|||||||
private static final String KEY_SCREEN_TIMEOUT = "screen_timeout";
|
private static final String KEY_SCREEN_TIMEOUT = "screen_timeout";
|
||||||
private static final String KEY_ANIMATIONS = "animations";
|
private static final String KEY_ANIMATIONS = "animations";
|
||||||
private static final String KEY_ACCELEROMETER = "accelerometer";
|
private static final String KEY_ACCELEROMETER = "accelerometer";
|
||||||
|
private static final String KEY_FONT_SIZE = "font_size";
|
||||||
|
|
||||||
private ListPreference mAnimations;
|
private ListPreference mAnimations;
|
||||||
private CheckBoxPreference mAccelerometer;
|
private CheckBoxPreference mAccelerometer;
|
||||||
private float[] mAnimationScales;
|
private float[] mAnimationScales;
|
||||||
|
private ListPreference mFontSizePref;
|
||||||
|
|
||||||
|
private final Configuration mCurConfig = new Configuration();
|
||||||
|
|
||||||
private IWindowManager mWindowManager;
|
private IWindowManager mWindowManager;
|
||||||
|
|
||||||
private ListPreference mScreenTimeoutPreference;
|
private ListPreference mScreenTimeoutPreference;
|
||||||
@@ -82,6 +88,9 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
|||||||
mScreenTimeoutPreference.setOnPreferenceChangeListener(this);
|
mScreenTimeoutPreference.setOnPreferenceChangeListener(this);
|
||||||
disableUnusableTimeouts(mScreenTimeoutPreference);
|
disableUnusableTimeouts(mScreenTimeoutPreference);
|
||||||
updateTimeoutPreferenceDescription(resolver, currentTimeout);
|
updateTimeoutPreferenceDescription(resolver, currentTimeout);
|
||||||
|
|
||||||
|
mFontSizePref = (ListPreference) findPreference(KEY_FONT_SIZE);
|
||||||
|
mFontSizePref.setOnPreferenceChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateTimeoutPreferenceDescription(ContentResolver resolver, long currentTimeout) {
|
private void updateTimeoutPreferenceDescription(ContentResolver resolver, long currentTimeout) {
|
||||||
@@ -135,6 +144,29 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
|||||||
screenTimeoutPreference.setEnabled(revisedEntries.size() > 0);
|
screenTimeoutPreference.setEnabled(revisedEntries.size() > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int floatToIndex(float val, int resid) {
|
||||||
|
String[] indices = getResources().getStringArray(resid);
|
||||||
|
float lastVal = Float.parseFloat(indices[0]);
|
||||||
|
for (int i=1; i<indices.length; i++) {
|
||||||
|
float thisVal = Float.parseFloat(indices[i]);
|
||||||
|
if (val < (lastVal + (thisVal-lastVal)*.5f)) {
|
||||||
|
return i-1;
|
||||||
|
}
|
||||||
|
lastVal = thisVal;
|
||||||
|
}
|
||||||
|
return indices.length-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void readFontSizePreference(ListPreference pref) {
|
||||||
|
try {
|
||||||
|
mCurConfig.updateFrom(
|
||||||
|
ActivityManagerNative.getDefault().getConfiguration());
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
}
|
||||||
|
pref.setValueIndex(floatToIndex(mCurConfig.fontScale,
|
||||||
|
R.array.entryvalues_font_size));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
@@ -179,6 +211,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
|||||||
mAnimations.setValueIndex(idx);
|
mAnimations.setValueIndex(idx);
|
||||||
updateAnimationsSummary(mAnimations.getValue());
|
updateAnimationsSummary(mAnimations.getValue());
|
||||||
updateAccelerometerRotationCheckbox();
|
updateAccelerometerRotationCheckbox();
|
||||||
|
readFontSizePreference(mFontSizePref);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateAccelerometerRotationCheckbox() {
|
private void updateAccelerometerRotationCheckbox() {
|
||||||
@@ -200,6 +233,14 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void writeFontSizePreference(Object objValue) {
|
||||||
|
try {
|
||||||
|
mCurConfig.fontScale = Float.parseFloat(objValue.toString());
|
||||||
|
ActivityManagerNative.getDefault().updateConfiguration(mCurConfig);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
||||||
if (preference == mAccelerometer) {
|
if (preference == mAccelerometer) {
|
||||||
@@ -241,6 +282,9 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
|||||||
Log.e(TAG, "could not persist screen timeout setting", e);
|
Log.e(TAG, "could not persist screen timeout setting", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (KEY_FONT_SIZE.equals(key)) {
|
||||||
|
writeFontSizePreference(objValue);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user