From 57abc612d342b93126d0b3a66857dcbea88cbcd8 Mon Sep 17 00:00:00 2001 From: Mill Chen Date: Sat, 25 Apr 2020 01:53:54 +0800 Subject: [PATCH] Add an API to get active icon for screen saver In order to improve the clarity of current screen saver, we need to get the active icon from DreamBackend and add it on the left side of current screen saver preference. Bug: 129994275 Test: robotests Change-Id: I844ccdcdccc270f23f1a0f0f0ce5335fce184c5b --- .../settingslib/dream/DreamBackend.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java b/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java index 57e680849fec3..ab7b54d982858 100644 --- a/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java +++ b/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java @@ -159,6 +159,25 @@ public class DreamBackend { return null; } + /** + * Gets an icon from active dream. + */ + public Drawable getActiveIcon() { + final ComponentName cn = getActiveDream(); + if (cn != null) { + final PackageManager pm = mContext.getPackageManager(); + try { + final ServiceInfo ri = pm.getServiceInfo(cn, 0); + if (ri != null) { + return ri.loadIcon(pm); + } + } catch (PackageManager.NameNotFoundException exc) { + return null; + } + } + return null; + } + public @WhenToDream int getWhenToDreamSetting() { if (!isEnabled()) { return NEVER;