OSDN Git Service

port settings over to new metrics enum
[android-x86/packages-apps-Settings.git] / src / com / android / settings / accessibility / ToggleScreenMagnificationPreferenceFragment.java
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.settings.accessibility;
18
19 import android.provider.Settings;
20
21 import com.android.internal.logging.MetricsProto.MetricsEvent;
22 import com.android.settings.widget.ToggleSwitch;
23 import com.android.settings.widget.ToggleSwitch.OnBeforeCheckedChangeListener;
24
25 public class ToggleScreenMagnificationPreferenceFragment
26         extends ToggleFeaturePreferenceFragment {
27
28     @Override
29     protected void onPreferenceToggled(String preferenceKey, boolean enabled) {
30         // Do nothing.
31     }
32
33     @Override
34     protected void onInstallSwitchBarToggleSwitch() {
35         super.onInstallSwitchBarToggleSwitch();
36         mToggleSwitch.setOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() {
37                 @Override
38             public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) {
39                 mSwitchBar.setCheckedInternal(checked);
40                 getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, checked);
41                 onPreferenceToggled(mPreferenceKey, checked);
42                 return false;
43             }
44         });
45     }
46
47     @Override
48     public void onResume() {
49         super.onResume();
50
51         // Temporarily enable Magnification on this screen if it's disabled.
52         if (Settings.Secure.getInt(getContentResolver(),
53                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 0) == 0) {
54             setMagnificationEnabled(1);
55         }
56     }
57
58     @Override
59     public void onPause() {
60         super.onPause();
61         if (!mToggleSwitch.isChecked()) {
62             setMagnificationEnabled(0);
63         }
64     }
65
66     private void setMagnificationEnabled(int enabled) {
67         Settings.Secure.putInt(getContentResolver(),
68                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, enabled);
69     }
70
71     @Override
72     protected int getMetricsCategory() {
73         return MetricsEvent.ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION;
74     }
75 }