Преглед на файлове

initial hide user/pass, show only if <nc12

tobiasKaminsky преди 8 години
родител
ревизия
8fd610a773

+ 37 - 8
src/main/java/com/owncloud/android/authentication/AuthenticatorActivity.java

@@ -1,4 +1,4 @@
-/**
+/*
  * ownCloud Android client application
  *
  * @author Bartek Przybylski
@@ -58,6 +58,7 @@ import android.os.Handler;
 import android.os.IBinder;
 import android.preference.PreferenceManager;
 import android.support.annotation.Nullable;
+import android.support.design.widget.TextInputLayout;
 import android.support.v4.app.DialogFragment;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
@@ -235,6 +236,8 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
     private boolean webViewLoginMethod;
     private String webViewUser;
     private String webViewPassword;
+    private TextInputLayout mUsernameInputLayout;
+    private TextInputLayout mPasswordInputLayout;
 
     /**
      * {@inheritDoc}
@@ -286,6 +289,9 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             /// initialize general UI elements
             initOverallUi();
 
+            mUsernameInputLayout = (TextInputLayout) findViewById(R.id.input_layout_account_username);
+            mPasswordInputLayout = (TextInputLayout) findViewById(R.id.input_layout_account_password);
+
             mOkButton = findViewById(R.id.buttonOK);
             mOkButton.setOnClickListener(new View.OnClickListener() {
 
@@ -493,6 +499,10 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         }
     }
 
+    public void onTestServerConnectionClick(View v) {
+        checkOcServer();
+    }
+
 
     /**
      * @param savedInstanceState Saved activity state, as in {{@link #onCreate(Bundle)}
@@ -997,10 +1007,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
 
             Intent getServerInfoIntent = new Intent();
             getServerInfoIntent.setAction(OperationsService.ACTION_GET_SERVER_INFO);
-            getServerInfoIntent.putExtra(
-                    OperationsService.EXTRA_SERVER_URL,
-                    normalizeUrlSuffix(uri)
-            );
+            getServerInfoIntent.putExtra(OperationsService.EXTRA_SERVER_URL, normalizeUrlSuffix(uri));
 
             if (mOperationsServiceBinder != null) {
                 mWaitingForOpId = mOperationsServiceBinder.queueNewOperation(getServerInfoIntent);
@@ -1295,9 +1302,23 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
 
             webViewLoginMethod = mServerInfo.mVersion.isWebLoginSupported();
 
-            setContentView(R.layout.account_setup_webview);
-            mLoginWebView = (WebView) findViewById(R.id.login_webview);
-            initWebViewLogin(mServerInfo.mBaseUrl);
+            if (webViewLoginMethod) {
+                // hide old login
+                mOkButton.setVisibility(View.GONE);
+                mUsernameInputLayout.setVisibility(View.GONE);
+                mPasswordInputLayout.setVisibility(View.GONE);
+
+                setContentView(R.layout.account_setup_webview);
+                mLoginWebView = (WebView) findViewById(R.id.login_webview);
+                initWebViewLogin(mServerInfo.mBaseUrl);
+
+                // checkBasicAuthorization(webViewUser, webViewPassword);
+            } else {
+                // show old login
+                mOkButton.setVisibility(View.VISIBLE);
+                mUsernameInputLayout.setVisibility(View.VISIBLE);
+                mPasswordInputLayout.setVisibility(View.VISIBLE);
+            }
 
             if (webViewLoginMethod) {
                 checkBasicAuthorization(webViewUser, webViewPassword);
@@ -1326,6 +1347,14 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             mOkButton.setEnabled(mServerIsValid);
         }
 
+        if (!mServerIsValid) {
+            // hide old login
+            mOkButton.setVisibility(View.GONE);
+            mUsernameInputLayout.setVisibility(View.GONE);
+            mPasswordInputLayout.setVisibility(View.GONE);
+        }
+
+
         /// very special case (TODO: move to a common place for all the remote operations)
         if (result.getCode() == ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED) {
             showUntrustedCertDialog(result);

+ 31 - 13
src/main/res/layout-land/account_setup.xml

@@ -108,6 +108,21 @@
 
                     </android.support.design.widget.TextInputLayout>
 
+					<ImageButton
+						android:id="@+id/testServerButton"
+						android:layout_width="wrap_content"
+						android:layout_height="wrap_content"
+						android:layout_gravity="center_vertical|right"
+						android:layout_marginRight="@dimen/alternate_half_padding"
+						android:padding="@dimen/zero"
+						android:scaleType="fitCenter"
+						android:src="@drawable/arrow_right"
+						android:tint="@color/white"
+						android:background="@android:color/transparent"
+						android:onClick="onTestServerConnectionClick"
+						android:contentDescription="@string/test_server_button"
+						/>
+
 					<ImageButton
 					    android:id="@+id/embeddedRefreshButton"
 					    android:layout_width="wrap_content"
@@ -191,9 +206,10 @@
                 </android.support.design.widget.TextInputLayout>
 
                 <android.support.design.widget.TextInputLayout
-                    android:id="@+id/input_layout_account_username"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content">
+					android:id="@+id/input_layout_account_username"
+					android:layout_width="match_parent"
+					android:layout_height="wrap_content"
+					android:visibility="gone">
 
 				<EditText
 					android:id="@+id/account_username"
@@ -209,9 +225,10 @@
                 </android.support.design.widget.TextInputLayout>
 
                 <android.support.design.widget.TextInputLayout
-                    android:id="@+id/input_layout_account_password"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content">
+					android:id="@+id/input_layout_account_password"
+					android:layout_width="match_parent"
+					android:layout_height="wrap_content"
+					android:visibility="gone">
 
                     <EditText
                         android:id="@+id/account_password"
@@ -252,16 +269,17 @@
         android:paddingTop="@dimen/standard_half_padding">
         
 		<android.support.v7.widget.AppCompatButton
-		    android:id="@+id/buttonOK"
+			android:id="@+id/buttonOK"
 			android:theme="@style/Button.Login"
 			style="@style/Button.Login"
-		    android:layout_width="wrap_content"
-		    android:layout_height="wrap_content"
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
 			android:padding="@dimen/standard_padding"
-		    android:layout_gravity="center_horizontal"
-		    android:enabled="false"
-		    android:text="@string/setup_btn_connect"
-            android:contentDescription="@string/setup_btn_connect"/>
+			android:layout_gravity="center_horizontal"
+			android:enabled="false"
+			android:text="@string/setup_btn_connect"
+			android:contentDescription="@string/setup_btn_connect"
+			android:visibility="gone"/>
 
 		<LinearLayout
 			android:layout_width="match_parent"

+ 21 - 3
src/main/res/layout/account_setup.xml

@@ -100,6 +100,21 @@
 
             </android.support.design.widget.TextInputLayout>
 
+            <ImageButton
+                android:id="@+id/testServerButton"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical|right"
+                android:layout_marginRight="@dimen/alternate_half_padding"
+                android:padding="@dimen/zero"
+                android:scaleType="fitCenter"
+                android:src="@drawable/arrow_right"
+                android:tint="@color/white"
+                android:background="@android:color/transparent"
+                android:onClick="onTestServerConnectionClick"
+                android:contentDescription="@string/test_server_button"
+                />
+
             <ImageButton
 			    android:id="@+id/embeddedRefreshButton"
 			    android:layout_width="wrap_content"
@@ -183,7 +198,8 @@
         <android.support.design.widget.TextInputLayout
             android:id="@+id/input_layout_account_username"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content">
+            android:layout_height="wrap_content"
+            android:visibility="gone">
 
             <EditText
                 android:id="@+id/account_username"
@@ -201,7 +217,8 @@
         <android.support.design.widget.TextInputLayout
             android:id="@+id/input_layout_account_password"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content">
+            android:layout_height="wrap_content"
+            android:visibility="gone">
 
             <EditText
                 android:id="@+id/account_password"
@@ -239,7 +256,8 @@
             android:padding="@dimen/standard_padding"
             android:enabled="false"
             android:text="@string/setup_btn_connect"
-            android:contentDescription="@string/setup_btn_connect"/>
+            android:contentDescription="@string/setup_btn_connect"
+            android:visibility="gone"/>
 
         <LinearLayout
             android:layout_width="match_parent"

+ 1 - 0
src/main/res/values/strings.xml

@@ -669,4 +669,5 @@
     <string name="folder_sync_folders">Configure folders</string>
 
   <string name="empty" translatable="false"/>
+    <string name="test_server_button">Test server connection</string>
 </resources>