Merge "Fix ScreenDecorations user switch bug" into rvc-dev am: ec5dcbc241 am: 34a38029c9
Change-Id: I89c00ce35a4b6f2621648766c0b2d30f81a0d5ef
This commit is contained in:
@@ -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.onChange(false);
|
||||||
}
|
}
|
||||||
mColorInversionSetting.setListening(true);
|
|
||||||
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,17 +507,16 @@ 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
|
|
||||||
mColorInversionSetting.setUserId(newUserId);
|
|
||||||
updateColorInversion(mColorInversionSetting.getValue());
|
|
||||||
}
|
}
|
||||||
|
// update color inversion setting to the new user
|
||||||
|
mColorInversionSetting.setUserId(newUserId);
|
||||||
|
updateColorInversion(mColorInversionSetting.getValue());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user