UI Improvements
am: 1ebb52cc97
Change-Id: If971e42d676b092d82f24659a55305680340668b
diff --git a/res/layout/fragment_individual_picker.xml b/res/layout/fragment_individual_picker.xml
index 355ec0e..8240d6b 100755
--- a/res/layout/fragment_individual_picker.xml
+++ b/res/layout/fragment_individual_picker.xml
@@ -30,6 +30,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clipToPadding="false"
+ android:fitsSystemWindows="true"
android:paddingLeft="@dimen/grid_padding"
android:paddingTop="@dimen/grid_padding"
android:scrollbarSize="@dimen/grid_padding"
diff --git a/res/layout/section_header.xml b/res/layout/section_header.xml
index 7ca9ec0..e505b14 100644
--- a/res/layout/section_header.xml
+++ b/res/layout/section_header.xml
@@ -20,7 +20,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:elevation="0dp">
+ android:elevation="8dp">
<androidx.appcompat.widget.Toolbar
style="@style/RegularToolbarStyle"
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 50548c4..bc1e5a7 100755
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -18,6 +18,9 @@
<style name="WallpaperTheme" parent="@style/Theme.AppCompat.NoActionBar">
<item name="colorControlActivated">?attr/colorPrimary</item>
<item name="android:statusBarColor">?attr/colorPrimary</item>
+ <item name="android:navigationBarColor">@color/translucent_black</item>
+ <item name="android:navigationBarDividerColor">@android:color/transparent</item>
+ <item name="android:windowLightStatusBar">false</item>
</style>
<style name="WallpaperTheme.Preview" parent="@style/Theme.AppCompat.NoActionBar">
diff --git a/src/com/android/wallpaper/compat/BuildCompat.java b/src/com/android/wallpaper/compat/BuildCompat.java
index 325b992..67ae485 100755
--- a/src/com/android/wallpaper/compat/BuildCompat.java
+++ b/src/com/android/wallpaper/compat/BuildCompat.java
@@ -94,4 +94,8 @@
public static void setSdkVersionForTesting(int sdk) {
sSdk = sdk;
}
+
+ public static boolean isAtLeastQ() {
+ return sSdk > VERSION_CODES.P;
+ }
}
diff --git a/src/com/android/wallpaper/picker/individual/IndividualPickerActivity.java b/src/com/android/wallpaper/picker/individual/IndividualPickerActivity.java
index 2d77608..4df59eb 100755
--- a/src/com/android/wallpaper/picker/individual/IndividualPickerActivity.java
+++ b/src/com/android/wallpaper/picker/individual/IndividualPickerActivity.java
@@ -21,12 +21,15 @@
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources.NotFoundException;
+import android.graphics.Insets;
import android.graphics.PorterDuff.Mode;
import android.graphics.drawable.Drawable;
import android.os.Build.VERSION;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
+import android.view.View;
+import android.view.WindowInsets;
import android.widget.Toast;
import androidx.appcompat.widget.Toolbar;
@@ -122,6 +125,28 @@
toolbar.setNavigationIcon(navigationIcon);
}
+ getWindow().getDecorView().setSystemUiVisibility(
+ getWindow().getDecorView().getSystemUiVisibility() |
+ View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
+ getWindow().getDecorView().setOnApplyWindowInsetsListener((view, windowInsets) -> {
+ view.setPadding(view.getPaddingLeft(), windowInsets.getSystemWindowInsetTop(),
+ view.getPaddingRight(), view.getBottom());
+ // Consume only the top inset (status bar), to let other content in the Activity consume
+ // the nav bar (ie, by using "fitSystemWindows")
+ if (BuildCompat.isAtLeastQ()) {
+ WindowInsets.Builder builder = new WindowInsets.Builder(windowInsets);
+ builder.setSystemWindowInsets(Insets.of(windowInsets.getSystemWindowInsetLeft(),
+ 0, windowInsets.getStableInsetRight(),
+ windowInsets.getSystemWindowInsetBottom()));
+ return builder.build();
+ } else {
+ return windowInsets.replaceSystemWindowInsets(
+ windowInsets.getSystemWindowInsetLeft(),
+ 0, windowInsets.getStableInsetRight(),
+ windowInsets.getSystemWindowInsetBottom());
+ }
+ });
+
if (fragment == null) {
fragment = injector.getIndividualPickerFragment(mCategoryCollectionId);
fm.beginTransaction()