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

Commit 851904a4 authored by Silin Huang's avatar Silin Huang Committed by Android (Google) Code Review
Browse files

Merge "Fix a bug that the QuickAccessWalletTile displaying packageName as title." into sc-dev

parents dc7452c4 89066a5c
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -153,9 +153,25 @@ public class QuickAccessWalletTile extends QSTileImpl<QSTile.State> {
        });
    }

    @Nullable
    private CharSequence getServiceLabelSafe() {
        try {
            return mController.getWalletClient().getServiceLabel();
        } catch (RuntimeException e) {
            Log.e(TAG, "Failed to get the service label safely, recreating wallet client", e);
            mController.reCreateWalletClient();
            try {
                return mController.getWalletClient().getServiceLabel();
            } catch (RuntimeException e2) {
                Log.e(TAG, "The QAW service label is broken.", e2);
                return null;
            }
        }
    }

    @Override
    protected void handleUpdateState(State state, Object arg) {
        CharSequence label = mController.getWalletClient().getServiceLabel();
        CharSequence label = getServiceLabelSafe();
        state.label = label == null ? mLabel : label;
        state.contentDescription = state.label;
        Drawable tileIcon = mController.getWalletClient().getTileIcon();
+14 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import static junit.framework.TestCase.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
@@ -255,6 +256,19 @@ public class QuickAccessWalletTileTest extends SysuiTestCase {
        assertThat(nextStartedIntent.getComponent().getClassName()).isEqualTo(walletClassName);
    }

    @Test
    public void testGetServiceLabelUnsafe_recreateWalletClient() {
        doAnswer(invocation -> {
            throw new Exception("Bad service label.");
        }).when(mQuickAccessWalletClient).getServiceLabel();

        QSTile.State state = new QSTile.State();

        mTile.handleUpdateState(state, null);

        verify(mController).reCreateWalletClient();
    }

    @Test
    public void testHandleUpdateState_updateLabelAndIcon() {
        QSTile.State state = new QSTile.State();