Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca215689 authored by Jason Monk's avatar Jason Monk
Browse files

Fix tinting and sizing of tuner lock screen shortcuts

Test: visual
Change-Id: I13f0281d38cd4d73322e9752d9bca36be2412917
parent efdb4289
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -32,6 +32,7 @@ public interface IntentButtonProvider extends Plugin {
            public boolean isVisible = true;
            public boolean isVisible = true;
            public CharSequence contentDescription = null;
            public CharSequence contentDescription = null;
            public Drawable drawable;
            public Drawable drawable;
            public boolean tint = true;
        }
        }


        public IconState getIcon();
        public IconState getIcon();
+0 −2
Original line number Original line Diff line number Diff line
@@ -66,7 +66,6 @@
        android:layout_height="@dimen/keyguard_affordance_height"
        android:layout_height="@dimen/keyguard_affordance_height"
        android:layout_width="@dimen/keyguard_affordance_width"
        android:layout_width="@dimen/keyguard_affordance_width"
        android:layout_gravity="bottom|end"
        android:layout_gravity="bottom|end"
        android:tint="#ffffffff"
        android:src="@drawable/ic_camera_alt_24dp"
        android:src="@drawable/ic_camera_alt_24dp"
        android:scaleType="center"
        android:scaleType="center"
        android:contentDescription="@string/accessibility_camera_button" />
        android:contentDescription="@string/accessibility_camera_button" />
@@ -76,7 +75,6 @@
        android:layout_height="@dimen/keyguard_affordance_height"
        android:layout_height="@dimen/keyguard_affordance_height"
        android:layout_width="@dimen/keyguard_affordance_width"
        android:layout_width="@dimen/keyguard_affordance_width"
        android:layout_gravity="bottom|start"
        android:layout_gravity="bottom|start"
        android:tint="#ffffffff"
        android:src="@drawable/ic_phone_24dp"
        android:src="@drawable/ic_phone_24dp"
        android:scaleType="center"
        android:scaleType="center"
        android:contentDescription="@string/accessibility_phone_button" />
        android:contentDescription="@string/accessibility_phone_button" />
+9 −0
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.ArgbEvaluator;
import android.animation.ArgbEvaluator;
import android.animation.PropertyValuesHolder;
import android.animation.PropertyValuesHolder;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator;
import android.annotation.Nullable;
import android.content.Context;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Canvas;
import android.graphics.CanvasProperty;
import android.graphics.CanvasProperty;
@@ -78,6 +79,7 @@ public class KeyguardAffordanceView extends ImageView {
    private boolean mSupportHardware;
    private boolean mSupportHardware;
    private boolean mFinishing;
    private boolean mFinishing;
    private boolean mLaunchingAffordance;
    private boolean mLaunchingAffordance;
    private boolean mShouldTint = true;


    private CanvasProperty<Float> mHwCircleRadius;
    private CanvasProperty<Float> mHwCircleRadius;
    private CanvasProperty<Float> mHwCenterX;
    private CanvasProperty<Float> mHwCenterX;
@@ -137,6 +139,12 @@ public class KeyguardAffordanceView extends ImageView {
        mFlingAnimationUtils = new FlingAnimationUtils(mContext, 0.3f);
        mFlingAnimationUtils = new FlingAnimationUtils(mContext, 0.3f);
    }
    }


    public void setImageDrawable(@Nullable Drawable drawable, boolean tint) {
        super.setImageDrawable(drawable);
        mShouldTint = tint;
        updateIconColor();
    }

    @Override
    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        super.onLayout(changed, left, top, right, bottom);
