1 /*
2  * Copyright (C) 2017 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.app.settings.SettingsEnums;
20 import android.graphics.drawable.Drawable;
21 import android.os.Bundle;
22 import android.view.LayoutInflater;
23 import android.view.View;
24 import android.view.ViewGroup;
25 
26 import androidx.recyclerview.widget.RecyclerView;
27 
28 import com.android.settings.R;
29 
30 import com.google.android.setupdesign.GlifPreferenceLayout;
31 
32 public class ToggleSelectToSpeakPreferenceFragmentForSetupWizard
33         extends InvisibleToggleAccessibilityServicePreferenceFragment {
34 
35     private boolean mToggleSwitchWasInitiallyChecked;
36 
37     @Override
onViewCreated(View view, Bundle savedInstanceState)38     public void onViewCreated(View view, Bundle savedInstanceState) {
39         super.onViewCreated(view, savedInstanceState);
40 
41         final GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
42         final String title = getArguments().getString(AccessibilitySettings.EXTRA_TITLE);
43         final String description = getContext().getString(R.string.select_to_speak_summary);
44         final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility);
45         AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title,
46                 description, icon);
47 
48         mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
49     }
50 
51     @Override
onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState)52     public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
53             Bundle savedInstanceState) {
54         final GlifPreferenceLayout layout = (GlifPreferenceLayout) parent;
55         return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
56     }
57 
58     @Override
getMetricsCategory()59     public int getMetricsCategory() {
60         return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SELECT_TO_SPEAK;
61     }
62 
63     @Override
onStop()64     public void onStop() {
65         // Log the final choice in value if it's different from the previous value.
66         if (mToggleServiceSwitchPreference.isChecked() != mToggleSwitchWasInitiallyChecked) {
67             mMetricsFeatureProvider.action(getContext(),
68                     SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SELECT_TO_SPEAK,
69                     mToggleServiceSwitchPreference.isChecked());
70         }
71 
72         super.onStop();
73     }
74 }
75