Show LargeIcon as wide for apps targeting S.

* This does not inhibit the grouping behavior which demotes this image and shows it in a smaller square area on the left.
* This also converts the Notification class to calculate margins and sizes in DIP instead of PX, as that is more resilient.

Fixes: 175409684
Test: atest NotificationTemplateTest
Change-Id: I35d28c8df341dbbac2774026c6ca749e296c0482
This commit is contained in:
Jeff DeCew
2020-12-21 14:18:46 -05:00
parent 927845625a
commit 3aa6043c46

View File

@@ -20,6 +20,7 @@ import static com.android.server.connectivity.NetworkNotificationManager.Notific
import static org.mockito.Mockito.any; import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq; import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
@@ -39,6 +40,7 @@ import android.net.NetworkCapabilities;
import android.net.NetworkInfo; import android.net.NetworkInfo;
import android.os.UserHandle; import android.os.UserHandle;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4; import androidx.test.runner.AndroidJUnit4;
@@ -46,7 +48,9 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.internal.R; import com.android.internal.R;
import com.android.server.connectivity.NetworkNotificationManager.NotificationType; import com.android.server.connectivity.NetworkNotificationManager.NotificationType;
import org.junit.AfterClass;
import org.junit.Before; import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.AdditionalAnswers; import org.mockito.AdditionalAnswers;
@@ -82,6 +86,7 @@ public class NetworkNotificationManagerTest {
@Mock Context mCtx; @Mock Context mCtx;
@Mock Resources mResources; @Mock Resources mResources;
@Mock DisplayMetrics mDisplayMetrics;
@Mock PackageManager mPm; @Mock PackageManager mPm;
@Mock TelephonyManager mTelephonyManager; @Mock TelephonyManager mTelephonyManager;
@Mock NotificationManager mNotificationManager; @Mock NotificationManager mNotificationManager;
@@ -93,6 +98,17 @@ public class NetworkNotificationManagerTest {
NetworkNotificationManager mManager; NetworkNotificationManager mManager;
@BeforeClass
public static void setUpClass() {
Notification.DevFlags.sForceDefaults = true;
}
@AfterClass
public static void tearDownClass() {
Notification.DevFlags.sForceDefaults = false;
}
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
@@ -103,6 +119,7 @@ public class NetworkNotificationManagerTest {
mCellNai.networkInfo = mNetworkInfo; mCellNai.networkInfo = mNetworkInfo;
mVpnNai.networkCapabilities = VPN_CAPABILITIES; mVpnNai.networkCapabilities = VPN_CAPABILITIES;
mVpnNai.networkInfo = mNetworkInfo; mVpnNai.networkInfo = mNetworkInfo;
mDisplayMetrics.density = 2.275f;
doReturn(true).when(mVpnNai).isVPN(); doReturn(true).when(mVpnNai).isVPN();
when(mCtx.getResources()).thenReturn(mResources); when(mCtx.getResources()).thenReturn(mResources);
when(mCtx.getPackageManager()).thenReturn(mPm); when(mCtx.getPackageManager()).thenReturn(mPm);
@@ -114,6 +131,7 @@ public class NetworkNotificationManagerTest {
.thenReturn(mNotificationManager); .thenReturn(mNotificationManager);
when(mNetworkInfo.getExtraInfo()).thenReturn("extra"); when(mNetworkInfo.getExtraInfo()).thenReturn("extra");
when(mResources.getColor(anyInt(), any())).thenReturn(0xFF607D8B); when(mResources.getColor(anyInt(), any())).thenReturn(0xFF607D8B);
when(mResources.getDisplayMetrics()).thenReturn(mDisplayMetrics);
mManager = new NetworkNotificationManager(mCtx, mTelephonyManager); mManager = new NetworkNotificationManager(mCtx, mTelephonyManager);
} }
@@ -136,15 +154,15 @@ public class NetworkNotificationManagerTest {
public void testTitleOfPrivateDnsBroken() { public void testTitleOfPrivateDnsBroken() {
// Test the title of mobile data. // Test the title of mobile data.
verifyTitleByNetwork(100, mCellNai, R.string.mobile_no_internet); verifyTitleByNetwork(100, mCellNai, R.string.mobile_no_internet);
reset(mResources); clearInvocations(mResources);
// Test the title of wifi. // Test the title of wifi.
verifyTitleByNetwork(101, mWifiNai, R.string.wifi_no_internet); verifyTitleByNetwork(101, mWifiNai, R.string.wifi_no_internet);
reset(mResources); clearInvocations(mResources);
// Test the title of other networks. // Test the title of other networks.
verifyTitleByNetwork(102, mVpnNai, R.string.other_networks_no_internet); verifyTitleByNetwork(102, mVpnNai, R.string.other_networks_no_internet);
reset(mResources); clearInvocations(mResources);
} }
@Test @Test