154d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu/*
254d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * Copyright (C) 2013 The Android Open Source Project
354d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu *
454d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * Licensed under the Apache License, Version 2.0 (the "License");
554d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * you may not use this file except in compliance with the License.
654d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * You may obtain a copy of the License at
754d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu *
854d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu *      http://www.apache.org/licenses/LICENSE-2.0
954d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu *
1054d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * Unless required by applicable law or agreed to in writing, software
1154d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * distributed under the License is distributed on an "AS IS" BASIS,
1254d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1354d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * See the License for the specific language governing permissions and
1454d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * limitations under the License.
1554d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu */
1654d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu
1754d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liupackage com.android.camera;
1854d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu
1954d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liuimport android.content.Context;
2054d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liuimport android.util.AttributeSet;
2154d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu
2254d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liuimport java.util.List;
2354d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu
2454d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu/* CountDownTimerPreference generates entries (i.e. what users see in the UI),
2554d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * and entry values (the actual value recorded in preference) in
2654d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * initCountDownTimeChoices(Context context), rather than reading the entries
2754d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * from a predefined list. When the entry values are a continuous list of numbers,
2854d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu * (e.g. 0-60), it is more efficient to auto generate the list than to predefine it.*/
2954d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liupublic class CountDownTimerPreference extends ListPreference {
3054d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu    private final static int MAX_DURATION = 60;
3154d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu    public CountDownTimerPreference(Context context, AttributeSet attrs) {
3254d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu        super(context, attrs);
3354d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu        initCountDownDurationChoices(context);
3454d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu    }
3554d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu
3654d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu    private void initCountDownDurationChoices(Context context) {
3754d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu        CharSequence[] entryValues = new CharSequence[MAX_DURATION + 1];
3854d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu        CharSequence[] entries = new CharSequence[MAX_DURATION + 1];
3954d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu        for (int i = 0; i <= MAX_DURATION; i++) {
4054d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu            entryValues[i] = Integer.toString(i);
4154d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu            if (i == 0) {
4254d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu                entries[0] = context.getString(R.string.setting_off); // Off
4354d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu            } else {
4454d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu                entries[i] = context.getResources()
4554d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu                        .getQuantityString(R.plurals.pref_camera_timer_entry, i, i);
4654d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu            }
4754d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu        }
4854d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu        setEntries(entries);
4954d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu        setEntryValues(entryValues);
5054d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu    }
5154d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu}
52