Updater: update layout and colors for 12

* Updated toolbar layout and behaviour
* Changed colors to match AOSP settings

Change-Id: Ic8efa69f9ba06055bac1772e1d9f3eb5ada67d8d
This commit is contained in:
Timi Rautamäki
2021-10-13 08:33:27 +00:00
committed by Jan Altensen
parent c8ae33d9ba
commit 61e71f0db0
6 changed files with 29 additions and 55 deletions

View File

@@ -16,6 +16,7 @@ LOCAL_STATIC_ANDROID_LIBRARIES := \
androidx.localbroadcastmanager_localbroadcastmanager \
androidx.preference_preference \
androidx.recyclerview_recyclerview \
SettingsLib
LOCAL_RESOURCE_DIR := \
$(LOCAL_PATH)/res

View File

@@ -12,18 +12,30 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:layout_behavior="org.lineageos.updater.ui.FlingBehavior">
android:outlineAmbientShadowColor="@android:color/transparent"
android:outlineSpotShadowColor="@android:color/transparent"
android:background="?android:attr/colorPrimary"
android:theme="@style/Theme.CollapsingToolbar.Settings">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/AppTheme.AppBarOverlay"
app:collapsedTitleTextAppearance="@style/TextAppearanceInverted"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleTextAppearance="@style/TextAppearanceTransparent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:scrimAnimationDuration="0">
android:layout_height="wrap_content"
android:clipToPadding="false"
app:forceApplySystemWindowInsetTop="true"
app:extraMultilineHeightEnabled="true"
app:contentScrim="@color/toolbar_collapsed"
app:maxLines="3"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
app:scrimAnimationDuration="50"
app:scrimVisibleHeightTrigger="@dimen/settingslib_scrim_visible_height_trigger"
app:statusBarScrim="@null"
app:titleCollapseMode="fade"
app:collapsedTitleTextAppearance="@style/CollapsingToolbarTitle.Collapsed"
app:expandedTitleTextAppearance="@style/CollapsingToolbarTitle.Expanded"
app:expandedTitleMarginStart="@dimen/expanded_title_margin_start"
app:expandedTitleMarginEnd="@dimen/expanded_title_margin_end"
app:toolbarId="@id/action_bar">
<RelativeLayout
android:layout_width="match_parent"
@@ -72,8 +84,9 @@
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:textColor="?android:attr/textColorPrimary"
app:layout_collapseMode="pin" />
android:theme="?android:attr/actionBarTheme"
android:transitionName="shared_element_view"
app:layout_collapseMode="pin"/>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>

View File

@@ -3,6 +3,8 @@
<color name="theme_primary">#212121</color>
<color name="theme_primary_dark">#1c1c1c</color>
<color name="theme_accent">@*android:color/accent_device_default_dark</color>
<color name="background">@*android:color/system_neutral1_800</color>
<color name="toolbar_collapsed">@android:color/system_neutral1_700</color>
<color name="inverted">#f5f5f5</color>
</resources>

View File

@@ -3,6 +3,8 @@
<color name="theme_primary">#f5f5f5</color>
<color name="theme_primary_dark">#e0e0e0</color>
<color name="theme_accent">@*android:color/accent_device_default_light</color>
<color name="background">@*android:color/system_neutral1_0</color>
<color name="toolbar_collapsed">@android:color/system_neutral1_100</color>
<color name="tv_background">#FF0E0E0F</color>
<color name="tv_card_background">#222222</color>

View File

@@ -7,6 +7,7 @@
<item name="windowActionModeOverlay">true</item>
<item name="android:windowLightStatusBar">@bool/theme_is_light</item>
<item name="android:windowLightNavigationBar">@bool/theme_is_light</item>
<item name="android:windowBackground">@color/background</item>
</style>
<style name="AppTheme.NoActionBar">

View File

@@ -1,45 +0,0 @@
package org.lineageos.updater.ui;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.appbar.AppBarLayout;
public final class FlingBehavior extends AppBarLayout.Behavior {
private static final int TOP_CHILD_FLING_THRESHOLD = 3;
private boolean isPositive;
public FlingBehavior() {
}
public FlingBehavior(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onNestedFling(CoordinatorLayout coordinatorLayout, AppBarLayout child,
View target, float velocityX, float velocityY, boolean consumed) {
if (velocityY > 0 && !isPositive || velocityY < 0 && isPositive) {
velocityY = velocityY * -1;
}
if (target instanceof RecyclerView && velocityY < 0) {
final RecyclerView recyclerView = (RecyclerView) target;
final View firstChild = recyclerView.getChildAt(0);
final int childAdapterPosition = recyclerView.getChildAdapterPosition(firstChild);
consumed = childAdapterPosition > TOP_CHILD_FLING_THRESHOLD;
}
return super.onNestedFling(coordinatorLayout, child, target, velocityX, velocityY,
consumed);
}
@Override
public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, AppBarLayout child,
View target, int dx, int dy, int[] consumed) {
super.onNestedPreScroll(coordinatorLayout, child, target, dx, dy, consumed);
isPositive = dy > 0;
}
}