SliceMetrics.java revision 9d8ce74a631b44d4f07878d7fec5e5fa076f1e17
19d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren/* 29d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * Copyright (C) 2018 The Android Open Source Project 39d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * 49d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * Licensed under the Apache License, Version 2.0 (the "License"); 59d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * you may not use this file except in compliance with the License. 69d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * You may obtain a copy of the License at 79d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * 89d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * http://www.apache.org/licenses/LICENSE-2.0 99d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * 109d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * Unless required by applicable law or agreed to in writing, software 119d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * distributed under the License is distributed on an "AS IS" BASIS, 129d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * See the License for the specific language governing permissions and 149d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * limitations under the License. 159d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren */ 169d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren 179d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wrenpackage android.app.slice; 189d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren 199d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wrenimport android.annotation.NonNull; 209d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wrenimport android.content.Context; 219d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wrenimport android.net.Uri; 229d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren 239d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wrenimport com.android.internal.logging.MetricsLogger; 249d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren 259d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren/** 269d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * Metrics interface for slices. 279d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * 289d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * This is called by SliceView, so Slice develoers should 299d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * not need to reference this class. 309d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * 319d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * @see androidx.slice.widget.SliceView 329d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren */ 339d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wrenpublic class SliceMetrics { 349d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren 359d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren private static final String TAG = "SliceMetrics"; 369d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren private MetricsLogger mMetricsLogger; 379d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren 389d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren /** 399d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * An object to be used throughout the life of a slice to register events. 409d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren */ 419d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren public SliceMetrics(@NonNull Context context, @NonNull Uri uri) { 429d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren mMetricsLogger = new MetricsLogger(); 439d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren } 449d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren 459d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren /** 469d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * To be called whenever the slice becomes visible to the user. 479d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren */ 489d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren public void logVisible() { 499d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren } 509d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren 519d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren /** 529d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * To be called whenever the slice becomes invisible to the user. 539d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren */ 549d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren public void logHidden() { 559d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren } 569d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren 579d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren /** 589d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren * To be called whenever the use interacts with a slice. 599d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren *@param subSlice The URI of the sub-slice that is the subject of the interaction. 609d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren */ 619d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren public void logTouch(@NonNull Uri subSlice) { 629d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren } 639d8ce74a631b44d4f07878d7fec5e5fa076f1e17Chris Wren} 64