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

Commit c1a0376e authored by Miranda Kephart's avatar Miranda Kephart Committed by Automerger Merge Worker
Browse files

Merge "Remove clipboard refactor flag" into tm-qpr-dev am: 4d2d2c25 am: ae1b3f70

parents 1684f166 ae1b3f70
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -566,11 +566,6 @@ public final class SystemUiDeviceConfigFlags {
     */
    public static final String VOLUME_SEPARATE_NOTIFICATION = "volume_separate_notification";

    /**
     * (boolean) Whether the clipboard overlay is enabled.
     */
    public static final String CLIPBOARD_OVERLAY_ENABLED = "clipboard_overlay_enabled";

    /**
     * (boolean) Whether widget provider info would be saved to / loaded from system persistence
     * layer as opposed to individual manifests in respective apps.
+0 −160
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2021 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<com.android.systemui.screenshot.DraggableConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/clipboard_ui"
    android:theme="@style/FloatingOverlay"
    android:alpha="0"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:contentDescription="@string/clipboard_overlay_window_name">
    <ImageView
        android:id="@+id/actions_container_background"
        android:visibility="gone"
        android:layout_height="0dp"
        android:layout_width="0dp"
        android:elevation="4dp"
        android:background="@drawable/action_chip_container_background"
        android:layout_marginStart="@dimen/overlay_action_container_margin_horizontal"
        app:layout_constraintBottom_toBottomOf="@+id/actions_container"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/actions_container"
        app:layout_constraintEnd_toEndOf="@+id/actions_container"/>
    <HorizontalScrollView
        android:id="@+id/actions_container"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="@dimen/overlay_action_container_margin_horizontal"
        android:paddingEnd="@dimen/overlay_action_container_padding_right"
        android:paddingVertical="@dimen/overlay_action_container_padding_vertical"
        android:elevation="4dp"
        android:scrollbars="none"
        android:layout_marginBottom="4dp"
        app:layout_constraintHorizontal_bias="0"
        app:layout_constraintWidth_percent="1.0"
        app:layout_constraintWidth_max="wrap"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toEndOf="@+id/preview_border"
        app:layout_constraintEnd_toEndOf="parent">
        <LinearLayout
            android:id="@+id/actions"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:animateLayoutChanges="true">
            <include layout="@layout/overlay_action_chip"
                     android:id="@+id/share_chip"/>
            <include layout="@layout/overlay_action_chip"
                     android:id="@+id/remote_copy_chip"/>
            <include layout="@layout/overlay_action_chip"
                     android:id="@+id/edit_chip"/>
        </LinearLayout>
    </HorizontalScrollView>
    <View
        android:id="@+id/preview_border"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="@dimen/overlay_offset_x"
        android:layout_marginBottom="12dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        android:elevation="7dp"
        app:layout_constraintEnd_toEndOf="@id/clipboard_preview_end"
        app:layout_constraintTop_toTopOf="@id/clipboard_preview_top"
        android:background="@drawable/overlay_border"/>
    <androidx.constraintlayout.widget.Barrier
        android:id="@+id/clipboard_preview_end"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:barrierMargin="@dimen/overlay_border_width"
        app:barrierDirection="end"
        app:constraint_referenced_ids="clipboard_preview"/>
    <androidx.constraintlayout.widget.Barrier
        android:id="@+id/clipboard_preview_top"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:barrierDirection="top"
        app:barrierMargin="@dimen/overlay_border_width_neg"
        app:constraint_referenced_ids="clipboard_preview"/>
    <FrameLayout
        android:id="@+id/clipboard_preview"
        android:elevation="7dp"
        android:background="@drawable/overlay_preview_background"
        android:clipChildren="true"
        android:clipToOutline="true"
        android:clipToPadding="true"
        android:layout_width="@dimen/clipboard_preview_size"
        android:layout_margin="@dimen/overlay_border_width"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        app:layout_constraintBottom_toBottomOf="@id/preview_border"
        app:layout_constraintStart_toStartOf="@id/preview_border"
        app:layout_constraintEnd_toEndOf="@id/preview_border"
        app:layout_constraintTop_toTopOf="@id/preview_border">
        <TextView android:id="@+id/text_preview"
                  android:textFontWeight="500"
                  android:padding="8dp"
                  android:gravity="center|start"
                  android:ellipsize="end"
                  android:autoSizeTextType="uniform"
                  android:autoSizeMinTextSize="@dimen/clipboard_overlay_min_font"
                  android:autoSizeMaxTextSize="@dimen/clipboard_overlay_max_font"
                  android:textColor="?attr/overlayButtonTextColor"
                  android:textColorLink="?attr/overlayButtonTextColor"
                  android:background="?androidprv:attr/colorAccentSecondary"
                  android:layout_width="@dimen/clipboard_preview_size"
                  android:layout_height="@dimen/clipboard_preview_size"/>
        <ImageView
            android:id="@+id/image_preview"
            android:scaleType="fitCenter"
            android:adjustViewBounds="true"
            android:contentDescription="@string/clipboard_image_preview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        <TextView
            android:id="@+id/hidden_preview"
            android:visibility="gone"
            android:textFontWeight="500"
            android:padding="8dp"
            android:gravity="center"
            android:textSize="14sp"
            android:textColor="?attr/overlayButtonTextColor"
            android:background="?androidprv:attr/colorAccentSecondary"
            android:layout_width="@dimen/clipboard_preview_size"
            android:layout_height="@dimen/clipboard_preview_size"/>
    </FrameLayout>
    <FrameLayout
        android:id="@+id/dismiss_button"
        android:layout_width="@dimen/overlay_dismiss_button_tappable_size"
        android:layout_height="@dimen/overlay_dismiss_button_tappable_size"
        android:elevation="10dp"
        android:visibility="gone"
        android:alpha="0"
        app:layout_constraintStart_toEndOf="@id/clipboard_preview"
        app:layout_constraintEnd_toEndOf="@id/clipboard_preview"
        app:layout_constraintTop_toTopOf="@id/clipboard_preview"
        app:layout_constraintBottom_toTopOf="@id/clipboard_preview"
        android:contentDescription="@string/clipboard_dismiss_description">
        <ImageView
            android:id="@+id/dismiss_image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="@dimen/overlay_dismiss_button_margin"
            android:src="@drawable/overlay_cancel"/>
    </FrameLayout>
</com.android.systemui.screenshot.DraggableConstraintLayout>
 No newline at end of file
+5 −30
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.systemui.clipboardoverlay;

import static android.content.ClipDescription.CLASSIFICATION_COMPLETE;

import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.CLIPBOARD_OVERLAY_ENABLED;
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;
@@ -29,7 +28,6 @@ import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.os.SystemProperties;
import android.provider.DeviceConfig;
import android.provider.Settings;
import android.util.Log;

@@ -37,9 +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 com.android.systemui.flags.Flags;
import com.android.systemui.util.DeviceConfigProxy;

import javax.inject.Inject;
import javax.inject.Provider;
@@ -59,43 +54,29 @@ public class ClipboardListener implements
            "com.android.systemui.SUPPRESS_CLIPBOARD_OVERLAY";

    private final Context mContext;
    private final DeviceConfigProxy mDeviceConfig;
    private final Provider<ClipboardOverlayController> mOverlayProvider;
    private final ClipboardOverlayControllerLegacyFactory mOverlayFactory;
    private final ClipboardToast mClipboardToast;
    private final ClipboardManager mClipboardManager;
    private final UiEventLogger mUiEventLogger;
    private final FeatureFlags mFeatureFlags;
    private boolean mUsingNewOverlay;
    private ClipboardOverlay mClipboardOverlay;

    @Inject
    public ClipboardListener(Context context, DeviceConfigProxy deviceConfigProxy,
    public ClipboardListener(Context context,
            Provider<ClipboardOverlayController> clipboardOverlayControllerProvider,
            ClipboardOverlayControllerLegacyFactory overlayFactory,
            ClipboardToast clipboardToast,
            ClipboardManager clipboardManager,
            UiEventLogger uiEventLogger,
            FeatureFlags featureFlags) {
            UiEventLogger uiEventLogger) {
        mContext = context;
        mDeviceConfig = deviceConfigProxy;
        mOverlayProvider = clipboardOverlayControllerProvider;
        mOverlayFactory = overlayFactory;
        mClipboardToast = clipboardToast;
        mClipboardManager = clipboardManager;
        mUiEventLogger = uiEventLogger;
        mFeatureFlags = featureFlags;

        mUsingNewOverlay = mFeatureFlags.isEnabled(Flags.CLIPBOARD_OVERLAY_REFACTOR);
    }

    @Override
    public void start() {
        if (mDeviceConfig.getBoolean(
                DeviceConfig.NAMESPACE_SYSTEMUI, CLIPBOARD_OVERLAY_ENABLED, true)) {
        mClipboardManager.addPrimaryClipChangedListener(this);
    }
    }

    @Override
    public void onPrimaryClipChanged() {
@@ -120,14 +101,8 @@ public class ClipboardListener implements
            return;
        }

        boolean enabled = mFeatureFlags.isEnabled(Flags.CLIPBOARD_OVERLAY_REFACTOR);
        if (mClipboardOverlay == null || enabled != mUsingNewOverlay) {
            mUsingNewOverlay = enabled;
            if (enabled) {
        if (mClipboardOverlay == null) {
            mClipboardOverlay = mOverlayProvider.get();
            } else {
                mClipboardOverlay = mOverlayFactory.create(mContext);
            }
            mUiEventLogger.log(CLIPBOARD_OVERLAY_ENTERED, 0, clipSource);
        } else {
            mUiEventLogger.log(CLIPBOARD_OVERLAY_UPDATED, 0, clipSource);
+0 −963

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −54
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.systemui.clipboardoverlay;

import android.content.Context;

import com.android.internal.logging.UiEventLogger;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.broadcast.BroadcastSender;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.screenshot.TimeoutHandler;

import javax.inject.Inject;

/**
 * A factory that churns out ClipboardOverlayControllerLegacys on demand.
 */
@SysUISingleton
public class ClipboardOverlayControllerLegacyFactory {

    private final UiEventLogger mUiEventLogger;
    private final BroadcastDispatcher mBroadcastDispatcher;
    private final BroadcastSender mBroadcastSender;

    @Inject
    public ClipboardOverlayControllerLegacyFactory(BroadcastDispatcher broadcastDispatcher,
            BroadcastSender broadcastSender, UiEventLogger uiEventLogger) {
        this.mBroadcastDispatcher = broadcastDispatcher;
        this.mBroadcastSender = broadcastSender;
        this.mUiEventLogger = uiEventLogger;
    }

    /**
     * One new ClipboardOverlayControllerLegacy, coming right up!
     */
    public ClipboardOverlayControllerLegacy create(Context context) {
        return new ClipboardOverlayControllerLegacy(context, mBroadcastDispatcher, mBroadcastSender,
                new TimeoutHandler(context), mUiEventLogger);
    }
}
Loading