- mObserversMap.clear();
- Cursor c = getContentResolver().query(
- ProviderTableMeta.CONTENT_URI,
- null,
- ProviderTableMeta.FILE_KEEP_IN_SYNC + " = ?",
- new String[] {String.valueOf(1)},
- null);
- if (c == null || !c.moveToFirst()) return;
- AccountManager acm = AccountManager.get(this);
- Account[] accounts = acm.getAccounts();
- do {
- Account account = null;
- for (Account a : accounts)
- if (a.name.equals(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_ACCOUNT_OWNER)))) {
- account = a;
- break;
- }
+ Log_OC.d(TAG, "Loading all kept-in-sync files from database to start watching them");
+
+ // mObserversMap.clear();
+ // mObserverParentsMap.clear();
+
+ Cursor cursorOnKeptInSync = getContentResolver().query(ProviderTableMeta.CONTENT_URI, null,
+ ProviderTableMeta.FILE_KEEP_IN_SYNC + " = ?", new String[] { String.valueOf(1) }, null);
+
+ if (cursorOnKeptInSync != null) {
+
+ if (cursorOnKeptInSync.moveToFirst()) {
+
+ String localPath = "";
+ // String remotePath = "";
+ String accountName = "";
+ Account account = null;
+ do {
+ localPath = cursorOnKeptInSync.getString(cursorOnKeptInSync
+ .getColumnIndex(ProviderTableMeta.FILE_STORAGE_PATH));
+ accountName = cursorOnKeptInSync.getString(cursorOnKeptInSync
+ .getColumnIndex(ProviderTableMeta.FILE_ACCOUNT_OWNER));
+ /*
+ * remotePath = cursorOnKeptInSync.getString(
+ * cursorOnKeptInSync
+ * .getColumnIndex(ProviderTableMeta.FILE_PATH) );
+ */
+
+ account = new Account(accountName, MainApp.getAccountType());
+ if (!AccountUtils.exists(account, this) || localPath == null || localPath.length() <= 0) {
+ continue;
+ }
+
+ OwnCloudFileObserver observer = mObserversMap.get(localPath);
+ if (observer == null) {
+ observer = new OwnCloudFileObserver(localPath, account, getApplicationContext(), mHandler);
+ mObserversMap.put(localPath, observer);
+
+ // only if being added
+ if (new File(localPath).exists()) {
+ observer.startWatching();
+ Log_OC.d(TAG, "Started watching file " + localPath);
+ }
+ }
+
+ String parentPath = (new File(localPath)).getParent();
+ OwnCloudFolderObserver observerFolder = mObserversFolderMap.get(parentPath);
+ if (observerFolder == null) {
+ observerFolder = new OwnCloudFolderObserver(parentPath, account, getApplicationContext());
+ mObserversFolderMap.put(parentPath, observerFolder);
+
+ if (new File(parentPath).exists()) {
+ observerFolder.startWatching();
+ Log_OC.d(TAG, "Started watching parent folder " + parentPath + "/");
+ }
+ }
+
+ } while (cursorOnKeptInSync.moveToNext());