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