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

Commit b82b55f3 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes I04d5e59f,Ia5fa3517

* changes:
  Update overflow button on theme change
  Empty overflow UI
parents e97e0c8e edb55e25
Loading
Loading
Loading
Loading
+41 −4
Original line number Diff line number Diff line
@@ -14,8 +14,45 @@
  ~ limitations under the License
  -->

<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/bubble_overflow_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_gravity="center_horizontal">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/bubble_overflow_recycler"
        android:layout_gravity="center_horizontal"
    android:layout_width="match_parent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <LinearLayout
        android:id="@+id/bubble_overflow_empty_state"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center">

        <TextView
            android:id="@+id/bubble_overflow_empty_title"
            android:text="@string/bubble_overflow_empty_title"
            android:fontFamily="@*android:string/config_bodyFontFamilyMedium"
            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body2"
            android:textColor="?android:attr/textColorSecondary"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"/>

        <TextView
            android:id="@+id/bubble_overflow_empty_subtitle"
            android:fontFamily="@*android:string/config_bodyFontFamily"
            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body2"
            android:textColor="?android:attr/textColorSecondary"
            android:text="@string/bubble_overflow_empty_subtitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"/>
    </LinearLayout>
</LinearLayout>
+6 −0
Original line number Diff line number Diff line
@@ -1780,6 +1780,12 @@
    <!-- [CHAR LIMIT=150] Notification Importance title: bubble level summary -->
    <string name="notification_channel_summary_bubble">Keeps your attention with a floating shortcut to this content.</string>

    <!-- [CHAR LIMIT=NONE] Empty overflow title -->
    <string name="bubble_overflow_empty_title">No recent bubbles</string>

    <!-- [CHAR LIMIT=NONE] Empty overflow subtitle -->
    <string name="bubble_overflow_empty_subtitle">Recently dismissed bubbles will appear here for easy retrieval.</string>

    <!-- Notification: Control panel: Label that displays when the app's notifications cannot be blocked. -->
    <string name="notification_unblockable_desc">These notifications can\'t be modified.</string>

+2 −1
Original line number Diff line number Diff line
@@ -294,7 +294,8 @@ public class BubbleExpandedView extends LinearLayout implements View.OnClickList
        ta.recycle();

        mPointerDrawable.setTint(bgColor);
        if (ScreenDecorationsUtils.supportsRoundedCornersOnWindows(mContext.getResources())) {
        if (mActivityView != null && ScreenDecorationsUtils.supportsRoundedCornersOnWindows(
                mContext.getResources())) {
            mActivityView.setCornerRadius(cornerRadius);
        }
    }
+14 −3
Original line number Diff line number Diff line
@@ -26,7 +26,10 @@ import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;

import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -46,6 +49,7 @@ import javax.inject.Inject;
public class BubbleOverflowActivity extends Activity {
    private static final String TAG = TAG_WITH_CLASS_NAME ? "BubbleOverflowActivity" : TAG_BUBBLES;

    private LinearLayout mEmptyState;
    private BubbleController mBubbleController;
    private BubbleOverflowAdapter mAdapter;
    private RecyclerView mRecyclerView;
@@ -64,6 +68,7 @@ public class BubbleOverflowActivity extends Activity {
        setBackgroundColor();

        mMaxBubbles = getResources().getInteger(R.integer.bubbles_max_rendered);
        mEmptyState = findViewById(R.id.bubble_overflow_empty_state);
        mRecyclerView = findViewById(R.id.bubble_overflow_recycler);
        mRecyclerView.setLayoutManager(
                new GridLayoutManager(getApplicationContext(),
@@ -73,9 +78,9 @@ public class BubbleOverflowActivity extends Activity {
                mBubbleController::promoteBubbleFromOverflow);
        mRecyclerView.setAdapter(mAdapter);

        updateData(mBubbleController.getOverflowBubbles());
        onDataChanged(mBubbleController.getOverflowBubbles());
        mBubbleController.setOverflowCallback(() -> {
            updateData(mBubbleController.getOverflowBubbles());
            onDataChanged(mBubbleController.getOverflowBubbles());
        });
    }

@@ -87,7 +92,7 @@ public class BubbleOverflowActivity extends Activity {
        findViewById(android.R.id.content).setBackgroundColor(bgColor);
    }

    void updateData(List<Bubble> bubbles) {
    void onDataChanged(List<Bubble> bubbles) {
        mOverflowBubbles.clear();
        if (bubbles.size() > mMaxBubbles) {
            mOverflowBubbles.addAll(bubbles.subList(mMaxBubbles, bubbles.size()));
@@ -96,6 +101,12 @@ public class BubbleOverflowActivity extends Activity {
        }
        mAdapter.notifyDataSetChanged();

        if (mOverflowBubbles.isEmpty()) {
            mEmptyState.setVisibility(View.VISIBLE);
        } else {
            mEmptyState.setVisibility(View.GONE);
        }

        if (DEBUG_OVERFLOW) {
            Log.d(TAG, "Updated overflow bubbles:\n" + BubbleDebugConfig.formatBubblesString(
                    mOverflowBubbles, /*selected*/ null));
+9 −2
Original line number Diff line number Diff line
@@ -528,6 +528,12 @@ public class BubbleStackView extends FrameLayout {
        mBubbleContainer.addView(mOverflowBtn, 0,
                new FrameLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));

        setOverflowBtnTheme();
        mOverflowBtn.setVisibility(GONE);
    }

    // TODO(b/149146374) Propagate theme change to bubbles in overflow.
    private void setOverflowBtnTheme() {
        TypedArray ta = mContext.obtainStyledAttributes(
                new int[]{android.R.attr.colorBackgroundFloating});
        int bgColor = ta.getColor(0, Color.WHITE /* default */);
@@ -537,8 +543,6 @@ public class BubbleStackView extends FrameLayout {
        ColorDrawable bg = new ColorDrawable(bgColor);
        AdaptiveIconDrawable adaptiveIcon = new AdaptiveIconDrawable(bg, fg);
        mOverflowBtn.setImageDrawable(adaptiveIcon);

        mOverflowBtn.setVisibility(GONE);
    }

    void showExpandedViewContents(int displayId) {
@@ -568,6 +572,9 @@ public class BubbleStackView extends FrameLayout {
     */
    public void onThemeChanged() {
        setUpFlyout();
        if (BubbleExperimentConfig.allowBubbleOverflow(mContext)) {
            setOverflowBtnTheme();
        }
    }

    /** Respond to the phone being rotated by repositioning the stack and hiding any flyouts. */