*/\r
public class FileListFragment extends FragmentListView {\r
private static final String TAG = "FileListFragment";\r
- private Account mAccount;\r
- private Vector<OCFile> mFiles;\r
- private DataStorageManager mStorageManager;\r
+ //private Account mAccount; // dvelasco : the fragment is not recreated when other account is selected; keep as an attribute is dangerous\r
+ private Vector<OCFile> mFiles; \r
+ //private DataStorageManager mStorageManager; // dvelasco : just the same; it depends upon the current account ; it's updated in FileDisplayActivity!!\r
private OCFile mFile;\r
private boolean mIsLargeDevice = false; \r
\r
public void onCreate(Bundle savedInstanceState) {\r
super.onCreate(savedInstanceState);\r
\r
- mAccount = AccountUtils.getCurrentOwnCloudAccount(getActivity());\r
- mStorageManager = new FileDataStorageManager(mAccount, getActivity().getContentResolver());\r
-\r
Intent intent = getActivity().getIntent();\r
OCFile directory = intent.getParcelableExtra(FileDetailFragment.EXTRA_FILE);\r
mFile = directory;\r
\r
Intent showDetailsIntent = new Intent(getActivity(), FileDetailActivity.class);\r
showDetailsIntent.putExtra(FileDetailFragment.EXTRA_FILE, file);\r
- showDetailsIntent.putExtra(FileDownloader.EXTRA_ACCOUNT, mAccount);\r
+ showDetailsIntent.putExtra(FileDownloader.EXTRA_ACCOUNT, AccountUtils.getCurrentOwnCloudAccount(getActivity()));\r
\r
// If we are on a large device -> update fragment\r
if (mIsLargeDevice) {\r
OCFile parentDir = null;\r
\r
if(mFile != null){\r
- parentDir = mStorageManager.getFileById(mFile.getParentId());\r
+ DataStorageManager storageManager = ((FileDisplayActivity)getActivity()).getStorageManager();\r
+ parentDir = storageManager.getFileById(mFile.getParentId());\r
mFile = parentDir;\r
}\r
\r
*/\r
public void listDirectory(OCFile directory) {\r
\r
+ DataStorageManager storageManager = ((FileDisplayActivity)getActivity()).getStorageManager();\r
+\r
// Check input parameters for null\r
if(directory == null){\r
if(mFile != null){\r
directory = mFile;\r
} else {\r
- directory = mStorageManager.getFileByPath("/");\r
+ directory = storageManager.getFileByPath("/");\r
if (directory == null) return; // no files, wait for sync\r
}\r
}\r
// If that's not a directory -> List its parent\r
if(!directory.isDirectory()){\r
Log.w(TAG, "You see, that is not a directory -> " + directory.toString());\r
- directory = mStorageManager.getFileById(directory.getParentId());\r
+ directory = storageManager.getFileById(directory.getParentId());\r
}\r
\r
mFile = directory;\r
\r
- mFiles = mStorageManager.getDirectoryContent(directory);\r
+ mFiles = storageManager.getDirectoryContent(directory);\r
if (mFiles == null || mFiles.size() == 0) {\r
Toast.makeText(getActivity(), "There are no files here", Toast.LENGTH_LONG).show();\r
}\r
- setListAdapter(new FileListListAdapter(directory, mStorageManager, getActivity()));\r
+ setListAdapter(new FileListListAdapter(directory, storageManager, getActivity()));\r
}\r
\r
@Override\r
public void onSaveInstanceState(Bundle outState) {\r
super.onSaveInstanceState(outState);\r
- outState.putParcelable("ACCOUNT", mAccount);\r
- }\r
-\r
- /**\r
- * This should be called every time the current account changes, in order to synchronize mStorageManager without create a new FileListFragment\r
- */\r
- public void updateAccount() {\r
- Account old = mAccount;\r
- mAccount = AccountUtils.getCurrentOwnCloudAccount(getActivity());\r
- if (old != mAccount)\r
- mStorageManager = new FileDataStorageManager(mAccount, getActivity().getContentResolver());\r
- // dvelasco : a better solution can be provided change the flow between states "wiht account" and "without account", in terms of interactions between AuthenticatorActivity and FileDisplayActivity\r
+ outState.putParcelable("ACCOUNT", AccountUtils.getCurrentOwnCloudAccount(getActivity()));\r
}\r
\r
}\r