Fix banner tip buttons visibility and update incompatible tip

Fix the battery settings banner tip buttons visibility not reset issue
and update the incompatible charging tip into the colored primary button

Bug: 246960554
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.*
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.widget.CardPreferenceTest
Change-Id: I9b72fccc7838d974d3b60d0f9684780841623cbb
This commit is contained in:
ykhung
2023-04-18 18:05:08 +08:00
committed by YK Hung
parent 2a0d6ead1a
commit ab07b53ea1
7 changed files with 81 additions and 36 deletions

View File

@@ -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<>();

View File

@@ -109,13 +109,13 @@ public final class IncompatibleChargerTipTest {
mIncompatibleChargerTip.updatePreference(mCardPreference);
verify(mCardPreference).setSecondaryButtonText(expected);
verify(mCardPreference).setPrimaryButtonText(expected);
}
@Test
public void updatePreference_shouldSetSecondaryButtonVisible() {
mIncompatibleChargerTip.updatePreference(mCardPreference);
verify(mCardPreference).setSecondaryButtonVisible(true);
verify(mCardPreference).setPrimaryButtonVisible(true);
}
private String getLastErrorLog() {