From 5c10cd56d4753db372fc2c90c444f99d423b95b8 Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Fri, 28 Oct 2022 18:33:24 +0530 Subject: [PATCH] Fixed: Bottom sheet cannot be dragged when expanded --- .../com/itsaky/androidide/EditorActivity.java | 15 +--- .../utils/EditorBottomSheetBehavior.java | 64 ------------------ .../androidide/views/EditorBottomSheet.kt | 8 +++ app/src/main/res/layout/activity_editor.xml | 2 +- tests/test-home/.androidide/init/model.jar | Bin 65261 -> 65261 bytes 5 files changed, 11 insertions(+), 78 deletions(-) delete mode 100644 app/src/main/java/com/itsaky/androidide/utils/EditorBottomSheetBehavior.java diff --git a/app/src/main/java/com/itsaky/androidide/EditorActivity.java b/app/src/main/java/com/itsaky/androidide/EditorActivity.java index 8268ab5d7..bc5dd4752 100755 --- a/app/src/main/java/com/itsaky/androidide/EditorActivity.java +++ b/app/src/main/java/com/itsaky/androidide/EditorActivity.java @@ -115,7 +115,6 @@ import com.itsaky.androidide.services.LogReceiver; import com.itsaky.androidide.shell.ShellServer; import com.itsaky.androidide.utils.DialogUtils; import com.itsaky.androidide.utils.EditorActivityActions; -import com.itsaky.androidide.utils.EditorBottomSheetBehavior; import com.itsaky.androidide.utils.ILogger; import com.itsaky.androidide.utils.InstallationResultHandler; import com.itsaky.androidide.utils.IntentUtils; @@ -178,7 +177,7 @@ public class EditorActivity extends IDEActivity private ProgressSheet mSearchingProgress; private AlertDialog mFindInProjectDialog; private ActivityResultLauncher mUIDesignerLauncher; - private EditorBottomSheetBehavior mEditorBottomSheet; + private BottomSheetBehavior mEditorBottomSheet; private EditorViewModel mViewModel; private final ServiceConnection mGradleServiceConnection = new ServiceConnection() { @@ -1195,10 +1194,7 @@ public class EditorActivity extends IDEActivity } private void setupBottomSheet() { - mEditorBottomSheet = - (EditorBottomSheetBehavior) - EditorBottomSheetBehavior.from(mBinding.bottomSheet); - mEditorBottomSheet.setBinding(mBinding.bottomSheet.binding.pager); + mEditorBottomSheet = BottomSheetBehavior.from(mBinding.bottomSheet); mEditorBottomSheet.addBottomSheetCallback( new BottomSheetBehavior.BottomSheetCallback() { @Override @@ -1221,13 +1217,6 @@ public class EditorActivity extends IDEActivity } }); - mBinding.bottomSheet.binding.headerContainer.setOnClickListener( - v -> { - if (mEditorBottomSheet.getState() != BottomSheetBehavior.STATE_EXPANDED) { - mEditorBottomSheet.setState(BottomSheetBehavior.STATE_EXPANDED); - } - }); - final var observer = new ViewTreeObserver.OnGlobalLayoutListener() { @Override diff --git a/app/src/main/java/com/itsaky/androidide/utils/EditorBottomSheetBehavior.java b/app/src/main/java/com/itsaky/androidide/utils/EditorBottomSheetBehavior.java deleted file mode 100644 index f0e0cb1f1..000000000 --- a/app/src/main/java/com/itsaky/androidide/utils/EditorBottomSheetBehavior.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * This file is part of AndroidIDE. - * - * AndroidIDE is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * AndroidIDE is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with AndroidIDE. If not, see . - */ - -package com.itsaky.androidide.utils; - -import android.content.Context; -import android.graphics.RectF; -import android.util.AttributeSet; -import android.view.MotionEvent; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.coordinatorlayout.widget.CoordinatorLayout; - -import com.google.android.material.bottomsheet.BottomSheetBehavior; - -public class EditorBottomSheetBehavior extends BottomSheetBehavior { - - private View pager; - - public EditorBottomSheetBehavior(Context context, AttributeSet attributeSet) { - super(context, attributeSet); - } - - public void setBinding(View pager) { - this.pager = pager; - } - - @Override - public boolean onInterceptTouchEvent( - @NonNull CoordinatorLayout parent, @NonNull V child, @NonNull MotionEvent event) { - if (pager != null) { - final var rect = getPagerRect(); - if (rect.contains(event.getX(), event.getY())) { - return false; - } - } - return super.onInterceptTouchEvent(parent, child, event); - } - - @NonNull - private RectF getPagerRect() { - final var rect = new RectF(); - rect.left = pager.getX(); - rect.top = pager.getY(); - rect.right = rect.left + pager.getWidth(); - rect.bottom = rect.top + pager.getHeight(); - return rect; - } -} diff --git a/app/src/main/java/com/itsaky/androidide/views/EditorBottomSheet.kt b/app/src/main/java/com/itsaky/androidide/views/EditorBottomSheet.kt index 162de9cd6..17d5d9e10 100644 --- a/app/src/main/java/com/itsaky/androidide/views/EditorBottomSheet.kt +++ b/app/src/main/java/com/itsaky/androidide/views/EditorBottomSheet.kt @@ -34,6 +34,7 @@ import androidx.transition.Slide import androidx.transition.TransitionManager import com.blankj.utilcode.util.KeyboardUtils import com.blankj.utilcode.util.ThreadUtils.runOnUiThread +import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.tabs.TabLayout.OnTabSelectedListener import com.google.android.material.tabs.TabLayout.Tab import com.google.android.material.tabs.TabLayoutMediator @@ -152,6 +153,13 @@ constructor( } (fragment as ShareableOutputFragment).clearOutput() } + + binding.headerContainer.setOnClickListener { + val sheet = BottomSheetBehavior.from(this) + if (sheet.state != BottomSheetBehavior.STATE_EXPANDED) { + sheet.state = BottomSheetBehavior.STATE_EXPANDED + } + } } init { diff --git a/app/src/main/res/layout/activity_editor.xml b/app/src/main/res/layout/activity_editor.xml index a85c76225..e30f7df20 100755 --- a/app/src/main/res/layout/activity_editor.xml +++ b/app/src/main/res/layout/activity_editor.xml @@ -113,7 +113,7 @@ android:layout_height="match_parent" app:behavior_hideable="false" app:behavior_peekHeight="@dimen/editor_sheet_peek_height" - app:layout_behavior="com.itsaky.androidide.utils.EditorBottomSheetBehavior" /> + app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior" />