Merge "Adjust Rear Display Dialog Landscape Layout" into udc-dev
This commit is contained in:
@@ -32,8 +32,8 @@
|
|||||||
<com.airbnb.lottie.LottieAnimationView
|
<com.airbnb.lottie.LottieAnimationView
|
||||||
android:id="@+id/rear_display_folded_animation"
|
android:id="@+id/rear_display_folded_animation"
|
||||||
android:importantForAccessibility="no"
|
android:importantForAccessibility="no"
|
||||||
android:layout_width="@dimen/rear_display_animation_width"
|
android:layout_width="@dimen/rear_display_animation_width_opened"
|
||||||
android:layout_height="@dimen/rear_display_animation_height"
|
android:layout_height="@dimen/rear_display_animation_height_opened"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:contentDescription="@string/rear_display_accessibility_unfolded_animation"
|
android:contentDescription="@string/rear_display_accessibility_unfolded_animation"
|
||||||
android:scaleType="fitXY"
|
android:scaleType="fitXY"
|
||||||
@@ -49,8 +49,8 @@
|
|||||||
android:text="@string/rear_display_unfolded_bottom_sheet_title"
|
android:text="@string/rear_display_unfolded_bottom_sheet_title"
|
||||||
android:textAppearance="@style/TextAppearance.Dialog.Title"
|
android:textAppearance="@style/TextAppearance.Dialog.Title"
|
||||||
android:lineSpacingExtra="2sp"
|
android:lineSpacingExtra="2sp"
|
||||||
android:paddingTop="@dimen/rear_display_title_top_padding"
|
android:paddingTop="@dimen/rear_display_title_top_padding_opened"
|
||||||
android:paddingBottom="@dimen/rear_display_title_bottom_padding"
|
android:paddingBottom="@dimen/rear_display_title_bottom_padding_opened"
|
||||||
android:gravity="center_horizontal|center_vertical"
|
android:gravity="center_horizontal|center_vertical"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|||||||
@@ -67,6 +67,12 @@
|
|||||||
<dimen name="controls_header_horizontal_padding">12dp</dimen>
|
<dimen name="controls_header_horizontal_padding">12dp</dimen>
|
||||||
<dimen name="controls_content_margin_horizontal">16dp</dimen>
|
<dimen name="controls_content_margin_horizontal">16dp</dimen>
|
||||||
|
|
||||||
|
<!-- Rear Display Education dimens -->
|
||||||
|
<dimen name="rear_display_animation_width">246dp</dimen>
|
||||||
|
<dimen name="rear_display_animation_height">180dp</dimen>
|
||||||
|
<dimen name="rear_display_title_top_padding">4dp</dimen>
|
||||||
|
<dimen name="rear_display_title_bottom_padding">0dp</dimen>
|
||||||
|
|
||||||
<!-- Bouncer user switcher margins -->
|
<!-- Bouncer user switcher margins -->
|
||||||
<dimen name="bouncer_user_switcher_view_mode_user_switcher_bottom_margin">0dp</dimen>
|
<dimen name="bouncer_user_switcher_view_mode_user_switcher_bottom_margin">0dp</dimen>
|
||||||
<dimen name="bouncer_user_switcher_view_mode_view_flipper_bottom_margin">0dp</dimen>
|
<dimen name="bouncer_user_switcher_view_mode_view_flipper_bottom_margin">0dp</dimen>
|
||||||
|
|||||||
@@ -1772,8 +1772,12 @@
|
|||||||
<!-- Rear Display Education dimens -->
|
<!-- Rear Display Education dimens -->
|
||||||
<dimen name="rear_display_animation_width">273dp</dimen>
|
<dimen name="rear_display_animation_width">273dp</dimen>
|
||||||
<dimen name="rear_display_animation_height">200dp</dimen>
|
<dimen name="rear_display_animation_height">200dp</dimen>
|
||||||
|
<dimen name="rear_display_animation_width_opened">273dp</dimen>
|
||||||
|
<dimen name="rear_display_animation_height_opened">200dp</dimen>
|
||||||
<dimen name="rear_display_title_top_padding">24dp</dimen>
|
<dimen name="rear_display_title_top_padding">24dp</dimen>
|
||||||
<dimen name="rear_display_title_bottom_padding">16dp</dimen>
|
<dimen name="rear_display_title_bottom_padding">16dp</dimen>
|
||||||
|
<dimen name="rear_display_title_top_padding_opened">24dp</dimen>
|
||||||
|
<dimen name="rear_display_title_bottom_padding_opened">16dp</dimen>
|
||||||
|
|
||||||
<!-- Bouncer user switcher margins -->
|
<!-- Bouncer user switcher margins -->
|
||||||
<dimen name="bouncer_user_switcher_view_mode_user_switcher_bottom_margin">0dp</dimen>
|
<dimen name="bouncer_user_switcher_view_mode_user_switcher_bottom_margin">0dp</dimen>
|
||||||
|
|||||||
@@ -16,12 +16,16 @@
|
|||||||
|
|
||||||
package com.android.systemui.reardisplay;
|
package com.android.systemui.reardisplay;
|
||||||
|
|
||||||
|
import android.annotation.Nullable;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.annotation.TestApi;
|
import android.annotation.TestApi;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.hardware.devicestate.DeviceStateManager;
|
import android.hardware.devicestate.DeviceStateManager;
|
||||||
import android.hardware.devicestate.DeviceStateManagerGlobal;
|
import android.hardware.devicestate.DeviceStateManagerGlobal;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup.LayoutParams;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.systemui.CoreStartable;
|
import com.android.systemui.CoreStartable;
|
||||||
@@ -70,6 +74,7 @@ public class RearDisplayDialogController implements CoreStartable, CommandQueue.
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
SystemUIDialog mRearDisplayEducationDialog;
|
SystemUIDialog mRearDisplayEducationDialog;
|
||||||
|
@Nullable LinearLayout mDialogViewContainer;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public RearDisplayDialogController(Context context, CommandQueue commandQueue,
|
public RearDisplayDialogController(Context context, CommandQueue commandQueue,
|
||||||
@@ -90,26 +95,51 @@ public class RearDisplayDialogController implements CoreStartable, CommandQueue.
|
|||||||
createAndShowDialog();
|
createAndShowDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConfigurationChanged(Configuration newConfig) {
|
||||||
|
if (mRearDisplayEducationDialog != null && mRearDisplayEducationDialog.isShowing()
|
||||||
|
&& mDialogViewContainer != null) {
|
||||||
|
// Refresh the dialog view when configuration is changed.
|
||||||
|
Context dialogContext = mRearDisplayEducationDialog.getContext();
|
||||||
|
View dialogView = createDialogView(dialogContext);
|
||||||
|
mDialogViewContainer.removeAllViews();
|
||||||
|
mDialogViewContainer.addView(dialogView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void createAndShowDialog() {
|
private void createAndShowDialog() {
|
||||||
mServiceNotified = false;
|
mServiceNotified = false;
|
||||||
Context dialogContext = mRearDisplayEducationDialog.getContext();
|
Context dialogContext = mRearDisplayEducationDialog.getContext();
|
||||||
|
|
||||||
|
View dialogView = createDialogView(dialogContext);
|
||||||
|
|
||||||
|
mDialogViewContainer = new LinearLayout(dialogContext);
|
||||||
|
mDialogViewContainer.setLayoutParams(
|
||||||
|
new LinearLayout.LayoutParams(
|
||||||
|
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
|
||||||
|
mDialogViewContainer.setOrientation(LinearLayout.VERTICAL);
|
||||||
|
mDialogViewContainer.addView(dialogView);
|
||||||
|
|
||||||
|
mRearDisplayEducationDialog.setView(mDialogViewContainer);
|
||||||
|
|
||||||
|
configureDialogButtons();
|
||||||
|
|
||||||
|
mRearDisplayEducationDialog.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
private View createDialogView(Context context) {
|
||||||
View dialogView;
|
View dialogView;
|
||||||
if (mStartedFolded) {
|
if (mStartedFolded) {
|
||||||
dialogView = View.inflate(dialogContext,
|
dialogView = View.inflate(context,
|
||||||
R.layout.activity_rear_display_education, null);
|
R.layout.activity_rear_display_education, null);
|
||||||
} else {
|
} else {
|
||||||
dialogView = View.inflate(dialogContext,
|
dialogView = View.inflate(context,
|
||||||
R.layout.activity_rear_display_education_opened, null);
|
R.layout.activity_rear_display_education_opened, null);
|
||||||
}
|
}
|
||||||
LottieAnimationView animationView = dialogView.findViewById(
|
LottieAnimationView animationView = dialogView.findViewById(
|
||||||
R.id.rear_display_folded_animation);
|
R.id.rear_display_folded_animation);
|
||||||
animationView.setRepeatCount(mAnimationRepeatCount);
|
animationView.setRepeatCount(mAnimationRepeatCount);
|
||||||
mRearDisplayEducationDialog.setView(dialogView);
|
return dialogView;
|
||||||
|
|
||||||
configureDialogButtons();
|
|
||||||
|
|
||||||
mRearDisplayEducationDialog.show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -164,6 +194,7 @@ public class RearDisplayDialogController implements CoreStartable, CommandQueue.
|
|||||||
mServiceNotified = true;
|
mServiceNotified = true;
|
||||||
mDeviceStateManagerGlobal.unregisterDeviceStateCallback(mDeviceStateManagerCallback);
|
mDeviceStateManagerGlobal.unregisterDeviceStateCallback(mDeviceStateManagerCallback);
|
||||||
mDeviceStateManagerGlobal.onStateRequestOverlayDismissed(shouldCancelRequest);
|
mDeviceStateManagerGlobal.onStateRequestOverlayDismissed(shouldCancelRequest);
|
||||||
|
mDialogViewContainer = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -17,8 +17,10 @@
|
|||||||
package com.android.systemui.reardisplay;
|
package com.android.systemui.reardisplay;
|
||||||
|
|
||||||
import static junit.framework.Assert.assertEquals;
|
import static junit.framework.Assert.assertEquals;
|
||||||
|
import static junit.framework.Assert.assertNotSame;
|
||||||
import static junit.framework.Assert.assertTrue;
|
import static junit.framework.Assert.assertTrue;
|
||||||
|
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.hardware.devicestate.DeviceStateManager;
|
import android.hardware.devicestate.DeviceStateManager;
|
||||||
import android.testing.AndroidTestingRunner;
|
import android.testing.AndroidTestingRunner;
|
||||||
import android.testing.TestableLooper;
|
import android.testing.TestableLooper;
|
||||||
@@ -67,6 +69,27 @@ public class RearDisplayDialogControllerTest extends SysuiTestCase {
|
|||||||
R.string.rear_display_folded_bottom_sheet_title));
|
R.string.rear_display_folded_bottom_sheet_title));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testClosedDialogIsRefreshedOnConfigurationChange() {
|
||||||
|
RearDisplayDialogController controller = new RearDisplayDialogController(mContext,
|
||||||
|
mCommandQueue, mFakeExecutor);
|
||||||
|
controller.setDeviceStateManagerCallback(new TestDeviceStateManagerCallback());
|
||||||
|
controller.setFoldedStates(new int[]{0});
|
||||||
|
controller.setAnimationRepeatCount(0);
|
||||||
|
|
||||||
|
controller.showRearDisplayDialog(CLOSED_BASE_STATE);
|
||||||
|
assertTrue(controller.mRearDisplayEducationDialog.isShowing());
|
||||||
|
TextView deviceClosedTitleTextView = controller.mRearDisplayEducationDialog.findViewById(
|
||||||
|
R.id.rear_display_title_text_view);
|
||||||
|
|
||||||
|
controller.onConfigurationChanged(new Configuration());
|
||||||
|
assertTrue(controller.mRearDisplayEducationDialog.isShowing());
|
||||||
|
TextView deviceClosedTitleTextView2 = controller.mRearDisplayEducationDialog.findViewById(
|
||||||
|
R.id.rear_display_title_text_view);
|
||||||
|
|
||||||
|
assertNotSame(deviceClosedTitleTextView, deviceClosedTitleTextView2);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOpenDialogIsShown() {
|
public void testOpenDialogIsShown() {
|
||||||
RearDisplayDialogController controller = new RearDisplayDialogController(mContext,
|
RearDisplayDialogController controller = new RearDisplayDialogController(mContext,
|
||||||
|
|||||||
Reference in New Issue
Block a user