Merge "Fix ScreenDecorations user switch bug" into rvc-dev am: ec5dcbc241 am: 34a38029c9 am: 7df46d19b8

Change-Id: I37034b56d83e3f2d5f7f96b516830869ff0a9099
This commit is contained in:
Beverly Tai
2020-04-15 18:20:30 +00:00
committed by Automerger Merge Worker

View File

@@ -54,8 +54,10 @@ import android.graphics.Region;
import android.graphics.drawable.VectorDrawable; import android.graphics.drawable.VectorDrawable;
import android.hardware.display.DisplayManager; import android.hardware.display.DisplayManager;
import android.os.Handler; import android.os.Handler;
import android.os.HandlerExecutor;
import android.os.HandlerThread; import android.os.HandlerThread;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.os.UserHandle;
import android.provider.Settings.Secure; import android.provider.Settings.Secure;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.Log; import android.util.Log;
@@ -298,13 +300,15 @@ public class ScreenDecorations extends SystemUI implements Tunable {
updateColorInversion(value); updateColorInversion(value);
} }
}; };
}
mColorInversionSetting.setListening(true); mColorInversionSetting.setListening(true);
mColorInversionSetting.onChange(false); mColorInversionSetting.onChange(false);
}
IntentFilter filter = new IntentFilter(); IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_USER_SWITCHED); filter.addAction(Intent.ACTION_USER_SWITCHED);
mBroadcastDispatcher.registerReceiverWithHandler(mIntentReceiver, filter, mHandler); mBroadcastDispatcher.registerReceiver(mUserSwitchIntentReceiver, filter,
new HandlerExecutor(mHandler), UserHandle.ALL);
mIsRegistered = true; mIsRegistered = true;
} else { } else {
mMainHandler.post(() -> mTunerService.removeTunable(this)); mMainHandler.post(() -> mTunerService.removeTunable(this));
@@ -313,7 +317,7 @@ public class ScreenDecorations extends SystemUI implements Tunable {
mColorInversionSetting.setListening(false); mColorInversionSetting.setListening(false);
} }
mBroadcastDispatcher.unregisterReceiver(mIntentReceiver); mBroadcastDispatcher.unregisterReceiver(mUserSwitchIntentReceiver);
mIsRegistered = false; mIsRegistered = false;
} }
} }
@@ -503,18 +507,17 @@ public class ScreenDecorations extends SystemUI implements Tunable {
} }
} }
private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { private final BroadcastReceiver mUserSwitchIntentReceiver = new BroadcastReceiver() {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
String action = intent.getAction(); int newUserId = ActivityManager.getCurrentUser();
if (action.equals(Intent.ACTION_USER_SWITCHED)) { if (DEBUG) {
int newUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, Log.d(TAG, "UserSwitched newUserId=" + newUserId);
ActivityManager.getCurrentUser()); }
// update color inversion setting to the new user // update color inversion setting to the new user
mColorInversionSetting.setUserId(newUserId); mColorInversionSetting.setUserId(newUserId);
updateColorInversion(mColorInversionSetting.getValue()); updateColorInversion(mColorInversionSetting.getValue());
} }
}
}; };
private void updateColorInversion(int colorsInvertedValue) { private void updateColorInversion(int colorsInvertedValue) {