Browse Source

Merge pull request #6068 from nextcloud/feature/ui-revamp/replace-progress-by-float

New design (UI) - Replaced Toolbar Loader by SwipeRefreshLayout
Tobias Kaminsky 5 years ago
parent
commit
8edbd8349e

+ 0 - 1
src/main/java/com/owncloud/android/ui/activity/EditorWebView.java

@@ -53,7 +53,6 @@ public abstract class EditorWebView extends ExternalSiteWebView {
     protected Snackbar loadingSnackbar;
     protected Snackbar loadingSnackbar;
 
 
     protected String fileName;
     protected String fileName;
-    protected String mimeType;
 
 
     @BindView(R.id.progressBar2)
     @BindView(R.id.progressBar2)
     ProgressBar progressBar;
     ProgressBar progressBar;

+ 5 - 9
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -329,9 +329,6 @@ public class FileDisplayActivity extends FileActivity
             syncAndUpdateFolder(true);
             syncAndUpdateFolder(true);
         }
         }
 
 
-        showProgressBar(mSyncInProgress);
-        // always AFTER setContentView(...) in onCreate(); to work around bug in its implementation
-
         upgradeNotificationForInstantUpload();
         upgradeNotificationForInstantUpload();
         checkOutdatedServer();
         checkOutdatedServer();
     }
     }
@@ -1199,6 +1196,8 @@ public class FileDisplayActivity extends FileActivity
     protected void onResume() {
     protected void onResume() {
         Log_OC.v(TAG, "onResume() start");
         Log_OC.v(TAG, "onResume() start");
         super.onResume();
         super.onResume();
+        // Instead of onPostCreate, starting the loading in onResume for children fragments
+        getListOfFilesFragment().setLoading(mSyncInProgress);
         syncAndUpdateFolder(false);
         syncAndUpdateFolder(false);
 
 
         OCFile startFile = null;
         OCFile startFile = null;
@@ -1389,8 +1388,7 @@ public class FileDisplayActivity extends FileActivity
                         DataHolderUtil.getInstance().delete(intent.getStringExtra(FileSyncAdapter.EXTRA_RESULT));
                         DataHolderUtil.getInstance().delete(intent.getStringExtra(FileSyncAdapter.EXTRA_RESULT));
 
 
                         Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
                         Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
-                        showProgressBar(mSyncInProgress);
-
+                        getListOfFilesFragment().setLoading(mSyncInProgress);
                         setBackgroundText();
                         setBackgroundText();
                     }
                     }
                 }
                 }
@@ -1507,9 +1505,7 @@ public class FileDisplayActivity extends FileActivity
                         // TODO what about other kind of previews?
                         // TODO what about other kind of previews?
                     }
                     }
                 }
                 }
-
-                showProgressBar(false);
-
+                getListOfFilesFragment().setLoading(false);
             } finally {
             } finally {
                 if (intent != null) {
                 if (intent != null) {
                     removeStickyBroadcast(intent);
                     removeStickyBroadcast(intent);
@@ -2222,7 +2218,7 @@ public class FileDisplayActivity extends FileActivity
                                         null
                                         null
                                 );
                                 );
 
 
-                                showProgressBar(true);
+                                getListOfFilesFragment().setLoading(true);
 
 
                                 setBackgroundText();
                                 setBackgroundText();
 
 

+ 4 - 5
src/main/java/com/owncloud/android/ui/activity/FolderPickerActivity.java

@@ -28,7 +28,6 @@ import android.content.IntentFilter;
 import android.content.res.ColorStateList;
 import android.content.res.ColorStateList;
 import android.content.res.Resources.NotFoundException;
 import android.content.res.Resources.NotFoundException;
 import android.graphics.PorterDuff;
 import android.graphics.PorterDuff;
-import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.os.Parcelable;
 import android.os.Parcelable;
 import android.util.Log;
 import android.util.Log;
@@ -69,7 +68,6 @@ import javax.inject.Inject;
 
 
 import androidx.appcompat.app.ActionBar;
 import androidx.appcompat.app.ActionBar;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
 import androidx.fragment.app.FragmentTransaction;
 
 
 import static com.owncloud.android.utils.DisplayUtils.openSortingOrderDialogFragment;
 import static com.owncloud.android.utils.DisplayUtils.openSortingOrderDialogFragment;
@@ -154,7 +152,6 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
             ThemeUtils.setColoredTitle(getSupportActionBar(), caption, this);
             ThemeUtils.setColoredTitle(getSupportActionBar(), caption, this);
         }
         }
 
 
