adding use ssl mode
authorBartek Przybylski <bart.p.pl@gmail.com>
Sun, 15 Apr 2012 07:54:21 +0000 (09:54 +0200)
committerBartek Przybylski <bart.p.pl@gmail.com>
Sun, 15 Apr 2012 07:54:21 +0000 (09:54 +0200)
res/layout/account_setup.xml
res/values/strings.xml
src/eu/alefzero/owncloud/ui/activity/AuthenticatorActivity.java

index 277ef36..9868b27 100644 (file)
                                        android:hint="@string/setup_hint_show_password"\r
                                        android:textColor="@android:color/black"\r
                                        android:onClick="onCheckboxClick"/>\r
+            </TableRow>\r
+            <TableRow android:id="@+id/tableRow6"\r
+                android:layout_width="fill_parent"\r
+                android:layout_height="wrap_content"\r
+                android:gravity="center_horizontal"\r
+                android:weightSum="1.0">\r
                 \r
+                <CheckBox\r
+          android:id="@+id/use_ssl"\r
+          android:layout_width="fill_parent"\r
+          android:layout_height="wrap_content"\r
+          android:layout_weight=".75"\r
+          android:hint="@string/use_ssl"\r
+          android:textColor="@android:color/black"\r
+          android:onClick="onCheckboxClick"/>\r
             </TableRow>\r
         </TableLayout>\r
 \r
index fc3fb85..7a2768f 100644 (file)
@@ -51,4 +51,5 @@
     <string name="uploader_upload_failed">Upload failed: </string>
     <string name="common_choose_account">Choose account</string>
     <string name="sync_string_contacts">Contacts</string>
+    <string name="use_ssl">Use Secure Connection</string>
 </resources>
index f134630..b6c9dda 100644 (file)
@@ -54,10 +54,15 @@ import eu.alefzero.owncloud.db.ProviderMeta.ProviderTableMeta;
 public class AuthenticatorActivity extends AccountAuthenticatorActivity {\r
     private Thread mAuthThread;\r
     private final Handler mHandler = new Handler();\r
+    private boolean mUseSSLConnection;\r
 \r
     public static final String PARAM_USERNAME = "param_Username";\r
     public static final String PARAM_HOSTNAME = "param_Hostname";\r
 \r
+    public AuthenticatorActivity() {\r
+      mUseSSLConnection = false;\r
+    }\r
+    \r
     @Override\r
     protected void onCreate(Bundle savedInstanceState) {\r
         super.onCreate(savedInstanceState);\r
@@ -162,12 +167,15 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity {
             url_text.setTextColor(Color.RED);\r
             hasErrors = true;\r
         } else {\r
-            url_text.setTextColor(Color.BLACK);\r
+            url_text.setTextColor(android.R.color.primary_text_light);\r
         }\r
         try {\r
             String url_str = url_text.getText().toString();\r
             if (!url_str.startsWith("http://") &&\r
                     !url_str.startsWith("https://")) {\r
+              if (mUseSSLConnection)\r
+                url_str = "https://" + url_str;\r
+              else\r
                 url_str = "http://" + url_str;\r
             }\r
             uri = new URL(url_str);\r
@@ -182,18 +190,33 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity {
             username_text.setTextColor(Color.RED);\r
             hasErrors = true;\r
         } else {\r
-            username_text.setTextColor(Color.BLACK);\r
+            username_text.setTextColor(android.R.color.primary_text_light);\r
         }\r
 \r
         if (password_text.getText().toString().trim().length() == 0) {\r
             password_text.setTextColor(Color.RED);\r
             hasErrors = true;\r
         } else {\r
-            password_text.setTextColor(Color.BLACK);\r
+            password_text.setTextColor(android.R.color.primary_text_light);\r
         }\r
         if (hasErrors) {\r
             return;\r
         }\r
+        \r
+        int new_port = uri.getPort();\r
+        if (new_port == -1) {\r
+          if (mUseSSLConnection)\r
+            new_port = 443;\r
+          else\r
+            new_port = 80;\r
+        }\r
+        \r
+        try {\r
+          uri = new URL(uri.getProtocol(), uri.getHost(), new_port, uri.getPath());\r
+        } catch (MalformedURLException e) {\r
+          e.printStackTrace(); // should not happend\r
+        }\r
+        \r
         showDialog(0);\r
         mAuthThread = AuthUtils.attemptAuth(uri,\r
                 username_text.getText().toString(),\r
@@ -205,17 +228,26 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity {
     /**\r
      * Handles the show password checkbox\r
      * @author robstar\r
+     * @author aqu\r
      * @param view\r
      */\r
     public void onCheckboxClick(View view) {\r
-       CheckBox checkbox = (CheckBox) findViewById(R.id.show_password);\r
-       TextView password_text = (TextView) findViewById(R.id.account_password);\r
-       \r
-       if(checkbox.isChecked()) {\r
-               password_text.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);\r
-       } else {\r
-               password_text.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);\r
-       }\r
+      switch (view.getId()) {\r
+        case R.id.show_password:\r
+          TextView password_text = (TextView) findViewById(R.id.account_password);\r
+          \r
+          if(((CheckBox)view).isChecked()) {\r
+            password_text.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);\r
+          } else {\r
+            password_text.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);\r
+          }\r
+        break;\r
+        case R.id.use_ssl:\r
+          mUseSSLConnection = ((CheckBox)view).isChecked();\r
+        break;\r
+        default:\r
+          Log.d("AuthActivity", "Clicked invalid view with id: " + view.getId());\r
+      }\r
        \r
     }\r
 }\r