Browse Source

Fixed bug. It is not possible to refresh folder when it is empty

jabarros 10 years ago
parent
commit
5335975717

+ 26 - 6
res/layout/list_fragment.xml

@@ -34,13 +34,33 @@
         
     </android.support.v4.widget.SwipeRefreshLayout>
 
-    <TextView
-    	android:id="@+id/empty_list_view"
+    <android.support.v4.widget.SwipeRefreshLayout
+        android:id="@+id/swipe_refresh_files_emptyView"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:gravity="center_vertical|center_horizontal"
-        android:text="@string/empty"
-        android:visibility="gone"
-	/>
+        android:visibility="gone" >
+
+        <ScrollView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" >
 
+            <LinearLayout
+		        android:id="@+id/linearLayout1"
+		        android:layout_width="match_parent"
+		        android:layout_height="wrap_content"
+		        android:orientation="vertical"
+		        android:layout_gravity="center"
+		        android:gravity="center">
+
+	            <TextView
+			        android:id="@+id/empty_list_view"
+			        android:layout_width="match_parent"
+			        android:layout_height="wrap_content"
+			        android:gravity="center_vertical|center_horizontal"
+			        android:text="@string/empty"
+			        android:visibility="visible" />
+
+            </LinearLayout>
+        </ScrollView>
+    </android.support.v4.widget.SwipeRefreshLayout>
 </FrameLayout>

+ 18 - 7
src/com/owncloud/android/ui/fragment/ExtendedListFragment.java

@@ -46,6 +46,7 @@ public class ExtendedListFragment extends SherlockFragment implements OnItemClic
     protected ExtendedListView mList;
     
     private SwipeRefreshLayout mRefreshLayout;
+    private SwipeRefreshLayout mRefreshEmptyLayout;
     private TextView mEmptyListMessage;
     
     public void setListAdapter(ListAdapter listAdapter) {
@@ -67,7 +68,7 @@ public class ExtendedListFragment extends SherlockFragment implements OnItemClic
         mEmptyListMessage = (TextView) v.findViewById(R.id.empty_list_view);
         mList = (ExtendedListView)(v.findViewById(R.id.list_root));
         mList.setOnItemClickListener(this);
-        mList.setEmptyView(mEmptyListMessage); // looks like it's not a cool idea
+
         mList.setDivider(getResources().getDrawable(R.drawable.uploader_list_separator));
         mList.setDividerHeight(1);
 
@@ -78,12 +79,13 @@ public class ExtendedListFragment extends SherlockFragment implements OnItemClic
         
         // Pull down refresh
         mRefreshLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_refresh_files);
-        // Colors in animations: background
-        mRefreshLayout.setColorScheme(R.color.background_color, R.color.background_color, 
-                 R.color.background_color, R.color.background_color);
+        mRefreshEmptyLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_refresh_files_emptyView);
         
-        mRefreshLayout.setOnRefreshListener(this);
+        onCreateSwipeToRefresh(mRefreshLayout);
+        onCreateSwipeToRefresh(mRefreshEmptyLayout);
         
+        mList.setEmptyView(mRefreshEmptyLayout);
+
         return v;
     }
 
@@ -131,8 +133,9 @@ public class ExtendedListFragment extends SherlockFragment implements OnItemClic
 
     @Override
     public void onRefresh() {
-        // to be @overriden  
+        // to be @overriden
         mRefreshLayout.setRefreshing(false);
+        mRefreshEmptyLayout.setRefreshing(false);
     }
 
     /**
@@ -181,5 +184,13 @@ public class ExtendedListFragment extends SherlockFragment implements OnItemClic
     public String getEmptyViewText() {
         return (mEmptyListMessage != null) ? mEmptyListMessage.getText().toString() : "";
     }
-    
+
+    private void onCreateSwipeToRefresh(SwipeRefreshLayout refreshLayout) {
+        // Colors in animations: background
+        refreshLayout.setColorScheme(R.color.background_color, R.color.background_color, R.color.background_color,
+                R.color.background_color);
+
+        refreshLayout.setOnRefreshListener(this);
+    }
+
 }