-        showProgressBar(mSyncInProgress);
         // always AFTER setContentView(...) ; to work around bug in its implementation
         // always AFTER setContentView(...) ; to work around bug in its implementation
 
 
         // sets message for empty list of folders
         // sets message for empty list of folders
@@ -265,7 +262,7 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
                                                                             getApplicationContext());
                                                                             getApplicationContext());
 
 
         refreshFolderOperation.execute(getAccount(), this, null, null);
         refreshFolderOperation.execute(getAccount(), this, null, null);
-        showProgressBar(true);
+        getListOfFilesFragment().setLoading(true);
         setBackgroundText();
         setBackgroundText();
     }
     }
 
 
@@ -273,6 +270,8 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
     protected void onResume() {
     protected void onResume() {
         super.onResume();
         super.onResume();
         Log_OC.e(TAG, "onResume() start");
         Log_OC.e(TAG, "onResume() start");
+        getListOfFilesFragment().setLoading(mSyncInProgress);
+
 
 
         // refresh list of files
         // refresh list of files
         refreshListOfFilesFragment(false);
         refreshListOfFilesFragment(false);
@@ -544,7 +543,7 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
                     DataHolderUtil.getInstance().delete(intent.getStringExtra(FileSyncAdapter.EXTRA_RESULT));
                     DataHolderUtil.getInstance().delete(intent.getStringExtra(FileSyncAdapter.EXTRA_RESULT));
                     Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
                     Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
 
 
-                    showProgressBar(mSyncInProgress);
+                    getListOfFilesFragment().setLoading(mSyncInProgress);
 
 
                     setBackgroundText();
                     setBackgroundText();
                 }
                 }

+ 0 - 28
src/main/java/com/owncloud/android/ui/activity/ToolbarActivity.java

@@ -30,7 +30,6 @@ import android.view.View;
 import android.widget.FrameLayout;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.LinearLayout;
-import android.widget.ProgressBar;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
 import com.owncloud.android.R;
 import com.owncloud.android.R;
