Fixed bug when turning tablet with no file in the right fragment
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / FragmentListView.java
index 54ada01..43b2fc6 100644 (file)
@@ -1,6 +1,26 @@
+/* ownCloud Android client application
+ *   Copyright (C) 2012 Bartek Przybylski
+ *   Copyright (C) 2012-2013 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
 package com.owncloud.android.ui;
 
 import com.actionbarsherlock.app.SherlockFragment;
+import com.owncloud.android.R;
+import com.owncloud.android.ui.fragment.LocalFileListFragment;
 
 import android.os.Bundle;
 import android.view.LayoutInflater;
@@ -33,10 +53,15 @@ public class FragmentListView extends SherlockFragment implements
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
-        mList = new ExtendedListView(getActivity());
+        //mList = new ExtendedListView(getActivity());
+        View v = inflater.inflate(R.layout.list_fragment, null);
+        mList = (ExtendedListView)(v.findViewById(R.id.list_root));
         mList.setOnItemClickListener(this);
         mList.setOnItemLongClickListener(this);
-        return mList;
+        //mList.setEmptyView(v.findViewById(R.id.empty_list_view));     // looks like it's not a cool idea 
+        mList.setDivider(getResources().getDrawable(R.drawable.uploader_list_separator));
+        mList.setDividerHeight(1);
+        return v;
     }
 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
@@ -48,4 +73,28 @@ public class FragmentListView extends SherlockFragment implements
         return false;
     }
 
+    
+    /**
+     * Calculates the position of the item that will be used as a reference to reposition the visible items in the list when
+     * the device is turned to other position. 
+     * 
+     * THe current policy is take as a reference the visible item in the center of the screen.  
+     * 
+     * @return      The position in the list of the visible item in the center of the screen.
+     */
+    protected int getReferencePosition() {
+        return (mList.getFirstVisiblePosition() + mList.getLastVisiblePosition()) / 2;
+    }
+
+    
+    /**
+     * Sets the visible part of the list from the reference position.
+     * 
+     * @param   position    Reference position previously returned by {@link LocalFileListFragment#getReferencePosition()}
+     */
+    protected void setReferencePosition(int position) {
+        mList.setAndCenterSelection(position);
+    }
+
+    
 }