Change custom dialog shape color with dark or light mode

Viewed 199

I am using custom rounded backgrounds for dialogs in my Android Studio app but am running into a problem. I have specified the color of the shape to be white but would like to have it change to black for dark mode (as the text automatically changes and is unreadable with the white background). I cannot figure out how to do this.

Here is the rounded background xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/white" />
    <corners android:radius="25dp" />
</shape>

Here is how I create my dialog:

var myDialog: Dialog
            myDialog = Dialog(this.requireContext())
            myDialog.setContentView(R.layout.popup_deposit);
            myDialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
            myDialog.show()

R.layout.popup_deposit:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:background="@drawable/rounded"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/textDepAmount"
        android:layout_width="228dp"
        android:layout_height="68dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="10dp"
        android:ems="100"
        android:hint="0"
        android:importantForAutofill="no"
        android:inputType="number"
        app:layout_constraintEnd_toStartOf="@+id/buttonDepAll"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView4" />

    <Button
        android:id="@+id/buttonDepAll"
        android:layout_width="68dp"
        android:layout_height="68dp"
        android:layout_marginEnd="10dp"
        android:text="@string/all"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/textDepAmount"
        app:layout_constraintTop_toTopOf="@+id/textDepAmount" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="244dp"
        android:layout_height="49dp"
        android:text="@string/how_much_money_would_you_like_to_deposit"
        android:textSize="18sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/buttonBack"
        app:layout_constraintTop_toTopOf="@+id/buttonBack" />

    <Button
        android:id="@+id/buttonConfirmDeposit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="2dp"
        android:enabled="false"
        android:text="@string/deposit"
        app:cornerRadius="25dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textDepAmount" />

    <ImageButton
        android:id="@+id/buttonBack"
        android:layout_width="54dp"
        android:layout_height="50dp"
        android:layout_marginTop="16dp"
        android:contentDescription="@string/back"
        app:layout_constraintEnd_toStartOf="@+id/textView4"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/ic_arrow_back_black_24dp" />
</androidx.constraintlayout.widget.ConstraintLayout>

Does anybody know how to do this? Any answers would be appreciated

0 Answers
Related