Redlines adjustments

A bunch of redline fixes in management screens. Some of them hacks.

Also, make sure that visibility update is posted in correct thread.

Test: manual
Fixes: 155302803
Change-Id: I5c31904e2a70c2be224acf5d5aeb76f876cef695
This commit is contained in:
Fabian Kozynski
2020-04-30 12:14:03 -04:00
parent 0f309dc04a
commit 6936cd12d2
13 changed files with 84 additions and 67 deletions

View File

@@ -16,33 +16,25 @@
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="64dp"
android:background="?android:attr/selectableItemBackground">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start|top"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:layout_marginBottom="@dimen/controls_app_bottom_margin">
android:gravity="center_vertical">
<FrameLayout
android:id="@+id/icon_frame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start|center_vertical"
android:minWidth="56dp"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingTop="@dimen/controls_app_icon_frame_top_padding"
android:paddingBottom="@dimen/controls_app_icon_frame_top_padding"
android:paddingEnd="@dimen/controls_app_icon_frame_side_padding"
android:paddingStart="@dimen/controls_app_icon_frame_side_padding" >
android:paddingEnd="@dimen/controls_app_icon_frame_side_padding">
<ImageView
android:id="@android:id/icon"
android:layout_gravity="start|center_vertical"
android:layout_width="@dimen/controls_app_icon_size"
android:layout_height="@dimen/controls_app_icon_size" />
</FrameLayout>
@@ -51,9 +43,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:paddingTop="@dimen/controls_app_text_padding"
android:paddingBottom="@dimen/controls_app_text_padding">
android:orientation="vertical">
<TextView
android:id="@android:id/title"
@@ -62,8 +52,7 @@
android:ellipsize="end"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="?android:attr/textColorPrimary"/>
android:textAppearance="@style/TextAppearance.Control.Management.Subtitle"/>
<TextView
android:id="@+id/favorites"
@@ -81,7 +70,5 @@
android:layout_width="match_parent"
android:layout_height="@dimen/controls_app_divider_height"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginStart="@dimen/controls_app_divider_side_margin"
android:layout_marginEnd="@dimen/controls_app_divider_side_margin"
android:background="?android:attr/listDivider" />
</FrameLayout>

View File

@@ -98,15 +98,15 @@
<CheckBox
android:id="@+id/favorite"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_width="@dimen/controls_management_checkbox_size"
android:layout_height="@dimen/controls_management_checkbox_size"
android:minHeight="0dp"
android:minWidth="0dp"
android:gravity="center"
android:background="@android:color/transparent"
android:clickable="false"
android:selectable="false"
android:importantForAccessibility="no"
android:layout_marginTop="4dp"
android:layout_marginStart="4dp"
app:layout_constraintStart_toEndOf="@id/subtitle"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>

View File

@@ -22,23 +22,17 @@
>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/controls_management_list_margin"
/>
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="@dimen/control_height"
android:visibility="gone"
>
</FrameLayout>
</View>
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="10dp"
android:layout_marginStart="40dp"
android:layout_marginEnd="40dp"
android:layout_marginBottom="@dimen/controls_management_editing_divider_margin"
android:layout_marginTop="@dimen/controls_management_editing_divider_margin"
android:background="#4dffffff" />
</LinearLayout>

View File

@@ -31,18 +31,15 @@
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="@dimen/controls_title_size"
android:textAppearance="@style/TextAppearance.Control.Management.Title"
android:textAlignment="center" />
<TextView
android:id="@+id/subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/controls_management_titles_margin"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textAppearance="@style/TextAppearance.Control.Management.Subtitle"
android:textAlignment="center" />
<ViewStub
@@ -53,7 +50,7 @@
<FrameLayout
android:layout_width="match_parent"
android:layout_height="64dp">
android:layout_height="72dp">
<View
android:layout_width="match_parent"
@@ -64,7 +61,7 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp">
android:padding="@dimen/controls_management_footer_side_margin">
<Button
android:id="@+id/other_apps"

View File

@@ -19,6 +19,8 @@
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/controls_management_list_margin"
android:layout_marginTop="@dimen/controls_management_apps_list_margin"
android:layout_marginStart="@dimen/controls_management_apps_extra_side_margin"
android:layout_marginEnd="@dimen/controls_management_apps_extra_side_margin"
/>

View File

@@ -22,6 +22,6 @@
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
android:paddingTop="@dimen/controls_management_list_margin"
android:paddingTop="@dimen/controls_management_editing_list_margin"
/>

View File

@@ -32,10 +32,10 @@
<com.android.systemui.controls.management.ManagementPageIndicator
android:id="@+id/structure_page_indicator"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_height="@dimen/controls_management_page_indicator_height"
android:layout_gravity="center"
android:layout_marginTop="@dimen/controls_management_list_margin"
android:visibility="gone" />
android:visibility="invisible" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/structure_pager"

View File

@@ -21,4 +21,4 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginTop="@dimen/controls_management_list_margin"/>
android:layout_marginTop="@dimen/controls_management_zone_top_margin"/>

View File

@@ -18,10 +18,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.Control.Title"
android:layout_marginStart="12dp"
android:layout_marginEnd="2dp"
android:layout_marginTop="8dp"
android:textAppearance="@style/TextAppearance.Control.Management.Subtitle"
android:layout_marginTop="@dimen/controls_management_zone_top_margin"
android:layout_marginBottom="4dp">
</TextView>

