Browse Source

Move grid columns to AppPreferences interface

Signed-off-by: Chris Narkiewicz <hello@ezaquarii.com>
Chris Narkiewicz 6 năm trước cách đây
mục cha
commit
087ed97e1a

+ 3 - 0
src/main/java/com/nextcloud/client/preferences/AppPreferences.java

@@ -30,5 +30,8 @@ public interface AppPreferences {
     boolean isShowMediaScanNotifications();
     void setShowMediaScanNotifications(boolean showMediaScanNotification);
 
+    float getGridColumns();
+    void setGridColumns(float gridColumns);
+
     void removeLegacyPreferences();
 }

+ 6 - 6
src/main/java/com/nextcloud/client/preferences/PreferenceManager.java

@@ -508,21 +508,21 @@ public final class PreferenceManager implements AppPreferences {
     /**
      * Gets the grid columns which the user has set last.
      *
-     * @param context Caller {@link Context}, used to access to shared preferences manager.
      * @return grid columns     grid columns
      */
-    public static float getGridColumns(Context context) {
-        return getDefaultSharedPreferences(context).getFloat(AUTO_PREF__GRID_COLUMNS, 4.0f);
+    @Override
+    public float getGridColumns() {
+        return preferences.getFloat(AUTO_PREF__GRID_COLUMNS, 4.0f);
     }
 
     /**
      * Saves the grid columns which the user has set last.
      *
-     * @param context   Caller {@link Context}, used to access to shared preferences manager.
      * @param gridColumns the uploader behavior
      */
-    public static void setGridColumns(Context context, float gridColumns) {
-        saveFloatPreference(context, AUTO_PREF__GRID_COLUMNS, gridColumns);
+    @Override
+    public void setGridColumns(float gridColumns) {
+        preferences.edit().putFloat(AUTO_PREF__GRID_COLUMNS, gridColumns).apply();
     }
 
     /**

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

@@ -192,7 +192,7 @@ public class LocalFileListAdapter extends RecyclerView.Adapter<RecyclerView.View
                     itemVH.fileName.setText(file.getName());
 
                     if (gridView && (MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file) ||
-                        localFileListFragmentInterface.getColumnSize() > showFilenameColumnThreshold)) {
+                        localFileListFragmentInterface.getColumnsCount() > showFilenameColumnThreshold)) {
                         itemVH.fileName.setVisibility(View.GONE);
                     } else {
                         itemVH.fileName.setVisibility(View.VISIBLE);

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

@@ -408,7 +408,7 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
                 if (gridView && gridImage) {
                     gridItemViewHolder.fileName.setVisibility(View.GONE);
                 } else {
-                    if (gridView && ocFileListFragmentInterface.getColumnSize() > showFilenameColumnThreshold) {
+                    if (gridView && ocFileListFragmentInterface.getColumnsCount() > showFilenameColumnThreshold) {
                         gridItemViewHolder.fileName.setVisibility(View.GONE);
                     } else {
                         gridItemViewHolder.fileName.setVisibility(View.VISIBLE);

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

@@ -23,6 +23,7 @@ package com.owncloud.android.ui.fragment;
 
 import android.animation.LayoutTransition;
 import android.app.Activity;
+import android.content.Context;
 import android.content.res.Configuration;
 import android.graphics.Color;
 import android.graphics.PorterDuff;
@@ -51,6 +52,7 @@ import android.widget.TextView;
 
 import com.google.android.material.bottomnavigation.BottomNavigationView;
 import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import com.nextcloud.client.preferences.AppPreferences;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
@@ -103,6 +105,7 @@ public class ExtendedListFragment extends Fragment
     private int maxColumnSizePortrait = 5;
     private int maxColumnSizeLandscape = 10;
 
+    private AppPreferences preferences;
     private ScaleGestureDetector mScaleGestureDetector;
     protected SwipeRefreshLayout mRefreshListLayout;
     protected LinearLayout mEmptyListContainer;
@@ -161,7 +164,7 @@ public class ExtendedListFragment extends Fragment
 
     public void switchToGridView() {
         if (!isGridEnabled()) {
-            getRecyclerView().setLayoutManager(new GridLayoutManager(getContext(), getColumnSize()));
+            getRecyclerView().setLayoutManager(new GridLayoutManager(getContext(), getColumnsCount()));
         }
     }
 
@@ -352,6 +355,12 @@ public class ExtendedListFragment extends Fragment
         return false;
     }
 
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        preferences = PreferenceManager.fromContext(context);
+    }
+
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
         Log_OC.d(TAG, "onCreateView");
@@ -365,7 +374,7 @@ public class ExtendedListFragment extends Fragment
         mRecyclerView.setHasFixedSize(true);
         mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
 
-        mScale = PreferenceManager.getGridColumns(getContext());
+        mScale = preferences.getGridColumns();
         setGridViewColumns(1f);
 
         mScaleGestureDetector = new ScaleGestureDetector(MainApp.getAppContext(),new ScaleListener());
@@ -409,7 +418,7 @@ public class ExtendedListFragment extends Fragment
         public boolean onScale(ScaleGestureDetector detector) {
             setGridViewColumns(detector.getScaleFactor());
 
-            PreferenceManager.setGridColumns(getContext(), mScale);
+            preferences.setGridColumns(mScale);
 
             getRecyclerView().getAdapter().notifyDataSetChanged();
 
@@ -470,7 +479,7 @@ public class ExtendedListFragment extends Fragment
             mHeightCell = 0;
         }
 
-        mScale = PreferenceManager.getGridColumns(getContext());
+        mScale = preferences.getGridColumns();
     }
 
 
@@ -485,10 +494,10 @@ public class ExtendedListFragment extends Fragment
         savedInstanceState.putInt(KEY_HEIGHT_CELL, mHeightCell);
         savedInstanceState.putString(KEY_EMPTY_LIST_MESSAGE, getEmptyViewText());
 
-        PreferenceManager.setGridColumns(getContext(), mScale);
+        preferences.setGridColumns(mScale);
     }
 
-    public int getColumnSize() {
+    public int getColumnsCount() {
         return Math.round(mScale);
     }
 
@@ -798,7 +807,7 @@ public class ExtendedListFragment extends Fragment
             maxColumnSize = maxColumnSizePortrait;
         }
 
-        if (isGridEnabled() && getColumnSize() > maxColumnSize) {
+        if (isGridEnabled() && getColumnsCount() > maxColumnSize) {
             ((GridLayoutManager) getRecyclerView().getLayoutManager()).setSpanCount(maxColumnSize);
         }
     }

+ 5 - 1
src/main/java/com/owncloud/android/ui/fragment/LocalFileListFragment.java

@@ -169,6 +169,10 @@ public class LocalFileListFragment extends ExtendedListFragment implements Local
         }
     }
 
+    @Override
+    public int getColumnsCount() {
+        return super.getColumnsCount();
+    }
 
     /**
      * Call this, when the user presses the up button
@@ -287,7 +291,7 @@ public class LocalFileListFragment extends ExtendedListFragment implements Local
 
         if (!isGridEnabled()) {
             RecyclerView.LayoutManager layoutManager;
-            layoutManager = new GridLayoutManager(getContext(), getColumnSize());
+            layoutManager = new GridLayoutManager(getContext(), getColumnsCount());
             ((GridLayoutManager) layoutManager).setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
                 @Override
                 public int getSpanSize(int position) {

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

@@ -438,6 +438,11 @@ public class OCFileListFragment extends ExtendedListFragment implements
         );
     }
 
+    @Override
+    public int getColumnsCount() {
+        return super.getColumnsCount();
+    }
+
     @Override
     public void onShareIconClick(OCFile file) {
         if (file.isFolder()) {
@@ -1233,7 +1238,7 @@ public class OCFileListFragment extends ExtendedListFragment implements
 
         RecyclerView.LayoutManager layoutManager;
         if (grid) {
-            layoutManager = new GridLayoutManager(getContext(), getColumnSize());
+            layoutManager = new GridLayoutManager(getContext(), getColumnsCount());
             ((GridLayoutManager) layoutManager).setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
                 @Override
                 public int getSpanSize(int position) {

+ 1 - 3
src/main/java/com/owncloud/android/ui/interfaces/LocalFileListFragmentInterface.java

@@ -28,9 +28,7 @@ import java.io.File;
  * Interface for communication between {@link com.owncloud.android.ui.fragment.LocalFileListFragment}
  * and {@link LocalFileListAdapter}
  */
-
 public interface LocalFileListFragmentInterface {
-    int getColumnSize();
-
+    int getColumnsCount();
     void onItemClicked(File file);
 }

+ 1 - 1
src/main/java/com/owncloud/android/ui/interfaces/OCFileListFragmentInterface.java

@@ -31,7 +31,7 @@ import com.owncloud.android.ui.adapter.OCFileListAdapter;
  */
 
 public interface OCFileListFragmentInterface {
-    int getColumnSize();
+    int getColumnsCount();
 
     void onShareIconClick(OCFile file);