@@ -165,6 +173,7 @@ public class KeyguardAffordanceView extends ImageView {
    }
    }


    private void updateIconColor() {
    private void updateIconColor() {
        if (!mShouldTint) return;
        Drawable drawable = getDrawable().mutate();
        Drawable drawable = getDrawable().mutate();
        float alpha = mCircleRadius / mMinBackgroundRadius;
        float alpha = mCircleRadius / mMinBackgroundRadius;
        alpha = Math.min(1.0f, alpha);
        alpha = Math.min(1.0f, alpha);
+2 −2
Original line number Original line Diff line number Diff line
@@ -324,7 +324,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
    private void updateRightAffordanceIcon() {
    private void updateRightAffordanceIcon() {
        IconState state = mRightButton.getIcon();
        IconState state = mRightButton.getIcon();
        mRightAffordanceView.setVisibility(state.isVisible ? View.VISIBLE : View.GONE);
        mRightAffordanceView.setVisibility(state.isVisible ? View.VISIBLE : View.GONE);
        mRightAffordanceView.setImageDrawable(state.drawable);
        mRightAffordanceView.setImageDrawable(state.drawable, state.tint);
        mRightAffordanceView.setContentDescription(state.contentDescription);
        mRightAffordanceView.setContentDescription(state.contentDescription);
    }
    }


@@ -376,7 +376,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
    private void updateLeftAffordanceIcon() {
    private void updateLeftAffordanceIcon() {
        IconState state = mLeftButton.getIcon();
        IconState state = mLeftButton.getIcon();
        mLeftAffordanceView.setVisibility(state.isVisible ? View.VISIBLE : View.GONE);
        mLeftAffordanceView.setVisibility(state.isVisible ? View.VISIBLE : View.GONE);
        mLeftAffordanceView.setImageDrawable(state.drawable);
        mLeftAffordanceView.setImageDrawable(state.drawable, state.tint);
        mLeftAffordanceView.setContentDescription(state.contentDescription);
        mLeftAffordanceView.setContentDescription(state.contentDescription);
    }
    }


+17 −2
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@ import android.content.pm.LauncherApps.ShortcutQuery;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutInfo;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.ScaleDrawable;
import android.os.Bundle;
import android.os.Bundle;
import android.os.Handler;
import android.os.Handler;
import android.os.Process;
import android.os.Process;
@@ -37,6 +38,9 @@ import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.text.TextUtils;
import android.text.TextUtils;
import android.util.Log;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup;
@@ -46,6 +50,7 @@ import android.widget.TextView;
import com.android.systemui.Dependency;
import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.R;
import com.android.systemui.plugins.IntentButtonProvider.IntentButton;
import com.android.systemui.plugins.IntentButtonProvider.IntentButton;
import com.android.systemui.statusbar.ScalingDrawableWrapper;
import com.android.systemui.statusbar.phone.ExpandableIndicator;
import com.android.systemui.statusbar.phone.ExpandableIndicator;
import com.android.systemui.tuner.ShortcutParser.Shortcut;
import com.android.systemui.tuner.ShortcutParser.Shortcut;
import com.android.systemui.tuner.TunerService.Tunable;
import com.android.systemui.tuner.TunerService.Tunable;
@@ -365,8 +370,13 @@ public class LockscreenFragment extends PreferenceFragment {
            mShortcut = shortcut;
            mShortcut = shortcut;
            mIconState = new IconState();
            mIconState = new IconState();
            mIconState.isVisible = true;
            mIconState.isVisible = true;
            mIconState.drawable = shortcut.icon.loadDrawable(context);
            mIconState.drawable = shortcut.icon.loadDrawable(context).mutate();
            mIconState.contentDescription = mShortcut.label;
            mIconState.contentDescription = mShortcut.label;
            int size = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 32,
                    context.getResources().getDisplayMetrics());
            mIconState.drawable = new ScalingDrawableWrapper(mIconState.drawable,
                    size / (float) mIconState.drawable.getIntrinsicWidth());
            mIconState.tint = false;
        }
        }


        @Override
        @Override
@@ -388,8 +398,13 @@ public class LockscreenFragment extends PreferenceFragment {
            mIntent = new Intent().setComponent(new ComponentName(info.packageName, info.name));
            mIntent = new Intent().setComponent(new ComponentName(info.packageName, info.name));
            mIconState = new IconState();
            mIconState = new IconState();
            mIconState.isVisible = true;
            mIconState.isVisible = true;
            mIconState.drawable = info.loadIcon(context.getPackageManager());
            mIconState.drawable = info.loadIcon(context.getPackageManager()).mutate();
            mIconState.contentDescription = info.loadLabel(context.getPackageManager());
            mIconState.contentDescription = info.loadLabel(context.getPackageManager());
            int size = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 32,
                    context.getResources().getDisplayMetrics());
            mIconState.drawable = new ScalingDrawableWrapper(mIconState.drawable,
                    size / (float) mIconState.drawable.getIntrinsicWidth());
            mIconState.tint = false;
        }
        }


        @Override
        @Override