1 /* 2 * Copyright (C) 2022 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 package com.android.permissioncontroller.safetycenter.ui 17 18 import android.safetycenter.SafetyCenterEntry 19 import android.util.Log 20 import com.android.permissioncontroller.R 21 import com.android.permissioncontroller.safetycenter.SafetyCenterConstants.PRIVACY_SOURCES_GROUP_ID 22 23 internal object SeverityIconPicker { 24 25 private val TAG = SeverityIconPicker::class.java.simpleName 26 27 @JvmStatic selectIconResIdnull28 fun selectIconResId(id: String, severityLevel: Int, severityUnspecifiedIconType: Int): Int { 29 if (id == PRIVACY_SOURCES_GROUP_ID) { 30 return R.drawable.ic_privacy 31 } 32 33 when (severityLevel) { 34 SafetyCenterEntry.ENTRY_SEVERITY_LEVEL_UNKNOWN -> return R.drawable.ic_safety_null_state 35 SafetyCenterEntry.ENTRY_SEVERITY_LEVEL_UNSPECIFIED -> 36 return selectSeverityUnspecifiedIconResId(severityUnspecifiedIconType) 37 SafetyCenterEntry.ENTRY_SEVERITY_LEVEL_OK -> return R.drawable.ic_safety_info 38 SafetyCenterEntry.ENTRY_SEVERITY_LEVEL_RECOMMENDATION -> 39 return R.drawable.ic_safety_recommendation 40 SafetyCenterEntry.ENTRY_SEVERITY_LEVEL_CRITICAL_WARNING -> 41 return R.drawable.ic_safety_warn 42 } 43 Log.e( 44 TAG, 45 String.format("Unexpected SafetyCenterEntry.EntrySeverityLevel: %s", severityLevel) 46 ) 47 return R.drawable.ic_safety_null_state 48 } 49 selectSeverityUnspecifiedIconResIdnull50 private fun selectSeverityUnspecifiedIconResId(severityUnspecifiedIconType: Int): Int { 51 when (severityUnspecifiedIconType) { 52 SafetyCenterEntry.SEVERITY_UNSPECIFIED_ICON_TYPE_NO_ICON -> 53 return R.drawable.ic_safety_empty 54 SafetyCenterEntry.SEVERITY_UNSPECIFIED_ICON_TYPE_PRIVACY -> return R.drawable.ic_privacy 55 SafetyCenterEntry.SEVERITY_UNSPECIFIED_ICON_TYPE_NO_RECOMMENDATION -> 56 return R.drawable.ic_safety_null_state 57 } 58 Log.e( 59 TAG, 60 String.format( 61 "Unexpected SafetyCenterEntry.SeverityNoneIconType: %s", 62 severityUnspecifiedIconType 63 ) 64 ) 65 return R.drawable.ic_safety_null_state 66 } 67 } 68