• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2011 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.browser.preferences;
18 
19 import android.content.Context;
20 import android.os.Bundle;
21 import android.preference.Preference;
22 import android.preference.PreferenceFragment;
23 import android.webkit.WebView;
24 
25 import com.android.browser.BrowserSettings;
26 import com.android.browser.PreferenceKeys;
27 import com.android.browser.R;
28 
29 import java.text.NumberFormat;
30 
31 public class AccessibilityPreferencesFragment extends PreferenceFragment
32         implements Preference.OnPreferenceChangeListener {
33 
34     NumberFormat mFormat;
35     // Used to pause/resume timers, which are required for WebViewPreview
36     WebView mControlWebView;
37 
38     @Override
onCreate(Bundle savedInstanceState)39     public void onCreate(Bundle savedInstanceState) {
40         super.onCreate(savedInstanceState);
41         mControlWebView = new WebView(getActivity());
42         addPreferencesFromResource(R.xml.accessibility_preferences);
43         BrowserSettings settings = BrowserSettings.getInstance();
44         mFormat = NumberFormat.getPercentInstance();
45 
46         Preference e = findPreference(PreferenceKeys.PREF_MIN_FONT_SIZE);
47         e.setOnPreferenceChangeListener(this);
48         updateMinFontSummary(e, settings.getMinimumFontSize());
49         e = findPreference(PreferenceKeys.PREF_TEXT_ZOOM);
50         e.setOnPreferenceChangeListener(this);
51         updateTextZoomSummary(e, settings.getTextZoom());
52         e = findPreference(PreferenceKeys.PREF_DOUBLE_TAP_ZOOM);
53         e.setOnPreferenceChangeListener(this);
54         updateDoubleTapZoomSummary(e, settings.getDoubleTapZoom());
55         e = findPreference(PreferenceKeys.PREF_INVERTED_CONTRAST);
56         e.setOnPreferenceChangeListener(this);
57         updateInvertedContrastSummary(e, (int) (settings.getInvertedContrast() * 100));
58     }
59 
60     @Override
onResume()61     public void onResume() {
62         super.onResume();
63         mControlWebView.resumeTimers();
64     }
65 
66     @Override
onPause()67     public void onPause() {
68         super.onPause();
69         mControlWebView.pauseTimers();
70     }
71 
72     @Override
onDestroy()73     public void onDestroy() {
74         super.onDestroy();
75         mControlWebView.destroy();
76         mControlWebView = null;
77     }
78 
updateMinFontSummary(Preference pref, int minFontSize)79     void updateMinFontSummary(Preference pref, int minFontSize) {
80         Context c = getActivity();
81         pref.setSummary(c.getString(R.string.pref_min_font_size_value, minFontSize));
82     }
83 
updateTextZoomSummary(Preference pref, int textZoom)84     void updateTextZoomSummary(Preference pref, int textZoom) {
85         pref.setSummary(mFormat.format(textZoom / 100.0));
86     }
87 
updateDoubleTapZoomSummary(Preference pref, int doubleTapZoom)88     void updateDoubleTapZoomSummary(Preference pref, int doubleTapZoom) {
89         pref.setSummary(mFormat.format(doubleTapZoom / 100.0));
90     }
91 
updateInvertedContrastSummary(Preference pref, int contrast)92     void updateInvertedContrastSummary(Preference pref, int contrast) {
93         pref.setSummary(mFormat.format(contrast / 100.0));
94     }
95 
96     @Override
onPreferenceChange(Preference pref, Object objValue)97     public boolean onPreferenceChange(Preference pref, Object objValue) {
98         if (getActivity() == null) {
99             // We aren't attached, so don't accept preferences changes from the
100             // invisible UI.
101             return false;
102         }
103 
104         if (PreferenceKeys.PREF_MIN_FONT_SIZE.equals(pref.getKey())) {
105             updateMinFontSummary(pref, BrowserSettings
106                     .getAdjustedMinimumFontSize((Integer) objValue));
107         }
108         if (PreferenceKeys.PREF_TEXT_ZOOM.equals(pref.getKey())) {
109             BrowserSettings settings = BrowserSettings.getInstance();
110             updateTextZoomSummary(pref, settings
111                     .getAdjustedTextZoom((Integer) objValue));
112         }
113         if (PreferenceKeys.PREF_DOUBLE_TAP_ZOOM.equals(pref.getKey())) {
114             BrowserSettings settings = BrowserSettings.getInstance();
115             updateDoubleTapZoomSummary(pref, settings
116                     .getAdjustedDoubleTapZoom((Integer) objValue));
117         }
118         if (PreferenceKeys.PREF_INVERTED_CONTRAST.equals(pref.getKey())) {
119             updateInvertedContrastSummary(pref,
120                     (int) ((10 + (Integer) objValue) * 10));
121         }
122         return true;
123     }
124 
125 }
126