diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalConfirmationDialog.java b/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalConfirmationDialog.java
deleted file mode 100644
index a3a7e1391281..000000000000
--- a/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalConfirmationDialog.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *
- * Nextcloud Android client application
- *
- * @author Tobias Kaminsky
- * Copyright (C) 2020 Tobias Kaminsky
- * Copyright (C) 2020 Nextcloud GmbH
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) 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 .
- */
-
-package com.owncloud.android.ui.dialog;
-
-import android.app.Dialog;
-import android.os.Bundle;
-
-import com.google.android.material.button.MaterialButton;
-import com.google.android.material.dialog.MaterialAlertDialogBuilder;
-import com.nextcloud.client.account.User;
-import com.nextcloud.client.di.Injectable;
-import com.nextcloud.client.jobs.BackgroundJobManager;
-import com.owncloud.android.R;
-import com.owncloud.android.utils.theme.ViewThemeUtils;
-
-import javax.inject.Inject;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
-import androidx.fragment.app.DialogFragment;
-
-public class AccountRemovalConfirmationDialog extends DialogFragment implements Injectable {
- private static final String KEY_USER = "USER";
-
- @Inject BackgroundJobManager backgroundJobManager;
- @Inject ViewThemeUtils viewThemeUtils;
- private User user;
-
- public static AccountRemovalConfirmationDialog newInstance(User user) {
- Bundle bundle = new Bundle();
- bundle.putParcelable(KEY_USER, user);
-
- AccountRemovalConfirmationDialog dialog = new AccountRemovalConfirmationDialog();
- dialog.setArguments(bundle);
-
- return dialog;
- }
-
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- Bundle arguments = getArguments();
- if (arguments != null) {
- user = arguments.getParcelable(KEY_USER);
- }
- }
-
- @Override
- public void onStart() {
- super.onStart();
-
- AlertDialog alertDialog = (AlertDialog) getDialog();
- if (alertDialog != null) {
-
- MaterialButton positiveButton = (MaterialButton) alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
- if (positiveButton != null) {
- viewThemeUtils.material.colorMaterialButtonPrimaryTonal(positiveButton);
- }
-
- MaterialButton negativeButton = (MaterialButton) alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE);
- if (negativeButton != null) {
- viewThemeUtils.material.colorMaterialButtonPrimaryBorderless(negativeButton);
- }
- }
- }
-
- @NonNull
- @Override
- public Dialog onCreateDialog(Bundle savedInstanceState) {
- MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireActivity())
- .setTitle(R.string.delete_account)
- .setMessage(getResources().getString(R.string.delete_account_warning, user.getAccountName()))
- .setIcon(R.drawable.ic_warning)
- .setPositiveButton(R.string.common_ok,
- (dialogInterface, i) -> backgroundJobManager.startAccountRemovalJob(user.getAccountName(),
- false))
- .setNegativeButton(R.string.common_cancel, null);
-
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(requireActivity(), builder);
-
- return builder.create();
- }
-}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalConfirmationDialog.kt b/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalConfirmationDialog.kt
new file mode 100644
index 000000000000..a32e818abe43
--- /dev/null
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalConfirmationDialog.kt
@@ -0,0 +1,105 @@
+/*
+ * Nextcloud Android client application
+ *
+ * @author Tobias Kaminsky
+ * Copyright (C) 2020 Tobias Kaminsky
+ * Copyright (C) 2020 Nextcloud GmbH
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) 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 .
+ */
+package com.owncloud.android.ui.dialog
+
+import android.app.Dialog
+import android.content.DialogInterface
+import android.os.Build
+import android.os.Bundle
+import androidx.appcompat.app.AlertDialog
+import androidx.fragment.app.DialogFragment
+import com.google.android.material.button.MaterialButton
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import com.nextcloud.client.account.User
+import com.nextcloud.client.di.Injectable
+import com.nextcloud.client.jobs.BackgroundJobManager
+import com.owncloud.android.R
+import com.owncloud.android.utils.theme.ViewThemeUtils
+import javax.inject.Inject
+
+class AccountRemovalConfirmationDialog : DialogFragment(), Injectable {
+ @JvmField
+ @Inject
+ var backgroundJobManager: BackgroundJobManager? = null
+
+ @JvmField
+ @Inject
+ var viewThemeUtils: ViewThemeUtils? = null
+
+ private var user: User? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ user = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ requireArguments().getParcelable(KEY_USER, User::class.java)
+ } else {
+ @Suppress("DEPRECATION")
+ requireArguments().getParcelable(KEY_USER)
+ }
+ }
+
+ override fun onStart() {
+ super.onStart()
+
+ val alertDialog = dialog as AlertDialog?
+
+ if (alertDialog != null) {
+ val positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as MaterialButton
+ viewThemeUtils?.material?.colorMaterialButtonPrimaryTonal(positiveButton)
+
+ val negativeButton = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE) as MaterialButton
+ viewThemeUtils?.material?.colorMaterialButtonPrimaryBorderless(negativeButton)
+ }
+ }
+
+ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+ val builder = MaterialAlertDialogBuilder(requireActivity())
+ .setTitle(R.string.delete_account)
+ .setMessage(resources.getString(R.string.delete_account_warning, user!!.accountName))
+ .setIcon(R.drawable.ic_warning)
+ .setPositiveButton(R.string.common_ok) { _: DialogInterface?, _: Int ->
+ backgroundJobManager?.startAccountRemovalJob(
+ user!!.accountName,
+ false
+ )
+ }
+ .setNegativeButton(R.string.common_cancel, null)
+
+ viewThemeUtils?.dialog?.colorMaterialAlertDialogBackground(requireActivity(), builder)
+
+ return builder.create()
+ }
+
+ companion object {
+
+ private const val KEY_USER = "USER"
+
+ @JvmStatic
+ fun newInstance(user: User?): AccountRemovalConfirmationDialog {
+ val bundle = Bundle()
+ bundle.putParcelable(KEY_USER, user)
+ val dialog = AccountRemovalConfirmationDialog()
+ dialog.arguments = bundle
+ return dialog
+ }
+ }
+}