Don't show user education if it's hiding
If we get an onWindowInsets change while the user education is
showing (and the user is interacting with it so it's 'going away')
we can end up in a state where we trigger the user education to
show again when it shouldn't.
I've found this pretty tough to repro, I think this is the issue
and should fix it.
Bug: 282618534
Test: manual - adb shell pm clear com.android.systemui
- adb shell am restart
- add a bubble, tap / drag slightly on it to show the
user education
- tap again, user education goes away
- repeat this a whole bunch
Change-Id: I05dcfed7466527e26bdce6af5988f5c178203602
This commit is contained in:
@@ -1338,7 +1338,7 @@ public class BubbleStackView extends FrameLayout
|
||||
|
||||
// Recreates & shows the education views. Call when a theme/config change happens.
|
||||
private void updateUserEdu() {
|
||||
if (isStackEduVisible()) {
|
||||
if (isStackEduVisible() && !mStackEduView.isHiding()) {
|
||||
removeView(mStackEduView);
|
||||
mStackEduView = new StackEducationView(mContext, mPositioner, mBubbleController);
|
||||
addView(mStackEduView);
|
||||
|
||||
@@ -37,8 +37,7 @@ class StackEducationView constructor(
|
||||
context: Context,
|
||||
positioner: BubblePositioner,
|
||||
controller: BubbleController
|
||||
)
|
||||
: LinearLayout(context) {
|
||||
) : LinearLayout(context) {
|
||||
|
||||
private val TAG = if (BubbleDebugConfig.TAG_WITH_CLASS_NAME) "BubbleStackEducationView"
|
||||
else BubbleDebugConfig.TAG_BUBBLES
|
||||
@@ -53,7 +52,8 @@ class StackEducationView constructor(
|
||||
private val titleTextView by lazy { findViewById<TextView>(R.id.stack_education_title) }
|
||||
private val descTextView by lazy { findViewById<TextView>(R.id.stack_education_description) }
|
||||
|
||||
private var isHiding = false
|
||||
var isHiding = false
|
||||
private set
|
||||
|
||||
init {
|
||||
LayoutInflater.from(context).inflate(R.layout.bubble_stack_user_education, this)
|
||||
|
||||
Reference in New Issue
Block a user