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

proper loading animation for notification list

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 4 жил өмнө
parent
commit
a5b2d02c4a

+ 15 - 3
src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java

@@ -118,11 +118,12 @@ public class NotificationsActivity extends DrawerActivity implements Notificatio
 
         binding.swipeContainingList.setOnRefreshListener(() -> {
             setLoadingMessage();
+            binding.swipeContainingList.setRefreshing(true);
             fetchAndSetData();
         });
 
         binding.swipeContainingEmpty.setOnRefreshListener(() -> {
-            setLoadingMessage();
+            setLoadingMessageEmpty();
             fetchAndSetData();
         });
 
@@ -190,7 +191,7 @@ public class NotificationsActivity extends DrawerActivity implements Notificatio
      */
     private void setupContent() {
         binding.emptyList.emptyListIcon.setImageResource(R.drawable.ic_notification);
-        setLoadingMessage();
+        setLoadingMessageEmpty();
 
         LinearLayoutManager layoutManager = new LinearLayoutManager(this);
 
@@ -289,13 +290,24 @@ public class NotificationsActivity extends DrawerActivity implements Notificatio
         binding.swipeContainingEmpty.setVisibility(View.GONE);
     }
 
+    @VisibleForTesting
+    public void setLoadingMessageEmpty() {
+        binding.swipeContainingList.setVisibility(View.GONE);
+        binding.emptyList.emptyListView.setVisibility(View.GONE);
+        binding.loadingContent.setVisibility(View.VISIBLE);
+    }
+
     @VisibleForTesting
     public void setEmptyContent(String headline, String message) {
+        binding.swipeContainingList.setVisibility(View.GONE);
+        binding.loadingContent.setVisibility(View.GONE);
+        binding.swipeContainingEmpty.setVisibility(View.VISIBLE);
+        binding.emptyList.emptyListView.setVisibility(View.VISIBLE);
+
         binding.emptyList.emptyListViewHeadline.setText(headline);
         binding.emptyList.emptyListViewText.setText(message);
         binding.emptyList.emptyListIcon.setImageResource(R.drawable.ic_notification);
 
-        binding.loadingContent.setVisibility(View.GONE);
         binding.emptyList.emptyListViewText.setVisibility(View.VISIBLE);
         binding.emptyList.emptyListIcon.setVisibility(View.VISIBLE);
     }

+ 17 - 15
src/main/res/layout/notifications_layout.xml

@@ -19,13 +19,14 @@
   License along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
 <androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/drawer_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:clickable="true"
-    android:fitsSystemWindows="true">
+    android:fitsSystemWindows="true"
+    android:focusable="true">
 
     <androidx.coordinatorlayout.widget.CoordinatorLayout
         android:layout_width="match_parent"
@@ -39,19 +40,6 @@
             android:layout_below="@id/appbar"
             app:layout_behavior="@string/appbar_scrolling_view_behavior">
 
-            <LinearLayout
-                android:id="@+id/loading_content"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="vertical">
-
-                <include layout="@layout/activity_list_item_shimmer" />
-                <include layout="@layout/activity_list_item_shimmer" />
-                <include layout="@layout/activity_list_item_shimmer" />
-                <include layout="@layout/activity_list_item_shimmer" />
-
-            </LinearLayout>
-
             <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
                 android:id="@+id/swipe_containing_list"
                 android:layout_width="match_parent"
@@ -82,6 +70,20 @@
                 android:footerDividersEnabled="false"
                 android:visibility="visible">
 
+                <LinearLayout
+                    android:id="@+id/loading_content"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:visibility="visible">
+
+                    <include layout="@layout/activity_list_item_shimmer" />
+                    <include layout="@layout/activity_list_item_shimmer" />
+                    <include layout="@layout/activity_list_item_shimmer" />
+                    <include layout="@layout/activity_list_item_shimmer" />
+
+                </LinearLayout>
+
                 <include
                     android:id="@+id/empty_list"
                     layout="@layout/empty_list"/>