mirror of
https://github.com/nextcloud/android.git
synced 2024-11-29 10:49:04 +03:00
Merge pull request #6442 from nextcloud/themeLogin
Theme login with server capability
This commit is contained in:
commit
d96b4e4c6c
1 changed files with 31 additions and 0 deletions
|
@ -52,6 +52,7 @@ import android.content.SharedPreferences;
|
|||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.net.Uri;
|
||||
import android.net.http.SslCertificate;
|
||||
import android.net.http.SslError;
|
||||
|
@ -92,6 +93,8 @@ import com.nextcloud.client.preferences.AppPreferences;
|
|||
import com.owncloud.android.MainApp;
|
||||
import com.owncloud.android.R;
|
||||
import com.owncloud.android.lib.common.OwnCloudAccount;
|
||||
import com.owncloud.android.lib.common.OwnCloudClient;
|
||||
import com.owncloud.android.lib.common.OwnCloudClientFactory;
|
||||
import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
|
||||
import com.owncloud.android.lib.common.OwnCloudCredentials;
|
||||
import com.owncloud.android.lib.common.OwnCloudCredentialsFactory;
|
||||
|
@ -105,6 +108,8 @@ import com.owncloud.android.lib.common.operations.RemoteOperation;
|
|||
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
|
||||
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
|
||||
import com.owncloud.android.lib.common.utils.Log_OC;
|
||||
import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation;
|
||||
import com.owncloud.android.lib.resources.status.OCCapability;
|
||||
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
|
||||
import com.owncloud.android.lib.resources.users.GetUserInfoRemoteOperation;
|
||||
import com.owncloud.android.operations.DetectAuthenticationMethodOperation.AuthenticationMethod;
|
||||
|
@ -134,6 +139,7 @@ import java.util.Map;
|
|||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
|
@ -234,6 +240,8 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
|||
@Inject OnboardingService onboarding;
|
||||
@Inject DeviceInfo deviceInfo;
|
||||
private boolean onlyAdd = false;
|
||||
@SuppressLint("ResourceAsColor") @ColorInt
|
||||
private int primaryColor = R.color.primary;
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
|
@ -413,6 +421,11 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
|||
|
||||
progressBar.setVisibility(View.GONE);
|
||||
mLoginWebView.setVisibility(View.VISIBLE);
|
||||
|
||||
ThemeUtils.colorStatusBar(AuthenticatorActivity.this, primaryColor);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
getWindow().setNavigationBarColor(primaryColor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -866,6 +879,24 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
|||
webViewPassword != null && !webViewPassword.isEmpty()) {
|
||||
checkBasicAuthorization(webViewUser, webViewPassword);
|
||||
} else {
|
||||
new Thread(() -> {
|
||||
OwnCloudClient client = OwnCloudClientFactory.createOwnCloudClient(Uri.parse(mServerInfo.mBaseUrl),
|
||||
this,
|
||||
true);
|
||||
RemoteOperationResult remoteOperationResult = new GetCapabilitiesRemoteOperation().execute(client);
|
||||
|
||||
if (remoteOperationResult.isSuccess() &&
|
||||
remoteOperationResult.getData() != null &&
|
||||
remoteOperationResult.getData().size() > 0) {
|
||||
OCCapability capability = (OCCapability) remoteOperationResult.getData().get(0);
|
||||
try {
|
||||
primaryColor = Color.parseColor(capability.getServerColor());
|
||||
} catch (IllegalArgumentException e) {
|
||||
// falls back to primary color
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
|
||||
setContentView(R.layout.account_setup_webview);
|
||||
mLoginWebView = findViewById(R.id.login_webview);
|
||||
initWebViewLogin(mServerInfo.mBaseUrl + WEB_LOGIN, false);
|
||||
|
|
Loading…
Reference in a new issue