Adding cancellation to uploads (WIP)
[pub/Android/ownCloud.git] / src / com / owncloud / android / Uploader.java
index d6e7a4a..7b66149 100644 (file)
@@ -30,6 +30,7 @@ import com.owncloud.android.datamodel.DataStorageManager;
 import com.owncloud.android.datamodel.FileDataStorageManager;\r
 import com.owncloud.android.datamodel.OCFile;\r
 import com.owncloud.android.files.services.FileUploader;\r
+import com.owncloud.android.network.OwnCloudClientUtils;\r
 \r
 import android.accounts.Account;\r
 import android.accounts.AccountManager;\r
@@ -84,7 +85,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
     private final static int DIALOG_WAITING = 1;\r
     private final static int DIALOG_NO_STREAM = 2;\r
     private final static int DIALOG_MULTIPLE_ACCOUNT = 3;\r
-    private final static int DIALOG_GET_DIRNAME = 4;\r
+    //private final static int DIALOG_GET_DIRNAME = 4;\r
 \r
     private final static int REQUEST_CODE_SETUP_ACCOUNT = 0;\r
 \r
@@ -94,8 +95,9 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
         getWindow().requestFeature(Window.FEATURE_NO_TITLE);\r
         mParents = new Stack<String>();\r
         mParents.add("");\r
-        if (getIntent().hasExtra(Intent.EXTRA_STREAM)) {\r
-            prepareStreamsToUpload();\r
+        /*if (getIntent().hasExtra(Intent.EXTRA_STREAM)) {\r
+            prepareStreamsToUpload();*/\r
+        if (prepareStreamsToUpload()) {\r
             mAccountManager = (AccountManager) getSystemService(Context.ACCOUNT_SERVICE);\r
             Account[] accounts = mAccountManager.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE);\r
             if (accounts.length == 0) {\r
@@ -106,7 +108,6 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
                 showDialog(DIALOG_MULTIPLE_ACCOUNT);\r
             } else {\r
                 mAccount = accounts[0];\r
-                setContentView(R.layout.uploader_layout);\r
                 mStorageManager = new FileDataStorageManager(mAccount, getContentResolver());\r
                 populateDirectoryList();\r
             }\r
@@ -131,6 +132,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
             builder.setMessage(R.string.uploader_wrn_no_account_text);\r
             builder.setCancelable(false);\r
             builder.setPositiveButton(R.string.uploader_wrn_no_account_setup_btn_text, new OnClickListener() {\r
+                @Override\r
                 public void onClick(DialogInterface dialog, int which) {\r
                     if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.ECLAIR_MR1) {\r
                         // using string value since in API7 this\r
@@ -153,6 +155,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
                 }\r
             });\r
             builder.setNegativeButton(R.string.uploader_wrn_no_account_quit_btn_text, new OnClickListener() {\r
+                @Override\r
                 public void onClick(DialogInterface dialog, int which) {\r
                     finish();\r
                 }\r
@@ -187,6 +190,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
             }\r
             builder.setTitle(R.string.common_choose_account);\r
             builder.setItems(ac, new OnClickListener() {\r
+                @Override\r
                 public void onClick(DialogInterface dialog, int which) {\r
                     mAccount = mAccountManager.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE)[which];\r
                     mStorageManager = new FileDataStorageManager(mAccount, getContentResolver());\r
@@ -195,12 +199,25 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
             });\r
             builder.setCancelable(true);\r
             builder.setOnCancelListener(new OnCancelListener() {\r
+                @Override\r
                 public void onCancel(DialogInterface dialog) {\r
                     dialog.cancel();\r
                     finish();\r
                 }\r
             });\r
             return builder.create();\r
+        case DIALOG_NO_STREAM:\r
+            builder.setIcon(android.R.drawable.ic_dialog_alert);\r
+            builder.setTitle(R.string.uploader_wrn_no_content_title);\r
+            builder.setMessage(R.string.uploader_wrn_no_content_text);\r
+            builder.setCancelable(false);\r
+            builder.setNegativeButton(R.string.common_cancel, new OnClickListener() {\r
+                @Override\r
+                public void onClick(DialogInterface dialog, int which) {\r
+                    finish();\r
+                }\r
+            });\r
+            return builder.create();\r
         default:\r
             throw new IllegalArgumentException("Unknown dialog id: " + id);\r
         }\r
@@ -215,6 +232,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
             mDirname = dirname;\r
         }\r
 \r
+        @Override\r
         public void onClick(DialogInterface dialog, int which) {\r
             Uploader.this.mUploadPath = mPath + mDirname.getText().toString();\r
             Uploader.this.mCreateDir = true;\r
@@ -234,6 +252,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
         }\r
     }\r
 \r
+    @Override\r
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {\r
         // click on folder in the list\r
         Log.d(TAG, "on item click");\r
@@ -251,6 +270,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
         populateDirectoryList();\r
     }\r
 \r
+    @Override\r
     public void onClick(View v) {\r
         // click on button\r
         switch (v.getId()) {\r
@@ -263,9 +283,9 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
             uploadFiles();\r
 \r
             break;\r
-        case android.R.id.button1: // dynamic action for create aditional dir\r
+        /*case android.R.id.button1: // dynamic action for create aditional dir\r
             showDialog(DIALOG_GET_DIRNAME);\r
-            break;\r
+            break;*/\r
         default:\r
             throw new IllegalArgumentException("Wrong element clicked");\r
         }\r
@@ -359,22 +379,19 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
         }*/\r
     }\r
 \r
-    private void prepareStreamsToUpload() {\r
+    private boolean prepareStreamsToUpload() {\r
         if (getIntent().getAction().equals(Intent.ACTION_SEND)) {\r
             mStreamsToUpload = new ArrayList<Parcelable>();\r
             mStreamsToUpload.add(getIntent().getParcelableExtra(Intent.EXTRA_STREAM));\r
         } else if (getIntent().getAction().equals(Intent.ACTION_SEND_MULTIPLE)) {\r
             mStreamsToUpload = getIntent().getParcelableArrayListExtra(Intent.EXTRA_STREAM);\r
-        } else {\r
-            // unknow action inserted\r
-            throw new IllegalArgumentException("Unknown action given: " + getIntent().getAction());\r
         }\r
+        return (mStreamsToUpload != null && mStreamsToUpload.get(0) != null);\r
     }\r
 \r
     public void uploadFiles() {\r
         try {\r
-            WebdavClient wdc = new WebdavClient(mAccount, getApplicationContext());\r
-            wdc.allowSelfsignedCertificates();\r
+            WebdavClient wdc = OwnCloudClientUtils.createOwnCloudClient(mAccount, getApplicationContext());\r
 \r
             // create last directory in path if necessary\r
             if (mCreateDir) {\r