Bladeren bron

activities: Correctly handle the nextPageUrl parameter.

This should be managed by the activity and not the data repository API since the latter has no track of state.
ardevd 7 jaren geleden
bovenliggende
commit
5998438f12

+ 6 - 1
src/main/java/com/owncloud/android/ui/activities/ActivitiesActivity.java

@@ -221,8 +221,13 @@ public class ActivitiesActivity extends FileActivity implements ActivityListInte
     }
 
     @Override
-    public void showActivites(List<Object> activities, OwnCloudClient client, boolean clear) {
+    public void showActivites(List<Object> activities, OwnCloudClient client, String nextPageUrl) {
+        boolean clear = false;
+        if (this.nextPageUrl == null) {
+            clear = true;
+        }
         adapter.setActivityItems(activities, client, clear);
+        this.nextPageUrl = nextPageUrl;
         // Hide the recylerView if list is empty
         if (activities.size() == 0) {
             recyclerView.setVisibility(View.INVISIBLE);

+ 1 - 1
src/main/java/com/owncloud/android/ui/activities/ActivitiesContract.java

@@ -9,7 +9,7 @@ import java.util.List;
 public interface ActivitiesContract {
 
     interface View {
-        void showActivites(List<Object> activities, OwnCloudClient client, boolean clear);
+        void showActivites(List<Object> activities, OwnCloudClient client, String nextPageUrl);
         void showActivitiesLoadError(String error);
         void showActivityDetailUI(OCFile ocFile);
         void showActivityDetailUIIsNull();

+ 3 - 2
src/main/java/com/owncloud/android/ui/activities/ActivitiesPresenter.java

@@ -31,9 +31,10 @@ public class ActivitiesPresenter implements ActivitiesContract.ActionListener {
         mActivitiesView.setProgressIndicatorState(true);
         mActivitiesRepository.getActivities(pageUrl, new ActivitiesRepository.LoadActivitiesCallback() {
             @Override
-            public void onActivitiesLoaded(List<Object> activities, OwnCloudClient client, boolean clear) {
+            public void onActivitiesLoaded(List<Object> activities, OwnCloudClient client,
+                                          String nextPageUrl) {
                 mActivitiesView.setProgressIndicatorState(false);
-                mActivitiesView.showActivites(activities, client, clear);
+                mActivitiesView.showActivites(activities, client, nextPageUrl);
             }
 
             @Override

+ 2 - 1
src/main/java/com/owncloud/android/ui/activities/data/activities/ActivitiesRepository.java

@@ -11,7 +11,8 @@ import java.util.List;
  */
 public interface ActivitiesRepository {
     interface LoadActivitiesCallback {
-        void onActivitiesLoaded(List<Object> activities, OwnCloudClient client, boolean clear);
+        void onActivitiesLoaded(List<Object> activities, OwnCloudClient client,
+                                String nextPageUrl);
         void onActivitiesLoadedError(String error);
     }
 

+ 1 - 1
src/main/java/com/owncloud/android/ui/activities/data/activities/ActivitiesServiceApi.java

@@ -13,7 +13,7 @@ import java.util.List;
 public interface ActivitiesServiceApi {
 
     interface ActivitiesServiceCallback<T> {
-        void onLoaded (T activities, OwnCloudClient client, boolean clear);
+        void onLoaded (T activities, OwnCloudClient client, String nextPageUrl);
         void onError (String error);
     }
 

+ 1 - 1
src/main/java/com/owncloud/android/ui/activities/data/activities/ActivitiesServiceApiImpl.java

@@ -103,7 +103,7 @@ public class ActivitiesServiceApiImpl implements ActivitiesServiceApi {
         protected void onPostExecute(Boolean success) {
             super.onPostExecute(success);
             if (success) {
-                mCallback.onLoaded(mActivities, ownCloudClient, mPageUrl == null);
+                mCallback.onLoaded(mActivities, ownCloudClient,  mPageUrl);
             } else {
                 mCallback.onError(errorMessage);
             }

+ 3 - 2
src/main/java/com/owncloud/android/ui/activities/data/activities/RemoteActivitiesRepository.java

@@ -19,8 +19,9 @@ public class RemoteActivitiesRepository implements ActivitiesRepository {
     public void getActivities(String pageUrl, @NonNull LoadActivitiesCallback callback) {
         mActivitiesServiceApi.getAllActivities(pageUrl, new ActivitiesServiceApi.ActivitiesServiceCallback<List<Object>>() {
             @Override
-            public void onLoaded(List<Object> activities, OwnCloudClient client, boolean clear) {
-                callback.onActivitiesLoaded(activities, client, clear);
+            public void onLoaded(List<Object> activities, OwnCloudClient client,
+                                 String nextPageUrl) {
+                callback.onActivitiesLoaded(activities, client, nextPageUrl);
             }
 
             @Override