1bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman/* 2bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * Copyright (C) 2015 The Android Open Source Project 3bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * 4bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * Licensed under the Apache License, Version 2.0 (the "License"); 5bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * you may not use this file except in compliance with the License. 6bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * You may obtain a copy of the License at 7bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * 8bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * http://www.apache.org/licenses/LICENSE-2.0 9bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * 10bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * Unless required by applicable law or agreed to in writing, software 11bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * distributed under the License is distributed on an "AS IS" BASIS, 12bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * See the License for the specific language governing permissions and 14bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * limitations under the License. 15bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman */ 16bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghumanpackage com.android.settingslib; 17bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman 18bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghumanimport android.content.Context; 19699deaf6103d182dbd291ca2b420f30b439753d4Sundeep Ghumanimport android.net.NetworkBadging; 20bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman 21bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghumanimport com.android.internal.logging.MetricsLogger; 22bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman 23bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman/** Utilites for Tron Logging. */ 24bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghumanpublic final class TronUtils { 25bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman 26bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman private TronUtils() {}; 27bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman 28bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman public static void logWifiSettingsBadge(Context context, int badgeEnum) { 29bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman logNetworkBadgeMetric(context, "settings_wifibadging", badgeEnum); 30bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman } 31bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman 32bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman /** 33bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * Logs an occurrence of the given network badge to a Histogram. 34bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * 35bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * @param context Context 36bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * @param histogram the Tron histogram name to write to 37699deaf6103d182dbd291ca2b420f30b439753d4Sundeep Ghuman * @param badgeEnum the {@link NetworkBadging.Badging} badge value 38bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman * @throws IllegalArgumentException if the given badge enum is not supported 39bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman */ 40bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman private static void logNetworkBadgeMetric( 41bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman Context context, String histogram, int badgeEnum) 42bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman throws IllegalArgumentException { 43bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman int bucket; 44bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman switch (badgeEnum) { 45699deaf6103d182dbd291ca2b420f30b439753d4Sundeep Ghuman case NetworkBadging.BADGING_NONE: 46bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman bucket = 0; 47bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman break; 48699deaf6103d182dbd291ca2b420f30b439753d4Sundeep Ghuman case NetworkBadging.BADGING_SD: 49bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman bucket = 1; 50bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman break; 51699deaf6103d182dbd291ca2b420f30b439753d4Sundeep Ghuman case NetworkBadging.BADGING_HD: 52bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman bucket = 2; 53bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman break; 54699deaf6103d182dbd291ca2b420f30b439753d4Sundeep Ghuman case NetworkBadging.BADGING_4K: 55bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman bucket = 3; 56bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman break; 57bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman default: 58bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman throw new IllegalArgumentException("Unsupported badge enum: " + badgeEnum); 59bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman } 60bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman 61bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman MetricsLogger.histogram(context, histogram, bucket); 62bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman } 63bf339f5cc5212aa3fb714a044496788308d53ac7Sundeep Ghuman} 64