View File

@@ -1274,13 +1274,23 @@
<!-- Home Controls management screens -->
<dimen name="controls_management_top_padding">48dp</dimen>
<dimen name="controls_management_side_padding">8dp</dimen>
<dimen name="controls_management_titles_margin">8dp</dimen>
<dimen name="controls_management_side_padding">16dp</dimen>
<dimen name="controls_management_titles_margin">16dp</dimen>
<dimen name="controls_management_footer_side_margin">8dp</dimen>
<dimen name="controls_management_list_margin">16dp</dimen>
<dimen name="controls_title_size">26sp</dimen>
<dimen name="controls_management_apps_list_margin">64dp</dimen>
<dimen name="controls_management_editing_list_margin">48dp</dimen>
<dimen name="controls_management_editing_divider_margin">24dp</dimen>
<dimen name="controls_management_apps_extra_side_margin">8dp</dimen>
<dimen name="controls_management_apps_top_margin"></dimen>
<dimen name="controls_management_zone_top_margin">32dp</dimen>
<dimen name="controls_management_page_indicator_height">24dp</dimen>
<dimen name="controls_management_checkbox_size">25dp</dimen>
<dimen name="controls_title_size">24sp</dimen>
<dimen name="controls_subtitle_size">16sp</dimen>
<dimen name="controls_app_icon_size">32dp</dimen>
<dimen name="controls_app_icon_frame_side_padding">8dp</dimen>
<dimen name="controls_app_icon_size">24dp</dimen>
<dimen name="controls_app_icon_frame_side_padding">16dp</dimen>
<dimen name="controls_app_icon_frame_top_padding">4dp</dimen>
<dimen name="controls_app_icon_frame_bottom_padding">@dimen/controls_app_icon_frame_top_padding</dimen>
<dimen name="controls_app_bottom_margin">8dp</dimen>

View File

@@ -731,6 +731,18 @@
<item name="android:textSize">@dimen/control_text_size</item>
<item name="android:textColor">@color/control_secondary_text</item>
</style>
<style name="TextAppearance.Control.Management" >
<item name="android:textColor">?android:attr/textColorPrimary</item>
</style>
<style name="TextAppearance.Control.Management.Title">
<item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
<item name="android:textSize">@dimen/controls_title_size</item>
</style>
<style name="TextAppearance.Control.Management.Subtitle">
<item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
<item name="android:textSize">@dimen/controls_subtitle_size</item>
</style>
<style name="Control.ListPopupWindow" parent="@*android:style/Widget.DeviceDefault.ListPopupWindow">
<item name="android:overlapAnchor">true</item>

View File

@@ -18,6 +18,7 @@ package com.android.systemui.controls.management
import android.content.ComponentName
import android.graphics.Rect
import android.service.controls.Control
import android.service.controls.DeviceTypes
import android.view.LayoutInflater
import android.view.View
@@ -46,9 +47,9 @@ class ControlAdapter(
) : RecyclerView.Adapter<Holder>() {
companion object {
private const val TYPE_ZONE = 0
private const val TYPE_CONTROL = 1
private const val TYPE_DIVIDER = 2
const val TYPE_ZONE = 0
const val TYPE_CONTROL = 1
const val TYPE_DIVIDER = 2
}
val spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
@@ -142,7 +143,7 @@ sealed class Holder(view: View) : RecyclerView.ViewHolder(view) {
/**
* Holder for using with [DividerWrapper] to display a divider between zones.
*
* The divider can be shown or hidden. It also has a frame view the height of a control, that can
* The divider can be shown or hidden. It also has a view the height of a control, that can
* be toggled visible or gone.
*/
private class DividerHolder(view: View) : Holder(view) {
@@ -229,10 +230,25 @@ class MarginItemDecorator(
parent: RecyclerView,
state: RecyclerView.State
) {
outRect.apply {
top = topMargin
left = sideMargins
right = sideMargins
val position = parent.getChildAdapterPosition(view)
if (position == RecyclerView.NO_POSITION) return
val type = parent.adapter?.getItemViewType(position)
if (type == ControlAdapter.TYPE_CONTROL) {
outRect.apply {
top = topMargin
left = sideMargins
right = sideMargins
bottom = 0
}
} else if (type == ControlAdapter.TYPE_ZONE && position == 0) {
// add negative padding to the first zone to counteract the margin
val margin = (view.layoutParams as ViewGroup.MarginLayoutParams).topMargin
outRect.apply {
top = -margin
left = 0
right = 0
bottom = 0
}
}
}
}

View File

@@ -104,7 +104,9 @@ class ControlsFavoritingActivity @Inject constructor(
override fun onServicesUpdated(serviceInfos: List<ControlsServiceInfo>) {
if (serviceInfos.size > 1) {
otherAppsButton.visibility = View.VISIBLE
otherAppsButton.post {
otherAppsButton.visibility = View.VISIBLE
}
}
}
}
@@ -170,7 +172,7 @@ class ControlsFavoritingActivity @Inject constructor(
pageIndicator.setNumPages(listOfStructures.size)
pageIndicator.setLocation(0f)
pageIndicator.visibility =
if (listOfStructures.size > 1) View.VISIBLE else View.GONE
if (listOfStructures.size > 1) View.VISIBLE else View.INVISIBLE
ControlsAnimations.enterAnimation(pageIndicator).apply {
addListener(object : AnimatorListenerAdapter() {