mirror of
https://github.com/nextcloud/android.git
synced 2024-11-23 05:35:39 +03:00
Use material 3 style for SSO dialog
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
This commit is contained in:
parent
fb52b3f2ce
commit
d0ffbe2479
3 changed files with 83 additions and 107 deletions
|
@ -38,10 +38,11 @@ import android.text.SpannableStringBuilder;
|
|||
import android.text.style.ForegroundColorSpan;
|
||||
import android.text.style.StyleSpan;
|
||||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.nextcloud.android.sso.Constants;
|
||||
import com.owncloud.android.MainApp;
|
||||
import com.owncloud.android.R;
|
||||
import com.owncloud.android.databinding.ActivitySsoGrantPermissionBinding;
|
||||
import com.owncloud.android.databinding.DialogSsoGrantPermissionBinding;
|
||||
import com.owncloud.android.lib.common.OwnCloudAccount;
|
||||
import com.owncloud.android.lib.common.accounts.AccountUtils;
|
||||
import com.owncloud.android.lib.common.utils.Log_OC;
|
||||
|
@ -72,19 +73,37 @@ public class SsoGrantPermissionActivity extends BaseActivity {
|
|||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
ActivitySsoGrantPermissionBinding binding = ActivitySsoGrantPermissionBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
DialogSsoGrantPermissionBinding binding = DialogSsoGrantPermissionBinding.inflate(getLayoutInflater());
|
||||
|
||||
ComponentName callingActivity = getCallingActivity();
|
||||
|
||||
if (callingActivity != null) {
|
||||
packageName = callingActivity.getPackageName();
|
||||
String appName = getAppNameForPackage(packageName);
|
||||
final String appName = getAppNameForPackage(packageName);
|
||||
account = getIntent().getParcelableExtra(NEXTCLOUD_FILES_ACCOUNT);
|
||||
binding.permissionText.setText(makeSpecialPartsBold(
|
||||
|
||||
final SpannableStringBuilder dialogText = makeSpecialPartsBold(
|
||||
getString(R.string.single_sign_on_request_token, appName, account.name),
|
||||
appName,
|
||||
account.name));
|
||||
account.name);
|
||||
binding.permissionText.setText(dialogText);
|
||||
try {
|
||||
if (packageName != null) {
|
||||
Drawable appIcon = getPackageManager().getApplicationIcon(packageName);
|
||||
binding.appIcon.setImageDrawable(appIcon);
|
||||
}
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
Log_OC.e(TAG, "Error retrieving app icon", e);
|
||||
}
|
||||
|
||||
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
|
||||
.setView(binding.getRoot())
|
||||
.setCancelable(false)
|
||||
.setPositiveButton(R.string.permission_allow, (dialog, which) -> grantPermission())
|
||||
.setNegativeButton(R.string.permission_deny, (dialog, which) -> exitFailed());
|
||||
|
||||
builder.show();
|
||||
|
||||
Log_OC.v(TAG, "TOKEN-REQUEST: Calling Package: " + packageName);
|
||||
Log_OC.v(TAG, "TOKEN-REQUEST: App Name: " + appName);
|
||||
} else {
|
||||
|
@ -92,18 +111,6 @@ public class SsoGrantPermissionActivity extends BaseActivity {
|
|||
Log_OC.e(TAG, "Calling Package is null");
|
||||
setResultAndExit("Request was not executed properly. Use startActivityForResult()");
|
||||
}
|
||||
|
||||
try {
|
||||
if (packageName != null) {
|
||||
Drawable appIcon = getPackageManager().getApplicationIcon(packageName);
|
||||
binding.appIcon.setImageDrawable(appIcon);
|
||||
}
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
Log_OC.e(TAG, "Error retrieving app icon", e);
|
||||
}
|
||||
|
||||
binding.btnDecline.setOnClickListener(v -> exitFailed());
|
||||
binding.btnGrant.setOnClickListener(v -> grantPermission());
|
||||
}
|
||||
|
||||
private SpannableStringBuilder makeSpecialPartsBold(String text, String... toBeStyledText) {
|
||||
|
|
|
@ -1,89 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Nextcloud Android client application
|
||||
|
||||
Copyright (C) 2018 Andy Scherzinger
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
License as published by the Free Software Foundation; either
|
||||
version 3 of the License, or any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public
|
||||
License along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/standard_margin"
|
||||
android:orientation="horizontal"
|
||||
tools:context="com.owncloud.android.ui.activity.SsoGrantPermissionActivity">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/appIcon"
|
||||
android:layout_width="@dimen/user_icon_size"
|
||||
android:layout_height="@dimen/user_icon_size"
|
||||
android:layout_gravity="top|start"
|
||||
android:layout_marginEnd="@dimen/standard_margin"
|
||||
android:contentDescription="@null"
|
||||
android:src="@drawable/background"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/permissionText"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/permissionText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="@dimen/zero"
|
||||
android:paddingLeft="@dimen/zero"
|
||||
android:paddingEnd="@dimen/zero"
|
||||
android:paddingRight="@dimen/zero"
|
||||
android:paddingBottom="@dimen/standard_padding"
|
||||
android:textSize="@dimen/permission_dialog_text_size"
|
||||
app:layout_constraintBottom_toTopOf="@+id/btnGrant"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="Grant Nextcloud News access to your Nextcloud account incrediblyLong_username_with_123456789_number@Nextcloud_dummy.com?"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="end"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/btnDecline"
|
||||
style="@style/Button.Borderless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/standard_half_margin"
|
||||
android:text="@string/permission_deny"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/btnGrant"/>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/btnGrant"
|
||||
style="@style/Button.Borderless"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/permission_allow"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
58
app/src/main/res/layout/dialog_sso_grant_permission.xml
Normal file
58
app/src/main/res/layout/dialog_sso_grant_permission.xml
Normal file
|
@ -0,0 +1,58 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
Nextcloud Android client application
|
||||
|
||||
Copyright (C) 2018 Andy Scherzinger
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
License as published by the Free Software Foundation; either
|
||||
version 3 of the License, or any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public
|
||||
License along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:paddingHorizontal="@dimen/dialog_padding"
|
||||
android:paddingTop="@dimen/dialog_padding"
|
||||
tools:context="com.owncloud.android.ui.activity.SsoGrantPermissionActivity">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/appIcon"
|
||||
android:layout_width="@dimen/user_icon_size"
|
||||
android:layout_height="@dimen/user_icon_size"
|
||||
android:layout_gravity="top|start"
|
||||
android:layout_marginEnd="@dimen/standard_margin"
|
||||
android:contentDescription="@null"
|
||||
android:src="@drawable/background"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/permissionText"
|
||||
tools:src="@drawable/file_application" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/permissionText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="@dimen/zero"
|
||||
android:paddingLeft="@dimen/zero"
|
||||
android:paddingEnd="@dimen/zero"
|
||||
android:paddingRight="@dimen/zero"
|
||||
android:paddingBottom="@dimen/standard_padding"
|
||||
android:textSize="@dimen/permission_dialog_text_size"
|
||||
app:layout_constraintBottom_toTopOf="@+id/btnGrant"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="Grant Nextcloud News access to your Nextcloud account incrediblyLong_username_with_123456789_number@Nextcloud_dummy.com?" />
|
||||
|
||||
</LinearLayout>
|
Loading…
Reference in a new issue