From 308f7f7df881bfb299365e116a36ce4d35e950a4 Mon Sep 17 00:00:00 2001
From: tehcneko <7764726+tehcneko@users.noreply.github.com>
Date: Tue, 16 Mar 2021 16:34:52 +0800
Subject: [PATCH] Use drakeet drawer
---
app/build.gradle | 2 +-
.../com/hippo/ehviewer/ui/MainActivity.java | 16 +----
.../hippo/ehviewer/ui/scene/BaseScene.java | 16 -----
.../ehviewer/ui/scene/GalleryDetailScene.java | 34 ----------
.../hippo/ehviewer/widget/EhDrawerLayout.java | 2 +-
.../java/com/hippo/widget/DrawerView.java | 4 +-
app/src/main/res/layout/activity_main.xml | 15 ++--
app/src/main/res/layout/drawer_list_rv.xml | 68 ++++++++++---------
8 files changed, 53 insertions(+), 104 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index dbf6e63de..f3dad4ad8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -95,6 +95,7 @@ dependencies {
implementation "androidx.recyclerview:recyclerview:1.2.0-beta02"
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01"
implementation 'androidx.webkit:webkit:1.4.0'
+ implementation 'com.drakeet.drawer:drawer:1.0.3'
implementation 'com.google.android.material:material:1.3.0'
implementation 'com.getkeepsafe.relinker:relinker:1.4.1'
implementation 'com.getkeepsafe.taptargetview:taptargetview:1.13.0'
@@ -117,7 +118,6 @@ dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.9.1'
implementation 'com.squareup.okhttp3:okhttp-dnsoverhttps:4.9.1'
implementation 'com.takisoft.preferencex:preferencex:1.1.0'
- implementation 'com.gitlab.NekoInverter:DrawerLayout:4e79840448'
implementation 'com.github.NekoInverter:Image:8fd6c1e1df'
implementation 'com.gitlab.NekoInverter:yorozuya:723dc867a9'
implementation 'dev.rikka.rikkax.preference:simplemenu-preference:1.0.2'
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 45c0b5816..598ccaca7 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java
@@ -41,11 +41,11 @@ import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.view.WindowCompat;
+import androidx.drawerlayout.widget.DrawerLayout;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.navigation.NavigationView;
import com.google.android.material.snackbar.Snackbar;
-import com.hippo.drawerlayout.DrawerLayout;
import com.hippo.ehviewer.AppConfig;
import com.hippo.ehviewer.R;
import com.hippo.ehviewer.Settings;
@@ -641,18 +641,4 @@ public final class MainActivity extends StageActivity
return true;
}
-
- public void setDrawerGestureBlocker(EhDrawerLayout.GestureBlocker gestureBlocker) {
- if (mDrawerLayout != null) {
- mDrawerLayout.setGestureBlocker(gestureBlocker);
- }
- }
-
- public boolean isDrawersVisible() {
- if (mDrawerLayout != null) {
- return mDrawerLayout.isDrawersVisible();
- } else {
- return false;
- }
- }
}
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 c6d9cf353..be8ac28ff 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
@@ -102,13 +102,6 @@ public abstract class BaseScene extends SceneFragment {
}
}
- public void setDrawerGestureBlocker(EhDrawerLayout.GestureBlocker gestureBlocker) {
- FragmentActivity activity = getActivity();
- if (activity instanceof MainActivity) {
- ((MainActivity) activity).setDrawerGestureBlocker(gestureBlocker);
- }
- }
-
public void toggleDrawer(int drawerGravity) {
FragmentActivity activity = getActivity();
if (activity instanceof MainActivity) {
@@ -116,15 +109,6 @@ public abstract class BaseScene extends SceneFragment {
}
}
- public boolean isDrawersVisible() {
- FragmentActivity activity = getActivity();
- if (activity instanceof MainActivity) {
- return ((MainActivity) activity).isDrawersVisible();
- } else {
- return false;
- }
- }
-
public void showTip(CharSequence message, int length) {
FragmentActivity activity = getActivity();
if (activity instanceof MainActivity) {
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 8a0b40d09..6bf58daee 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
@@ -37,11 +37,9 @@ import android.text.TextUtils;
import android.util.Pair;
import android.view.Gravity;
import android.view.LayoutInflater;
-import android.view.MotionEvent;
import android.view.View;
import android.view.ViewAnimationUtils;
import android.view.ViewGroup;
-import android.view.ViewParent;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout;
@@ -103,7 +101,6 @@ import com.hippo.ehviewer.ui.CommonOperations;
import com.hippo.ehviewer.ui.GalleryActivity;
import com.hippo.ehviewer.ui.MainActivity;
import com.hippo.ehviewer.ui.annotation.WholeLifeCircle;
-import com.hippo.ehviewer.widget.EhDrawerLayout;
import com.hippo.ehviewer.widget.GalleryRatingBar;
import com.hippo.scene.Announcer;
import com.hippo.scene.SceneFragment;
@@ -513,35 +510,6 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
Context context = getContext();
AssertUtils.assertNotNull(context);
- View actionsScrollView = ViewUtils.$$(view, R.id.actions_scroll_view);
- setDrawerGestureBlocker(new EhDrawerLayout.GestureBlocker() {
- private void transformPointToViewLocal(int[] point, View child) {
- ViewParent viewParent = child.getParent();
-
- while (viewParent instanceof View) {
- View view = (View) viewParent;
- point[0] += view.getScrollX() - child.getLeft();
- point[1] += view.getScrollY() - child.getTop();
-
- if (view instanceof EhDrawerLayout) {
- break;
- }
-
- child = view;
- viewParent = child.getParent();
- }
- }
-
- @Override
- public boolean shouldBlockGesture(MotionEvent ev) {
- int[] point = new int[]{(int) ev.getX(), (int) ev.getY()};
- transformPointToViewLocal(point, actionsScrollView);
- return !isDrawersVisible()
- && point[0] > 0 && point[0] < actionsScrollView.getWidth()
- && point[1] > 0 && point[1] < actionsScrollView.getHeight();
- }
- });
-
Drawable drawable = ContextCompat.getDrawable(context, R.drawable.big_sad_pandroid);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
mTip.setCompoundDrawables(null, drawable, null, null);
@@ -652,8 +620,6 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
AssertUtils.assertNotNull(context);
EhApplication.getDownloadManager(context).removeDownloadInfoListener(this);
- setDrawerGestureBlocker(null);
-
mTip = null;
mViewTransition = null;
diff --git a/app/src/main/java/com/hippo/ehviewer/widget/EhDrawerLayout.java b/app/src/main/java/com/hippo/ehviewer/widget/EhDrawerLayout.java
index f6368d9ba..83548069e 100644
--- a/app/src/main/java/com/hippo/ehviewer/widget/EhDrawerLayout.java
+++ b/app/src/main/java/com/hippo/ehviewer/widget/EhDrawerLayout.java
@@ -25,9 +25,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.view.ViewCompat;
+import androidx.drawerlayout.widget.DrawerLayout;
import com.google.android.material.snackbar.Snackbar;
-import com.hippo.drawerlayout.DrawerLayout;
import com.hippo.yorozuya.LayoutUtils;
import java.util.ArrayList;
diff --git a/app/src/main/java/com/hippo/widget/DrawerView.java b/app/src/main/java/com/hippo/widget/DrawerView.java
index 109e40196..e9888c54d 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 MaterialCardView {
+public class DrawerView extends FrameLayout {
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 e2885d35c..b30242fbe 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -23,12 +23,18 @@
android:id="@+id/draw_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:fitsSystemWindows="true">
+ android:fitsSystemWindows="false">
-
+ android:layout_height="match_parent">
+
+
+
+
diff --git a/app/src/main/res/layout/drawer_list_rv.xml b/app/src/main/res/layout/drawer_list_rv.xml
index 96ac8b253..410da47ec 100644
--- a/app/src/main/res/layout/drawer_list_rv.xml
+++ b/app/src/main/res/layout/drawer_list_rv.xml
@@ -13,41 +13,47 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-
-
+ android:orientation="vertical"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ app:cardBackgroundColor="?android:attr/windowBackground">
-
+ android:layout_height="match_parent"
+ android:clickable="true"
+ android:focusable="true"
+ android:orientation="vertical">
-
-
-
-
-
+ android:layout_height="?attr/actionBarSize"
+ android:background="?attr/toolbarColor"
+ android:elevation="4dp"
+ android:saveEnabled="false"
+ android:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar"
+ app:popupTheme="?attr/toolbarPopupTheme" />
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file