Fixed: Rotating screen after viewing a file would return you to the
[pub/Android/ownCloud.git] / src / eu / alefzero / owncloud / FileDownloader.java
index b8fffbc..1936e8e 100644 (file)
@@ -22,6 +22,7 @@ import android.util.Log;
 import eu.alefzero.owncloud.authenticator.AccountAuthenticator;\r
 import eu.alefzero.owncloud.db.ProviderMeta.ProviderTableMeta;\r
 import eu.alefzero.owncloud.ui.activity.FileDisplayActivity;\r
+import eu.alefzero.owncloud.utils.OwnCloudVersion;\r
 import eu.alefzero.webdav.WebdavClient;\r
 \r
 public class FileDownloader extends Service {\r
@@ -82,10 +83,13 @@ public class FileDownloader extends Service {
 \r
     void downloadFile() {\r
         AccountManager am = (AccountManager) getSystemService(ACCOUNT_SERVICE);\r
-        Uri oc_url = Uri.parse(am.getUserData(mAccount,\r
-                AccountAuthenticator.KEY_OC_URL));\r
+        String oc_base_url = am.getUserData(mAccount, AccountAuthenticator.KEY_OC_BASE_URL);\r
+        OwnCloudVersion ocv = new OwnCloudVersion(am\r
+                .getUserData(mAccount, AccountAuthenticator.KEY_OC_VERSION));\r
+        String webdav_path = AccountUtils.getWebdavPath(ocv);\r
+        Uri oc_url = Uri.parse(oc_base_url+webdav_path);\r
 \r
-        WebdavClient wdc = new WebdavClient(oc_url);\r
+        WebdavClient wdc = new WebdavClient(Uri.parse(oc_base_url + webdav_path));\r
 \r
         String username = mAccount.name.split("@")[0];\r
         String password = "";\r
@@ -94,6 +98,7 @@ public class FileDownloader extends Service {
                     AccountAuthenticator.AUTH_TOKEN_TYPE, true);\r
         } catch (Exception e) {\r
             e.printStackTrace();\r
+            return;\r
         }\r
 \r
         wdc.setCredentials(username, password);\r
@@ -113,17 +118,19 @@ public class FileDownloader extends Service {
         File file = new File(dir, mFilePath.replace('/', '.'));\r
 \r
         Log.e(TAG, file.getAbsolutePath() + " " + oc_url.toString());\r
-        wdc.downloadFile(mFilePath, file);\r
-        ContentValues cv = new ContentValues();\r
-        cv.put(ProviderTableMeta.FILE_STORAGE_PATH, file.getAbsolutePath());\r
-        getContentResolver().update(\r
-                ProviderTableMeta.CONTENT_URI,\r
-                cv,\r
-                ProviderTableMeta.FILE_NAME + "=? AND "\r
-                        + ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",\r
-                new String[] {\r
-                        mFilePath.substring(mFilePath.lastIndexOf('/') + 1),\r
-                        mAccount.name });\r
+        Log.e(TAG, mFilePath+"");\r
+        if (wdc.downloadFile(mFilePath, file)) {\r
+            ContentValues cv = new ContentValues();\r
+            cv.put(ProviderTableMeta.FILE_STORAGE_PATH, file.getAbsolutePath());\r
+            getContentResolver().update(\r
+                    ProviderTableMeta.CONTENT_URI,\r
+                    cv,\r
+                    ProviderTableMeta.FILE_NAME + "=? AND "\r
+                            + ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",\r
+                    new String[] {\r
+                            mFilePath.substring(mFilePath.lastIndexOf('/') + 1),\r
+                            mAccount.name });            \r
+        }\r
         nm.cancel(1);\r
         Intent end = new Intent(DOWNLOAD_FINISH_MESSAGE);\r
         sendBroadcast(end);\r