Allow SysUi to see the connectivity diagnostic callbacks
SysUi needs to see connectivity diagnostic callbacks to display "Checking for internet access..." -> "Connected" or "No internet access". Bug: 307161342 Test: atest FrameworksNetTests, manually connect to a network without internet connectivity, verify Internet Dialog doesn't get stuck showing "Checking for internet access..." Change-Id: I86e2b852ff9e5dfbfc37ba711f477166b0ac6835
This commit is contained in:
@@ -31,6 +31,7 @@ import static android.Manifest.permission.NETWORK_SETUP_WIZARD;
|
||||
import static android.Manifest.permission.NETWORK_STACK;
|
||||
import static android.Manifest.permission.PACKET_KEEPALIVE_OFFLOAD;
|
||||
import static android.Manifest.permission.READ_DEVICE_CONFIG;
|
||||
import static android.Manifest.permission.STATUS_BAR_SERVICE;
|
||||
import static android.app.ActivityManager.UidFrozenStateChangedCallback.UID_FROZEN_STATE_FROZEN;
|
||||
import static android.app.ActivityManager.UidFrozenStateChangedCallback.UID_FROZEN_STATE_UNFROZEN;
|
||||
import static android.app.PendingIntent.FLAG_IMMUTABLE;
|
||||
@@ -156,6 +157,7 @@ import static android.system.OsConstants.IPPROTO_TCP;
|
||||
|
||||
import static com.android.server.ConnectivityService.DELAY_DESTROY_FROZEN_SOCKETS_VERSION;
|
||||
import static com.android.net.module.util.DeviceConfigUtils.TETHERING_MODULE_NAME;
|
||||
import static com.android.server.ConnectivityService.ALLOW_SYSUI_CONNECTIVITY_REPORTS;
|
||||
import static com.android.server.ConnectivityService.KEY_DESTROY_FROZEN_SOCKETS_VERSION;
|
||||
import static com.android.server.ConnectivityService.MAX_NETWORK_REQUESTS_PER_SYSTEM_UID;
|
||||
import static com.android.server.ConnectivityService.PREFERENCE_ORDER_MOBILE_DATA_PREFERERRED;
|
||||
@@ -2149,6 +2151,16 @@ public class ConnectivityServiceTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFeatureNotChickenedOut(Context context, String name) {
|
||||
switch (name) {
|
||||
case ALLOW_SYSUI_CONNECTIVITY_REPORTS:
|
||||
return true;
|
||||
default:
|
||||
return super.isFeatureNotChickenedOut(context, name);
|
||||
}
|
||||
}
|
||||
|
||||
public void setChangeIdEnabled(final boolean enabled, final long changeId, final int uid) {
|
||||
final Pair<Long, Integer> data = new Pair<>(changeId, uid);
|
||||
// mEnabledChangeIds is read on the handler thread and maybe the test thread, so
|
||||
@@ -12804,6 +12816,18 @@ public class ConnectivityServiceTest {
|
||||
mContext.getOpPackageName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCheckConnectivityDiagnosticsPermissionsSysUi() throws Exception {
|
||||
final NetworkAgentInfo naiWithoutUid = fakeMobileNai(new NetworkCapabilities());
|
||||
|
||||
mServiceContext.setPermission(STATUS_BAR_SERVICE, PERMISSION_GRANTED);
|
||||
assertTrue(
|
||||
"SysUi permission (STATUS_BAR_SERVICE) not applied",
|
||||
mService.checkConnectivityDiagnosticsPermissions(
|
||||
Process.myPid(), Process.myUid(), naiWithoutUid,
|
||||
mContext.getOpPackageName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCheckConnectivityDiagnosticsPermissionsWrongUidPackageName() throws Exception {
|
||||
final int wrongUid = Process.myUid() + 1;
|
||||
|
||||
@@ -127,6 +127,7 @@ open class CSTest {
|
||||
it[ConnectivityFlags.NO_REMATCH_ALL_REQUESTS_ON_REGISTER] = true
|
||||
it[ConnectivityService.KEY_DESTROY_FROZEN_SOCKETS_VERSION] = true
|
||||
it[ConnectivityService.DELAY_DESTROY_FROZEN_SOCKETS_VERSION] = true
|
||||
it[ConnectivityService.ALLOW_SYSUI_CONNECTIVITY_REPORTS] = true
|
||||
}
|
||||
fun enableFeature(f: String) = enabledFeatures.set(f, true)
|
||||
fun disableFeature(f: String) = enabledFeatures.set(f, false)
|
||||
@@ -195,6 +196,8 @@ open class CSTest {
|
||||
// checking permissions.
|
||||
override fun isFeatureEnabled(context: Context?, name: String?) =
|
||||
enabledFeatures[name] ?: fail("Unmocked feature $name, see CSTest.enabledFeatures")
|
||||
override fun isFeatureNotChickenedOut(context: Context?, name: String?) =
|
||||
enabledFeatures[name] ?: fail("Unmocked feature $name, see CSTest.enabledFeatures")
|
||||
|
||||
// Mocked change IDs
|
||||
private val enabledChangeIds = ArraySet<Long>()
|
||||
|
||||
Reference in New Issue
Block a user