Skip to content

Commit

Permalink
Extended AccountRemovalDialog
Browse files Browse the repository at this point in the history
- add option to request deletion
- add android-library to settings.gradle

Signed-off-by: ZetaTom <70907959+ZetaTom@users.noreply.github.com>
  • Loading branch information
ZetaTom committed Nov 27, 2023
1 parent 90ec0dd commit 57d2bd6
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,13 @@ import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.nextcloud.client.account.User
import com.nextcloud.client.account.UserAccountManager
import com.nextcloud.client.di.Injectable
import com.nextcloud.client.jobs.BackgroundJobManager
import com.owncloud.android.R
import com.owncloud.android.databinding.AccountRemovalDialogBinding
import com.owncloud.android.datamodel.FileDataStorageManager
import com.owncloud.android.utils.DisplayUtils
import com.owncloud.android.utils.theme.ViewThemeUtils
import javax.inject.Inject

Expand Down Expand Up @@ -61,22 +64,41 @@ class AccountRemovalDialog : DialogFragment(), Injectable {
viewThemeUtils.platform.colorTextButtons(
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE), alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL)
)

binding.userName.text = UserAccountManager.getDisplayName(user)
binding.account.text = user?.let { DisplayUtils.convertIdn(it.accountName, false) }
}

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
_binding = AccountRemovalDialogBinding.inflate(layoutInflater)



val builder = MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.delete_account)
.setView(binding.root)
.setPositiveButton(R.string.common_ok) { _, _ -> }
.setNegativeButton(R.string.common_cancel) { _, _ -> }
.setPositiveButton("Continue") { _, _ ->
}

viewThemeUtils.dialog.colorMaterialAlertDialogBackground(requireActivity(), builder)

binding.radioLocalRemove.setOnClickListener {
binding.radioRequestDeletion.isChecked = false
(dialog as AlertDialog).getButton(AlertDialog.BUTTON_POSITIVE).text = "Remove Account"
}
binding.radioRequestDeletion.setOnClickListener {
binding.radioLocalRemove.isChecked = false
(dialog as AlertDialog).getButton(AlertDialog.BUTTON_POSITIVE).text = "Request Deletion"
}

return builder.create()
}

private fun hasDropAccount() {
val capability = FileDataStorageManager(user, context?.contentResolver).getCapability(user)
}

companion object {
private const val KEY_USER = "USER"

Expand Down
40 changes: 22 additions & 18 deletions app/src/main/res/layout/account_removal_dialog.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
-->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
Expand All @@ -29,30 +30,33 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:padding="12dp"
android:orientation="horizontal">
android:orientation="horizontal"
android:padding="12dp">

<ImageView
android:layout_width="@dimen/user_icon_size"
android:layout_height="@dimen/user_icon_size"
android:layout_margin="6dp"
android:contentDescription="@string/avatar"
android:src="@drawable/ic_user" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">

<com.google.android.material.textview.MaterialTextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/user_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Alice Muster"
android:textAppearance="@style/TextAppearance.Material3.LabelLarge" />
android:textAppearance="@style/TextAppearance.Material3.LabelLarge"
tools:text="Alice Muster" />

<com.google.android.material.textview.MaterialTextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/account"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="alice@cloud.nextcloud.com" />
tools:text="alice@cloud.nextcloud.com" />

</LinearLayout>

Expand All @@ -70,26 +74,26 @@
android:paddingVertical="8dp">

<androidx.appcompat.widget.AppCompatRadioButton
android:layout_width="wrap_content"
android:id="@+id/radio_local_remove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" />
tools:checked="true" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">

<com.google.android.material.textview.MaterialTextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Remove local Account"
android:text="@string/remove_local_account"
android:textAppearance="@style/TextAppearance.Material3.LabelLarge" />

<com.google.android.material.textview.MaterialTextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Remove account from device and delete all local files" />
android:text="@string/remove_local_account_details" />

</LinearLayout>

Expand All @@ -103,25 +107,25 @@
android:paddingVertical="8dp">

<androidx.appcompat.widget.AppCompatRadioButton
android:layout_width="wrap_content"
android:id="@+id/radio_request_deletion"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">

<com.google.android.material.textview.MaterialTextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Request account deletion"
android:text="@string/request_account_deletion"
android:textAppearance="@style/TextAppearance.Material3.LabelLarge" />

<com.google.android.material.textview.MaterialTextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Request permanent deletion of account by service provider" />
android:text="@string/request_account_deletion_details" />

</LinearLayout>

Expand Down
4 changes: 4 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,10 @@
<string name="common_skip">Skip</string>
<string name="common_copy">Copy</string>
<string name="about_title">About</string>
<string name="remove_local_account">Remove local Account</string>
<string name="remove_local_account_details">Remove account from device and delete all local files</string>
<string name="request_account_deletion">Request account deletion</string>
<string name="request_account_deletion_details">Request permanent deletion of account by service provider</string>
<string name="delete_account">Remove account</string>
<string name="delete_account_warning">Remove account %s and delete all local files?\n\nDeletion cannot be undone.</string>
<string name="avatar">Avatar</string>
Expand Down
6 changes: 6 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,9 @@ include ':appscan'
// substitute module('com.github.nextcloud.android-common:ui') using project(':ui')
// }
//}

includeBuild('../android-library') {
dependencySubstitution {
substitute module('com.github.nextcloud:android-library') using project(':library')
}
}

0 comments on commit 57d2bd6

Please sign in to comment.