瀏覽代碼

save/restore zoom level

AndyScherzinger 8 年之前
父節點
當前提交
49ae2bd72f
共有 1 個文件被更改,包括 19 次插入10 次删除
  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);
         mListFooterView = inflater.inflate(R.layout.list_footer, null, false);
 
 
         mGridView = (GridViewWithHeaderAndFooter) (v.findViewById(R.id.grid_root));
         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);
         mGridView.setOnItemClickListener(this);
 
 
         mGridFooterView = inflater.inflate(R.layout.list_footer, null, false);
         mGridFooterView = inflater.inflate(R.layout.list_footer, null, false);
@@ -261,20 +264,26 @@ public class ExtendedListFragment extends Fragment
     private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
     private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
         @Override
         @Override
         public boolean onScale(ScaleGestureDetector detector) {
         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;
             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) {
     protected void setupEmptyList(View view) {
         mEmptyListContainer = (LinearLayout) view.findViewById(R.id.empty_list_view);
         mEmptyListContainer = (LinearLayout) view.findViewById(R.id.empty_list_view);
         mEmptyListMessage = (TextView) view.findViewById(R.id.empty_list_view_text);
         mEmptyListMessage = (TextView) view.findViewById(R.id.empty_list_view_text);