Overview Actions - shows a message if action is blocked by policy.
Device policy or app secure surface policy mean that snapshot based actions shouldn't work. This is encoded in whether the snapshot is "real", the fake snapshot is generated when policy doesn't allow captures. Test: tested with Test DPC fake device policy app Change-Id: Ib34e5a90ab58fb401d4516c531866d1c13569256
This commit is contained in:
parent
9506316e21
commit
4ebd859bc4
|
@ -22,6 +22,7 @@ import android.content.Context;
|
||||||
import android.graphics.Insets;
|
import android.graphics.Insets;
|
||||||
import android.graphics.Matrix;
|
import android.graphics.Matrix;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.android.launcher3.BaseActivity;
|
import com.android.launcher3.BaseActivity;
|
||||||
import com.android.launcher3.BaseDraggingActivity;
|
import com.android.launcher3.BaseDraggingActivity;
|
||||||
|
@ -109,16 +110,26 @@ public class TaskOverlayFactory implements ResourceBasedOverride {
|
||||||
public void initOverlay(Task task, ThumbnailData thumbnail, Matrix matrix) {
|
public void initOverlay(Task task, ThumbnailData thumbnail, Matrix matrix) {
|
||||||
ImageActionsApi imageApi = new ImageActionsApi(
|
ImageActionsApi imageApi = new ImageActionsApi(
|
||||||
mApplicationContext, mThumbnailView::getThumbnail);
|
mApplicationContext, mThumbnailView::getThumbnail);
|
||||||
|
final boolean isAllowedByPolicy = thumbnail.isRealSnapshot;
|
||||||
|
|
||||||
getActionsView().setCallbacks(new OverlayUICallbacks() {
|
getActionsView().setCallbacks(new OverlayUICallbacks() {
|
||||||
@Override
|
@Override
|
||||||
public void onShare() {
|
public void onShare() {
|
||||||
|
if (isAllowedByPolicy) {
|
||||||
imageApi.startShareActivity();
|
imageApi.startShareActivity();
|
||||||
|
} else {
|
||||||
|
showBlockedByPolicyMessage();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onScreenshot() {
|
public void onScreenshot() {
|
||||||
|
if (isAllowedByPolicy) {
|
||||||
imageApi.saveScreenshot(mThumbnailView.getThumbnail(),
|
imageApi.saveScreenshot(mThumbnailView.getThumbnail(),
|
||||||
getTaskSnapshotBounds(), getTaskSnapshotInsets(), task.key.id);
|
getTaskSnapshotBounds(), getTaskSnapshotInsets(), task.key.id);
|
||||||
|
} else {
|
||||||
|
showBlockedByPolicyMessage();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -152,6 +163,13 @@ public class TaskOverlayFactory implements ResourceBasedOverride {
|
||||||
// TODO: return the real insets
|
// TODO: return the real insets
|
||||||
return Insets.of(0, 0, 0, 0);
|
return Insets.of(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showBlockedByPolicyMessage() {
|
||||||
|
Toast.makeText(
|
||||||
|
mThumbnailView.getContext(),
|
||||||
|
R.string.blocked_by_policy,
|
||||||
|
Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -141,4 +141,6 @@
|
||||||
<string name="action_share">Share</string>
|
<string name="action_share">Share</string>
|
||||||
<!-- Label for a button that causes a screen shot of the current app to be taken. [CHAR_LIMIT=40] -->
|
<!-- Label for a button that causes a screen shot of the current app to be taken. [CHAR_LIMIT=40] -->
|
||||||
<string name="action_screenshot">Screenshot</string>
|
<string name="action_screenshot">Screenshot</string>
|
||||||
|
<!-- Message shown when an action is blocked by a policy enforced by the app or the organization managing the device. [CHAR_LIMIT=NONE] -->
|
||||||
|
<string name="blocked_by_policy">This action isn\'t allowed by the app or your organization</string>
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue