Browse Source

Fixed fragment not updating file infos on tablets the first time it is
created

Lennart Rosam 13 years ago
parent
commit
d4a339871d

+ 16 - 1
src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java

@@ -78,6 +78,18 @@ public class FileDetailFragment extends SherlockFragment implements
         }
         }
     }
     }
     
     
+    /**
+     * Use this when creating the fragment and display
+     * a file at the same time
+     * 
+     * @param showDetailsIntent The Intent with the required parameters
+     * @see FileDetailFragment#updateFileDetails(Intent)
+     */
+    public FileDetailFragment(Intent showDetailsIntent) {
+        mIntent = showDetailsIntent;
+        mLayout = R.layout.file_details_fragment;
+    }
+
     @Override
     @Override
     public void onResume() {
     public void onResume() {
         super.onResume();
         super.onResume();
@@ -161,7 +173,10 @@ public class FileDetailFragment extends SherlockFragment implements
         view = inflater.inflate(mLayout, container, false);
         view = inflater.inflate(mLayout, container, false);
         mView = view;
         mView = view;
         if(mLayout == R.layout.file_details_fragment){
         if(mLayout == R.layout.file_details_fragment){
-            mIntent = getActivity().getIntent();
+            // Phones will launch an activity with this intent
+            if(mIntent == null){
+                mIntent = getActivity().getIntent();
+            }
             updateFileDetails();
             updateFileDetails();
         }
         }
         
         

+ 2 - 5
src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java

@@ -52,7 +52,6 @@ public class FileListFragment extends FragmentListView {
     private Stack<String> mDirNames;
     private Stack<String> mDirNames;
     private Vector<OCFile> mFiles;
     private Vector<OCFile> mFiles;
     private DataStorageManager mStorageManager;
     private DataStorageManager mStorageManager;
-    private FileDetailFragment mFileDetailsDetailFragment;
     private boolean mIsLargeDevice = false;
     private boolean mIsLargeDevice = false;
 
 
     public FileListFragment() {
     public FileListFragment() {
@@ -72,9 +71,7 @@ public class FileListFragment extends FragmentListView {
 
 
     @Override
     @Override
     public void onStart() {
     public void onStart() {
-        // Inflate the original fragment for better performance
-        mFileDetailsDetailFragment = new FileDetailFragment();
-        
+                
         // Create a placeholder upon launch
         // Create a placeholder upon launch
         View fragmentContainer = getActivity().findViewById(R.id.file_details_container);
         View fragmentContainer = getActivity().findViewById(R.id.file_details_container);
         if (fragmentContainer != null) {
         if (fragmentContainer != null) {
@@ -115,7 +112,7 @@ public class FileListFragment extends FragmentListView {
             FileDetailFragment fileDetails = (FileDetailFragment) getFragmentManager().findFragmentByTag("FileDetails");
             FileDetailFragment fileDetails = (FileDetailFragment) getFragmentManager().findFragmentByTag("FileDetails");
             if (fileDetails == null) {
             if (fileDetails == null) {
                 FragmentTransaction transaction = getFragmentManager().beginTransaction();
                 FragmentTransaction transaction = getFragmentManager().beginTransaction();
-                transaction.replace(R.id.file_details_container, mFileDetailsDetailFragment, "FileDetails");
+                transaction.replace(R.id.file_details_container, new FileDetailFragment(showDetailsIntent), "FileDetails");
                 transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                 transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                 transaction.commit();
                 transaction.commit();
             } else {
             } else {