Bug 5003461 - Removed animation option

Associated change in DatabaseHelper to reset this value in the database.

Change-Id: I530da617c44773fad31e62f595d0c335daf64148
This commit is contained in:
Gilles Debunne
2011-07-08 09:40:00 -07:00
parent 6dc0f9639e
commit 737c81c775
4 changed files with 18 additions and 139 deletions

View File

@@ -48,30 +48,6 @@
<item>yyyy-MM-dd</item> <item>yyyy-MM-dd</item>
</string-array> </string-array>
<!-- Display settings. The type of animations to show. -->
<string-array name="animations_entries">
<item>No animations</item>
<item>Some animations</item>
<item>All animations</item>
</string-array>
<!-- Display settings. Summary for each type of animation. -->
<string-array name="animations_summaries">
<item>No window animations are shown</item>
<item>Some window animations are shown</item>
<item>All window animations are shown</item>
</string-array>
<!-- Do not translate. -->
<string-array name="animations_values">
<!-- Do not translate. -->
<item>00</item>
<!-- Do not translate. -->
<item>01</item>
<!-- Do not translate. -->
<item>11</item>
</string-array>
<!-- Display settings. The delay in inactivity before the screen is turned off. These are shown in a list dialog. --> <!-- Display settings. The delay in inactivity before the screen is turned off. These are shown in a list dialog. -->
<string-array name="screen_timeout_entries"> <string-array name="screen_timeout_entries">
<item>15 seconds</item> <item>15 seconds</item>

View File

@@ -1476,12 +1476,6 @@
<!-- Display settings --> <!-- Display settings -->
<!-- Sound & display settings screen, section header for settings related to display --> <!-- Sound & display settings screen, section header for settings related to display -->
<string name="display_settings">Screen settings</string> <string name="display_settings">Screen settings</string>
<!-- Sound & display settings screen, animations check box label -->
<string name="animations_title">Animation</string>
<!-- Sound & display settings screen, animations option summary text when check box is selected -->
<string name="animations_summary_on">Show animation when opening &amp; closing windows</string>
<!-- Sound & display settings screen, animations option summary text when check box is clear -->
<string name="animations_summary_off">Show animation when opening &amp; closing windows</string>
<!-- Sound & display settings screen, accelerometer-based rotation check box label --> <!-- Sound & display settings screen, accelerometer-based rotation check box label -->
<string name="accelerometer_title">Auto-rotate screen</string> <string name="accelerometer_title">Auto-rotate screen</string>
<!-- Sound & display settings screen, accelerometer-based rotation summary text when check box is selected --> <!-- Sound & display settings screen, accelerometer-based rotation summary text when check box is selected -->

View File

@@ -23,17 +23,15 @@
android:title="@string/brightness" android:title="@string/brightness"
android:dialogTitle="@string/brightness" /> android:dialogTitle="@string/brightness" />
<PreferenceScreen
android:key="wallpaper"
android:title="@string/wallpaper_settings_title"
android:fragment="com.android.settings.WallpaperTypeSettings" />
<CheckBoxPreference <CheckBoxPreference
android:key="accelerometer" android:key="accelerometer"
android:title="@string/accelerometer_title"/> android:title="@string/accelerometer_title"/>
<ListPreference
android:key="animations"
android:title="@string/animations_title"
android:persistent="false"
android:entries="@array/animations_entries"
android:entryValues="@array/animations_values" />
<ListPreference <ListPreference
android:key="screen_timeout" android:key="screen_timeout"
android:title="@string/screen_timeout" android:title="@string/screen_timeout"
@@ -42,18 +40,10 @@
android:entries="@array/screen_timeout_entries" android:entries="@array/screen_timeout_entries"
android:entryValues="@array/screen_timeout_values" /> android:entryValues="@array/screen_timeout_values" />
<PreferenceScreen
android:key="wallpaper"
android:title="@string/wallpaper_settings_title"
android:fragment="com.android.settings.WallpaperTypeSettings"
/>
<PreferenceScreen <PreferenceScreen
android:title="@string/dream_settings_title" android:title="@string/dream_settings_title"
android:summary="@string/dream_settings_summary" android:summary="@string/dream_settings_summary"
android:fragment="com.android.settings.DreamSettings" android:fragment="com.android.settings.DreamSettings" />
>
</PreferenceScreen>
<ListPreference <ListPreference
android:key="font_size" android:key="font_size"

View File

