소스 검색

Toggle drawer from Assistant screen via menu button

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 1 년 전
부모
커밋
0200e51eb7

+ 7 - 4
app/src/main/java/com/nextcloud/ui/composeActivity/ComposeActivity.kt

@@ -53,11 +53,14 @@ class ComposeActivity : DrawerActivity() {
         val titleId = intent.getIntExtra(TITLE, R.string.empty)
         menuItemId = intent.getIntExtra(MENU_ITEM, -1)
 
-        setupToolbar()
-        updateActionBarTitleAndHomeButtonByString(getString(titleId))
-
         if (menuItemId != -1) {
             setupDrawer(menuItemId!!)
+        } else {
+            setupDrawer()
+        }
+
+        setupToolbarShowOnlyMenuButtonAndTitle(getString(titleId)) {
+            toggleDrawer()
         }
 
         binding.composeView.setContent {
@@ -80,7 +83,7 @@ class ComposeActivity : DrawerActivity() {
     override fun onOptionsItemSelected(item: MenuItem): Boolean {
         return when (item.itemId) {
             android.R.id.home -> {
-                if (isDrawerOpen) closeDrawer() else openDrawer()
+                toggleDrawer()
                 true
             }
             else -> super.onOptionsItemSelected(item)

+ 10 - 0
app/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java

@@ -506,6 +506,8 @@ public abstract class DrawerActivity extends ToolbarActivity
                 intent.putExtra(FileDisplayActivity.DRAWER_MENU_ID, menuItem.getItemId());
                 startActivity(intent);
             }
+
+            closeDrawer();
         } else if (itemId == R.id.nav_favorites) {
             handleSearchEvents(new SearchEvent("", SearchRemoteOperation.SearchType.FAVORITE_SEARCH),
                                menuItem.getItemId());
@@ -681,6 +683,14 @@ public abstract class DrawerActivity extends ToolbarActivity
         return mDrawerLayout != null && mDrawerLayout.isDrawerOpen(GravityCompat.START);
     }
 
+    public void toggleDrawer() {
+        if (isDrawerOpen()) {
+            closeDrawer();
+        } else {
+            openDrawer();
+        }
+    }
+
     /**
      * closes the drawer.
      */

+ 17 - 1
app/src/main/java/com/owncloud/android/ui/activity/ToolbarActivity.java

@@ -104,6 +104,22 @@ public abstract class ToolbarActivity extends BaseActivity implements Injectable
         viewThemeUtils.material.colorMaterialTextButton(mSwitchAccountButton);
     }
 
+    public void setupToolbarShowOnlyMenuButtonAndTitle(String title, View.OnClickListener toggleDrawer) {
+        setupToolbar(false, false);
+
+        ActionBar actionBar = getSupportActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayShowTitleEnabled(false);
+        }
+
+        LinearLayout toolbar = findViewById(R.id.toolbar_linear_layout);
+        MaterialButton menuButton = findViewById(R.id.toolbar_menu_button);
+        MaterialTextView titleTextView = findViewById(R.id.toolbar_title);
+        titleTextView.setText(title);
+        toolbar.setVisibility(View.VISIBLE);
+        menuButton.setOnClickListener(toggleDrawer);
+    }
+
     public void setupToolbar() {
         setupToolbar(false, false);
     }
@@ -278,7 +294,7 @@ public abstract class ToolbarActivity extends BaseActivity implements Injectable
 
     public void clearToolbarSubtitle() {
         ActionBar actionBar = getSupportActionBar();
-        if(actionBar != null){
+        if (actionBar != null) {
             actionBar.setSubtitle(null);
         }
     }

+ 36 - 0
app/src/main/res/layout/toolbar_standard.xml

@@ -114,6 +114,42 @@
 
         </RelativeLayout>
 
+        <LinearLayout
+            android:id="@+id/toolbar_linear_layout"
+            android:visibility="gone"
+            tools:visibility="visible"
+            android:orientation="horizontal"
+            android:layout_marginStart="8dp"
+            android:layout_marginTop="8dp"
+            android:layout_marginEnd="16dp"
+            android:layout_marginBottom="4dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <com.google.android.material.button.MaterialButton
+                android:id="@+id/toolbar_menu_button"
+                style="@style/Widget.AppTheme.Button.IconButton"
+                android:layout_width="48dp"
+                android:layout_height="48dp"
+                app:cornerRadius="@dimen/button_corner_radius"
+                app:icon="@drawable/ic_menu"
+                app:iconTint="@color/black" />
+
+            <com.google.android.material.textview.MaterialTextView
+                android:id="@+id/toolbar_title"
+                android:gravity="center"
+                android:textColor="@color/black"
+                android:lines="1"
+                android:textSize="16sp"
+                android:layout_width="wrap_content"
+                android:layout_height="48dp"/>
+
+        </LinearLayout>
+
+
         <!-- home/search toolbar -->
         <com.google.android.material.card.MaterialCardView
             android:id="@+id/home_toolbar"