18a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren/*
28a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren * Copyright (C) 2015 The Android Open Source Project
38a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren *
48a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren * Licensed under the Apache License, Version 2.0 (the "License");
58a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren * you may not use this file except in compliance with the License.
68a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren * You may obtain a copy of the License at
78a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren *
88a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren *      http://www.apache.org/licenses/LICENSE-2.0
98a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren *
108a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren * Unless required by applicable law or agreed to in writing, software
118a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren * distributed under the License is distributed on an "AS IS" BASIS,
128a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren * See the License for the specific language governing permissions and
148a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren * limitations under the License.
158a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren */
168a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren
178a963babe2e36b7a41f77b8d2598c97658196e58Chris Wrenpackage com.android.settings;
188a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren
198a963babe2e36b7a41f77b8d2598c97658196e58Chris Wrenimport android.preference.PreferenceFragment;
208a963babe2e36b7a41f77b8d2598c97658196e58Chris Wrenimport com.android.internal.logging.MetricsLogger;
218a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren
228a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren/**
238a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren * Instrumented fragment that logs visibility state.
248a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren */
258a963babe2e36b7a41f77b8d2598c97658196e58Chris Wrenpublic abstract class InstrumentedFragment extends PreferenceFragment {
262eb901a4e8865f4c49de6b8013cecd606b6a79e6Fabrice Di Meglio    // Declare new temporary categories here, starting after this value.
278b7dc08e775db599a1239a9d4a51d6912fee90d2Chris Wren    public static final int UNDECLARED = 100000;
282eb901a4e8865f4c49de6b8013cecd606b6a79e6Fabrice Di Meglio
2920c3093679e81c4ae184acf4de49359d216311ceChris Wren    /**
3020c3093679e81c4ae184acf4de49359d216311ceChris Wren     * Declare the view of this category.
3120c3093679e81c4ae184acf4de49359d216311ceChris Wren     *
3220c3093679e81c4ae184acf4de49359d216311ceChris Wren     * Categories are defined in {@link com.android.internal.logging.MetricsLogger}
3320c3093679e81c4ae184acf4de49359d216311ceChris Wren     * or if there is no relevant existing category you may define one in
3420c3093679e81c4ae184acf4de49359d216311ceChris Wren     * {@link com.android.settings.InstrumentedFragment}.
3520c3093679e81c4ae184acf4de49359d216311ceChris Wren     */
368a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    protected abstract int getMetricsCategory();
378a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren
388a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    @Override
398a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    public void onResume() {
408a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren        super.onResume();
418a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren        MetricsLogger.visible(getActivity(), getMetricsCategory());
428a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    }
438a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren
448a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    @Override
458a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    public void onPause() {
468a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren        super.onPause();
478a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren        MetricsLogger.hidden(getActivity(), getMetricsCategory());
488a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren    }
498a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren}
50