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