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

Commit 9ebf5a82 authored by Ajay Nadathur's avatar Ajay Nadathur Committed by android-build-merger
Browse files

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

am: 4562eceb

Change-Id: Ieedc4c25b8c2acfd03ef39c0bd2979b67c20e113
parents 8721b305 4562eceb
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));
    }