Loading packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java +1 −12 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import static android.content.ClipDescription.CLASSIFICATION_COMPLETE; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_ENTERED; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_UPDATED; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_TOAST_SHOWN; import static com.android.systemui.flags.Flags.CLIPBOARD_MINIMIZED_LAYOUT; import static com.google.android.setupcompat.util.WizardManagerHelper.SETTINGS_SECURE_USER_SETUP_COMPLETE; Loading @@ -36,7 +35,6 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.logging.UiEventLogger; import com.android.systemui.CoreStartable; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.flags.FeatureFlags; import javax.inject.Inject; import javax.inject.Provider; Loading @@ -59,7 +57,6 @@ public class ClipboardListener implements private final Provider<ClipboardOverlayController> mOverlayProvider; private final ClipboardToast mClipboardToast; private final ClipboardManager mClipboardManager; private final FeatureFlags mFeatureFlags; private final UiEventLogger mUiEventLogger; private ClipboardOverlay mClipboardOverlay; Loading @@ -68,13 +65,11 @@ public class ClipboardListener implements Provider<ClipboardOverlayController> clipboardOverlayControllerProvider, ClipboardToast clipboardToast, ClipboardManager clipboardManager, FeatureFlags featureFlags, UiEventLogger uiEventLogger) { mContext = context; mOverlayProvider = clipboardOverlayControllerProvider; mClipboardToast = clipboardToast; mClipboardManager = clipboardManager; mFeatureFlags = featureFlags; mUiEventLogger = uiEventLogger; } Loading Loading @@ -113,11 +108,7 @@ public class ClipboardListener implements } else { mUiEventLogger.log(CLIPBOARD_OVERLAY_UPDATED, 0, clipSource); } if (mFeatureFlags.isEnabled(CLIPBOARD_MINIMIZED_LAYOUT)) { mClipboardOverlay.setClipData(clipData, clipSource); } else { mClipboardOverlay.setClipDataLegacy(clipData, clipSource); } mClipboardOverlay.setOnSessionCompleteListener(() -> { // Session is complete, free memory until it's needed again. mClipboardOverlay = null; Loading Loading @@ -160,8 +151,6 @@ public class ClipboardListener implements } interface ClipboardOverlay { void setClipDataLegacy(ClipData clipData, String clipSource); void setClipData(ClipData clipData, String clipSource); void setOnSessionCompleteListener(Runnable runnable); Loading packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java +4 −124 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBO import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_SWIPE_DISMISSED; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_TAP_OUTSIDE; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_TIMED_OUT; import static com.android.systemui.flags.Flags.CLIPBOARD_MINIMIZED_LAYOUT; import static com.android.systemui.flags.Flags.CLIPBOARD_REMOTE_BEHAVIOR; import android.animation.Animator; Loading @@ -40,20 +39,14 @@ import android.animation.AnimatorListenerAdapter; import android.app.RemoteAction; import android.content.BroadcastReceiver; import android.content.ClipData; import android.content.ClipDescription; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.hardware.input.InputManager; import android.net.Uri; import android.os.Looper; import android.provider.DeviceConfig; import android.text.TextUtils; import android.util.Log; import android.util.Size; import android.view.InputEvent; import android.view.InputEventReceiver; import android.view.InputMonitor; Loading @@ -72,7 +65,6 @@ import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.screenshot.TimeoutHandler; import java.io.IOException; import java.util.Optional; import java.util.concurrent.Executor; Loading Loading @@ -170,10 +162,8 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv @Override public void onMinimizedViewTapped() { if (mFeatureFlags.isEnabled(CLIPBOARD_MINIMIZED_LAYOUT)) { animateFromMinimized(); } } }; @Inject Loading Loading @@ -255,13 +245,11 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv @VisibleForTesting void onInsetsChanged(WindowInsets insets, int orientation) { mView.setInsets(insets, orientation); if (mFeatureFlags.isEnabled(CLIPBOARD_MINIMIZED_LAYOUT)) { if (shouldShowMinimized(insets) && !mIsMinimized) { mIsMinimized = true; mView.setMinimized(true); } } } @Override // ClipboardListener.ClipboardOverlay public void setClipData(ClipData data, String source) { Loading Loading @@ -401,61 +389,6 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv }); } @Override // ClipboardListener.ClipboardOverlay public void setClipDataLegacy(ClipData clipData, String clipSource) { if (mExitAnimator != null && mExitAnimator.isRunning()) { mExitAnimator.cancel(); } reset(); mClipboardLogger.setClipSource(clipSource); String accessibilityAnnouncement = mContext.getString(R.string.clipboard_content_copied); boolean isSensitive = clipData != null && clipData.getDescription().getExtras() != null && clipData.getDescription().getExtras() .getBoolean(ClipDescription.EXTRA_IS_SENSITIVE); boolean isRemote = mFeatureFlags.isEnabled(CLIPBOARD_REMOTE_BEHAVIOR) && mClipboardUtils.isRemoteCopy(mContext, clipData, clipSource); if (clipData == null || clipData.getItemCount() == 0) { mView.showDefaultTextPreview(); } else if (!TextUtils.isEmpty(clipData.getItemAt(0).getText())) { ClipData.Item item = clipData.getItemAt(0); if (isRemote || DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SYSTEMUI, CLIPBOARD_OVERLAY_SHOW_ACTIONS, false)) { if (item.getTextLinks() != null) { classifyText(clipData.getItemAt(0), clipSource); } } if (isSensitive) { showEditableText(mContext.getString(R.string.clipboard_asterisks), true); } else { showEditableText(item.getText(), false); } mOnShareTapped = () -> shareContent(clipData); mView.showShareChip(); accessibilityAnnouncement = mContext.getString(R.string.clipboard_text_copied); } else if (clipData.getItemAt(0).getUri() != null) { if (tryShowEditableImage(clipData.getItemAt(0).getUri(), isSensitive)) { accessibilityAnnouncement = mContext.getString(R.string.clipboard_image_copied); } mOnShareTapped = () -> shareContent(clipData); mView.showShareChip(); } else { mView.showDefaultTextPreview(); } if (!isRemote) { maybeShowRemoteCopy(clipData); } animateIn(); mView.announceForAccessibility(accessibilityAnnouncement); if (isRemote) { mTimeoutHandler.cancelTimeout(); mOnUiUpdate = null; } else { mOnUiUpdate = mTimeoutHandler::resetTimeout; mOnUiUpdate.run(); } } private void maybeShowRemoteCopy(ClipData clipData) { Intent remoteCopyIntent = IntentCreator.getRemoteCopyIntent(clipData, mContext); // Only show remote copy if it's available. Loading @@ -478,22 +411,6 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv mOnSessionCompleteListener = runnable; } private void classifyText(ClipData.Item item, String source) { mBgExecutor.execute(() -> { Optional<RemoteAction> action = mClipboardUtils.getAction(item, source); mView.post(() -> { mView.resetActionChips(); action.ifPresent(remoteAction -> { mView.setActionChip(remoteAction, () -> { mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_ACTION_TAPPED); animateOut(); }); mClipboardLogger.logUnguarded(CLIPBOARD_OVERLAY_ACTION_SHOWN); }); }); }); } private void monitorOutsideTouches() { InputManager inputManager = mContext.getSystemService(InputManager.class); mInputMonitor = inputManager.monitorGestureInput("clipboard overlay", 0); Loading Loading @@ -534,43 +451,6 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv animateOut(); } private void showEditableText(CharSequence text, boolean hidden) { mView.showTextPreview(text.toString(), hidden); mView.setEditAccessibilityAction(true); mOnPreviewTapped = this::editText; } private boolean tryShowEditableImage(Uri uri, boolean isSensitive) { Runnable listener = () -> editImage(uri); ContentResolver resolver = mContext.getContentResolver(); String mimeType = resolver.getType(uri); boolean isEditableImage = mimeType != null && mimeType.startsWith("image"); if (isSensitive) { mView.showImagePreview(null); if (isEditableImage) { mOnPreviewTapped = listener; mView.setEditAccessibilityAction(true); } } else if (isEditableImage) { // if the MIMEtype is image, try to load try { int size = mContext.getResources().getDimensionPixelSize(R.dimen.overlay_x_scale); // The width of the view is capped, height maintains aspect ratio, so allow it to be // taller if needed. Bitmap thumbnail = resolver.loadThumbnail(uri, new Size(size, size * 4), null); mView.showImagePreview(thumbnail); mView.setEditAccessibilityAction(true); mOnPreviewTapped = listener; } catch (IOException e) { Log.e(TAG, "Thumbnail loading failed", e); mView.showDefaultTextPreview(); isEditableImage = false; } } else { mView.showDefaultTextPreview(); } return isEditableImage; } private void animateIn() { if (mEnterAnimator != null && mEnterAnimator.isRunning()) { return; Loading packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayUtils.java +0 −21 Original line number Diff line number Diff line Loading @@ -88,25 +88,4 @@ class ClipboardOverlayUtils { } return actions; } public Optional<RemoteAction> getAction(ClipData.Item item, String source) { return getActions(item).stream().filter(remoteAction -> { ComponentName component = remoteAction.getActionIntent().getIntent().getComponent(); return component != null && !TextUtils.equals(source, component.getPackageName()); }).findFirst(); } private ArrayList<RemoteAction> getActions(ClipData.Item item) { ArrayList<RemoteAction> actions = new ArrayList<>(); for (TextLinks.TextLink link : item.getTextLinks().getLinks()) { // skip classification for incidental entities if (link.getEnd() - link.getStart() >= item.getText().length() * MINIMUM_ENTITY_PROPORTION) { TextClassification classification = mTextClassifier.classifyText( item.getText(), link.getStart(), link.getEnd(), null); actions.addAll(classification.getActions()); } } return actions; } } packages/SystemUI/src/com/android/systemui/flags/Flags.kt +0 −2 Original line number Diff line number Diff line Loading @@ -610,8 +610,6 @@ object Flags { // 1700 - clipboard @JvmField val CLIPBOARD_REMOTE_BEHAVIOR = releasedFlag(1701, "clipboard_remote_behavior") // TODO(b/267162944): Tracking bug @JvmField val CLIPBOARD_MINIMIZED_LAYOUT = releasedFlag(1702, "clipboard_data_model") // 1800 - shade container @JvmField Loading packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java +1 −37 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.systemui.clipboardoverlay; import static com.android.systemui.flags.Flags.CLIPBOARD_MINIMIZED_LAYOUT; import static com.google.android.setupcompat.util.WizardManagerHelper.SETTINGS_SECURE_USER_SETUP_COMPLETE; import static org.junit.Assert.assertEquals; Loading @@ -40,7 +38,6 @@ import androidx.test.runner.AndroidJUnit4; import com.android.internal.logging.UiEventLogger; import com.android.systemui.SysuiTestCase; import com.android.systemui.flags.FakeFeatureFlags; import org.junit.Before; import org.junit.Test; Loading @@ -65,7 +62,6 @@ public class ClipboardListenerTest extends SysuiTestCase { private ClipboardOverlayController mOverlayController; @Mock private ClipboardToast mClipboardToast; private FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags(); @Mock private UiEventLogger mUiEventLogger; Loading Loading @@ -99,10 +95,8 @@ public class ClipboardListenerTest extends SysuiTestCase { when(mClipboardManager.getPrimaryClip()).thenReturn(mSampleClipData); when(mClipboardManager.getPrimaryClipSource()).thenReturn(mSampleSource); mFeatureFlags.set(CLIPBOARD_MINIMIZED_LAYOUT, true); mClipboardListener = new ClipboardListener(getContext(), mOverlayControllerProvider, mClipboardToast, mClipboardManager, mFeatureFlags, mUiEventLogger); mClipboardToast, mClipboardManager, mUiEventLogger); } Loading Loading @@ -222,34 +216,4 @@ public class ClipboardListenerTest extends SysuiTestCase { verify(mClipboardToast, times(1)).showCopiedToast(); verifyZeroInteractions(mOverlayControllerProvider); } @Test public void test_minimizedLayoutFlagOff_usesLegacy() { mFeatureFlags.set(CLIPBOARD_MINIMIZED_LAYOUT, false); mClipboardListener.start(); mClipboardListener.onPrimaryClipChanged(); verify(mOverlayControllerProvider).get(); verify(mOverlayController).setClipDataLegacy( mClipDataCaptor.capture(), mStringCaptor.capture()); assertEquals(mSampleClipData, mClipDataCaptor.getValue()); assertEquals(mSampleSource, mStringCaptor.getValue()); } @Test public void test_minimizedLayoutFlagOn_usesNew() { mClipboardListener.start(); mClipboardListener.onPrimaryClipChanged(); verify(mOverlayControllerProvider).get(); verify(mOverlayController).setClipData( mClipDataCaptor.capture(), mStringCaptor.capture()); assertEquals(mSampleClipData, mClipDataCaptor.getValue()); assertEquals(mSampleSource, mStringCaptor.getValue()); } } Loading
packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java +1 −12 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import static android.content.ClipDescription.CLASSIFICATION_COMPLETE; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_ENTERED; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_UPDATED; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_TOAST_SHOWN; import static com.android.systemui.flags.Flags.CLIPBOARD_MINIMIZED_LAYOUT; import static com.google.android.setupcompat.util.WizardManagerHelper.SETTINGS_SECURE_USER_SETUP_COMPLETE; Loading @@ -36,7 +35,6 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.logging.UiEventLogger; import com.android.systemui.CoreStartable; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.flags.FeatureFlags; import javax.inject.Inject; import javax.inject.Provider; Loading @@ -59,7 +57,6 @@ public class ClipboardListener implements private final Provider<ClipboardOverlayController> mOverlayProvider; private final ClipboardToast mClipboardToast; private final ClipboardManager mClipboardManager; private final FeatureFlags mFeatureFlags; private final UiEventLogger mUiEventLogger; private ClipboardOverlay mClipboardOverlay; Loading @@ -68,13 +65,11 @@ public class ClipboardListener implements Provider<ClipboardOverlayController> clipboardOverlayControllerProvider, ClipboardToast clipboardToast, ClipboardManager clipboardManager, FeatureFlags featureFlags, UiEventLogger uiEventLogger) { mContext = context; mOverlayProvider = clipboardOverlayControllerProvider; mClipboardToast = clipboardToast; mClipboardManager = clipboardManager; mFeatureFlags = featureFlags; mUiEventLogger = uiEventLogger; } Loading Loading @@ -113,11 +108,7 @@ public class ClipboardListener implements } else { mUiEventLogger.log(CLIPBOARD_OVERLAY_UPDATED, 0, clipSource); } if (mFeatureFlags.isEnabled(CLIPBOARD_MINIMIZED_LAYOUT)) { mClipboardOverlay.setClipData(clipData, clipSource); } else { mClipboardOverlay.setClipDataLegacy(clipData, clipSource); } mClipboardOverlay.setOnSessionCompleteListener(() -> { // Session is complete, free memory until it's needed again. mClipboardOverlay = null; Loading Loading @@ -160,8 +151,6 @@ public class ClipboardListener implements } interface ClipboardOverlay { void setClipDataLegacy(ClipData clipData, String clipSource); void setClipData(ClipData clipData, String clipSource); void setOnSessionCompleteListener(Runnable runnable); Loading
packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java +4 −124 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBO import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_SWIPE_DISMISSED; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_TAP_OUTSIDE; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_TIMED_OUT; import static com.android.systemui.flags.Flags.CLIPBOARD_MINIMIZED_LAYOUT; import static com.android.systemui.flags.Flags.CLIPBOARD_REMOTE_BEHAVIOR; import android.animation.Animator; Loading @@ -40,20 +39,14 @@ import android.animation.AnimatorListenerAdapter; import android.app.RemoteAction; import android.content.BroadcastReceiver; import android.content.ClipData; import android.content.ClipDescription; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.hardware.input.InputManager; import android.net.Uri; import android.os.Looper; import android.provider.DeviceConfig; import android.text.TextUtils; import android.util.Log; import android.util.Size; import android.view.InputEvent; import android.view.InputEventReceiver; import android.view.InputMonitor; Loading @@ -72,7 +65,6 @@ import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.screenshot.TimeoutHandler; import java.io.IOException; import java.util.Optional; import java.util.concurrent.Executor; Loading Loading @@ -170,10 +162,8 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv @Override public void onMinimizedViewTapped() { if (mFeatureFlags.isEnabled(CLIPBOARD_MINIMIZED_LAYOUT)) { animateFromMinimized(); } } }; @Inject Loading Loading @@ -255,13 +245,11 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv @VisibleForTesting void onInsetsChanged(WindowInsets insets, int orientation) { mView.setInsets(insets, orientation); if (mFeatureFlags.isEnabled(CLIPBOARD_MINIMIZED_LAYOUT)) { if (shouldShowMinimized(insets) && !mIsMinimized) { mIsMinimized = true; mView.setMinimized(true); } } } @Override // ClipboardListener.ClipboardOverlay public void setClipData(ClipData data, String source) { Loading Loading @@ -401,61 +389,6 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv }); } @Override // ClipboardListener.ClipboardOverlay public void setClipDataLegacy(ClipData clipData, String clipSource) { if (mExitAnimator != null && mExitAnimator.isRunning()) { mExitAnimator.cancel(); } reset(); mClipboardLogger.setClipSource(clipSource); String accessibilityAnnouncement = mContext.getString(R.string.clipboard_content_copied); boolean isSensitive = clipData != null && clipData.getDescription().getExtras() != null && clipData.getDescription().getExtras() .getBoolean(ClipDescription.EXTRA_IS_SENSITIVE); boolean isRemote = mFeatureFlags.isEnabled(CLIPBOARD_REMOTE_BEHAVIOR) && mClipboardUtils.isRemoteCopy(mContext, clipData, clipSource); if (clipData == null || clipData.getItemCount() == 0) { mView.showDefaultTextPreview(); } else if (!TextUtils.isEmpty(clipData.getItemAt(0).getText())) { ClipData.Item item = clipData.getItemAt(0); if (isRemote || DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SYSTEMUI, CLIPBOARD_OVERLAY_SHOW_ACTIONS, false)) { if (item.getTextLinks() != null) { classifyText(clipData.getItemAt(0), clipSource); } } if (isSensitive) { showEditableText(mContext.getString(R.string.clipboard_asterisks), true); } else { showEditableText(item.getText(), false); } mOnShareTapped = () -> shareContent(clipData); mView.showShareChip(); accessibilityAnnouncement = mContext.getString(R.string.clipboard_text_copied); } else if (clipData.getItemAt(0).getUri() != null) { if (tryShowEditableImage(clipData.getItemAt(0).getUri(), isSensitive)) { accessibilityAnnouncement = mContext.getString(R.string.clipboard_image_copied); } mOnShareTapped = () -> shareContent(clipData); mView.showShareChip(); } else { mView.showDefaultTextPreview(); } if (!isRemote) { maybeShowRemoteCopy(clipData); } animateIn(); mView.announceForAccessibility(accessibilityAnnouncement); if (isRemote) { mTimeoutHandler.cancelTimeout(); mOnUiUpdate = null; } else { mOnUiUpdate = mTimeoutHandler::resetTimeout; mOnUiUpdate.run(); } } private void maybeShowRemoteCopy(ClipData clipData) { Intent remoteCopyIntent = IntentCreator.getRemoteCopyIntent(clipData, mContext); // Only show remote copy if it's available. Loading @@ -478,22 +411,6 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv mOnSessionCompleteListener = runnable; } private void classifyText(ClipData.Item item, String source) { mBgExecutor.execute(() -> { Optional<RemoteAction> action = mClipboardUtils.getAction(item, source); mView.post(() -> { mView.resetActionChips(); action.ifPresent(remoteAction -> { mView.setActionChip(remoteAction, () -> { mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_ACTION_TAPPED); animateOut(); }); mClipboardLogger.logUnguarded(CLIPBOARD_OVERLAY_ACTION_SHOWN); }); }); }); } private void monitorOutsideTouches() { InputManager inputManager = mContext.getSystemService(InputManager.class); mInputMonitor = inputManager.monitorGestureInput("clipboard overlay", 0); Loading Loading @@ -534,43 +451,6 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv animateOut(); } private void showEditableText(CharSequence text, boolean hidden) { mView.showTextPreview(text.toString(), hidden); mView.setEditAccessibilityAction(true); mOnPreviewTapped = this::editText; } private boolean tryShowEditableImage(Uri uri, boolean isSensitive) { Runnable listener = () -> editImage(uri); ContentResolver resolver = mContext.getContentResolver(); String mimeType = resolver.getType(uri); boolean isEditableImage = mimeType != null && mimeType.startsWith("image"); if (isSensitive) { mView.showImagePreview(null); if (isEditableImage) { mOnPreviewTapped = listener; mView.setEditAccessibilityAction(true); } } else if (isEditableImage) { // if the MIMEtype is image, try to load try { int size = mContext.getResources().getDimensionPixelSize(R.dimen.overlay_x_scale); // The width of the view is capped, height maintains aspect ratio, so allow it to be // taller if needed. Bitmap thumbnail = resolver.loadThumbnail(uri, new Size(size, size * 4), null); mView.showImagePreview(thumbnail); mView.setEditAccessibilityAction(true); mOnPreviewTapped = listener; } catch (IOException e) { Log.e(TAG, "Thumbnail loading failed", e); mView.showDefaultTextPreview(); isEditableImage = false; } } else { mView.showDefaultTextPreview(); } return isEditableImage; } private void animateIn() { if (mEnterAnimator != null && mEnterAnimator.isRunning()) { return; Loading
packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayUtils.java +0 −21 Original line number Diff line number Diff line Loading @@ -88,25 +88,4 @@ class ClipboardOverlayUtils { } return actions; } public Optional<RemoteAction> getAction(ClipData.Item item, String source) { return getActions(item).stream().filter(remoteAction -> { ComponentName component = remoteAction.getActionIntent().getIntent().getComponent(); return component != null && !TextUtils.equals(source, component.getPackageName()); }).findFirst(); } private ArrayList<RemoteAction> getActions(ClipData.Item item) { ArrayList<RemoteAction> actions = new ArrayList<>(); for (TextLinks.TextLink link : item.getTextLinks().getLinks()) { // skip classification for incidental entities if (link.getEnd() - link.getStart() >= item.getText().length() * MINIMUM_ENTITY_PROPORTION) { TextClassification classification = mTextClassifier.classifyText( item.getText(), link.getStart(), link.getEnd(), null); actions.addAll(classification.getActions()); } } return actions; } }
packages/SystemUI/src/com/android/systemui/flags/Flags.kt +0 −2 Original line number Diff line number Diff line Loading @@ -610,8 +610,6 @@ object Flags { // 1700 - clipboard @JvmField val CLIPBOARD_REMOTE_BEHAVIOR = releasedFlag(1701, "clipboard_remote_behavior") // TODO(b/267162944): Tracking bug @JvmField val CLIPBOARD_MINIMIZED_LAYOUT = releasedFlag(1702, "clipboard_data_model") // 1800 - shade container @JvmField Loading
packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java +1 −37 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.systemui.clipboardoverlay; import static com.android.systemui.flags.Flags.CLIPBOARD_MINIMIZED_LAYOUT; import static com.google.android.setupcompat.util.WizardManagerHelper.SETTINGS_SECURE_USER_SETUP_COMPLETE; import static org.junit.Assert.assertEquals; Loading @@ -40,7 +38,6 @@ import androidx.test.runner.AndroidJUnit4; import com.android.internal.logging.UiEventLogger; import com.android.systemui.SysuiTestCase; import com.android.systemui.flags.FakeFeatureFlags; import org.junit.Before; import org.junit.Test; Loading @@ -65,7 +62,6 @@ public class ClipboardListenerTest extends SysuiTestCase { private ClipboardOverlayController mOverlayController; @Mock private ClipboardToast mClipboardToast; private FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags(); @Mock private UiEventLogger mUiEventLogger; Loading Loading @@ -99,10 +95,8 @@ public class ClipboardListenerTest extends SysuiTestCase { when(mClipboardManager.getPrimaryClip()).thenReturn(mSampleClipData); when(mClipboardManager.getPrimaryClipSource()).thenReturn(mSampleSource); mFeatureFlags.set(CLIPBOARD_MINIMIZED_LAYOUT, true); mClipboardListener = new ClipboardListener(getContext(), mOverlayControllerProvider, mClipboardToast, mClipboardManager, mFeatureFlags, mUiEventLogger); mClipboardToast, mClipboardManager, mUiEventLogger); } Loading Loading @@ -222,34 +216,4 @@ public class ClipboardListenerTest extends SysuiTestCase { verify(mClipboardToast, times(1)).showCopiedToast(); verifyZeroInteractions(mOverlayControllerProvider); } @Test public void test_minimizedLayoutFlagOff_usesLegacy() { mFeatureFlags.set(CLIPBOARD_MINIMIZED_LAYOUT, false); mClipboardListener.start(); mClipboardListener.onPrimaryClipChanged(); verify(mOverlayControllerProvider).get(); verify(mOverlayController).setClipDataLegacy( mClipDataCaptor.capture(), mStringCaptor.capture()); assertEquals(mSampleClipData, mClipDataCaptor.getValue()); assertEquals(mSampleSource, mStringCaptor.getValue()); } @Test public void test_minimizedLayoutFlagOn_usesNew() { mClipboardListener.start(); mClipboardListener.onPrimaryClipChanged(); verify(mOverlayControllerProvider).get(); verify(mOverlayController).setClipData( mClipDataCaptor.capture(), mStringCaptor.capture()); assertEquals(mSampleClipData, mClipDataCaptor.getValue()); assertEquals(mSampleSource, mStringCaptor.getValue()); } }