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

Commit 4562eceb authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix jank issue in Settings caused by fetching tile info" into oc-mr1-dev

parents bdcf8b68 b0801642
Loading
Loading
Loading
Loading
+25 −13
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.UserHandle;
@@ -546,18 +547,27 @@ public class TileUtils {
        }
    }

    public static void updateTileUsingSummaryUri(Context context, Tile tile) {
    public static void updateTileUsingSummaryUri(Context context, final Tile tile) {
        if (tile == null || tile.metaData == null ||
                !tile.metaData.containsKey(META_DATA_PREFERENCE_SUMMARY_URI)) {
            return;
        }

        final Map<String, IContentProvider> providerMap = new HashMap<>();
        new AsyncTask<Void, Void, Bundle>() {
            @Override
            protected Bundle doInBackground(Void... params) {
                return getBundleFromUri(context,
                        tile.metaData.getString(META_DATA_PREFERENCE_SUMMARY_URI), new HashMap<>());
            }

        final String uriString = tile.metaData.getString(META_DATA_PREFERENCE_SUMMARY_URI);
        final Bundle bundle = getBundleFromUri(context, uriString, providerMap);
            @Override
            protected void onPostExecute(Bundle bundle) {
                if (bundle == null) {
                    return;
                }
                final String overrideSummary = getString(bundle, META_DATA_PREFERENCE_SUMMARY);
                final String overrideTitle = getString(bundle, META_DATA_PREFERENCE_TITLE);

                if (overrideSummary != null) {
                    tile.remoteViews.setTextViewText(android.R.id.summary, overrideSummary);
                }
@@ -565,6 +575,8 @@ public class TileUtils {
                    tile.remoteViews.setTextViewText(android.R.id.title, overrideTitle);
                }
            }
        }.execute();
    }

    private static String getString(Bundle bundle, String key) {
        return bundle == null ? null : bundle.getString(key);
+3 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;

import java.util.ArrayList;
import java.util.Collections;
@@ -438,6 +439,8 @@ public class TileUtilsTest {
        tile.metaData.putString(TileUtils.META_DATA_PREFERENCE_SUMMARY_URI, URI_GET_SUMMARY);
        tile.remoteViews = mock(RemoteViews.class);
        TileUtils.updateTileUsingSummaryUri(mContext, tile);
        ShadowApplication.runBackgroundTasks();

        verify(tile.remoteViews, times(1)).setTextViewText(anyInt(), eq(expectedSummary));
    }