diff options
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/cm/LockscreenShortcutsActivity.java')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/cm/LockscreenShortcutsActivity.java | 42 |
1 files changed, 34 insertions, 8 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/cm/LockscreenShortcutsActivity.java b/packages/SystemUI/src/com/android/systemui/cm/LockscreenShortcutsActivity.java index d8cfa5e..3cd86fe 100644 --- a/packages/SystemUI/src/com/android/systemui/cm/LockscreenShortcutsActivity.java +++ b/packages/SystemUI/src/com/android/systemui/cm/LockscreenShortcutsActivity.java @@ -1,5 +1,6 @@ package com.android.systemui.cm; +import com.android.internal.app.AssistUtils; import com.android.settingslib.cm.ShortcutPickHelper; import com.android.systemui.R; import com.android.systemui.cm.LockscreenShortcutsHelper.Shortcuts; @@ -34,6 +35,7 @@ public class LockscreenShortcutsActivity extends Activity implements View.OnClic private View mSelectedView; private ColorMatrixColorFilter mFilter; private ColorStateList mDefaultTintList; + private AssistUtils mAssistUtils; @Override public void shortcutPicked(String uri, String friendlyName, boolean isApplication) { @@ -107,6 +109,7 @@ public class LockscreenShortcutsActivity extends Activity implements View.OnClic mFilter = new ColorMatrixColorFilter(cm); ImageView unlockButton = (ImageView) findViewById(R.id.middle_button); mDefaultTintList = unlockButton.getImageTintList(); + mAssistUtils = new AssistUtils(this); createActionList(); initiateViews(); updateDrawables(); @@ -146,19 +149,40 @@ public class LockscreenShortcutsActivity extends Activity implements View.OnClic if (mShortcutHelper.isTargetEmpty(shortcut)) { drawable = getResources().getDrawable(R.drawable.ic_lockscreen_shortcuts_blank); } else { - drawable = mShortcutHelper.getDrawableForTarget(shortcut); - if (drawable == null) { - drawable = getResources().getDrawable(shortcut == Shortcuts.LEFT_SHORTCUT - ? R.drawable.ic_phone_24dp : R.drawable.ic_camera_alt_24dp); + if (shortcut == Shortcuts.LEFT_SHORTCUT && + !mShortcutHelper.isTargetCustom(shortcut)) { + drawable = getLeftAffordanceDrawable(); v.setImageTintList(mDefaultTintList); } else { - v.setColorFilter(mFilter); + drawable = mShortcutHelper.getDrawableForTarget(shortcut); + if (drawable == null) { + drawable = (shortcut == Shortcuts.LEFT_SHORTCUT) ? + getLeftAffordanceDrawable() + : getResources().getDrawable(R.drawable.ic_camera_alt_24dp); + v.setImageTintList(mDefaultTintList); + } else { + v.setColorFilter(mFilter); + } } } v.setImageDrawable(drawable); } } + private Drawable getLeftAffordanceDrawable() { + Drawable drawable; + if (canLaunchVoiceAssist()) { + drawable = getResources().getDrawable(R.drawable.ic_mic_26dp); + } else { + drawable = getResources().getDrawable(R.drawable.ic_phone_24dp); + } + return drawable; + } + + private boolean canLaunchVoiceAssist() { + return mAssistUtils.activeServiceSupportsLaunchFromKeyguard(); + } + private void createActionList() { mActions = new ActionHolder(); mActions.addAction(LockscreenShortcutsHelper.NONE, R.string.lockscreen_none_target); @@ -211,13 +235,15 @@ public class LockscreenShortcutsActivity extends Activity implements View.OnClic private void onTargetChange(String uri) { if (uri == null) { - final GlowBackground background = (GlowBackground) mSelectedView.getBackground(); - background.hideGlow(); + if (mSelectedView != null) { + final GlowBackground background = (GlowBackground) mSelectedView.getBackground(); + background.hideGlow(); + } return; } if (uri.equals(ACTION_APP)) { - mPicker.pickShortcut(null, null, 0); + mPicker.pickShortcut(null, null, 0, false); } else { mSelectedView.setTag(uri); saveCustomActions(); |