fix file display, fix syncing, fix authenticator & other stuff
authorBartek Przybylski <bart.p.pl@gmail.com>
Sat, 14 Apr 2012 23:00:38 +0000 (01:00 +0200)
committerBartek Przybylski <bart.p.pl@gmail.com>
Sat, 14 Apr 2012 23:00:38 +0000 (01:00 +0200)
src/eu/alefzero/owncloud/authenticator/AuthUtils.java
src/eu/alefzero/owncloud/datamodel/FileDataStorageManager.java
src/eu/alefzero/owncloud/datamodel/OCFile.java
src/eu/alefzero/owncloud/syncadapter/AbstractOwnCloudSyncAdapter.java
src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java

index e3fc32c..8287e12 100644 (file)
@@ -244,6 +244,9 @@ public class AuthUtils {
                                  break;\r
                          }\r
                  }\r
+         } else if (ocAccounts.length != 0) {\r
+           // we at least need to take first account as fallback\r
+           defaultAccount = ocAccounts[0];\r
          }\r
          \r
        return defaultAccount;\r
index 827435f..3821278 100644 (file)
@@ -90,7 +90,7 @@ public class FileDataStorageManager implements DataStorageManager {
     cv.put(ProviderTableMeta.FILE_PATH, file.getPath());
     cv.put(ProviderTableMeta.FILE_STORAGE_PATH, file.getStoragePath());
     cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, mAccount.name);
-    
+
     if (fileExists(file.getPath())) {
       overriden = true;
       if (getContentResolver() != null) {
@@ -109,15 +109,20 @@ public class FileDataStorageManager implements DataStorageManager {
         }
       }
     } else {
+      Uri result_uri = null;
       if (getContentResolver() != null) {
-        getContentResolver().insert(ProviderTableMeta.CONTENT_URI_FILE, cv);
+        result_uri = getContentResolver().insert(ProviderTableMeta.CONTENT_URI_FILE, cv);
       } else {
         try {
-          getContentProvider().insert(ProviderTableMeta.CONTENT_URI_FILE, cv);
+          result_uri = getContentProvider().insert(ProviderTableMeta.CONTENT_URI_FILE, cv);
         } catch (RemoteException e) {
           Log.e(TAG, "Fail to insert insert file to database " + e.getMessage());
         }
       }
+      if (result_uri != null) {
+        long new_id = Long.parseLong(result_uri.getPathSegments().get(1));
+        file.setFileId(new_id);
+      }
     }
     
     if (file.isDirectory() && file.needsUpdatingWhileSaving())
@@ -158,6 +163,7 @@ public class FileDataStorageManager implements DataStorageManager {
       Uri req_uri = Uri.withAppendedPath(
           ProviderTableMeta.CONTENT_URI_DIR, String.valueOf(f.getFileId()));
       Cursor c = null;
+      
       if (getContentProvider() != null) {
         try {
           c = getContentProvider().query(req_uri, null, null, null, null);
@@ -169,12 +175,13 @@ public class FileDataStorageManager implements DataStorageManager {
         c = getContentResolver().query(req_uri, null, null, null, null);
       }
 
-      if (c.moveToFirst())
+      if (c.moveToFirst()) {
         do {
           OCFile child = createFileInstance(c);
           ret.add(child);
         } while (c.moveToNext());
-
+      }
+      
       c.close();
       return ret;
     }
index 62705f1..62bf065 100644 (file)
@@ -38,9 +38,9 @@ public class OCFile {
         * @param path The remote path of the file
         */
        public OCFile(String path) {
+         resetData();
          update_while_saving_ = false;
                path_ = path;
-               resetData();
        }
 
        /**
index a3eead9..698fda8 100644 (file)
@@ -222,6 +222,7 @@ public abstract class AbstractOwnCloudSyncAdapter extends
                                Log.d(TAG, "No update for file/dir " + file.getFileName()\r
                                                + " is needed");\r
                        } else {\r
+                         file = new OCFile(n.getProperty(NodeProperty.PATH));\r
                                Log.d(TAG, "File " + n.getProperty(NodeProperty.PATH)\r
                                                + " will be "\r
                                                + (file.fileExists() ? "updated" : "created"));\r
@@ -231,7 +232,7 @@ public abstract class AbstractOwnCloudSyncAdapter extends
                                long create = n.getProperty(NodeProperty.CREATE_DATE) == null ? 0\r
                                                : Long.parseLong(n\r
                                                                .getProperty(NodeProperty.CREATE_DATE));\r
-                               file = new OCFile(n.getProperty(NodeProperty.PATH));\r
+\r
                                file.setFileLength(len);\r
                                file.setCreationTimestamp(create);\r
                                file.setModificationTimestamp(mod);\r
index 3f762da..fa3e904 100644 (file)
@@ -23,6 +23,7 @@ import java.util.Vector;
 import android.accounts.Account;\r
 import android.content.Intent;\r
 import android.os.Bundle;\r
+import android.util.Log;\r
 import android.view.View;\r
 import android.widget.AdapterView;\r
 import eu.alefzero.owncloud.R;\r
@@ -56,8 +57,6 @@ public class FileListFragment extends FragmentListView {
 \r
     mAccount = AuthUtils.getCurrentOwnCloudAccount(getActivity());\r
     populateFileList();\r
-    // TODO: Remove this testing stuff\r
-    //addContact(mAccount, "Bartek Przybylski", "czlowiek");\r
   }\r
   \r
   @Override\r
@@ -80,6 +79,7 @@ public class FileListFragment extends FragmentListView {
     i.putExtra("FILE_NAME", file.getFileName());\r
     i.putExtra("FULL_PATH", file.getPath());\r
     i.putExtra("FILE_ID", id_);\r
+    Log.e("ASD", mAccount+"");\r
     i.putExtra("ACCOUNT", mAccount);\r
     FileDetailFragment fd = (FileDetailFragment) getFragmentManager().findFragmentById(R.id.fileDetail);\r
     if (fd != null) {\r
@@ -103,10 +103,10 @@ public class FileListFragment extends FragmentListView {
   private void populateFileList() {\r
     String s = "/";\r
     for (String a : mDirNames)\r
-      s+= a+"/";\r
+      s+= a + "/";\r
 \r
     mStorageManager = new FileDataStorageManager(mAccount, getActivity().getContentResolver());\r
-    OCFile file = new OCFile(s);\r
+    OCFile file = mStorageManager.getFileByPath(s);\r
     mFiles = mStorageManager.getDirectoryContent(file);\r
     setListAdapter(new FileListListAdapter(file, mStorageManager, getActivity()));\r
   }\r