Fixed bad transitions after adding protection for removed accounts to PreviewVideoAct...
authorDavid A. Velasco <dvelasco@solidgear.es>
Mon, 17 Jun 2013 09:16:39 +0000 (11:16 +0200)
committerDavid A. Velasco <dvelasco@solidgear.es>
Mon, 17 Jun 2013 09:16:39 +0000 (11:16 +0200)
src/com/owncloud/android/ui/activity/FileDisplayActivity.java
src/com/owncloud/android/ui/adapter/FileListListAdapter.java
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

index ae8c920..a70e266 100644 (file)
@@ -216,18 +216,24 @@ public class FileDisplayActivity extends FileActivity implements
             }
             setFile(file);
             mDirectories.clear();
             }
             setFile(file);
             mDirectories.clear();
-            while(file != null && file.getFileName() != OCFile.PATH_SEPARATOR) {
-                if (file.isDirectory()) {
-                    mDirectories.add(file.getFileName());
+            OCFile fileIt = file;
+            while(fileIt != null && fileIt.getFileName() != OCFile.PATH_SEPARATOR) {
+                if (fileIt.isDirectory()) {
+                    mDirectories.add(fileIt.getFileName());
                 }
                 }
-                file = mStorageManager.getFileById(file.getParentId());
+                fileIt = mStorageManager.getFileById(fileIt.getParentId());
             }
             mDirectories.add(OCFile.PATH_SEPARATOR);
             if (!stateWasRecovered) {
                 Log_OC.e(TAG, "Initializing Fragments in onAccountChanged..");
                 initFragmentsWithFile();
             }
             mDirectories.add(OCFile.PATH_SEPARATOR);
             if (!stateWasRecovered) {
                 Log_OC.e(TAG, "Initializing Fragments in onAccountChanged..");
                 initFragmentsWithFile();
+                
+            } else {
+                updateFragmentsVisibility(!file.isDirectory());
+                updateNavigationElementsInActionBar(file.isDirectory() ? null : file);
             }
             
             }
             
+            
         } else {
             Log_OC.wtf(TAG, "onAccountChanged was called with NULL account associated!");
         }
         } else {
             Log_OC.wtf(TAG, "onAccountChanged was called with NULL account associated!");
         }
@@ -243,6 +249,14 @@ public class FileDisplayActivity extends FileActivity implements
 
     private void initFragmentsWithFile() {
         if (getAccount() != null && getFile() != null) {
 
     private void initFragmentsWithFile() {
         if (getAccount() != null && getFile() != null) {
+            /// First fragment
+            OCFileListFragment listOfFiles = getListOfFilesFragment(); 
+            if (listOfFiles != null) {
+                listOfFiles.listDirectory(getCurrentDir());   
+            } else {
+                Log.e(TAG, "Still have a chance to lose the initializacion of list fragment >(");
+            }
+            
             /// Second fragment
             OCFile file = getFile(); 
             Fragment secondFragment = chooseInitialSecondFragment(file);
             /// Second fragment
             OCFile file = getFile(); 
             Fragment secondFragment = chooseInitialSecondFragment(file);
@@ -608,12 +622,6 @@ public class FileDisplayActivity extends FileActivity implements
         mDownloadFinishReceiver = new DownloadFinishReceiver();
         registerReceiver(mDownloadFinishReceiver, downloadIntentFilter);
     
         mDownloadFinishReceiver = new DownloadFinishReceiver();
         registerReceiver(mDownloadFinishReceiver, downloadIntentFilter);
     
-        // List current directory
-        OCFileListFragment listOfFiles = getListOfFilesFragment(); 
-        if (listOfFiles != null) {
-            listOfFiles.listDirectory(getCurrentDir());   // TODO we should find the way to avoid the need of this (maybe it's not necessary yet; to check)
-        }
-    
         Log_OC.d(TAG, "onResume() end");
     }
 
         Log_OC.d(TAG, "onResume() end");
     }
 
@@ -988,9 +996,9 @@ public class FileDisplayActivity extends FileActivity implements
     /**
      * TODO
      */
     /**
      * TODO
      */
-    private void updateNavigationElementsInActionBar(OCFile currentFile) {
+    private void updateNavigationElementsInActionBar(OCFile chosenFile) {
         ActionBar actionBar = getSupportActionBar(); 
         ActionBar actionBar = getSupportActionBar(); 
-        if (currentFile == null || mDualPane) {
+        if (chosenFile == null || mDualPane) {
             // only list of files - set for browsing through folders
             OCFile currentDir = getCurrentDir();
             actionBar.setDisplayHomeAsUpEnabled(currentDir != null && currentDir.getParentId() != 0);
             // only list of files - set for browsing through folders
             OCFile currentDir = getCurrentDir();
             actionBar.setDisplayHomeAsUpEnabled(currentDir != null && currentDir.getParentId() != 0);
@@ -1001,7 +1009,7 @@ public class FileDisplayActivity extends FileActivity implements
         } else {
             actionBar.setDisplayHomeAsUpEnabled(true);
             actionBar.setDisplayShowTitleEnabled(true);
         } else {
             actionBar.setDisplayHomeAsUpEnabled(true);
             actionBar.setDisplayShowTitleEnabled(true);
-            actionBar.setTitle(currentFile.getFileName());
+            actionBar.setTitle(chosenFile.getFileName());
             actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
         }
     }
             actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
         }
     }
@@ -1011,15 +1019,6 @@ public class FileDisplayActivity extends FileActivity implements
      * {@inheritDoc}
      */
     @Override
      * {@inheritDoc}
      */
     @Override
-    public OCFile getInitialDirectory() {
-        return getCurrentDir();
-    }
-    
-    
-    /**
-     * {@inheritDoc}
-     */
-    @Override
     public void onFileStateChanged() {
         refeshListOfFilesFragment();
     }
     public void onFileStateChanged() {
         refeshListOfFilesFragment();
     }
@@ -1317,12 +1316,11 @@ public class FileDisplayActivity extends FileActivity implements
         if (file != null) {
             if (file.isDirectory()) {
                 return file;
         if (file != null) {
             if (file.isDirectory()) {
                 return file;
-            } else {
+            } else if (mStorageManager != null) {
                 return mStorageManager.getFileById(file.getParentId());
             }
                 return mStorageManager.getFileById(file.getParentId());
             }
-        } else {
-            return null;
         }
         }
+        return null;
     }
 
 }
     }
 
 }
