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

Commit 980c49d3 authored by Amith Yamasani's avatar Amith Yamasani Committed by Android (Google) Code Review
Browse files

Merge "resolved conflicts for merge of 069d7e9b to master"

parents 1519882f ecd5afe1
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -2566,8 +2566,7 @@ public class Intent implements Parcelable, Cloneable {
    /**
     * Broadcast sent to the system when a user's information changes. Carries an extra
     * {@link #EXTRA_USER_HANDLE} to indicate which user's information changed.
     * This is only sent to registered receivers, not manifest receivers. It is sent to the user
     * whose information has changed.
     * This is only sent to registered receivers, not manifest receivers. It is sent to all users.
     * @hide
     */
    public static final String ACTION_USER_INFO_CHANGED =
+15 −0
Original line number Diff line number Diff line
@@ -100,6 +100,11 @@ class KeyguardCircleFramedDrawable extends Drawable {
        mFramePath = new Path();
    }

    public void reset() {
        mScale = 1f;
        mPressed = false;
    }

    @Override
    public void draw(Canvas canvas) {
        // clear background
@@ -157,4 +162,14 @@ class KeyguardCircleFramedDrawable extends Drawable {
    @Override
    public void setColorFilter(ColorFilter cf) {
    }

    public boolean verifyParams(float iconSize, int frameColor, float stroke,
            int frameShadowColor, float shadowRadius, int highlightColor) {
        return mSize == iconSize
                && mFrameColor == frameColor
                && mStrokeWidth == stroke
                && mFrameShadowColor == frameShadowColor
                && mShadowRadius == shadowRadius
                && mHighlightColor == highlightColor;
    }
}
+26 −2
Original line number Diff line number Diff line
@@ -130,8 +130,32 @@ class KeyguardMultiUserAvatar extends FrameLayout {
                    R.drawable.ic_contact_picture);
        }

        mFramed = (KeyguardCircleFramedDrawable)
                KeyguardViewMediator.getAvatarCache().get(user.id);

        // If we can't find it or the params don't match, create the drawable again
        if (mFramed == null
                || !mFramed.verifyParams(mIconSize, mFrameColor, mStroke, mFrameShadowColor,
                        mShadowRadius, mHighlightColor)) {
            Bitmap icon = null;
            try {
                icon = BitmapFactory.decodeFile(rewriteIconPath(user.iconPath));
            } catch (Exception e) {
                if (DEBUG) Log.d(TAG, "failed to open profile icon " + user.iconPath, e);
            }

            if (icon == null) {
                icon = BitmapFactory.decodeResource(mContext.getResources(),
                        com.android.internal.R.drawable.ic_contact_picture);
            }

            mFramed = new KeyguardCircleFramedDrawable(icon, (int) mIconSize, mFrameColor, mStroke,
                    mFrameShadowColor, mShadowRadius, mHighlightColor);
            KeyguardViewMediator.getAvatarCache().put(user.id, mFramed);
        }

        mFramed.reset();

        mUserImage.setImageDrawable(mFramed);
        mUserName.setText(mUserInfo.name);
        setOnClickListener(mUserSelector);
+28 −1
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@ public class KeyguardUpdateMonitor {
    private static final int MSG_USER_SWITCH_COMPLETE = 314;
    private static final int MSG_SET_CURRENT_CLIENT_ID = 315;
    protected static final int MSG_SET_PLAYBACK_STATE = 316;
    protected static final int MSG_USER_INFO_CHANGED = 317;


    private static KeyguardUpdateMonitor sInstance;
@@ -176,6 +177,9 @@ public class KeyguardUpdateMonitor {
                case MSG_SET_PLAYBACK_STATE:
                    handleSetPlaybackState(msg.arg1, msg.arg2, (Long) msg.obj);
                    break;
                case MSG_USER_INFO_CHANGED:
                    handleUserInfoChanged(msg.arg1);
                    break;
            }
        }
    };
@@ -278,6 +282,17 @@ public class KeyguardUpdateMonitor {
        }
    };

    private final BroadcastReceiver mBroadcastAllReceiver = new BroadcastReceiver() {

        public void onReceive(Context context, Intent intent) {
            final String action = intent.getAction();
            if (Intent.ACTION_USER_INFO_CHANGED.equals(action)) {
                mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_INFO_CHANGED,
                        intent.getIntExtra(Intent.EXTRA_USER_HANDLE, getSendingUserId()), 0));
            }
        }
    };

    /**
     * When we receive a
     * {@link com.android.internal.telephony.TelephonyIntents#ACTION_SIM_STATE_CHANGED} broadcast,
@@ -387,7 +402,6 @@ public class KeyguardUpdateMonitor {
        return sInstance;
    }


    protected void handleSetGenerationId(int clientGeneration, boolean clearing, PendingIntent p) {
        mDisplayClientState.clientGeneration = clientGeneration;
        mDisplayClientState.clearing = clearing;
@@ -420,6 +434,15 @@ public class KeyguardUpdateMonitor {
        }
    }

    private void handleUserInfoChanged(int userId) {
        for (int i = 0; i < mCallbacks.size(); i++) {
            KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
            if (cb != null) {
                cb.onUserInfoChanged(userId);
            }
        }
    }

    private KeyguardUpdateMonitor(Context context) {
        mContext = context;

@@ -454,6 +477,10 @@ public class KeyguardUpdateMonitor {
        bootCompleteFilter.addAction(Intent.ACTION_BOOT_COMPLETED);
        context.registerReceiver(mBroadcastReceiver, bootCompleteFilter);

        final IntentFilter userInfoFilter = new IntentFilter(Intent.ACTION_USER_INFO_CHANGED);
        context.registerReceiverAsUser(mBroadcastAllReceiver, UserHandle.ALL, userInfoFilter,
                null, null);

        try {
            ActivityManagerNative.getDefault().registerUserSwitchObserver(
                    new IUserSwitchObserver.Stub() {
+5 −0
Original line number Diff line number Diff line
@@ -106,6 +106,11 @@ class KeyguardUpdateMonitorCallback {
     */
    void onUserRemoved(int userId) { }

    /**
     * Called when the user's info changed.
     */
    void onUserInfoChanged(int userId) { }

    /**
     * Called when boot completed.
     *
Loading