@@ -46,7 +45,6 @@ import androidx.appcompat.widget.Toolbar;
  * Base class providing toolbar registration functionality, see {@link #setupToolbar()}.
  * Base class providing toolbar registration functionality, see {@link #setupToolbar()}.
  */
  */
 public abstract class ToolbarActivity extends BaseActivity {
 public abstract class ToolbarActivity extends BaseActivity {
-    private ProgressBar mProgressBar;
     private ImageView mPreviewImage;
     private ImageView mPreviewImage;
     private FrameLayout mPreviewImageContainer;
     private FrameLayout mPreviewImageContainer;
     private LinearLayout mInfoBox;
     private LinearLayout mInfoBox;
@@ -68,9 +66,6 @@ public abstract class ToolbarActivity extends BaseActivity {
         Toolbar toolbar = findViewById(R.id.toolbar);
         Toolbar toolbar = findViewById(R.id.toolbar);
         setSupportActionBar(toolbar);
         setSupportActionBar(toolbar);
 
 
-        mProgressBar = findViewById(R.id.toolbar_progressBar);
-        setProgressBarBackgroundColor();
-
         mInfoBox = findViewById(R.id.info_box);
         mInfoBox = findViewById(R.id.info_box);
         mInfoBoxMessage = findViewById(R.id.info_box_message);
         mInfoBoxMessage = findViewById(R.id.info_box_message);
 
 
@@ -160,17 +155,6 @@ public abstract class ToolbarActivity extends BaseActivity {
         mInfoBox.setVisibility(View.GONE);
         mInfoBox.setVisibility(View.GONE);
     }
     }
 
 
-    /**
-     * Change the visibility for the toolbar's progress bar.
-     *
-     * @param isVisible visibility of the progress bar
-     */
-    public void showProgressBar(boolean isVisible) {
-        if (mProgressBar != null) {
-            mProgressBar.setVisibility(isVisible? View.VISIBLE : View.GONE);
-        }
-    }
-
     /**
     /**
      * Change the visibility for the toolbar's preview image.
      * Change the visibility for the toolbar's preview image.
      *
      *
@@ -210,16 +194,4 @@ public abstract class ToolbarActivity extends BaseActivity {
     public ImageView getPreviewImageView() {
     public ImageView getPreviewImageView() {
             return mPreviewImage;
             return mPreviewImage;
     }
     }
-
-    /**
-     * Set the background to to progress bar of the toolbar. The resource should refer to
-     * a Drawable object or 0 to remove the background.#
-     *
-     */
-    private void setProgressBarBackgroundColor() {
-        if (mProgressBar != null) {
-            mProgressBar.setBackgroundColor(ThemeUtils.primaryAppbarColor(this));
-            mProgressBar.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryColor(this), PorterDuff.Mode.SRC_IN);
-        }
-    }
 }
 }

+ 1 - 2
src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

@@ -56,7 +56,6 @@ import com.elyeproj.loaderviewlibrary.LoaderImageView;
 import com.nextcloud.client.account.User;
 import com.nextcloud.client.account.User;
 import com.nextcloud.client.account.UserAccountManager;
 import com.nextcloud.client.account.UserAccountManager;
 import com.nextcloud.client.preferences.AppPreferences;
 import com.nextcloud.client.preferences.AppPreferences;
-import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.datamodel.OCFile;
@@ -741,7 +740,7 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
 
 
         try {
         try {
             final Point screenSize = getScreenSize(thumbnailShimmer.getContext());
             final Point screenSize = getScreenSize(thumbnailShimmer.getContext());
-            final int marginLeftAndRight = Math.round(targetLayoutParams.leftMargin + targetLayoutParams.rightMargin);
+            final int marginLeftAndRight = targetLayoutParams.leftMargin + targetLayoutParams.rightMargin;
             final int size = Math.round(screenSize.x / gridColumns - marginLeftAndRight);
             final int size = Math.round(screenSize.x / gridColumns - marginLeftAndRight);
 
 
             FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(size, size);
             FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(size, size);

+ 2 - 6
src/main/java/com/owncloud/android/ui/asynctasks/PhotoSearchTask.java

@@ -28,7 +28,6 @@ import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.files.SearchRemoteOperation;
 import com.owncloud.android.lib.resources.files.SearchRemoteOperation;
-import com.owncloud.android.ui.activity.ToolbarActivity;
 import com.owncloud.android.ui.adapter.OCFileListAdapter;
 import com.owncloud.android.ui.adapter.OCFileListAdapter;
 import com.owncloud.android.ui.fragment.ExtendedListFragment;
 import com.owncloud.android.ui.fragment.ExtendedListFragment;
 import com.owncloud.android.ui.fragment.PhotoFragment;
 import com.owncloud.android.ui.fragment.PhotoFragment;
@@ -98,6 +97,7 @@ public class PhotoSearchTask extends AsyncTask<Void, Void, RemoteOperationResult
     @Override
     @Override
     protected void onPostExecute(RemoteOperationResult result) {
     protected void onPostExecute(RemoteOperationResult result) {
         if (photoFragmentWeakReference.get() != null) {
         if (photoFragmentWeakReference.get() != null) {
+            Boolean loadingStatus = false;
             PhotoFragment photoFragment = photoFragmentWeakReference.get();
             PhotoFragment photoFragment = photoFragmentWeakReference.get();
 
 
             if (result.isSuccess() && result.getData() != null && !isCancelled()) {
             if (result.isSuccess() && result.getData() != null && !isCancelled()) {
@@ -116,11 +116,7 @@ public class PhotoSearchTask extends AsyncTask<Void, Void, RemoteOperationResult
                 }
                 }
             }
             }
 
 
-            final ToolbarActivity fileDisplayActivity = (ToolbarActivity) photoFragment.getActivity();
-
-            if (fileDisplayActivity != null) {
-                fileDisplayActivity.showProgressBar(false);
-            }
+            photoFragment.setLoading(false);
 
 
             if (!result.isSuccess() && !isCancelled()) {
             if (!result.isSuccess() && !isCancelled()) {
                 photoFragment.setEmptyListMessage(ExtendedListFragment.SearchType.PHOTO_SEARCH);
                 photoFragment.setEmptyListMessage(ExtendedListFragment.SearchType.PHOTO_SEARCH);

+ 4 - 5
src/main/java/com/owncloud/android/ui/fragment/ExtendedListFragment.java

@@ -178,6 +178,10 @@ public class ExtendedListFragment extends Fragment implements
         return mFabMain;
         return mFabMain;
     }
     }
 
 
+    public void setLoading(boolean enabled) {
+        mRefreshListLayout.setRefreshing(enabled);
+    }
+
     public void switchToGridView() {
     public void switchToGridView() {
         if (!isGridEnabled()) {
         if (!isGridEnabled()) {
             getRecyclerView().setLayoutManager(new GridLayoutManager(getContext(), getColumnsCount()));
             getRecyclerView().setLayoutManager(new GridLayoutManager(getContext(), getColumnsCount()));
@@ -549,9 +553,6 @@ public class ExtendedListFragment extends Fragment implements
                 fileDisplayActivity.setDrawerIndicatorEnabled(fileDisplayActivity.isDrawerIndicatorAvailable());
                 fileDisplayActivity.setDrawerIndicatorEnabled(fileDisplayActivity.isDrawerIndicatorAvailable());
             }
             }
         }
         }
-
-        mRefreshListLayout.setRefreshing(false);
-
         if (mOnRefreshListener != null) {
         if (mOnRefreshListener != null) {
             mOnRefreshListener.onRefresh();
             mOnRefreshListener.onRefresh();
         }
         }
@@ -794,8 +795,6 @@ public class ExtendedListFragment extends Fragment implements
 
 
     @Override
     @Override
     public void onRefresh(boolean ignoreETag) {
     public void onRefresh(boolean ignoreETag) {
-        mRefreshListLayout.setRefreshing(false);
-
         if (mOnRefreshListener != null) {
         if (mOnRefreshListener != null) {
             mOnRefreshListener.onRefresh();
             mOnRefreshListener.onRefresh();
         }
         }

+ 0 - 2
src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java

@@ -241,7 +241,6 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
     private void activatePreviewImage() {
     private void activatePreviewImage() {
         if (activity != null) {
         if (activity != null) {
             activity.setPreviewImageVisibility(View.VISIBLE);
             activity.setPreviewImageVisibility(View.VISIBLE);
-            activity.showProgressBar(false);
             ThemeUtils.setStatusBarColor(activity, activity.getResources().getColor(R.color.background_color_inverse));
             ThemeUtils.setStatusBarColor(activity, activity.getResources().getColor(R.color.background_color_inverse));
             if (activity.getSupportActionBar() != null) {
             if (activity.getSupportActionBar() != null) {
                 activity.getSupportActionBar().setTitle(null);
                 activity.getSupportActionBar().setTitle(null);
@@ -378,7 +377,6 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
         if(activity != null) {
         if(activity != null) {
             activity.setupToolbar();
             activity.setupToolbar();
             activity.setPreviewImageVisibility(View.GONE);
             activity.setPreviewImageVisibility(View.GONE);
-            activity.showProgressBar(true);
         }
         }
 
 
         super.onStop();
         super.onStop();

+ 1 - 2
src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -28,7 +28,6 @@ import android.accounts.Account;
 import android.app.Activity;
 import android.app.Activity;
 import android.content.Context;
 import android.content.Context;
 import android.content.Intent;
 import android.content.Intent;
-import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
 import android.os.AsyncTask;
 import android.os.Build;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Bundle;
@@ -1626,7 +1625,7 @@ public class OCFileListFragment extends ExtendedListFragment implements
                                 @Override
                                 @Override
                                 public void run() {
                                 public void run() {
                                     if (fileDisplayActivity != null) {
                                     if (fileDisplayActivity != null) {
-                                        fileDisplayActivity.showProgressBar(false);
+                                        setLoading(false);
                                     }
                                     }
                                 }
                                 }
                             });
                             });

+ 0 - 10
src/main/res/layout/toolbar_standard.xml

@@ -56,16 +56,6 @@
             android:layout_height="?attr/actionBarSize"
             android:layout_height="?attr/actionBarSize"
             app:popupTheme="@style/Theme.AppCompat.DayNight.NoActionBar" />
             app:popupTheme="@style/Theme.AppCompat.DayNight.NoActionBar" />
 
 
-        <ProgressBar
-            android:id="@+id/toolbar_progressBar"
-            style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_below="@id/toolbar"
-            android:layout_marginTop="-7dp"
-            android:layout_marginBottom="-7dp"
-            android:indeterminate="true"
-            android:visibility="gone" />
     </RelativeLayout>
     </RelativeLayout>
 
 
     <include layout="@layout/info_box" />
     <include layout="@layout/info_box" />