1 /*
2  * Copyright (C) 2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.camera;
18 
19 import android.content.Context;
20 import android.util.AttributeSet;
21 
22 import java.util.List;
23 
24 /* CountDownTimerPreference generates entries (i.e. what users see in the UI),
25  * and entry values (the actual value recorded in preference) in
26  * initCountDownTimeChoices(Context context), rather than reading the entries
27  * from a predefined list. When the entry values are a continuous list of numbers,
28  * (e.g. 0-60), it is more efficient to auto generate the list than to predefine it.*/
29 public class CountDownTimerPreference extends ListPreference {
30     private final static int MAX_DURATION = 60;
CountDownTimerPreference(Context context, AttributeSet attrs)31     public CountDownTimerPreference(Context context, AttributeSet attrs) {
32         super(context, attrs);
33         initCountDownDurationChoices(context);
34     }
35 
initCountDownDurationChoices(Context context)36     private void initCountDownDurationChoices(Context context) {
37         CharSequence[] entryValues = new CharSequence[MAX_DURATION + 1];
38         CharSequence[] entries = new CharSequence[MAX_DURATION + 1];
39         for (int i = 0; i <= MAX_DURATION; i++) {
40             entryValues[i] = Integer.toString(i);
41             if (i == 0) {
42                 entries[0] = context.getString(R.string.setting_off); // Off
43             } else {
44                 entries[i] = context.getResources()
45                         .getQuantityString(R.plurals.pref_camera_timer_entry, i, i);
46             }
47         }
48         setEntries(entries);
49         setEntryValues(entryValues);
50     }
51 }
52