@@ -18,12 +18,6 @@ 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.content.ContentResolver;
import android.content.Context;
import android.content.res.Configuration;
import android.app.ActivityManagerNative; import android.app.ActivityManagerNative;
import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManager;
import android.content.ContentResolver; import android.content.ContentResolver;
@@ -33,14 +27,12 @@ import android.database.ContentObserver;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.ServiceManager;
import android.preference.CheckBoxPreference; import android.preference.CheckBoxPreference;
import android.preference.ListPreference; import android.preference.ListPreference;
import android.preference.Preference; import android.preference.Preference;
import android.preference.PreferenceScreen; import android.preference.PreferenceScreen;
import android.provider.Settings; import android.provider.Settings;
import android.util.Log; import android.util.Log;
import android.view.IWindowManager;
import java.util.ArrayList; import java.util.ArrayList;
@@ -52,19 +44,14 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
private static final int FALLBACK_SCREEN_TIMEOUT_VALUE = 30000; private static final int FALLBACK_SCREEN_TIMEOUT_VALUE = 30000;
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_ACCELEROMETER = "accelerometer"; private static final String KEY_ACCELEROMETER = "accelerometer";
private static final String KEY_FONT_SIZE = "font_size"; private static final String KEY_FONT_SIZE = "font_size";
private ListPreference mAnimations;
private CheckBoxPreference mAccelerometer; private CheckBoxPreference mAccelerometer;
private float[] mAnimationScales;
private ListPreference mFontSizePref; private ListPreference mFontSizePref;
private final Configuration mCurConfig = new Configuration(); private final Configuration mCurConfig = new Configuration();
private IWindowManager mWindowManager;
private ListPreference mScreenTimeoutPreference; private ListPreference mScreenTimeoutPreference;
private ContentObserver mAccelerometerRotationObserver = new ContentObserver(new Handler()) { private ContentObserver mAccelerometerRotationObserver = new ContentObserver(new Handler()) {
@@ -78,18 +65,9 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
ContentResolver resolver = getActivity().getContentResolver(); ContentResolver resolver = getActivity().getContentResolver();
mWindowManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window"));
addPreferencesFromResource(R.xml.display_settings); addPreferencesFromResource(R.xml.display_settings);
// Fetch this once before attaching a listener for changes.
try {
mAnimationScales = mWindowManager.getAnimationScales();
} catch (RemoteException e) {
// Shouldn't happen and not much can be done anyway.
}
mAnimations = (ListPreference) findPreference(KEY_ANIMATIONS);
mAnimations.setOnPreferenceChangeListener(this);
mAccelerometer = (CheckBoxPreference) findPreference(KEY_ACCELEROMETER); mAccelerometer = (CheckBoxPreference) findPreference(KEY_ACCELEROMETER);
mAccelerometer.setPersistent(false); mAccelerometer.setPersistent(false);
@@ -99,7 +77,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
mScreenTimeoutPreference.setValue(String.valueOf(currentTimeout)); mScreenTimeoutPreference.setValue(String.valueOf(currentTimeout));
mScreenTimeoutPreference.setOnPreferenceChangeListener(this); mScreenTimeoutPreference.setOnPreferenceChangeListener(this);
disableUnusableTimeouts(mScreenTimeoutPreference); disableUnusableTimeouts(mScreenTimeoutPreference);
updateTimeoutPreferenceDescription(resolver, mScreenTimeoutPreference, updateTimeoutPreferenceDescription(mScreenTimeoutPreference,
R.string.screen_timeout_summary, currentTimeout); R.string.screen_timeout_summary, currentTimeout);
mFontSizePref = (ListPreference) findPreference(KEY_FONT_SIZE); mFontSizePref = (ListPreference) findPreference(KEY_FONT_SIZE);
@@ -107,15 +85,14 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
} }
private void updateTimeoutPreferenceDescription( private void updateTimeoutPreferenceDescription(
ContentResolver resolver, ListPreference pref,
ListPreference pref,
int summaryStrings, int summaryStrings,
long currentTimeout) { long currentTimeout) {
updateTimeoutPreferenceDescription(resolver, pref, summaryStrings, 0, currentTimeout); updateTimeoutPreferenceDescription(pref, summaryStrings, 0, currentTimeout);
} }
private void updateTimeoutPreferenceDescription( private void updateTimeoutPreferenceDescription(
ContentResolver resolver, ListPreference pref,
ListPreference pref,
int summaryStrings, int summaryStrings,
int zeroString, int zeroString,
long currentTimeout) { long currentTimeout) {
@@ -188,19 +165,18 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
public void readFontSizePreference(ListPreference pref) { public void readFontSizePreference(ListPreference pref) {
try { try {
mCurConfig.updateFrom( mCurConfig.updateFrom(ActivityManagerNative.getDefault().getConfiguration());
ActivityManagerNative.getDefault().getConfiguration());
} catch (RemoteException e) { } catch (RemoteException e) {
Log.w(TAG, "Unable to retrieve font size");
} }
pref.setValueIndex(floatToIndex(mCurConfig.fontScale, pref.setValueIndex(floatToIndex(mCurConfig.fontScale, R.array.entryvalues_font_size));
R.array.entryvalues_font_size));
} }
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
updateState(true); updateState();
getContentResolver().registerContentObserver( getContentResolver().registerContentObserver(
Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION), true, Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION), true,
mAccelerometerRotationObserver); mAccelerometerRotationObserver);
@@ -213,33 +189,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
getContentResolver().unregisterContentObserver(mAccelerometerRotationObserver); getContentResolver().unregisterContentObserver(mAccelerometerRotationObserver);
} }
private void updateState(boolean force) { private void updateState() {
int animations = 0;
try {
mAnimationScales = mWindowManager.getAnimationScales();
} catch (RemoteException e) {
// Shouldn't happen and not much can be done anyway.
}
if (mAnimationScales != null) {
if (mAnimationScales.length >= 1) {
animations = ((int)(mAnimationScales[0]+.5f)) % 10;
}
if (mAnimationScales.length >= 2) {
animations += (((int)(mAnimationScales[1]+.5f)) & 0x7) * 10;
}
}
int idx = 0;
int best = 0;
CharSequence[] aents = mAnimations.getEntryValues();
for (int i=0; i<aents.length; i++) {
int val = Integer.parseInt(aents[i].toString());
if (val <= animations && val > best) {
best = val;
idx = i;
}
}
mAnimations.setValueIndex(idx);
updateAnimationsSummary(mAnimations.getValue());
updateAccelerometerRotationCheckbox(); updateAccelerometerRotationCheckbox();
readFontSizePreference(mFontSizePref); readFontSizePreference(mFontSizePref);
} }
@@ -250,24 +200,12 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
Settings.System.ACCELEROMETER_ROTATION, 0) != 0); Settings.System.ACCELEROMETER_ROTATION, 0) != 0);
} }
private void updateAnimationsSummary(Object value) {
CharSequence[] summaries = getResources().getTextArray(R.array.animations_summaries);
CharSequence[] values = mAnimations.getEntryValues();
for (int i=0; i<values.length; i++) {
//Log.i("foo", "Comparing entry "+ values[i] + " to current "
// + mAnimations.getValue());
if (values[i].equals(value)) {
mAnimations.setSummary(summaries[i]);
break;
}
}
}
public void writeFontSizePreference(Object objValue) { public void writeFontSizePreference(Object objValue) {
try { try {
mCurConfig.fontScale = Float.parseFloat(objValue.toString()); mCurConfig.fontScale = Float.parseFloat(objValue.toString());
ActivityManagerNative.getDefault().updateConfiguration(mCurConfig); ActivityManagerNative.getDefault().updateConfiguration(mCurConfig);
} catch (RemoteException e) { } catch (RemoteException e) {
Log.w(TAG, "Unable to save font size");
} }
} }
@@ -283,31 +221,12 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
public boolean onPreferenceChange(Preference preference, Object objValue) { public boolean onPreferenceChange(Preference preference, Object objValue) {
final String key = preference.getKey(); final String key = preference.getKey();
if (KEY_ANIMATIONS.equals(key)) {
try {
int value = Integer.parseInt((String) objValue);
if (mAnimationScales.length >= 1) {
mAnimationScales[0] = value%10;
}
if (mAnimationScales.length >= 2) {
mAnimationScales[1] = (value/10)%10;
}
try {
mWindowManager.setAnimationScales(mAnimationScales);
} catch (RemoteException e) {
}
updateAnimationsSummary(objValue);
} catch (NumberFormatException e) {
Log.e(TAG, "could not persist animation setting", e);
}
}
if (KEY_SCREEN_TIMEOUT.equals(key)) { if (KEY_SCREEN_TIMEOUT.equals(key)) {
int value = Integer.parseInt((String) objValue); int value = Integer.parseInt((String) objValue);
try { try {
Settings.System.putInt(getContentResolver(), Settings.System.putInt(getContentResolver(),
SCREEN_OFF_TIMEOUT, value); SCREEN_OFF_TIMEOUT, value);
updateTimeoutPreferenceDescription(getContentResolver(), mScreenTimeoutPreference, updateTimeoutPreferenceDescription(mScreenTimeoutPreference,
R.string.screen_timeout_summary, value); R.string.screen_timeout_summary, value);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
Log.e(TAG, "could not persist screen timeout setting", e); Log.e(TAG, "could not persist screen timeout setting", e);