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

Commit 8d8c3e19 authored by Yi-Ling Chuang's avatar Yi-Ling Chuang Committed by android-build-merger
Browse files

Merge "Enable dismissal feature on legacy suggestions."

am: ee39335e

Change-Id: Ibce2403de032bd3d7fce750f6cd80191a8b14441
parents b83ddefb ee39335e
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -42,6 +42,23 @@
                android:layout_marginTop="16dp"
                android:layout_marginBottom="6dp"/>

            <FrameLayout
                android:id="@+id/close_button"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_alignParentEnd="true"
                android:paddingTop="8dp"
                android:paddingEnd="8dp"
                android:orientation="horizontal"
                android:contentDescription="@string/suggestion_button_close">
                <ImageView
                    android:layout_width="18dp"
                    android:layout_height="18dp"
                    android:layout_gravity="end|top"
                    android:alpha="0.54"
                    android:src="@drawable/ic_suggestion_close_button"/>
            </FrameLayout>

        </RelativeLayout>

        <TextView
+3 −0
Original line number Diff line number Diff line
@@ -8725,6 +8725,9 @@
    <!-- Generic label for suggestion card's ok button [CHAR LIMIT=20] -->
    <string name="suggestion_button_text">Ok</string>
    <!-- Strings for suggestion card's close button [CHAR LIMIT=20] -->
    <string name="suggestion_button_close">Close</string>
    <!-- [CHAR LIMIT=35] Feedback on the device -->
    <string name="device_feedback">Send feedback about this device</string>
+13 −0
Original line number Diff line number Diff line
@@ -17,16 +17,19 @@
package com.android.settings.homepage.contextualcards.legacysuggestion;

import android.app.PendingIntent;
import android.service.settings.suggestions.Suggestion;

import com.android.settings.homepage.contextualcards.ContextualCard;

public class LegacySuggestionContextualCard extends ContextualCard {

    private final PendingIntent mPendingIntent;
    private final Suggestion mSuggestion;

    public LegacySuggestionContextualCard(Builder builder) {
        super(builder);
        mPendingIntent = builder.mPendingIntent;
        mSuggestion = builder.mSuggestion;
    }

    @Override
@@ -38,15 +41,25 @@ public class LegacySuggestionContextualCard extends ContextualCard {
        return mPendingIntent;
    }

    public Suggestion getSuggestion() {
        return mSuggestion;
    }

    public static class Builder extends ContextualCard.Builder {

        private PendingIntent mPendingIntent;
        private Suggestion mSuggestion;

        public Builder setPendingIntent(PendingIntent pendingIntent) {
            mPendingIntent = pendingIntent;
            return this;
        }

        public Builder setSuggestion(Suggestion suggestion) {
            mSuggestion = suggestion;
            return this;
        }

        @Override
        public Builder setCardType(int cardType) {
            throw new IllegalArgumentException(
+19 −7
Original line number Diff line number Diff line
@@ -46,6 +46,9 @@ public class LegacySuggestionContextualCardController implements ContextualCardC

    private static final String TAG = "LegacySuggestCardCtrl";

    @VisibleForTesting
    final List<ContextualCard> mSuggestions;

    @VisibleForTesting
    SuggestionController mSuggestionController;

@@ -55,6 +58,7 @@ public class LegacySuggestionContextualCardController implements ContextualCardC

    public LegacySuggestionContextualCardController(Context context) {
        mContext = context;
        mSuggestions = new ArrayList<>();
        if (!mContext.getResources().getBoolean(R.bool.config_use_legacy_suggestion)) {
            Log.w(TAG, "Legacy suggestion contextual card disabled, skipping.");
            return;
@@ -88,7 +92,10 @@ public class LegacySuggestionContextualCardController implements ContextualCardC

    @Override
    public void onDismissed(ContextualCard card) {

        mSuggestionController
                .dismissSuggestions(((LegacySuggestionContextualCard)card).getSuggestion());
        mSuggestions.remove(card);
        updateAdapter();
    }

    @Override
@@ -144,6 +151,7 @@ public class LegacySuggestionContextualCardController implements ContextualCardC
                    }
                    cardBuilder
                            .setPendingIntent(suggestion.getPendingIntent())
                            .setSuggestion(suggestion)
                            .setName(suggestion.getId())
                            .setTitleText(suggestion.getTitle().toString())
                            .setSummaryText(suggestion.getSummary().toString())
@@ -153,12 +161,16 @@ public class LegacySuggestionContextualCardController implements ContextualCardC
                }
            }

            // Update adapter
            mSuggestions.clear();
            mSuggestions.addAll(cards);
            updateAdapter();
        });
    }

    private void updateAdapter() {
        final Map<Integer, List<ContextualCard>> suggestionCards = new ArrayMap<>();
            suggestionCards.put(ContextualCard.CardType.LEGACY_SUGGESTION, cards);
        suggestionCards.put(ContextualCard.CardType.LEGACY_SUGGESTION, mSuggestions);
        ThreadUtils.postOnMainThread(
                () -> mCardUpdateListener.onContextualCardUpdated(suggestionCards));

        });
    }
}
+7 −3
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import androidx.recyclerview.widget.RecyclerView;

import com.android.settings.R;
import com.android.settings.homepage.contextualcards.ContextualCard;
import com.android.settings.homepage.contextualcards.ContextualCardController;
import com.android.settings.homepage.contextualcards.ContextualCardRenderer;
import com.android.settings.homepage.contextualcards.ControllerRendererPool;

@@ -51,12 +52,13 @@ public class LegacySuggestionContextualCardRenderer implements ContextualCardRen
    @Override
    public void bindView(RecyclerView.ViewHolder holder, ContextualCard card) {
        final LegacySuggestionViewHolder vh = (LegacySuggestionViewHolder) holder;
        final ContextualCardController controller = mControllerRendererPool
                .getController(mContext, card.getCardType());
        vh.icon.setImageDrawable(card.getIconDrawable());
        vh.title.setText(card.getTitleText());
        vh.summary.setText(card.getSummaryText());
        vh.itemView.setOnClickListener(v ->
                mControllerRendererPool.getController(mContext,
                        card.getCardType()).onPrimaryClick(card));
        vh.itemView.setOnClickListener(v -> controller.onPrimaryClick(card));
        vh.closeButton.setOnClickListener(v -> controller.onDismissed(card));
    }

    private static class LegacySuggestionViewHolder extends RecyclerView.ViewHolder {
@@ -64,12 +66,14 @@ public class LegacySuggestionContextualCardRenderer implements ContextualCardRen
        public final ImageView icon;
        public final TextView title;
        public final TextView summary;
        public final View closeButton;

        public LegacySuggestionViewHolder(View itemView) {
            super(itemView);
            icon = itemView.findViewById(android.R.id.icon);
            title = itemView.findViewById(android.R.id.title);
            summary = itemView.findViewById(android.R.id.summary);
            closeButton = itemView.findViewById(R.id.close_button);
        }
    }
}
Loading