Loading src/com/android/settings/homepage/contextualcards/conditional/GrayscaleConditionController.java +27 −1 Original line number Diff line number Diff line Loading @@ -16,9 +16,12 @@ package com.android.settings.homepage.contextualcards.conditional; import android.Manifest; import android.app.settings.SettingsEnums; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.hardware.display.ColorDisplayManager; import android.util.Log; Loading @@ -32,10 +35,15 @@ public class GrayscaleConditionController implements ConditionalCardController { static final int ID = Objects.hash("GrayscaleConditionController"); 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); private final Context mAppContext; private final ConditionManager mConditionManager; private final ColorDisplayManager mColorDisplayManager; private final Receiver mReceiver; private Intent mIntent; Loading @@ -43,6 +51,7 @@ public class GrayscaleConditionController implements ConditionalCardController { mAppContext = appContext; mConditionManager = conditionManager; mColorDisplayManager = mAppContext.getSystemService(ColorDisplayManager.class); mReceiver = new Receiver(); } @Override Loading Loading @@ -72,6 +81,7 @@ public class GrayscaleConditionController implements ConditionalCardController { public void onActionClick() { // Turn off grayscale mColorDisplayManager.setSaturationLevel(100 /* staturationLevel */); sendBroadcast(); mConditionManager.onConditionChanged(); } Loading @@ -93,11 +103,27 @@ public class GrayscaleConditionController implements ConditionalCardController { @Override public void startMonitoringStateChange() { mAppContext.registerReceiver(mReceiver, GRAYSCALE_CHANGED_FILTER, Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS, null /* scheduler */); } @Override public void stopMonitoringStateChange() { mAppContext.unregisterReceiver(mReceiver); } private void sendBroadcast() { final Intent intent = new Intent(); intent.setAction(ACTION_GRAYSCALE_CHANGED); mAppContext.sendBroadcast(intent, Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS); } public class Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (ACTION_GRAYSCALE_CHANGED.equals(intent.getAction())) { mConditionManager.onConditionChanged(); } } } } tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/GrayscaleConditionControllerTest.java +9 −0 Original line number Diff line number Diff line Loading @@ -18,11 +18,13 @@ package com.android.settings.homepage.contextualcards.conditional; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import android.content.Context; import android.content.Intent; import android.hardware.display.ColorDisplayManager; import org.junit.Before; Loading Loading @@ -80,4 +82,11 @@ public class GrayscaleConditionControllerTest { verify(mConditionManager).onConditionChanged(); } @Test public void onActionClick_shouldSendBroadcast() { mController.onActionClick(); verify(mContext).sendBroadcast(any(Intent.class), any(String.class)); } } Loading
src/com/android/settings/homepage/contextualcards/conditional/GrayscaleConditionController.java +27 −1 Original line number Diff line number Diff line Loading @@ -16,9 +16,12 @@ package com.android.settings.homepage.contextualcards.conditional; import android.Manifest; import android.app.settings.SettingsEnums; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.hardware.display.ColorDisplayManager; import android.util.Log; Loading @@ -32,10 +35,15 @@ public class GrayscaleConditionController implements ConditionalCardController { static final int ID = Objects.hash("GrayscaleConditionController"); 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); private final Context mAppContext; private final ConditionManager mConditionManager; private final ColorDisplayManager mColorDisplayManager; private final Receiver mReceiver; private Intent mIntent; Loading @@ -43,6 +51,7 @@ public class GrayscaleConditionController implements ConditionalCardController { mAppContext = appContext; mConditionManager = conditionManager; mColorDisplayManager = mAppContext.getSystemService(ColorDisplayManager.class); mReceiver = new Receiver(); } @Override Loading Loading @@ -72,6 +81,7 @@ public class GrayscaleConditionController implements ConditionalCardController { public void onActionClick() { // Turn off grayscale mColorDisplayManager.setSaturationLevel(100 /* staturationLevel */); sendBroadcast(); mConditionManager.onConditionChanged(); } Loading @@ -93,11 +103,27 @@ public class GrayscaleConditionController implements ConditionalCardController { @Override public void startMonitoringStateChange() { mAppContext.registerReceiver(mReceiver, GRAYSCALE_CHANGED_FILTER, Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS, null /* scheduler */); } @Override public void stopMonitoringStateChange() { mAppContext.unregisterReceiver(mReceiver); } private void sendBroadcast() { final Intent intent = new Intent(); intent.setAction(ACTION_GRAYSCALE_CHANGED); mAppContext.sendBroadcast(intent, Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS); } public class Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (ACTION_GRAYSCALE_CHANGED.equals(intent.getAction())) { mConditionManager.onConditionChanged(); } } } }
tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/GrayscaleConditionControllerTest.java +9 −0 Original line number Diff line number Diff line Loading @@ -18,11 +18,13 @@ package com.android.settings.homepage.contextualcards.conditional; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import android.content.Context; import android.content.Intent; import android.hardware.display.ColorDisplayManager; import org.junit.Before; Loading Loading @@ -80,4 +82,11 @@ public class GrayscaleConditionControllerTest { verify(mConditionManager).onConditionChanged(); } @Test public void onActionClick_shouldSendBroadcast() { mController.onActionClick(); verify(mContext).sendBroadcast(any(Intent.class), any(String.class)); } }