Create an interface to set details text
For some cases, we still need a way to set text directly. Test: robotest Bug: 123538183 Change-Id: I5926730fcc2ba6382ee42c36ce398d6c930650f3
This commit is contained in:
@@ -90,6 +90,7 @@ public class AppEntitiesHeaderController {
|
||||
private int mHeaderTitleRes;
|
||||
private int mHeaderDetailsRes;
|
||||
private int mHeaderEmptyRes;
|
||||
private CharSequence mHeaderDetails;
|
||||
private View.OnClickListener mDetailsOnClickListener;
|
||||
|
||||
/**
|
||||
@@ -147,6 +148,14 @@ public class AppEntitiesHeaderController {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the text for app entities header details.
|
||||
*/
|
||||
public AppEntitiesHeaderController setHeaderDetails(CharSequence detailsText) {
|
||||
mHeaderDetails = detailsText;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a callback to be invoked when header details view is clicked.
|
||||
*/
|
||||
@@ -232,11 +241,13 @@ public class AppEntitiesHeaderController {
|
||||
}
|
||||
|
||||
private void bindHeaderDetailsView() {
|
||||
CharSequence detailsText = "";
|
||||
try {
|
||||
detailsText = mContext.getText(mHeaderDetailsRes);
|
||||
} catch (Resources.NotFoundException e) {
|
||||
Log.e(TAG, "Resource of header details can't not be found!", e);
|
||||
CharSequence detailsText = mHeaderDetails;
|
||||
if (TextUtils.isEmpty(detailsText)) {
|
||||
try {
|
||||
detailsText = mContext.getText(mHeaderDetailsRes);
|
||||
} catch (Resources.NotFoundException e) {
|
||||
Log.e(TAG, "Resource of header details can't not be found!", e);
|
||||
}
|
||||
}
|
||||
mHeaderDetailsView.setText(detailsText);
|
||||
mHeaderDetailsView.setVisibility(
|
||||
|
||||
@@ -84,6 +84,23 @@ public class AppEntitiesHeaderControllerTest {
|
||||
assertThat(view.getText()).isEqualTo(mContext.getText(R.string.expand_button_title));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setHeaderDetails_onlyDetailsTextSet_shouldSetToDetailsView() {
|
||||
mController.setHeaderDetails(TITLE).apply();
|
||||
final TextView view = mAppEntitiesHeaderView.findViewById(R.id.header_details);
|
||||
|
||||
assertThat(view.getText()).isEqualTo(TITLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setHeaderDetails_detailsTextAndResBothSet_shouldSetTextToDetailsView() {
|
||||
mController.setHeaderDetailsRes(R.string.expand_button_title);
|
||||
mController.setHeaderDetails(TITLE).apply();
|
||||
final TextView view = mAppEntitiesHeaderView.findViewById(R.id.header_details);
|
||||
|
||||
assertThat(view.getText()).isEqualTo(TITLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setHeaderDetailsClickListener_setClickListener_detailsViewAttachClickListener() {
|
||||
mController.setHeaderDetailsClickListener(v -> {
|
||||
|
||||
Reference in New Issue
Block a user