Merge "Set corner radius to 0 when casting" into tm-qpr-dev
This commit is contained in:
@@ -83,6 +83,7 @@ import com.android.systemui.statusbar.phone.ScrimController;
|
||||
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
|
||||
import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent;
|
||||
import com.android.systemui.statusbar.policy.CastController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.util.LargeScreenUtils;
|
||||
|
||||
@@ -127,6 +128,7 @@ public class QuickSettingsController {
|
||||
private final FalsingCollector mFalsingCollector;
|
||||
private final LockscreenGestureLogger mLockscreenGestureLogger;
|
||||
private final ShadeLogger mShadeLog;
|
||||
private final CastController mCastController;
|
||||
private final FeatureFlags mFeatureFlags;
|
||||
private final InteractionJankMonitor mInteractionJankMonitor;
|
||||
private final FalsingManager mFalsingManager;
|
||||
@@ -306,7 +308,8 @@ public class QuickSettingsController {
|
||||
MetricsLogger metricsLogger,
|
||||
FeatureFlags featureFlags,
|
||||
InteractionJankMonitor interactionJankMonitor,
|
||||
ShadeLogger shadeLog
|
||||
ShadeLogger shadeLog,
|
||||
CastController castController
|
||||
) {
|
||||
mPanelViewControllerLazy = panelViewControllerLazy;
|
||||
mPanelView = panelView;
|
||||
@@ -345,6 +348,7 @@ public class QuickSettingsController {
|
||||
mLockscreenGestureLogger = lockscreenGestureLogger;
|
||||
mMetricsLogger = metricsLogger;
|
||||
mShadeLog = shadeLog;
|
||||
mCastController = castController;
|
||||
mFeatureFlags = featureFlags;
|
||||
mInteractionJankMonitor = interactionJankMonitor;
|
||||
|
||||
@@ -1132,7 +1136,9 @@ public class QuickSettingsController {
|
||||
mLastClipBounds.set(left, top, right, bottom);
|
||||
if (mIsFullWidth) {
|
||||
clipStatusView = qsVisible;
|
||||
float screenCornerRadius = mRecordingController.isRecording() ? 0 : mScreenCornerRadius;
|
||||
float screenCornerRadius =
|
||||
mRecordingController.isRecording() || mCastController.hasConnectedCastDevice()
|
||||
? 0 : mScreenCornerRadius;
|
||||
radius = (int) MathUtils.lerp(screenCornerRadius, mScrimCornerRadius,
|
||||
Math.min(top / (float) mScrimCornerRadius, 1f));
|
||||
}
|
||||
|
||||
@@ -28,6 +28,11 @@ public interface CastController extends CallbackController<Callback>, Dumpable {
|
||||
void startCasting(CastDevice device);
|
||||
void stopCasting(CastDevice device);
|
||||
|
||||
/**
|
||||
* @return whether we have a connected device.
|
||||
*/
|
||||
boolean hasConnectedCastDevice();
|
||||
|
||||
public interface Callback {
|
||||
void onCastDevicesChanged();
|
||||
}
|
||||
|
||||
@@ -217,6 +217,12 @@ public class CastControllerImpl implements CastController {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasConnectedCastDevice() {
|
||||
return getCastDevices().stream().anyMatch(
|
||||
castDevice -> castDevice.state == CastDevice.STATE_CONNECTED);
|
||||
}
|
||||
|
||||
private void setProjection(MediaProjectionInfo projection, boolean started) {
|
||||
boolean changed = false;
|
||||
final MediaProjectionInfo oldProjection = mProjection;
|
||||
|
||||
@@ -151,6 +151,7 @@ import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
|
||||
import com.android.systemui.statusbar.phone.TapAgainViewController;
|
||||
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
|
||||
import com.android.systemui.statusbar.policy.CastController;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardQsUserSwitchController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
@@ -293,6 +294,7 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
|
||||
@Captor
|
||||
protected ArgumentCaptor<NotificationStackScrollLayout.OnEmptySpaceClickListener>
|
||||
mEmptySpaceClickListenerCaptor;
|
||||
@Mock private CastController mCastController;
|
||||
|
||||
protected KeyguardBottomAreaInteractor mKeyguardBottomAreaInteractor;
|
||||
protected KeyguardInteractor mKeyguardInteractor;
|
||||
@@ -639,7 +641,8 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
|
||||
mMetricsLogger,
|
||||
mFeatureFlags,
|
||||
mInteractionJankMonitor,
|
||||
mShadeLog
|
||||
mShadeLog,
|
||||
mCastController
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -85,6 +85,7 @@ import com.android.systemui.statusbar.phone.LockscreenGestureLogger;
|
||||
import com.android.systemui.statusbar.phone.ScrimController;
|
||||
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
|
||||
import com.android.systemui.statusbar.policy.CastController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
|
||||
import org.junit.After;
|
||||
@@ -153,6 +154,7 @@ public class QuickSettingsControllerTest extends SysuiTestCase {
|
||||
@Mock private ShadeLogger mShadeLogger;
|
||||
@Mock private DumpManager mDumpManager;
|
||||
@Mock private UiEventLogger mUiEventLogger;
|
||||
@Mock private CastController mCastController;
|
||||
|
||||
private SysuiStatusBarStateController mStatusBarStateController;
|
||||
|
||||
@@ -239,7 +241,8 @@ public class QuickSettingsControllerTest extends SysuiTestCase {
|
||||
mMetricsLogger,
|
||||
mFeatureFlags,
|
||||
mInteractionJankMonitor,
|
||||
mShadeLogger
|
||||
mShadeLogger,
|
||||
mCastController
|
||||
);
|
||||
|
||||
mFragmentListener = mQsController.getQsFragmentListener();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.android.systemui.statusbar.policy;
|
||||
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
@@ -125,4 +126,20 @@ public class CastControllerImplTest extends SysuiTestCase {
|
||||
fail("Concurrent modification exception");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasConnectedCastDevice_connected() {
|
||||
CastController.CastDevice castDevice = new CastController.CastDevice();
|
||||
castDevice.state = CastController.CastDevice.STATE_CONNECTED;
|
||||
mController.startCasting(castDevice);
|
||||
assertTrue(mController.hasConnectedCastDevice());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasConnectedCastDevice_notConnected() {
|
||||
CastController.CastDevice castDevice = new CastController.CastDevice();
|
||||
castDevice.state = CastController.CastDevice.STATE_CONNECTING;
|
||||
mController.startCasting(castDevice);
|
||||
assertTrue(mController.hasConnectedCastDevice());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,4 +51,9 @@ public class FakeCastController extends BaseLeakChecker<Callback> implements Cas
|
||||
public void stopCasting(CastDevice device) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasConnectedCastDevice() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user