Change-Id: I702fdb87ed821290b5a895381f7b987e3a36a58d Signed-off-by: mydongistiny <jaysonedson@gmail.com> Signed-off-by: Arghya Chanda <arghyac35@gmail.com> Signed-off-by: SagarMakhar <sagarmakhar@gmail.com> Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
186 lines
8.1 KiB
Java
186 lines
8.1 KiB
Java
/*
|
|
* Copyright (C) 2014 TeamEos
|
|
*
|
|
* 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.cherish.settings.fragments;
|
|
|
|
import android.app.Activity;
|
|
import android.content.Context;
|
|
import android.content.ContentResolver;
|
|
import android.content.res.Resources;
|
|
import android.database.ContentObserver;
|
|
import android.content.Intent;
|
|
import android.content.res.Resources;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.os.SystemProperties;
|
|
import android.os.UserHandle;
|
|
import androidx.preference.ListPreference;
|
|
import androidx.preference.Preference;
|
|
import androidx.preference.PreferenceScreen;
|
|
import androidx.preference.Preference.OnPreferenceChangeListener;
|
|
import androidx.preference.SwitchPreference;
|
|
import android.provider.Settings;
|
|
import android.view.View;
|
|
import android.widget.Toast;
|
|
|
|
import com.android.settings.R;
|
|
import com.android.settings.SettingsPreferenceFragment;
|
|
|
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
|
|
|
import com.cherish.settings.preferences.CustomSeekBarPreference;
|
|
|
|
import com.android.settings.search.BaseSearchIndexProvider;
|
|
import com.android.settingslib.search.SearchIndexable;
|
|
import android.provider.SearchIndexableResource;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.HashSet;
|
|
import java.util.List;
|
|
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
|
|
public class AnimationsSettings extends SettingsPreferenceFragment
|
|
implements OnPreferenceChangeListener {
|
|
|
|
private static final String PREF_TILE_ANIM_STYLE = "qs_tile_animation_style";
|
|
private static final String PREF_TILE_ANIM_DURATION = "qs_tile_animation_duration";
|
|
private static final String PREF_TILE_ANIM_INTERPOLATOR = "qs_tile_animation_interpolator";
|
|
|
|
private ListPreference mTileAnimationStyle;
|
|
private ListPreference mTileAnimationDuration;
|
|
private ListPreference mTileAnimationInterpolator;
|
|
|
|
@Override
|
|
public int getMetricsCategory() {
|
|
return MetricsEvent.CHERISH_SETTINGS;
|
|
}
|
|
|
|
@Override
|
|
public void onCreate(Bundle icicle) {
|
|
super.onCreate(icicle);
|
|
addPreferencesFromResource(R.xml.cherish_settings_animations);
|
|
ContentResolver resolver = getActivity().getContentResolver();
|
|
PreferenceScreen prefs = getPreferenceScreen();
|
|
|
|
// QS animation
|
|
mTileAnimationStyle = (ListPreference) findPreference(PREF_TILE_ANIM_STYLE);
|
|
int tileAnimationStyle = Settings.System.getIntForUser(resolver,
|
|
Settings.System.ANIM_TILE_STYLE, 0, UserHandle.USER_CURRENT);
|
|
mTileAnimationStyle.setValue(String.valueOf(tileAnimationStyle));
|
|
updateTileAnimationStyleSummary(tileAnimationStyle);
|
|
updateAnimTileStyle(tileAnimationStyle);
|
|
mTileAnimationStyle.setOnPreferenceChangeListener(this);
|
|
|
|
mTileAnimationDuration = (ListPreference) findPreference(PREF_TILE_ANIM_DURATION);
|
|
int tileAnimationDuration = Settings.System.getIntForUser(resolver,
|
|
Settings.System.ANIM_TILE_DURATION, 2000, UserHandle.USER_CURRENT);
|
|
mTileAnimationDuration.setValue(String.valueOf(tileAnimationDuration));
|
|
updateTileAnimationDurationSummary(tileAnimationDuration);
|
|
mTileAnimationDuration.setOnPreferenceChangeListener(this);
|
|
|
|
mTileAnimationInterpolator = (ListPreference) findPreference(PREF_TILE_ANIM_INTERPOLATOR);
|
|
int tileAnimationInterpolator = Settings.System.getIntForUser(getContentResolver(),
|
|
Settings.System.ANIM_TILE_INTERPOLATOR, 0, UserHandle.USER_CURRENT);
|
|
mTileAnimationInterpolator.setValue(String.valueOf(tileAnimationInterpolator));
|
|
updateTileAnimationInterpolatorSummary(tileAnimationInterpolator);
|
|
mTileAnimationInterpolator.setOnPreferenceChangeListener(this);
|
|
}
|
|
|
|
@Override
|
|
public void onResume() {
|
|
super.onResume();
|
|
}
|
|
|
|
@Override
|
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
|
ContentResolver resolver = getActivity().getContentResolver();
|
|
if (preference == mTileAnimationStyle) {
|
|
int tileAnimationStyle = Integer.valueOf((String) newValue);
|
|
Settings.System.putIntForUser(resolver, Settings.System.ANIM_TILE_STYLE,
|
|
tileAnimationStyle, UserHandle.USER_CURRENT);
|
|
updateTileAnimationStyleSummary(tileAnimationStyle);
|
|
updateAnimTileStyle(tileAnimationStyle);
|
|
return true;
|
|
} else if (preference == mTileAnimationDuration) {
|
|
int tileAnimationDuration = Integer.valueOf((String) newValue);
|
|
Settings.System.putIntForUser(resolver, Settings.System.ANIM_TILE_DURATION,
|
|
tileAnimationDuration, UserHandle.USER_CURRENT);
|
|
updateTileAnimationDurationSummary(tileAnimationDuration);
|
|
return true;
|
|
} else if (preference == mTileAnimationInterpolator) {
|
|
int tileAnimationInterpolator = Integer.valueOf((String) newValue);
|
|
Settings.System.putIntForUser(resolver, Settings.System.ANIM_TILE_INTERPOLATOR,
|
|
tileAnimationInterpolator, UserHandle.USER_CURRENT);
|
|
updateTileAnimationInterpolatorSummary(tileAnimationInterpolator);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private void updateTileAnimationStyleSummary(int tileAnimationStyle) {
|
|
String prefix = (String) mTileAnimationStyle.getEntries()[mTileAnimationStyle.findIndexOfValue(String
|
|
.valueOf(tileAnimationStyle))];
|
|
mTileAnimationStyle.setSummary(getResources().getString(R.string.qs_set_animation_style, prefix));
|
|
}
|
|
|
|
private void updateTileAnimationDurationSummary(int tileAnimationDuration) {
|
|
String prefix = (String) mTileAnimationDuration.getEntries()[mTileAnimationDuration.findIndexOfValue(String
|
|
.valueOf(tileAnimationDuration))];
|
|
mTileAnimationDuration.setSummary(getResources().getString(R.string.qs_set_animation_duration, prefix));
|
|
}
|
|
|
|
private void updateTileAnimationInterpolatorSummary(int tileAnimationInterpolator) {
|
|
String prefix = (String) mTileAnimationInterpolator.getEntries()[mTileAnimationInterpolator.findIndexOfValue(String
|
|
.valueOf(tileAnimationInterpolator))];
|
|
mTileAnimationInterpolator.setSummary(getResources().getString(R.string.qs_set_animation_interpolator, prefix));
|
|
}
|
|
|
|
private void updateAnimTileStyle(int tileAnimationStyle) {
|
|
if (mTileAnimationDuration != null) {
|
|
if (tileAnimationStyle == 0) {
|
|
mTileAnimationDuration.setSelectable(false);
|
|
mTileAnimationInterpolator.setSelectable(false);
|
|
} else {
|
|
mTileAnimationDuration.setSelectable(true);
|
|
mTileAnimationInterpolator.setSelectable(true);
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* For Search.
|
|
*/
|
|
|
|
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
|
new BaseSearchIndexProvider() {
|
|
|
|
@Override
|
|
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
|
|
boolean enabled) {
|
|
ArrayList<SearchIndexableResource> result =
|
|
new ArrayList<SearchIndexableResource>();
|
|
SearchIndexableResource sir = new SearchIndexableResource(context);
|
|
sir.xmlResId = R.xml.cherish_settings_animations;
|
|
result.add(sir);
|
|
return result;
|
|
}
|
|
|
|
@Override
|
|
public List<String> getNonIndexableKeys(Context context) {
|
|
List<String> keys = super.getNonIndexableKeys(context);
|
|
return keys;
|
|
}
|
|
};
|
|
} |