Merge "Inform the app to wait only if procstate has affect on ntwk access." into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
370ec584b2
@@ -49,6 +49,12 @@ import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
|
|||||||
import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY;
|
import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY;
|
||||||
import static android.content.pm.PackageManager.MATCH_UNINSTALLED_PACKAGES;
|
import static android.content.pm.PackageManager.MATCH_UNINSTALLED_PACKAGES;
|
||||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||||
|
import static android.net.ConnectivityManager.BLOCKED_METERED_REASON_DATA_SAVER;
|
||||||
|
import static android.net.ConnectivityManager.BLOCKED_METERED_REASON_USER_RESTRICTED;
|
||||||
|
import static android.net.ConnectivityManager.BLOCKED_REASON_APP_STANDBY;
|
||||||
|
import static android.net.ConnectivityManager.BLOCKED_REASON_BATTERY_SAVER;
|
||||||
|
import static android.net.ConnectivityManager.BLOCKED_REASON_DOZE;
|
||||||
|
import static android.net.ConnectivityManager.BLOCKED_REASON_LOW_POWER_STANDBY;
|
||||||
import static android.net.ConnectivityManager.BLOCKED_REASON_NONE;
|
import static android.net.ConnectivityManager.BLOCKED_REASON_NONE;
|
||||||
import static android.os.FactoryTest.FACTORY_TEST_OFF;
|
import static android.os.FactoryTest.FACTORY_TEST_OFF;
|
||||||
import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_CRITICAL;
|
import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_CRITICAL;
|
||||||
@@ -17306,8 +17312,22 @@ public class ActivityManagerService extends IActivityManager.Stub
|
|||||||
// TODO: We can reuse this data in
|
// TODO: We can reuse this data in
|
||||||
// ProcessList#incrementProcStateSeqAndNotifyAppsLOSP instead of calling into
|
// ProcessList#incrementProcStateSeqAndNotifyAppsLOSP instead of calling into
|
||||||
// NetworkManagementService.
|
// NetworkManagementService.
|
||||||
return mUidNetworkBlockedReasons.get(uid, BLOCKED_REASON_NONE)
|
final int uidBlockedReasons = mUidNetworkBlockedReasons.get(
|
||||||
!= BLOCKED_REASON_NONE;
|
uid, BLOCKED_REASON_NONE);
|
||||||
|
if (uidBlockedReasons == BLOCKED_REASON_NONE) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final int topExemptedBlockedReasons = BLOCKED_REASON_BATTERY_SAVER
|
||||||
|
| BLOCKED_REASON_DOZE
|
||||||
|
| BLOCKED_REASON_APP_STANDBY
|
||||||
|
| BLOCKED_REASON_LOW_POWER_STANDBY
|
||||||
|
| BLOCKED_METERED_REASON_DATA_SAVER
|
||||||
|
| BLOCKED_METERED_REASON_USER_RESTRICTED;
|
||||||
|
final int effectiveBlockedReasons =
|
||||||
|
uidBlockedReasons & ~topExemptedBlockedReasons;
|
||||||
|
// Only consider it as blocked if it is not blocked by a reason
|
||||||
|
// that is not exempted by app being in the top state.
|
||||||
|
return effectiveBlockedReasons == BLOCKED_REASON_NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user