11b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren/* 21b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * Copyright (C) 2015 The Android Open Source Project 31b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * 41b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * Licensed under the Apache License, Version 2.0 (the "License"); 51b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * you may not use this file except in compliance with the License. 61b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * You may obtain a copy of the License at 71b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * 81b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * http://www.apache.org/licenses/LICENSE-2.0 91b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * 101b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * Unless required by applicable law or agreed to in writing, software 111b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * distributed under the License is distributed on an "AS IS" BASIS, 121b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * See the License for the specific language governing permissions and 141b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * limitations under the License. 151b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren */ 161b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren 171b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wrenpackage com.android.settings; 181b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren 191b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wrenimport android.app.Activity; 201b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren 2139b467482d1bf256a111c757e9b7621c6f523271Jason Monkimport com.android.internal.logging.MetricsLogger; 2239b467482d1bf256a111c757e9b7621c6f523271Jason Monk 231b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren/** 241b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * Instrumented activity that logs visibility state. 251b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren */ 261b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wrenpublic abstract class InstrumentedActivity extends Activity { 271b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren /** 281b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * Declare the view of this category. 291b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * 309d1bfd1e8de6e46137a9571507c03526880d6a46Chris Wren * Categories are defined in {@link com.android.internal.logging.MetricsProto.MetricsEvent} 311b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * or if there is no relevant existing category you may define one in 321b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren * {@link com.android.settings.InstrumentedFragment}. 331b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren */ 341b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren protected abstract int getMetricsCategory(); 351b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren 361b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren @Override 371b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren public void onResume() { 381b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren super.onResume(); 391b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren MetricsLogger.visible(this, getMetricsCategory()); 401b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren } 411b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren 421b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren @Override 431b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren public void onPause() { 441b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren super.onPause(); 451b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren MetricsLogger.hidden(this, getMetricsCategory()); 461b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren } 471b8d5ffb47b674dd67ae6d56baa9ab3f42c8c024Chris Wren} 48