summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author tmfang <tmfang@google.com> 2019-01-30 16:52:29 +0800
committer tmfang <tmfang@google.com> 2019-02-22 12:06:11 +0800
commitb719a7d7e39b04f34fdca5c16184ac1da8ba1fa0 (patch)
tree88e42312699e7b1e4bf7ddd434884eab7e9653d5
parent55168269d77994c5e3008095e217d0da0548edef (diff)
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
-rw-r--r--packages/SettingsLib/EntityHeaderWidgets/src/com/android/settingslib/widget/AppEntitiesHeaderController.java21
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AppEntitiesHeaderControllerTest.java17
2 files changed, 33 insertions, 5 deletions
diff --git a/packages/SettingsLib/EntityHeaderWidgets/src/com/android/settingslib/widget/AppEntitiesHeaderController.java b/packages/SettingsLib/EntityHeaderWidgets/src/com/android/settingslib/widget/AppEntitiesHeaderController.java
index 330049fc6673..6e95a0ed106a 100644
--- a/packages/SettingsLib/EntityHeaderWidgets/src/com/android/settingslib/widget/AppEntitiesHeaderController.java
+++ b/packages/SettingsLib/EntityHeaderWidgets/src/com/android/settingslib/widget/AppEntitiesHeaderController.java
@@ -90,6 +90,7 @@ public class AppEntitiesHeaderController {
private int mHeaderTitleRes;
private int mHeaderDetailsRes;
private int mHeaderEmptyRes;
+ private CharSequence mHeaderDetails;
private View.OnClickListener mDetailsOnClickListener;
/**
@@ -148,6 +149,14 @@ public class AppEntitiesHeaderController {
}
/**
+ * 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.
*/
public AppEntitiesHeaderController setHeaderDetailsClickListener(
@@ -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(
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AppEntitiesHeaderControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AppEntitiesHeaderControllerTest.java
index 63a958eeb5bb..9a07ca885914 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AppEntitiesHeaderControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/AppEntitiesHeaderControllerTest.java
@@ -85,6 +85,23 @@ public class AppEntitiesHeaderControllerTest {
}
@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 -> {
}).apply();