Ignore the active network scorer when checking for idleness

Bug: 22667334
Change-Id: I97085e653c146eff148458440bbac0a2ac64d6d2
This commit is contained in:
Wenchao Tong
2015-07-22 11:15:09 -07:00
parent bdb7d93651
commit 7cc902bea7

View File

@@ -42,6 +42,7 @@ import android.content.pm.UserInfo;
import android.content.res.Configuration;
import android.database.ContentObserver;
import android.hardware.display.DisplayManager;
import android.net.NetworkScoreManager;
import android.os.BatteryManager;
import android.os.BatteryStats;
import android.os.Binder;
@@ -812,6 +813,10 @@ public class UsageStatsService extends SystemService implements
return false;
}
if (isActiveNetworkScorer(packageName)) {
return false;
}
if (mAppWidgetManager != null
&& mAppWidgetManager.isBoundWidgetPackage(packageName, userId)) {
return false;
@@ -847,6 +852,12 @@ public class UsageStatsService extends SystemService implements
== TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
}
private boolean isActiveNetworkScorer(String packageName) {
NetworkScoreManager nsm = (NetworkScoreManager) getContext().getSystemService(
Context.NETWORK_SCORE_SERVICE);
return packageName != null && packageName.equals(nsm.getActiveScorerPackage());
}
void informListeners(String packageName, int userId, boolean isIdle) {
for (AppIdleStateChangeListener listener : mPackageAccessListeners) {
listener.onAppIdleStateChanged(packageName, userId, isIdle);