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

Commit 26d9b9c6 authored by Sihua Ma's avatar Sihua Ma Committed by Android (Google) Code Review
Browse files

Merge "Reapply "Move widget picker tests to Robolectric"" into main

parents bd3eaa89 1159c254
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -27,12 +27,12 @@ import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Handler;
import android.util.Log;
import android.util.Size;

import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;

import com.android.launcher3.DeviceProfile;
import com.android.launcher3.LauncherAppState;
@@ -45,6 +45,7 @@ import com.android.launcher3.model.WidgetItem;
import com.android.launcher3.pm.ShortcutConfigActivityInfo;
import com.android.launcher3.util.CancellableTask;
import com.android.launcher3.util.Executors;
import com.android.launcher3.util.LooperExecutor;
import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.widget.util.WidgetSizes;

@@ -68,8 +69,7 @@ public class DatabaseWidgetPreviewLoader {
    }

    /**
     * Generates the widget preview on {@link AsyncTask#THREAD_POOL_EXECUTOR}. Must be
     * called on UI thread.
     * Generates the widget preview on {@link Executors#UI_HELPER_EXECUTOR}.
     *
     * @return a request id which can be used to cancel the request.
     */
@@ -78,7 +78,7 @@ public class DatabaseWidgetPreviewLoader {
            @NonNull WidgetItem item,
            @NonNull Size previewSize,
            @NonNull Consumer<Bitmap> callback) {
        Handler handler = Executors.UI_HELPER_EXECUTOR.getHandler();
        Handler handler = getLoaderExecutor().getHandler();
        CancellableTask<Bitmap> request = new CancellableTask<>(
                () -> generatePreview(item, previewSize.getWidth(), previewSize.getHeight()),
                MAIN_EXECUTOR,
@@ -87,6 +87,12 @@ public class DatabaseWidgetPreviewLoader {
        return request;
    }

    @VisibleForTesting
    @NonNull
    public static LooperExecutor getLoaderExecutor() {
        return Executors.UI_HELPER_EXECUTOR;
    }

    /**
     * Returns a generated preview for a widget and if the preview should be saved in persistent
     * storage.
+6 −9
Original line number Diff line number Diff line
@@ -15,15 +15,12 @@
 */
package com.android.launcher3.util;

import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;

import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProviderInfo;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.os.Bundle;
import android.os.Process;

import com.android.launcher3.LauncherSettings;
import com.android.launcher3.model.data.LauncherAppWidgetInfo;
@@ -87,10 +84,10 @@ public class WidgetUtils {
     * Creates a {@link AppWidgetProviderInfo} for the provided component name
     */
    public static AppWidgetProviderInfo createAppWidgetProviderInfo(ComponentName cn) {
        AppWidgetProviderInfo info = AppWidgetManager.getInstance(getApplicationContext())
                .getInstalledProvidersForPackage(
                        getInstrumentation().getContext().getPackageName(), Process.myUserHandle())
                .get(0);
        ActivityInfo activityInfo = new ActivityInfo();
        activityInfo.applicationInfo = new ApplicationInfo();
        AppWidgetProviderInfo info = new AppWidgetProviderInfo();
        info.providerInfo = activityInfo;
        info.provider = cn;
        return info;
    }
+3 −7
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@ import static android.content.pm.ApplicationInfo.CATEGORY_UNDEFINED;
import static android.content.pm.ApplicationInfo.CATEGORY_VIDEO;
import static android.content.pm.ApplicationInfo.FLAG_INSTALLED;

import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;

import static com.google.common.truth.Truth.assertThat;
@@ -35,7 +34,6 @@ import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.when;

import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProviderInfo;
import android.content.ComponentName;
import android.content.Context;
@@ -53,6 +51,7 @@ import com.android.launcher3.R;
import com.android.launcher3.icons.IconCache;
import com.android.launcher3.model.WidgetItem;
import com.android.launcher3.util.Executors;
import com.android.launcher3.util.WidgetUtils;
import com.android.launcher3.widget.LauncherAppWidgetProviderInfo;

import com.google.common.collect.ImmutableMap;
@@ -152,11 +151,8 @@ public class WidgetRecommendationCategoryProviderTest {

        doAnswer(invocation -> widgetLabel).when(mIconCache).getTitleNoCache(any());

        AppWidgetProviderInfo providerInfo = AppWidgetManager.getInstance(getApplicationContext())
                .getInstalledProvidersForPackage(
                        getInstrumentation().getContext().getPackageName(), Process.myUserHandle())
                .get(0);
        providerInfo.provider = ComponentName.createRelative(TEST_PACKAGE, widgetClassName);
        AppWidgetProviderInfo providerInfo = WidgetUtils.createAppWidgetProviderInfo(ComponentName
                .createRelative(TEST_PACKAGE, widgetClassName));

        LauncherAppWidgetProviderInfo launcherAppWidgetProviderInfo =
                LauncherAppWidgetProviderInfo.fromProviderInfo(mContext, providerInfo);
+0 −0

File moved.

Loading