Hide the bar chart details text when no string is provided.
Currently the bar chart crashes when no detail text is passed. This instead hides the text in that case. Bug: 117623686 Test: View chart with and without detail string. Change-Id: I227201af9615b6ec190c8688151cd93cfe058bfb
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user