diff options
author | vadimt <vadimt@google.com> | 2019-02-06 12:05:30 -0800 |
---|---|---|
committer | vadimt <vadimt@google.com> | 2019-02-06 12:09:18 -0800 |
commit | 8baf9214169362ff4afa5f16a5204138949a26a8 (patch) | |
tree | 818cd5f7f1046fd7bbc39ef57e900dc0ee28b0d2 | |
parent | 3e75460459a68c92f4f5da0bf4ed5c10201a4327 (diff) | |
download | android_packages_apps_Trebuchet-8baf9214169362ff4afa5f16a5204138949a26a8.tar.gz android_packages_apps_Trebuchet-8baf9214169362ff4afa5f16a5204138949a26a8.tar.bz2 android_packages_apps_Trebuchet-8baf9214169362ff4afa5f16a5204138949a26a8.zip |
Not using reflection for all limit API
Bug: 118319143
Test: Manual
Change-Id: I666f19450403f1020a52136a74aa97383c666345
-rw-r--r-- | quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java | 46 |
1 files changed, 15 insertions, 31 deletions
diff --git a/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java b/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java index bbcd4255c..4e8bbe64c 100644 --- a/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java +++ b/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java @@ -23,6 +23,7 @@ import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.content.pm.LauncherApps; +import android.content.pm.LauncherApps.AppUsageLimit; import android.content.res.Resources; import android.icu.text.MeasureFormat; import android.icu.text.MeasureFormat.FormatWidth; @@ -44,12 +45,12 @@ import com.android.launcher3.Utilities; import com.android.launcher3.userevent.nano.LauncherLogProto; import com.android.systemui.shared.recents.model.Task; -import java.lang.reflect.Method; import java.time.Duration; import java.util.Locale; public final class DigitalWellBeingToast extends LinearLayout { static final Intent OPEN_APP_USAGE_SETTINGS_TEMPLATE = new Intent(ACTION_APP_USAGE_SETTINGS); + private final LauncherApps mLauncherApps; public interface InitializeCallback { void call(float saturation, String contentDescription); @@ -66,6 +67,7 @@ public final class DigitalWellBeingToast extends LinearLayout { setLayoutDirection(Utilities.isRtl(getResources()) ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR); setOnClickListener((view) -> openAppUsageSettings()); + mLauncherApps = context.getSystemService(LauncherApps.class); } @Override @@ -79,47 +81,29 @@ public final class DigitalWellBeingToast extends LinearLayout { public void initialize(Task task, InitializeCallback callback) { mTask = task; Utilities.THREAD_POOL_EXECUTOR.execute(() -> { - long appUsageLimitTimeMs = -1; - long appRemainingTimeMs = -1; - - try { - final Method getAppUsageLimit = LauncherApps.class.getMethod( - "getAppUsageLimit", - String.class, - UserHandle.class); - final Object usageLimit = getAppUsageLimit.invoke( - getContext().getSystemService(LauncherApps.class), - task.getTopComponent().getPackageName(), - UserHandle.of(task.key.userId)); - - if (usageLimit != null) { - final Class appUsageLimitClass = usageLimit.getClass(); - appUsageLimitTimeMs = (long) appUsageLimitClass.getMethod("getTotalUsageLimit"). - invoke(usageLimit); - appRemainingTimeMs = (long) appUsageLimitClass.getMethod("getUsageRemaining"). - invoke(usageLimit); - } - } catch (Exception e) { - // Do nothing - } + final AppUsageLimit usageLimit = mLauncherApps.getAppUsageLimit( + task.getTopComponent().getPackageName(), + UserHandle.of(task.key.userId)); - final long appUsageLimitTimeMsFinal = appUsageLimitTimeMs; - final long appRemainingTimeMsFinal = appRemainingTimeMs; + final long appUsageLimitTimeMs = + usageLimit != null ? usageLimit.getTotalUsageLimit() : -1; + final long appRemainingTimeMs = + usageLimit != null ? usageLimit.getUsageRemaining() : -1; post(() -> { - if (appUsageLimitTimeMsFinal < 0) { + if (appUsageLimitTimeMs < 0) { setVisibility(GONE); } else { setVisibility(VISIBLE); - mText.setText(getText(appRemainingTimeMsFinal)); - mImage.setImageResource(appRemainingTimeMsFinal > 0 ? + mText.setText(getText(appRemainingTimeMs)); + mImage.setImageResource(appRemainingTimeMs > 0 ? R.drawable.hourglass_top : R.drawable.hourglass_bottom); } callback.call( - appUsageLimitTimeMsFinal >= 0 && appRemainingTimeMsFinal <= 0 ? 0 : 1, + appUsageLimitTimeMs >= 0 && appRemainingTimeMs <= 0 ? 0 : 1, getContentDescriptionForTask( - task, appUsageLimitTimeMsFinal, appRemainingTimeMsFinal)); + task, appUsageLimitTimeMs, appRemainingTimeMs)); }); }); } |