Merge "Hide the bar chart details text when no string is provided."

This commit is contained in:
TreeHugger Robot
2018-12-21 18:16:26 +00:00
committed by Android (Google) Code Review
2 changed files with 21 additions and 12 deletions

View File

@@ -165,8 +165,12 @@ public class BarChartPreference extends Preference {
private void bindChartDetailsView(PreferenceViewHolder holder) {
final Button detailsView = (Button) holder.findViewById(R.id.bar_chart_details);
detailsView.setText(mDetailsId);
detailsView.setOnClickListener(mDetailsOnClickListener);
if (mDetailsId == 0) {
detailsView.setVisibility(View.GONE);
} else {
detailsView.setText(mDetailsId);
detailsView.setOnClickListener(mDetailsOnClickListener);
}
}
private void updateBarChart(PreferenceViewHolder holder) {

View File

@@ -41,6 +41,7 @@ public class BarChartPreferenceTest {
private BarView mBarView2;
private BarView mBarView3;
private BarView mBarView4;
private TextView mDetailsView;
private PreferenceViewHolder mHolder;
private BarChartPreference mPreference;
@@ -51,14 +52,13 @@ public class BarChartPreferenceTest {
mHolder = PreferenceViewHolder.createInstanceForTests(mBarChartView);
mPreference = new BarChartPreference(mContext, null /* attrs */);
mPreference.setBarChartTitle(R.string.debug_app);
mPreference.setBarChartDetails(R.string.debug_app);
mIcon = mContext.getDrawable(R.drawable.ic_menu);
mBarView1 = (BarView) mBarChartView.findViewById(R.id.bar_view1);
mBarView2 = (BarView) mBarChartView.findViewById(R.id.bar_view2);
mBarView3 = (BarView) mBarChartView.findViewById(R.id.bar_view3);
mBarView4 = (BarView) mBarChartView.findViewById(R.id.bar_view4);
mDetailsView = (TextView) mBarChartView.findViewById(R.id.bar_chart_details);
}
@Test
@@ -73,26 +73,31 @@ public class BarChartPreferenceTest {
}
@Test
public void setBarChartDetailsRes_setDetailsRes_showInBarChartDetails() {
final TextView detailsView = (TextView) mBarChartView.findViewById(R.id.bar_chart_details);
public void onBindViewHolder_notSetDetailsRes_barChartDetailsViewIsGone() {
// We don't call BarChartPreference#setBarChartDetails
mPreference.onBindViewHolder(mHolder);
assertThat(mDetailsView.getVisibility()).isEqualTo(View.GONE);
}
@Test
public void setBarChartDetailsRes_setDetailsRes_showInBarChartDetails() {
mPreference.setBarChartDetails(R.string.debug_app);
mPreference.onBindViewHolder(mHolder);
assertThat(detailsView.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(detailsView.getText()).isEqualTo(mContext.getText(R.string.debug_app));
assertThat(mDetailsView.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(mDetailsView.getText()).isEqualTo(mContext.getText(R.string.debug_app));
}
@Test
public void setBarChartDetailsClickListener_setClickListener_detailsViewAttachClickListener() {
final TextView detailsView = (TextView) mBarChartView.findViewById(R.id.bar_chart_details);
mPreference.setBarChartDetails(R.string.debug_app);
mPreference.setBarChartDetailsClickListener(v -> {
});
mPreference.onBindViewHolder(mHolder);
assertThat(detailsView.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(detailsView.hasOnClickListeners()).isTrue();
assertThat(mDetailsView.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(mDetailsView.hasOnClickListeners()).isTrue();
}
@Test