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

Commit 1159c254 authored by Sihua Ma's avatar Sihua Ma
Browse files

Reapply "Move widget picker tests to Robolectric"

This reverts commit 97ee134a.

Reason for revert: Fixed an issue with UI_HELPER_EXECUTOR that caused the flakiness

Test: atest NexusLauncherRoboTests
Test: SysUI studio
Flag: None Test migration
Fix: 325088642
Fix: 325088805
Fix: 325089116
Fix: 325088960

Change-Id: I2f50c30d2c861e3bba8a8fa3ec547ca2ade6153a
parent fe2107c5
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