Adjust styling and sizing for rationale dialog.
This commit is contained in:
parent
aeedab1531
commit
e0bd60f87c
3 changed files with 38 additions and 26 deletions
|
@ -20,23 +20,29 @@ import androidx.core.graphics.drawable.DrawableCompat;
|
|||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
|
||||
import org.signal.core.util.DimensionUnit;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.util.ThemeUtil;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class RationaleDialog {
|
||||
|
||||
public static MaterialAlertDialogBuilder createFor(@NonNull Context context, @NonNull String message, @DrawableRes int... drawables) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.permissions_rationale_dialog, null);
|
||||
ViewGroup header = view.findViewById(R.id.header_container);
|
||||
TextView text = view.findViewById(R.id.message);
|
||||
int iconSize = (int) DimensionUnit.DP.toPixels(32);
|
||||
|
||||
for (int i=0;i<drawables.length;i++) {
|
||||
Drawable drawable = ContextCompat.getDrawable(context, drawables[i]);
|
||||
Drawable drawable = Objects.requireNonNull(ContextCompat.getDrawable(context, drawables[i]));
|
||||
DrawableCompat.setTint(drawable, ContextCompat.getColor(context, R.color.white));
|
||||
ImageView imageView = new ImageView(context);
|
||||
imageView.setImageDrawable(drawable);
|
||||
imageView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
|
||||
|
||||
imageView.setLayoutParams(new LayoutParams(iconSize, iconSize));
|
||||
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
|
||||
header.addView(imageView);
|
||||
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:viewBindingIgnore="true"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
tools:viewBindingIgnore="true">
|
||||
|
||||
<LinearLayout android:id="@+id/header_container"
|
||||
android:background="@color/core_ultramarine"
|
||||
<LinearLayout
|
||||
android:id="@+id/header_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:background="@color/signal_colorPrimary"
|
||||
android:gravity="center"
|
||||
android:padding="40dp">
|
||||
android:orientation="horizontal"
|
||||
android:padding="48dp">
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView android:id="@+id/message"
|
||||
<TextView
|
||||
android:id="@+id/message"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="20dp"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:textSize="15sp"
|
||||
android:lineSpacingMultiplier="1.3"
|
||||
android:paddingHorizontal="24dp"
|
||||
android:paddingTop="16dp"
|
||||
android:scrollbars="vertical"
|
||||
tools:text="Signal needs access to your contacts and media in order to connect with friends, exchange messages, and make secure calls."/>
|
||||
android:textAppearance="@style/Signal.Text.BodyMedium"
|
||||
android:textColor="@color/signal_colorOnSurfaceVariant"
|
||||
tools:text="Signal needs access to your contacts and media in order to connect with friends, exchange messages, and make secure calls." />
|
||||
|
||||
</LinearLayout>
|
|
@ -31,6 +31,7 @@ import androidx.compose.ui.window.DialogProperties
|
|||
import org.signal.core.ui.Dialogs.PermissionRationaleDialog
|
||||
import org.signal.core.ui.Dialogs.SimpleAlertDialog
|
||||
import org.signal.core.ui.Dialogs.SimpleMessageDialog
|
||||
import org.signal.core.ui.theme.SignalTheme
|
||||
|
||||
object Dialogs {
|
||||
|
||||
|
@ -138,12 +139,14 @@ object Dialogs {
|
|||
onDismiss: () -> Unit
|
||||
) {
|
||||
Dialog(
|
||||
onDismissRequest = onDismiss
|
||||
onDismissRequest = onDismiss,
|
||||
properties = DialogProperties(usePlatformDefaultWidth = false)
|
||||
) {
|
||||
Surface(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth(fraction = 0.75f)
|
||||
.background(
|
||||
color = MaterialTheme.colorScheme.secondaryContainer,
|
||||
color = SignalTheme.colors.colorSurface2,
|
||||
shape = AlertDialogDefaults.shape
|
||||
)
|
||||
.clip(AlertDialogDefaults.shape)
|
||||
|
@ -154,26 +157,28 @@ object Dialogs {
|
|||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.background(color = MaterialTheme.colorScheme.primary)
|
||||
.padding(40.dp)
|
||||
.padding(48.dp)
|
||||
) {
|
||||
Icon(
|
||||
painter = icon,
|
||||
contentDescription = null,
|
||||
tint = MaterialTheme.colorScheme.onPrimary
|
||||
tint = MaterialTheme.colorScheme.onPrimary,
|
||||
modifier = Modifier.size(32.dp)
|
||||
)
|
||||
}
|
||||
Text(
|
||||
text = rationale,
|
||||
style = MaterialTheme.typography.bodyMedium,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||
modifier = Modifier
|
||||
.padding(top = 20.dp)
|
||||
.padding(horizontal = 20.dp)
|
||||
.padding(horizontal = 24.dp, vertical = 16.dp)
|
||||
)
|
||||
|
||||
FlowRow(
|
||||
horizontalArrangement = Arrangement.End,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(24.dp)
|
||||
.padding(start = 24.dp, end = 24.dp, bottom = 24.dp)
|
||||
) {
|
||||
TextButton(onClick = onDismiss) {
|
||||
Text(text = dismiss)
|
||||
|
|
Loading…
Add table
Reference in a new issue