Browse Source

save/restore zoom level

AndyScherzinger 8 years ago
parent
commit
49ae2bd72f
1 changed files with 19 additions and 10 deletions
  1. 19 10
      src/com/owncloud/android/ui/fragment/ExtendedListFragment.java

+ 19 - 10
src/com/owncloud/android/ui/fragment/ExtendedListFragment.java

@@ -189,7 +189,10 @@ public class ExtendedListFragment extends Fragment
         mListFooterView = inflater.inflate(R.layout.list_footer, null, false);
 
         mGridView = (GridViewWithHeaderAndFooter) (v.findViewById(R.id.grid_root));
-        mGridView.setNumColumns(GridView.AUTO_FIT);
+
+        mScale = PreferenceManager.getGridColumns(getContext());
+        setGridViewColumns(1f);
+        //mGridView.setNumColumns(GridView.AUTO_FIT);
         mGridView.setOnItemClickListener(this);
 
         mGridFooterView = inflater.inflate(R.layout.list_footer, null, false);
@@ -261,20 +264,26 @@ public class ExtendedListFragment extends Fragment
     private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
         @Override
         public boolean onScale(ScaleGestureDetector detector) {
-            if (mScale == -1f) {
-                mGridView.setNumColumns(GridView.AUTO_FIT);
-                mScale = mGridView.getNumColumns();
-            }
-            mScale *= 1.f - (detector.getScaleFactor() - 1.f);
-            mScale = Math.max(minColumnSize, Math.min(mScale, maxColumnSize));
-            Integer scaleInt = Math.round(mScale);
-            mGridView.setNumColumns(scaleInt);
-            mGridView.invalidateViews();
+            setGridViewColumns(detector.getScaleFactor());
+
+            PreferenceManager.setGridColumns(getContext(), mScale);
 
             return true;
         }
     }
 
+    private void setGridViewColumns(float scaleFactor) {
+        if (mScale == -1f) {
+            mGridView.setNumColumns(GridView.AUTO_FIT);
+            mScale = mGridView.getNumColumns();
+        }
+        mScale *= 1.f - (scaleFactor - 1.f);
+        mScale = Math.max(minColumnSize, Math.min(mScale, maxColumnSize));
+        Integer scaleInt = Math.round(mScale);
+        mGridView.setNumColumns(scaleInt);
+        mGridView.invalidateViews();
+    }
+
     protected void setupEmptyList(View view) {
         mEmptyListContainer = (LinearLayout) view.findViewById(R.id.empty_list_view);
         mEmptyListMessage = (TextView) view.findViewById(R.id.empty_list_view_text);