/* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settingslib; import androidx.annotation.DrawableRes; import androidx.annotation.StringRes; /** * Icons for SysUI and Settings. */ public class SignalIcon { /** * Holds icons for a given state. Arrays are generally indexed as inet * state (full connectivity or not) first, and second dimension as * signal strength. */ public static class IconGroup { public final int[][] sbIcons; public final int[][] qsIcons; public final int[] contentDesc; public final int sbNullState; public final int qsNullState; public final int sbDiscState; public final int qsDiscState; public final int discContentDesc; // For logging. public final String name; public IconGroup( String name, int[][] sbIcons, int[][] qsIcons, int[] contentDesc, int sbNullState, int qsNullState, int sbDiscState, int qsDiscState, int discContentDesc ) { this.name = name; this.sbIcons = sbIcons; this.qsIcons = qsIcons; this.contentDesc = contentDesc; this.sbNullState = sbNullState; this.qsNullState = qsNullState; this.sbDiscState = sbDiscState; this.qsDiscState = qsDiscState; this.discContentDesc = discContentDesc; } @Override public String toString() { return "IconGroup(" + name + ")"; } } /** * Holds RAT icons for a given MobileState. */ public static class MobileIconGroup extends IconGroup { @StringRes public final int dataContentDescription; @DrawableRes public final int dataType; public MobileIconGroup( String name, int dataContentDesc, int dataType ) { super(name, // The rest of the values are the same for every type of MobileIconGroup, so // just provide them here. // TODO(b/238425913): Eventually replace with {@link MobileNetworkTypeIcon} so // that we don't have to fill in these superfluous fields. /* sbIcons= */ null, /* qsIcons= */ null, /* contentDesc= */ AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH, /* sbNullState= */ 0, /* qsNullState= */ 0, /* sbDiscState= */ 0, /* qsDiscState= */ 0, /* discContentDesc= */ AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH_NONE); this.dataContentDescription = dataContentDesc; this.dataType = dataType; } } }