1 /* 2 * Copyright (C) 2021 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.d2d; 18 19 import android.telecom.Connection; 20 import android.telecom.CallDiagnostics; 21 import android.telephony.TelephonyManager; 22 23 import com.android.internal.telephony.BiMap; 24 25 /** 26 * Helper class to map between the message types and values used in {@link Communicator} and those 27 * defined in the public API in {@link CallDiagnostics}. 28 */ 29 public class MessageTypeAndValueHelper { 30 // Maps between the local message and value types defined here and those defined in the 31 // DiagnosticCall class as part of the actual API. 32 33 /** 34 * Convert between the local message type (e.g. 35 * {@link Communicator#MESSAGE_CALL_RADIO_ACCESS_TYPE}) 36 * and 37 * the ones referred to in {@link CallDiagnostics}. 38 */ 39 public static final BiMap<Integer, Integer> MSG_TYPE_TO_DC_MSG_TYPE = new BiMap<>(); 40 41 /** 42 * Convert between the local RAT type (e.g. {@link Communicator#RADIO_ACCESS_TYPE_IWLAN}) and 43 * the ones 44 * referred to by {@link CallDiagnostics#MESSAGE_CALL_NETWORK_TYPE}. 45 */ 46 public static final BiMap<Integer, Integer> RAT_TYPE_TO_DC_NETWORK_TYPE = new BiMap<>(); 47 48 /** 49 * Convert between the local codec (e.g. {@link Communicator#AUDIO_CODEC_AMR_WB}) and the ones 50 * referred to by {@link CallDiagnostics#MESSAGE_CALL_AUDIO_CODEC}. 51 */ 52 public static final BiMap<Integer, Integer> CODEC_TO_DC_CODEC = new BiMap<>(); 53 54 /** 55 * Convert between the local battery state (e.g. {@link Communicator#BATTERY_STATE_GOOD}) and 56 * the ones referred to by {@link CallDiagnostics#MESSAGE_DEVICE_BATTERY_STATE}. 57 */ 58 public static final BiMap<Integer, Integer> BATTERY_STATE_TO_DC_BATTERY_STATE = new BiMap(); 59 60 /** 61 * Convert between the local battery state (e.g. {@link Communicator#COVERAGE_GOOD}) and the 62 * ones referred to by {@link CallDiagnostics#MESSAGE_DEVICE_NETWORK_COVERAGE}. 63 */ 64 public static final BiMap<Integer, Integer> COVERAGE_TO_DC_COVERAGE = new BiMap(); 65 66 static { MSG_TYPE_TO_DC_MSG_TYPE.put(Communicator.MESSAGE_CALL_RADIO_ACCESS_TYPE, CallDiagnostics.MESSAGE_CALL_NETWORK_TYPE)67 MSG_TYPE_TO_DC_MSG_TYPE.put(Communicator.MESSAGE_CALL_RADIO_ACCESS_TYPE, 68 CallDiagnostics.MESSAGE_CALL_NETWORK_TYPE); MSG_TYPE_TO_DC_MSG_TYPE.put(Communicator.MESSAGE_CALL_AUDIO_CODEC, CallDiagnostics.MESSAGE_CALL_AUDIO_CODEC)69 MSG_TYPE_TO_DC_MSG_TYPE.put(Communicator.MESSAGE_CALL_AUDIO_CODEC, 70 CallDiagnostics.MESSAGE_CALL_AUDIO_CODEC); MSG_TYPE_TO_DC_MSG_TYPE.put(Communicator.MESSAGE_DEVICE_BATTERY_STATE, CallDiagnostics.MESSAGE_DEVICE_BATTERY_STATE)71 MSG_TYPE_TO_DC_MSG_TYPE.put(Communicator.MESSAGE_DEVICE_BATTERY_STATE, 72 CallDiagnostics.MESSAGE_DEVICE_BATTERY_STATE); MSG_TYPE_TO_DC_MSG_TYPE.put(Communicator.MESSAGE_DEVICE_NETWORK_COVERAGE, CallDiagnostics.MESSAGE_DEVICE_NETWORK_COVERAGE)73 MSG_TYPE_TO_DC_MSG_TYPE.put(Communicator.MESSAGE_DEVICE_NETWORK_COVERAGE, 74 CallDiagnostics.MESSAGE_DEVICE_NETWORK_COVERAGE); 75 RAT_TYPE_TO_DC_NETWORK_TYPE.put(Communicator.RADIO_ACCESS_TYPE_LTE, TelephonyManager.NETWORK_TYPE_LTE)76 RAT_TYPE_TO_DC_NETWORK_TYPE.put(Communicator.RADIO_ACCESS_TYPE_LTE, 77 TelephonyManager.NETWORK_TYPE_LTE); RAT_TYPE_TO_DC_NETWORK_TYPE.put(Communicator.RADIO_ACCESS_TYPE_IWLAN, TelephonyManager.NETWORK_TYPE_IWLAN)78 RAT_TYPE_TO_DC_NETWORK_TYPE.put(Communicator.RADIO_ACCESS_TYPE_IWLAN, 79 TelephonyManager.NETWORK_TYPE_IWLAN); RAT_TYPE_TO_DC_NETWORK_TYPE.put(Communicator.RADIO_ACCESS_TYPE_NR, TelephonyManager.NETWORK_TYPE_NR)80 RAT_TYPE_TO_DC_NETWORK_TYPE.put(Communicator.RADIO_ACCESS_TYPE_NR, 81 TelephonyManager.NETWORK_TYPE_NR); 82 CODEC_TO_DC_CODEC.put(Communicator.AUDIO_CODEC_EVS, Connection.AUDIO_CODEC_EVS_WB)83 CODEC_TO_DC_CODEC.put(Communicator.AUDIO_CODEC_EVS, Connection.AUDIO_CODEC_EVS_WB); CODEC_TO_DC_CODEC.put(Communicator.AUDIO_CODEC_AMR_WB, Connection.AUDIO_CODEC_AMR_WB)84 CODEC_TO_DC_CODEC.put(Communicator.AUDIO_CODEC_AMR_WB, Connection.AUDIO_CODEC_AMR_WB); CODEC_TO_DC_CODEC.put(Communicator.AUDIO_CODEC_AMR_NB, Connection.AUDIO_CODEC_AMR)85 CODEC_TO_DC_CODEC.put(Communicator.AUDIO_CODEC_AMR_NB, Connection.AUDIO_CODEC_AMR); 86 BATTERY_STATE_TO_DC_BATTERY_STATE.put(Communicator.BATTERY_STATE_LOW, CallDiagnostics.BATTERY_STATE_LOW)87 BATTERY_STATE_TO_DC_BATTERY_STATE.put(Communicator.BATTERY_STATE_LOW, 88 CallDiagnostics.BATTERY_STATE_LOW); BATTERY_STATE_TO_DC_BATTERY_STATE.put(Communicator.BATTERY_STATE_GOOD, CallDiagnostics.BATTERY_STATE_GOOD)89 BATTERY_STATE_TO_DC_BATTERY_STATE.put(Communicator.BATTERY_STATE_GOOD, 90 CallDiagnostics.BATTERY_STATE_GOOD); BATTERY_STATE_TO_DC_BATTERY_STATE.put(Communicator.BATTERY_STATE_CHARGING, CallDiagnostics.BATTERY_STATE_CHARGING)91 BATTERY_STATE_TO_DC_BATTERY_STATE.put(Communicator.BATTERY_STATE_CHARGING, 92 CallDiagnostics.BATTERY_STATE_CHARGING); 93 COVERAGE_TO_DC_COVERAGE.put(Communicator.COVERAGE_POOR, CallDiagnostics.COVERAGE_POOR)94 COVERAGE_TO_DC_COVERAGE.put(Communicator.COVERAGE_POOR, CallDiagnostics.COVERAGE_POOR); COVERAGE_TO_DC_COVERAGE.put(Communicator.COVERAGE_GOOD, CallDiagnostics.COVERAGE_GOOD)95 COVERAGE_TO_DC_COVERAGE.put(Communicator.COVERAGE_GOOD, CallDiagnostics.COVERAGE_GOOD); 96 } 97 } 98