index 80f5358..b05ba28 100644 (file)
@@ -51,19 +51,14 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
     private Context mContext;\r
     private OCFile mFile = null;\r
     private Vector<OCFile> mFiles = null;\r
     private Context mContext;\r
     private OCFile mFile = null;\r
     private Vector<OCFile> mFiles = null;\r
-    private DataStorageManager mStorageManager;\r
+    private DataStorageManager mStorageManager = null;\r
     private Account mAccount;\r
     private TransferServiceGetter mTransferServiceGetter;\r
 \r
     private Account mAccount;\r
     private TransferServiceGetter mTransferServiceGetter;\r
 \r
-    public FileListListAdapter(OCFile file, DataStorageManager storage_man,\r
-            Context context, TransferServiceGetter transferServiceGetter) {\r
-        mStorageManager = storage_man;\r
+    public FileListListAdapter(Context context, TransferServiceGetter transferServiceGetter) {\r
         mContext = context;\r
         mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);\r
         mTransferServiceGetter = transferServiceGetter;\r
         mContext = context;\r
         mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);\r
         mTransferServiceGetter = transferServiceGetter;\r
-        swapDirectory(file, mStorageManager);\r
-        /*mFile = file;\r
-        mFiles = mStorageManager.getDirectoryContent(mFile);*/\r
     }\r
 \r
     @Override\r
     }\r
 \r
     @Override\r
index 35b3774..015ebaa 100644 (file)
@@ -94,7 +94,7 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
         Log_OC.e(TAG, "onActivityCreated() start");
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
         Log_OC.e(TAG, "onActivityCreated() start");
-        mAdapter = new FileListListAdapter(mContainerActivity.getInitialDirectory(), mContainerActivity.getStorageManager(), getActivity(), mContainerActivity);
+        mAdapter = new FileListListAdapter(getActivity(), mContainerActivity);
         setListAdapter(mAdapter);
         
         registerForContextMenu(getListView());
         setListAdapter(mAdapter);
         
         registerForContextMenu(getListView());
@@ -124,7 +124,6 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
         if (file != null) {
             if (file.isDirectory()) { 
                 // update state and view of this fragment
         if (file != null) {
             if (file.isDirectory()) { 
                 // update state and view of this fragment
-                mFile = file;
                 listDirectory(file);
                 // then, notify parent activity to let it update its state and view, and other fragments
                 mContainerActivity.onBrowsedDownTo(file);
                 listDirectory(file);
                 // then, notify parent activity to let it update its state and view, and other fragments
                 mContainerActivity.onBrowsedDownTo(file);
@@ -388,14 +387,6 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
         
         
         /**
         
         
         /**
-         * Callback method invoked when the parent activity is fully created to get the directory to list firstly.
-         * 
-         * @return  Directory to list firstly. Can be NULL.
-         */
-        public OCFile getInitialDirectory();
-        
-        
-        /**
          * Callback method invoked when a the 'transfer state' of a file changes.
          * 
          * This happens when a download or upload is started or ended for a file.
          * Callback method invoked when a the 'transfer state' of a file changes.
          * 
          * This happens when a download or upload is started or ended for a file.