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

Commit ed340cac authored by YK Hung's avatar YK Hung Committed by Automerger Merge Worker
Browse files

Merge "Fix banner tip buttons visibility and update incompatible tip" into udc-dev am: 3f9363aa

parents 446909b4 3f9363aa
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -67,12 +67,15 @@
            android:maxLines="10"
            style="@style/PreferenceSummaryTextStyle"/>

        <RelativeLayout
        <LinearLayout
            android:id="@+id/card_preference_buttons"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_below="@android:id/summary"
            android:gravity="center_vertical|end"
            android:orientation="horizontal"
            android:paddingEnd="20dp"
            android:visibility="gone">
            <Button
                android:id="@android:id/button1"
@@ -80,17 +83,15 @@
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_marginStart="20dp"
                android:layout_toStartOf="@android:id/button2"
                android:visibility="gone"/>
            <Button
                android:id="@android:id/button2"
                style="@style/CardPreferenceBorderlessButton"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_marginHorizontal="20dp"
                android:layout_alignParentEnd="true"
                android:layout_marginStart="20dp"
                android:visibility="gone"/>
        </RelativeLayout>
        </LinearLayout>
    </RelativeLayout>

    <!-- Preference should place its actual preference widget here. -->
+4 −0
Original line number Diff line number Diff line
@@ -166,6 +166,10 @@ public abstract class BatteryTip implements Comparable<BatteryTip>, Parcelable {
        if (iconTintColorId != View.NO_ID) {
            preference.getIcon().setTint(context.getColor(iconTintColorId));
        }
        final CardPreference cardPreference = castToCardPreferenceSafely(preference);
        if (cardPreference != null) {
            cardPreference.resetLayoutState();
        }
    }

    /** Returns the color resid for tinting {@link #getIconId()} or {@link View#NO_ID} if none. */
+4 −4
Original line number Diff line number Diff line
@@ -73,15 +73,15 @@ public final class IncompatibleChargerTip extends BatteryTip {
        }

        cardPreference.setSelectable(false);
        cardPreference.setSecondaryButtonText(context.getString(R.string.learn_more));
        cardPreference.setSecondaryButtonClickListener(
        cardPreference.setPrimaryButtonText(context.getString(R.string.learn_more));
        cardPreference.setPrimaryButtonClickListener(
                button -> button.startActivityForResult(
                        HelpUtils.getHelpIntent(
                                context,
                                context.getString(R.string.help_url_incompatible_charging),
                                /* backupContext */ ""), /* requestCode */ 0));
        cardPreference.setSecondaryButtonVisible(true);
        cardPreference.setSecondaryButtonContentDescription(context.getString(
        cardPreference.setPrimaryButtonVisible(true);
        cardPreference.setPrimaryButtonContentDescription(context.getString(
                R.string.battery_tip_incompatible_charging_content_description));
    }
}
+16 −3
Original line number Diff line number Diff line
@@ -30,9 +30,7 @@ import com.google.android.material.card.MaterialCardView;

import java.util.Optional;

/**
 * Preference that wrapped by {@link MaterialCardView}, only support to set icon, title and summary
 */
/** Preference that wrapped by {@link MaterialCardView} */
public class CardPreference extends Preference {

    private View.OnClickListener mPrimaryBtnClickListener = null;
@@ -76,6 +74,12 @@ public class CardPreference extends Preference {
        setSecondaryButtonVisible(mSecondaryButtonVisible);
    }

    /** Clear layout state if needed */
    public void resetLayoutState() {
        setPrimaryButtonVisible(false);
        setSecondaryButtonVisible(false);
    }

    /**
     * Register a callback to be invoked when the primary button is clicked.
     *
@@ -140,6 +144,15 @@ public class CardPreference extends Preference {
        updateButtonGroupsVisibility();
    }

    /**
     * Sets the text of content description on primary button.
     *
     * @param text text for the content description
     */
    public void setPrimaryButtonContentDescription(String text) {
        mPrimaryButton.ifPresent(button -> button.setContentDescription(text));
    }

    /**
     * Sets the text of content description on secondary button.
     *
+18 −0
Original line number Diff line number Diff line
@@ -18,13 +18,16 @@ package com.android.settings.fuelgauge.batterytip.tips;
import static com.google.common.truth.Truth.assertThat;

import android.content.Context;
import android.view.View;
import android.os.Parcel;
import android.os.Parcelable;

import androidx.annotation.IdRes;
import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;

import com.android.settings.R;
import com.android.settings.widget.CardPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.testutils.DrawableTestHelper;

@@ -80,6 +83,21 @@ public class BatteryTipTest {
        assertThat(parcelTip.needUpdate()).isTrue();
    }

    @Test
    public void updatePreference_resetLayoutState() {
        mContext.setTheme(R.style.Theme_Settings);
        PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
                View.inflate(mContext, R.layout.card_preference_layout, /* parent= */ null));
        CardPreference cardPreference = new CardPreference(mContext);
        cardPreference.onBindViewHolder(holder);
        cardPreference.setPrimaryButtonVisible(true);

        mBatteryTip.updatePreference(cardPreference);

        View view = holder.findViewById(R.id.card_preference_buttons);
        assertThat(view.getVisibility()).isEqualTo(View.GONE);
    }

    @Test
    public void tipOrder_orderUnique() {
        final List<Integer> orders = new ArrayList<>();
Loading