Merge "Revert "Use explicit intent to broadcast grayscale state changed""

This commit is contained in:
TreeHugger Robot
2019-03-30 04:01:22 +00:00
committed by Android (Google) Code Review
2 changed files with 6 additions and 27 deletions

View File

@@ -22,27 +22,21 @@ import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.hardware.display.ColorDisplayManager; import android.hardware.display.ColorDisplayManager;
import android.util.Log; import android.util.Log;
import androidx.annotation.VisibleForTesting;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.homepage.contextualcards.ContextualCard; import com.android.settings.homepage.contextualcards.ContextualCard;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.util.List;
import java.util.Objects; import java.util.Objects;
public class GrayscaleConditionController implements ConditionalCardController { public class GrayscaleConditionController implements ConditionalCardController {
static final int ID = Objects.hash("GrayscaleConditionController"); 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 TAG = "GrayscaleCondition";
private static final String ACTION_GRAYSCALE_CHANGED =
"android.settings.action.GRAYSCALE_CHANGED";
private static final IntentFilter GRAYSCALE_CHANGED_FILTER = new IntentFilter( private static final IntentFilter GRAYSCALE_CHANGED_FILTER = new IntentFilter(
ACTION_GRAYSCALE_CHANGED); ACTION_GRAYSCALE_CHANGED);
@@ -119,13 +113,9 @@ public class GrayscaleConditionController implements ConditionalCardController {
} }
private void sendBroadcast() { private void sendBroadcast() {
final PackageManager pm = mAppContext.getPackageManager(); final Intent intent = new Intent();
final Intent intent = new Intent(ACTION_GRAYSCALE_CHANGED); intent.setAction(ACTION_GRAYSCALE_CHANGED);
final List<ResolveInfo> receivers = pm.queryBroadcastReceivers(intent, 0 /* flags */); mAppContext.sendBroadcast(intent, Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS);
for (ResolveInfo receiver : receivers) {
intent.setPackage(receiver.activityInfo.packageName);
mAppContext.sendBroadcast(intent);
}
} }
public class Receiver extends BroadcastReceiver { public class Receiver extends BroadcastReceiver {

View File

@@ -25,8 +25,6 @@ import static org.mockito.Mockito.verify;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ResolveInfo;
import android.hardware.display.ColorDisplayManager; import android.hardware.display.ColorDisplayManager;
import org.junit.Before; import org.junit.Before;
@@ -36,9 +34,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowPackageManager;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class GrayscaleConditionControllerTest { public class GrayscaleConditionControllerTest {
@@ -49,7 +45,6 @@ public class GrayscaleConditionControllerTest {
private ColorDisplayManager mColorDisplayManager; private ColorDisplayManager mColorDisplayManager;
private Context mContext; private Context mContext;
private GrayscaleConditionController mController; private GrayscaleConditionController mController;
private ShadowPackageManager mPackageManager;
@Before @Before
public void setUp() { public void setUp() {
@@ -58,7 +53,6 @@ public class GrayscaleConditionControllerTest {
mColorDisplayManager = spy(mContext.getSystemService(ColorDisplayManager.class)); mColorDisplayManager = spy(mContext.getSystemService(ColorDisplayManager.class));
doReturn(mColorDisplayManager).when(mContext).getSystemService(ColorDisplayManager.class); doReturn(mColorDisplayManager).when(mContext).getSystemService(ColorDisplayManager.class);
mController = new GrayscaleConditionController(mContext, mConditionManager); mController = new GrayscaleConditionController(mContext, mConditionManager);
mPackageManager = Shadows.shadowOf(mContext.getPackageManager());
} }
@Test @Test
@@ -91,13 +85,8 @@ public class GrayscaleConditionControllerTest {
@Test @Test
public void onActionClick_shouldSendBroadcast() { 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(); mController.onActionClick();
verify(mContext).sendBroadcast(any(Intent.class)); verify(mContext).sendBroadcast(any(Intent.class), any(String.class));
} }
} }