Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ebd859b authored by Zak Cohen's avatar Zak Cohen
Browse files

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
parent 9506316e
Loading
Loading
Loading
Loading
+21 −3
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.Context;
import android.graphics.Insets;
import android.graphics.Matrix;
import android.graphics.Rect;
import android.widget.Toast;

import com.android.launcher3.BaseActivity;
import com.android.launcher3.BaseDraggingActivity;
@@ -109,16 +110,26 @@ public class TaskOverlayFactory implements ResourceBasedOverride {
        public void initOverlay(Task task, ThumbnailData thumbnail, Matrix matrix) {
            ImageActionsApi imageApi = new ImageActionsApi(
                    mApplicationContext, mThumbnailView::getThumbnail);
            final boolean isAllowedByPolicy = thumbnail.isRealSnapshot;

            getActionsView().setCallbacks(new OverlayUICallbacks() {
                @Override
                public void onShare() {
                    if (isAllowedByPolicy) {
                        imageApi.startShareActivity();
                    } else {
                        showBlockedByPolicyMessage();
                    }
                }

                @Override
                public void onScreenshot() {
                    if (isAllowedByPolicy) {
                        imageApi.saveScreenshot(mThumbnailView.getThumbnail(),
                                getTaskSnapshotBounds(), getTaskSnapshotInsets(), task.key.id);
                    } else {
                        showBlockedByPolicyMessage();
                    }
                }
            });
        }
@@ -152,6 +163,13 @@ public class TaskOverlayFactory implements ResourceBasedOverride {
            // TODO: return the real insets
            return Insets.of(0, 0, 0, 0);
        }

        private void showBlockedByPolicyMessage() {
            Toast.makeText(
                    mThumbnailView.getContext(),
                    R.string.blocked_by_policy,
                    Toast.LENGTH_LONG).show();
        }
    }

    /**
+2 −0
Original line number Diff line number Diff line
@@ -141,4 +141,6 @@
    <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] -->
    <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>
 No newline at end of file