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

Commit d9e3a34e authored by Mill Chen's avatar Mill Chen
Browse files

Revert "Use explicit intent to broadcast grayscale state changed"

This reverts commit 2ef3daca.

Reason for revert: use Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND to implement

Change-Id: I39754866d1c18eb6c024dcc0555e763a82b7a14f
parent 2ef3daca
Loading
Loading
Loading
Loading
+5 −15
Original line number Diff line number Diff line
@@ -22,27 +22,21 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.hardware.display.ColorDisplayManager;
import android.util.Log;

import androidx.annotation.VisibleForTesting;

import com.android.settings.R;
import com.android.settings.homepage.contextualcards.ContextualCard;

import java.net.URISyntaxException;
import java.util.List;
import java.util.Objects;

public class GrayscaleConditionController implements ConditionalCardController {
    static final int ID = Objects.hash("GrayscaleConditionController");

    @VisibleForTesting
    static final String ACTION_GRAYSCALE_CHANGED = "android.settings.action.GRAYSCALE_CHANGED";

    private static final String TAG = "GrayscaleCondition";
    private static final String ACTION_GRAYSCALE_CHANGED =
            "android.settings.action.GRAYSCALE_CHANGED";
    private static final IntentFilter GRAYSCALE_CHANGED_FILTER = new IntentFilter(
            ACTION_GRAYSCALE_CHANGED);

@@ -119,13 +113,9 @@ public class GrayscaleConditionController implements ConditionalCardController {
    }

    private void sendBroadcast() {
        final PackageManager pm = mAppContext.getPackageManager();
        final Intent intent = new Intent(ACTION_GRAYSCALE_CHANGED);
        final List<ResolveInfo> receivers = pm.queryBroadcastReceivers(intent, 0 /* flags */);
        for (ResolveInfo receiver : receivers) {
            intent.setPackage(receiver.activityInfo.packageName);
            mAppContext.sendBroadcast(intent);
        }
        final Intent intent = new Intent();
        intent.setAction(ACTION_GRAYSCALE_CHANGED);
        mAppContext.sendBroadcast(intent, Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS);
    }

    public class Receiver extends BroadcastReceiver {
+1 −12
Original line number Diff line number Diff line
@@ -25,8 +25,6 @@ import static org.mockito.Mockito.verify;

import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ResolveInfo;
import android.hardware.display.ColorDisplayManager;

import org.junit.Before;
@@ -36,9 +34,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowPackageManager;

@RunWith(RobolectricTestRunner.class)
public class GrayscaleConditionControllerTest {
@@ -49,7 +45,6 @@ public class GrayscaleConditionControllerTest {
    private ColorDisplayManager mColorDisplayManager;
    private Context mContext;
    private GrayscaleConditionController mController;
    private ShadowPackageManager mPackageManager;

    @Before
    public void setUp() {
@@ -58,7 +53,6 @@ public class GrayscaleConditionControllerTest {
        mColorDisplayManager = spy(mContext.getSystemService(ColorDisplayManager.class));
        doReturn(mColorDisplayManager).when(mContext).getSystemService(ColorDisplayManager.class);
        mController = new GrayscaleConditionController(mContext, mConditionManager);
        mPackageManager = Shadows.shadowOf(mContext.getPackageManager());
    }

    @Test
@@ -91,13 +85,8 @@ public class GrayscaleConditionControllerTest {

    @Test
    public void onActionClick_shouldSendBroadcast() {
        final Intent intent = new Intent(GrayscaleConditionController.ACTION_GRAYSCALE_CHANGED);
        final ResolveInfo info = new ResolveInfo();
        info.activityInfo = new ActivityInfo();
        mPackageManager.addResolveInfoForIntent(intent, info);

        mController.onActionClick();

        verify(mContext).sendBroadcast(any(Intent.class));
        verify(mContext).sendBroadcast(any(Intent.class), any(String.class));
    }
}