1 /* 2 * Copyright (C) 2024 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.internal.telephony.satellite.metrics; 18 19 import android.annotation.NonNull; 20 import android.util.Log; 21 22 import com.android.internal.telephony.metrics.SatelliteStats; 23 import com.android.internal.telephony.satellite.SatelliteConstants; 24 25 public class CarrierRoamingSatelliteControllerStats { 26 private static final String TAG = CarrierRoamingSatelliteControllerStats.class.getSimpleName(); 27 private static CarrierRoamingSatelliteControllerStats sInstance = null; 28 private static final int ADD_COUNT = 1; 29 30 private SatelliteStats mSatelliteStats; 31 CarrierRoamingSatelliteControllerStats()32 private CarrierRoamingSatelliteControllerStats() { 33 mSatelliteStats = SatelliteStats.getInstance(); 34 } 35 36 /** 37 * Returns the Singleton instance of CarrierRoamingSatelliteControllerStats class. 38 * If an instance of the Singleton class has not been created, 39 * it creates a new instance and returns it. Otherwise, it returns 40 * the existing instance. 41 * @return the Singleton instance of CarrierRoamingSatelliteControllerStats 42 */ getOrCreateInstance()43 public static CarrierRoamingSatelliteControllerStats getOrCreateInstance() { 44 if (sInstance == null) { 45 logd("Create new CarrierRoamingSatelliteControllerStats."); 46 sInstance = new CarrierRoamingSatelliteControllerStats(); 47 } 48 return sInstance; 49 } 50 51 /** Report config data source */ reportConfigDataSource(@atelliteConstants.ConfigDataSource int configDataSource)52 public void reportConfigDataSource(@SatelliteConstants.ConfigDataSource int configDataSource) { 53 mSatelliteStats.onCarrierRoamingSatelliteControllerStatsMetrics( 54 new SatelliteStats.CarrierRoamingSatelliteControllerStatsParams.Builder() 55 .setConfigDataSource(configDataSource) 56 .build()); 57 } 58 59 /** Report count of entitlement status query request */ reportCountOfEntitlementStatusQueryRequest()60 public void reportCountOfEntitlementStatusQueryRequest() { 61 mSatelliteStats.onCarrierRoamingSatelliteControllerStatsMetrics( 62 new SatelliteStats.CarrierRoamingSatelliteControllerStatsParams.Builder() 63 .setCountOfEntitlementStatusQueryRequest(ADD_COUNT) 64 .build()); 65 } 66 67 /** Report count of satellite config update request */ reportCountOfSatelliteConfigUpdateRequest()68 public void reportCountOfSatelliteConfigUpdateRequest() { 69 mSatelliteStats.onCarrierRoamingSatelliteControllerStatsMetrics( 70 new SatelliteStats.CarrierRoamingSatelliteControllerStatsParams.Builder() 71 .setCountOfSatelliteConfigUpdateRequest(ADD_COUNT) 72 .build()); 73 } 74 75 /** Report count of satellite notification displayed */ reportCountOfSatelliteNotificationDisplayed()76 public void reportCountOfSatelliteNotificationDisplayed() { 77 mSatelliteStats.onCarrierRoamingSatelliteControllerStatsMetrics( 78 new SatelliteStats.CarrierRoamingSatelliteControllerStatsParams.Builder() 79 .setCountOfSatelliteNotificationDisplayed(ADD_COUNT) 80 .build()); 81 } 82 logd(@onNull String log)83 private static void logd(@NonNull String log) { 84 Log.d(TAG, log); 85 } 86 } 87