Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b719a7d7 authored by tmfang's avatar tmfang
Browse files

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
parent 55168269
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -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,12 +241,14 @@ public class AppEntitiesHeaderController {
    }

    private void bindHeaderDetailsView() {
        CharSequence detailsText = "";
        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(
                TextUtils.isEmpty(detailsText) ? View.GONE : View.VISIBLE);
+17 −0
Original line number Diff line number Diff line
@@ -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 -> {