Эх сурвалжийг харах

Merge pull request #12847 from nextcloud/Feature/Add-collabsable-icon-in-uploads-tab

Add visual hint to collapsible headers in uploads tab
Jonas Mayer 1 жил өмнө
parent
commit
5922cd7313

+ 6 - 1
app/src/main/java/com/owncloud/android/ui/adapter/UploadListAdapter.java

@@ -102,7 +102,12 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
                           group.getGroupName(), group.getGroupItemCount()));
                           group.getGroupName(), group.getGroupItemCount()));
         viewThemeUtils.platform.colorPrimaryTextViewElement(headerViewHolder.binding.uploadListTitle);
         viewThemeUtils.platform.colorPrimaryTextViewElement(headerViewHolder.binding.uploadListTitle);
 
 
-        headerViewHolder.binding.uploadListTitle.setOnClickListener(v -> toggleSectionExpanded(section));
+        headerViewHolder.binding.uploadListTitle.setOnClickListener(v -> {
+            toggleSectionExpanded(section);
+            headerViewHolder.binding.uploadListState.setImageResource(isSectionExpanded(section) ?
+                                                                          R.drawable.ic_expand_less :
+                                                                          R.drawable.ic_expand_more);
+        });
 
 
         switch (group.type) {
         switch (group.type) {
             case CURRENT, FINISHED -> headerViewHolder.binding.uploadListAction.setImageResource(R.drawable.ic_close);
             case CURRENT, FINISHED -> headerViewHolder.binding.uploadListAction.setImageResource(R.drawable.ic_close);

+ 17 - 0
app/src/main/res/drawable/ic_expand_less.xml

@@ -0,0 +1,17 @@
+<!--
+  ~ Nextcloud - Android Client
+  ~
+  ~ SPDX-FileCopyrightText: 2024 Jonas Mayer
+  ~ SPDX-FileCopyrightText: 2024 Nextcloud GmbH
+  ~ SPDX-FileCopyrightText: 2018-2024 Google LLC
+  ~ SPDX-License-Identifier: Apache-2.0
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:fillColor="@color/foreground_highlight"
+      android:pathData="M12,8l-6,6 1.41,1.41L12,10.83l4.59,4.58L18,14l-6,-6z"/>
+</vector>

+ 3 - 2
app/src/main/res/drawable/ic_expand_more.xml

@@ -1,16 +1,17 @@
 <!--
 <!--
   ~ Nextcloud - Android Client
   ~ Nextcloud - Android Client
   ~
   ~
+  ~ SPDX-FileCopyrightText: 2024 Jonas Mayer
+  ~ SPDX-FileCopyrightText: 2024 Nextcloud GmbH
   ~ SPDX-FileCopyrightText: 2018-2024 Google LLC
   ~ SPDX-FileCopyrightText: 2018-2024 Google LLC
   ~ SPDX-License-Identifier: Apache-2.0
   ~ SPDX-License-Identifier: Apache-2.0
 -->
 -->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
     android:width="24dp"
     android:width="24dp"
     android:height="24dp"
     android:height="24dp"
-    android:tint="#FF000000"
     android:viewportWidth="960"
     android:viewportWidth="960"
     android:viewportHeight="960">
     android:viewportHeight="960">
     <path
     <path
-        android:fillColor="@android:color/white"
+        android:fillColor="@color/foreground_highlight"
         android:pathData="M480,616L240,376L296,320L480,504L664,320L720,376L480,616Z" />
         android:pathData="M480,616L240,376L296,320L480,504L664,320L720,376L480,616Z" />
 </vector>
 </vector>

+ 24 - 2
app/src/main/res/layout/upload_list_header.xml

@@ -2,6 +2,7 @@
 <!--
 <!--
   ~ Nextcloud - Android Client
   ~ Nextcloud - Android Client
   ~
   ~
+  ~ SPDX-FileCopyrightText: 2024 Jonas Mayer
   ~ SPDX-FileCopyrightText: 2018 Andy Scherzinger <info@andy-scherzinger.de>
   ~ SPDX-FileCopyrightText: 2018 Andy Scherzinger <info@andy-scherzinger.de>
   ~ SPDX-FileCopyrightText: 2018 Tobias Kaminsky <tobias@kaminsky.me>
   ~ SPDX-FileCopyrightText: 2018 Tobias Kaminsky <tobias@kaminsky.me>
   ~ SPDX-FileCopyrightText: 2018 Nextcloud
   ~ SPDX-FileCopyrightText: 2018 Nextcloud
@@ -14,15 +15,36 @@
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
     android:orientation="horizontal">
     android:orientation="horizontal">
 
 
+    <FrameLayout
+        android:id="@+id/upload_list_state_layout"
+        android:layout_width="@dimen/upload_list_item_frame_layout_width"
+        android:layout_height="wrap_content"
+        android:paddingBottom="@dimen/standard_half_padding"
+        android:paddingTop="@dimen/standard_half_padding"
+        android:focusable="false"
+        android:layout_alignParentStart="true"
+        android:focusableInTouchMode="false">
+
+        <ImageView
+            android:id="@+id/upload_list_state"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:contentDescription="@string/upload_list_expand_header"
+            android:src="@drawable/ic_expand_less" />
+    </FrameLayout>
+
     <TextView
     <TextView
         android:id="@+id/upload_list_title"
         android:id="@+id/upload_list_title"
         style="@style/TextAppearance.AppCompat.Body2"
         style="@style/TextAppearance.AppCompat.Body2"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_alignParentStart="true"
+        android:layout_toEndOf="@id/upload_list_state_layout"
         android:layout_toStartOf="@id/upload_list_action"
         android:layout_toStartOf="@id/upload_list_action"
         android:ellipsize="middle"
         android:ellipsize="middle"
-        android:padding="@dimen/standard_half_padding"
+        android:gravity="center_vertical"
+        android:paddingTop="@dimen/standard_half_padding"
+        android:paddingBottom="@dimen/standard_half_padding"
         android:textColor="@color/color_accent"
         android:textColor="@color/color_accent"
         tools:text="Current (2)" />
         tools:text="Current (2)" />
 
 

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -899,6 +899,7 @@
     <string name="upload_quota_exceeded">Storage quota exceeded</string>
     <string name="upload_quota_exceeded">Storage quota exceeded</string>
     <string name="host_not_available">Server not available</string>
     <string name="host_not_available">Server not available</string>
     <string name="delete_entries">Delete entries</string>
     <string name="delete_entries">Delete entries</string>
+    <string name="upload_list_expand_header">Toggle expansion of header</string>
     <string name="upload_action_failed_retry">Retry failed uploads</string>
     <string name="upload_action_failed_retry">Retry failed uploads</string>
     <string name="upload_action_failed_clear">Clear failed uploads</string>
     <string name="upload_action_failed_clear">Clear failed uploads</string>
     <string name="upload_action_global_upload_pause">Pause all uploads</string>
     <string name="upload_action_global_upload_pause">Pause all uploads</string>

+ 1 - 1
scripts/analysis/lint-results.txt

@@ -1,2 +1,2 @@
 DO NOT TOUCH; GENERATED BY DRONE
 DO NOT TOUCH; GENERATED BY DRONE
-      <span class="mdl-layout-title">Lint Report: 3 errors and 71 warnings</span>
+      <span class="mdl-layout-title">Lint Report: 3 errors and 70 warnings</span>