}
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();
+
+ } else {
+ updateFragmentsVisibility(!file.isDirectory());
+ updateNavigationElementsInActionBar(file.isDirectory() ? null : file);
}
+
} else {
Log_OC.wtf(TAG, "onAccountChanged was called with NULL account associated!");
}
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);
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");
}
/**
* TODO
*/
- private void updateNavigationElementsInActionBar(OCFile currentFile) {
+ private void updateNavigationElementsInActionBar(OCFile chosenFile) {
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);
} else {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
- actionBar.setTitle(currentFile.getFileName());
+ actionBar.setTitle(chosenFile.getFileName());
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
}
}
* {@inheritDoc}
*/
@Override
- public OCFile getInitialDirectory() {
- return getCurrentDir();
- }
-
-
- /**
- * {@inheritDoc}
- */
- @Override
public void onFileStateChanged() {
refeshListOfFilesFragment();
}
if (file != null) {
if (file.isDirectory()) {
return file;
- } else {
+ } else if (mStorageManager != null) {
return mStorageManager.getFileById(file.getParentId());
}
- } else {
- return null;
}
+ return null;
}
}
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
- 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
- swapDirectory(file, mStorageManager);\r
- /*mFile = file;\r
- mFiles = mStorageManager.getDirectoryContent(mFile);*/\r
}\r
\r
@Override\r
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());
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);
/**
- * 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.