120b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler/*
220b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler * Copyright (C) 2015 The Android Open Source Project
320b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler *
420b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler * Licensed under the Apache License, Version 2.0 (the "License");
520b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler * you may not use this file except in compliance with the License.
620b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler * You may obtain a copy of the License at
720b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler *
820b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler *      http://www.apache.org/licenses/LICENSE-2.0
920b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler *
1020b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler * Unless required by applicable law or agreed to in writing, software
1120b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler * distributed under the License is distributed on an "AS IS" BASIS,
1220b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1320b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler * See the License for the specific language governing permissions and
1420b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler * limitations under the License
1520b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler */
1620b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler
1720b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantlerpackage com.android.tv.quicksettings;
1820b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler
1920b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantlerimport android.content.Context;
2020b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantlerimport android.content.SharedPreferences;
2120b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantlerimport android.content.res.Resources;
2220b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantlerimport android.text.TextUtils;
2320b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler
2420b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantlerpublic class PresetSettingsListener implements SharedPreferences.OnSharedPreferenceChangeListener {
2520b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler
2620b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler    private final Context mContext;
2720b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler
2820b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler    PresetSettingsListener(Context context) {
2920b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        mContext = context;
3020b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler    }
3120b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler
3220b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler    @Override
3320b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
3420b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        if (!TextUtils.equals(key, "preset")) {
3520b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler            return;
3620b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        }
3720b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        final String preset = sharedPreferences.getString(key, "standard");
3820b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        final Resources res = mContext.getResources();
3920b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        final int[] newValues;
4020b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        switch (preset) {
4120b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler            case "standard":
4220b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler                newValues = res.getIntArray(R.array.standard_setting_values);
4320b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler                break;
4420b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler            case "cinema":
4520b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler                newValues = res.getIntArray(R.array.cinema_setting_values);
4620b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler                break;
4720b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler            case "vivid":
4820b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler                newValues = res.getIntArray(R.array.vivid_setting_values);
4920b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler                break;
5020b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler            case "game":
5120b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler                newValues = res.getIntArray(R.array.game_setting_values);
5220b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler                break;
5320b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler            default:
5420b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler            case "custom":
5520b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler                return;
5620b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        }
5720b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        final String[] keys = res.getStringArray(R.array.setting_keys);
5820b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler
5920b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        final SharedPreferences.Editor prefs = sharedPreferences.edit();
6020b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        try {
6120b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler            for (int i = 0; i < keys.length; i++) {
6220b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler                prefs.putInt(keys[i], newValues[i]);
6320b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler            }
6420b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        } finally {
6520b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler            prefs.apply();
6620b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler        }
6720b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler
6820b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler    }
6920b1a50b536c8c68ceda1ce529d62e52e39f653dTony Mantler}
70