Skip to content

Commit fb68b0a

Browse files
Dianne HackbornAndroid (Google) Code Review
authored andcommitted
Merge "Fix issue #21895842: Add is_assist_blocked to assist.ViewNode.NodeProperties" into mnc-dev
2 parents ffbdb8a + afb308d commit fb68b0a

6 files changed

Lines changed: 38 additions & 6 deletions

File tree

core/java/android/app/assist/AssistStructure.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1106,7 +1106,7 @@ public void setVisibility(int visibility) {
11061106
@Override
11071107
public void setAssistBlocked(boolean state) {
11081108
mNode.mFlags = (mNode.mFlags&~ViewNode.FLAGS_ASSIST_BLOCKED)
1109-
| (state ? 0 : ViewNode.FLAGS_ASSIST_BLOCKED);
1109+
| (state ? ViewNode.FLAGS_ASSIST_BLOCKED : 0);
11101110
}
11111111

11121112
@Override
@@ -1412,6 +1412,9 @@ void dump(String prefix, ViewNode node) {
14121412
if (extras != null) {
14131413
Log.i(TAG, prefix + " Extras: " + extras);
14141414
}
1415+
if (node.isAssistBlocked()) {
1416+
Log.i(TAG, prefix + " BLOCKED");
1417+
}
14151418
final int NCHILDREN = node.getChildCount();
14161419
if (NCHILDREN > 0) {
14171420
Log.i(TAG, prefix + " Children:");

services/core/java/com/android/server/wm/WindowManagerService.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2658,6 +2658,16 @@ boolean isScreenCaptureDisabledLocked(int userId) {
26582658
return disabled;
26592659
}
26602660

2661+
boolean isSecureLocked(WindowState w) {
2662+
if ((w.mAttrs.flags&WindowManager.LayoutParams.FLAG_SECURE) != 0) {
2663+
return true;
2664+
}
2665+
if (isScreenCaptureDisabledLocked(UserHandle.getUserId(w.mOwnerUid))) {
2666+
return true;
2667+
}
2668+
return false;
2669+
}
2670+
26612671
/**
26622672
* Set mScreenCaptureDisabled for specific user
26632673
*/
@@ -3169,6 +3179,9 @@ public int relayoutWindow(Session session, IWindow client, int seq,
31693179
boolean wallpaperMayMove = win.mViewVisibility != viewVisibility
31703180
&& (win.mAttrs.flags & FLAG_SHOW_WALLPAPER) != 0;
31713181
wallpaperMayMove |= (flagChanges & FLAG_SHOW_WALLPAPER) != 0;
3182+
if ((flagChanges & FLAG_SECURE) != 0 && winAnimator.mSurfaceControl != null) {
3183+
winAnimator.mSurfaceControl.setSecure(isSecureLocked(win));
3184+
}
31723185

31733186
win.mRelayoutCalled = true;
31743187
final int oldVisibility = win.mViewVisibility;

services/core/java/com/android/server/wm/WindowStateAnimator.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -788,11 +788,7 @@ SurfaceControl createSurfaceLocked() {
788788
int flags = SurfaceControl.HIDDEN;
789789
final WindowManager.LayoutParams attrs = w.mAttrs;
790790

791-
if ((attrs.flags&WindowManager.LayoutParams.FLAG_SECURE) != 0) {
792-
flags |= SurfaceControl.SECURE;
793-
}
794-
795-
if (mService.isScreenCaptureDisabledLocked(UserHandle.getUserId(mWin.mOwnerUid))) {
791+
if (mService.isSecureLocked(w)) {
796792
flags |= SurfaceControl.SECURE;
797793
}
798794

tests/VoiceInteraction/res/layout/main.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@
2626
android:text="@string/start"
2727
/>
2828

29+
<CheckBox android:id="@+id/secure"
30+
android:layout_width="wrap_content"
31+
android:layout_height="wrap_content"
32+
android:text="@string/secure"
33+
/>
34+
2935
<com.android.test.voiceinteraction.AsyncStructure
3036
android:layout_width="match_parent"
3137
android:layout_height="wrap_content"

tests/VoiceInteraction/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
<resources>
1818

1919
<string name="start">Start</string>
20+
<string name="secure">Secure</string>
2021
<string name="tree">Tree</string>
2122
<string name="text">Text</string>
2223
<string name="asyncStructure">(Async structure goes here)</string>

tests/VoiceInteraction/src/com/android/test/voiceinteraction/VoiceInteractionMain.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import android.net.Uri;
2222
import android.os.Bundle;
2323
import android.view.View;
24+
import android.view.WindowManager;
25+
import android.widget.CheckBox;
2426

2527
public class VoiceInteractionMain extends Activity {
2628

@@ -30,6 +32,7 @@ public void onCreate(Bundle savedInstanceState) {
3032

3133
setContentView(R.layout.main);
3234
findViewById(R.id.start).setOnClickListener(mStartListener);
35+
findViewById(R.id.secure).setOnClickListener(mSecureListener);
3336
}
3437

3538
@Override
@@ -52,4 +55,14 @@ public void onClick(View v) {
5255
showAssist(null);
5356
}
5457
};
58+
59+
View.OnClickListener mSecureListener = new View.OnClickListener() {
60+
public void onClick(View v) {
61+
if (((CheckBox)v).isChecked()) {
62+
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
63+
} else {
64+
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
65+
}
66+
}
67+
};
5568
}

0 commit comments

Comments
 (0)