diff --git a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java index 8a73e2cca..58a25b6b0 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java @@ -31,6 +31,7 @@ import android.text.TextUtils; import android.view.Gravity; import android.view.MenuItem; import android.view.View; +import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.TextView; import android.widget.Toast; @@ -40,8 +41,10 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.appcompat.app.AppCompatDelegate; +import androidx.core.view.ViewCompat; import androidx.drawerlayout.widget.DrawerLayout; +import com.google.android.material.card.MaterialCardView; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.navigation.NavigationView; import com.google.android.material.snackbar.Snackbar; @@ -131,7 +134,7 @@ public final class MainActivity extends StageActivity @Nullable private NavigationView mNavView; @Nullable - private FrameLayout mRightDrawer; + private MaterialCardView mRightDrawer; @Nullable private LoadImageView mAvatar; @Nullable @@ -311,7 +314,7 @@ public final class MainActivity extends StageActivity mDrawerLayout = (EhDrawerLayout) ViewUtils.$$(this, R.id.draw_view); mNavView = (NavigationView) ViewUtils.$$(this, R.id.nav_view); - mRightDrawer = (FrameLayout) ViewUtils.$$(this, R.id.right_drawer); + mRightDrawer = (MaterialCardView) ViewUtils.$$(this, R.id.right_drawer); View headerLayout = mNavView.getHeaderView(0); mAvatar = (LoadImageView) ViewUtils.$$(headerLayout, R.id.avatar); mDisplayName = (TextView) ViewUtils.$$(headerLayout, R.id.display_name); @@ -321,6 +324,7 @@ public final class MainActivity extends StageActivity ((EhApplication) getApplication()).recreate(); Settings.putTheme(theme); }); + updateProfile(); if (mNavView != null) { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.java index a11709550..438d34e9b 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.java @@ -17,7 +17,10 @@ package com.hippo.ehviewer.ui.scene; import android.content.Context; +import android.content.res.Configuration; import android.content.res.Resources; +import android.graphics.Color; +import android.os.Build; import android.os.Bundle; import android.os.Parcelable; import android.util.SparseArray; @@ -35,6 +38,8 @@ import androidx.annotation.StyleRes; import androidx.drawerlayout.widget.DrawerLayout; import androidx.fragment.app.FragmentActivity; +import com.hippo.android.resource.AttrResources; +import com.hippo.ehviewer.R; import com.hippo.ehviewer.ui.MainActivity; import com.hippo.scene.SceneFragment; import com.hippo.util.AppHelper; @@ -186,6 +191,22 @@ public abstract class BaseScene extends SceneFragment { drawerView = null; } + public void setWhiteStatusBar(boolean set) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + View decorView = requireActivity().getWindow().getDecorView(); + int flags = decorView.getSystemUiVisibility(); + if (set && (requireActivity().getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES) <= 0) { + flags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; + } else { + flags &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; + } + decorView.setSystemUiVisibility(flags); + ((DrawerLayout) requireActivity().findViewById(R.id.draw_view)).setStatusBarBackgroundColor(set ? Color.WHITE : AttrResources.getAttrColor(requireContext(), R.attr.colorPrimaryDark)); + } else { + ((DrawerLayout) requireActivity().findViewById(R.id.draw_view)).setStatusBarBackgroundColor(AttrResources.getAttrColor(requireContext(), R.attr.colorPrimaryDark)); + } + } + public void onDestroyDrawerView() { } @@ -218,6 +239,7 @@ public abstract class BaseScene extends SceneFragment { // Hide soft ime AppHelper.hideSoftInput(getActivity()); + setWhiteStatusBar(true); } public void createThemeContext(@StyleRes int style) { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java index ef6774dbc..2e153a0ba 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java @@ -424,7 +424,7 @@ public class DownloadsScene extends ToolbarScene .withMaterialShowcase() .setStyle(R.style.Guide) .setTarget(new ViewTarget(((DownloadHolder) holder).thumb)) - .blockAllTouches() + .hideOnTouchOutside() .setContentTitle(R.string.guide_download_thumb_title) .setContentText(R.string.guide_download_thumb_text) .replaceEndButton(R.layout.button_guide) @@ -453,7 +453,7 @@ public class DownloadsScene extends ToolbarScene .withMaterialShowcase() .setStyle(R.style.Guide) .setTarget(new PointTarget(point.x, point.y / 3)) - .blockAllTouches() + .hideOnTouchOutside() .setContentTitle(R.string.guide_download_labels_title) .setContentText(R.string.guide_download_labels_text) .replaceEndButton(R.layout.button_guide) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java index 773620592..71b7e34e5 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java @@ -334,7 +334,7 @@ public class FavoritesScene extends BaseScene implements .withMaterialShowcase() .setStyle(R.style.Guide) .setTarget(new PointTarget(point.x, point.y / 3)) - .blockAllTouches() + .hideOnTouchOutside() .setContentTitle(R.string.guide_collections_title) .setContentText(R.string.guide_collections_text) .replaceEndButton(R.layout.button_guide) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java index 4dbabf5b3..356313d34 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java @@ -603,6 +603,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); + setWhiteStatusBar(false); } @Override diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java index e72161caa..df4116e16 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java @@ -610,7 +610,7 @@ public final class GalleryListScene extends BaseScene .withMaterialShowcase() .setStyle(R.style.Guide) .setTarget(new PointTarget(point.x, point.y / 3)) - .blockAllTouches() + .hideOnTouchOutside() .setContentTitle(R.string.guide_quick_search_title) .setContentText(R.string.guide_quick_search_text) .replaceEndButton(R.layout.button_guide) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/ToolbarScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/ToolbarScene.java index b35091c6b..3d5714d7f 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/ToolbarScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/ToolbarScene.java @@ -81,21 +81,12 @@ public abstract class ToolbarScene extends BaseScene { int menuResId = getMenuResId(); if (menuResId != 0) { mToolbar.inflateMenu(menuResId); - mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - return ToolbarScene.this.onMenuItemClick(item); - } - }); + mToolbar.setOnMenuItemClickListener(ToolbarScene.this::onMenuItemClick); onMenuCreated(mToolbar.getMenu()); } - mToolbar.setNavigationOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - onNavigationClick(); - } - }); + mToolbar.setNavigationOnClickListener(v -> onNavigationClick()); } + setWhiteStatusBar(false); } public int getMenuResId() { diff --git a/app/src/main/java/com/hippo/widget/DrawerView.java b/app/src/main/java/com/hippo/widget/DrawerView.java index e9888c54d..109e40196 100644 --- a/app/src/main/java/com/hippo/widget/DrawerView.java +++ b/app/src/main/java/com/hippo/widget/DrawerView.java @@ -19,11 +19,11 @@ package com.hippo.widget; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; -import android.widget.FrameLayout; +import com.google.android.material.card.MaterialCardView; import com.hippo.yorozuya.LayoutUtils; -public class DrawerView extends FrameLayout { +public class DrawerView extends MaterialCardView { private static final int DEFAULT_MAX_WIDTH = 280; diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index b8543ddf7..9d1ae70de 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -35,7 +35,9 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" + android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" + app:insetForeground="@null" app:menu="@menu/nav_drawer_main" /> @@ -44,9 +46,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="end" - android:background="?android:attr/windowBackground" - android:clickable="true" - android:focusable="true" + android:background="@android:color/transparent" android:maxWidth="@dimen/drawer_max_width" /> diff --git a/app/src/main/res/layout/button_guide.xml b/app/src/main/res/layout/button_guide.xml index 1e41fa807..0a388c6d6 100644 --- a/app/src/main/res/layout/button_guide.xml +++ b/app/src/main/res/layout/button_guide.xml @@ -19,6 +19,7 @@ android:layout_height="wrap_content" android:background="@null" android:text="@string/get_it" + android:visibility="gone" android:textAllCaps="true" android:textColor="@android:color/white" android:textSize="@dimen/text_little_small" diff --git a/app/src/main/res/layout/drawer_list.xml b/app/src/main/res/layout/drawer_list.xml index 8f6a8982b..0e5d398ad 100644 --- a/app/src/main/res/layout/drawer_list.xml +++ b/app/src/main/res/layout/drawer_list.xml @@ -17,6 +17,9 @@ - @color/colorBackground + @android:color/white \ No newline at end of file