diff --git a/app/src/main/java/com/nextcloud/ui/ChooseStorageLocationDialogFragment.kt b/app/src/main/java/com/nextcloud/ui/ChooseStorageLocationDialogFragment.kt
index 6a67415c0168..e34657e857fa 100644
--- a/app/src/main/java/com/nextcloud/ui/ChooseStorageLocationDialogFragment.kt
+++ b/app/src/main/java/com/nextcloud/ui/ChooseStorageLocationDialogFragment.kt
@@ -14,12 +14,11 @@ import android.preference.PreferenceManager
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-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.di.Injectable
import com.nextcloud.client.preferences.AppPreferencesImpl
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.MainApp
import com.owncloud.android.R
import com.owncloud.android.databinding.DialogDataStorageLocationBinding
@@ -49,15 +48,6 @@ class ChooseStorageLocationDialogFragment :
private val selectedPrivacyType
get() = if (binding.allowMediaIndexSwitch.isChecked) PrivacyType.PUBLIC else PrivacyType.PRIVATE
- override fun onStart() {
- super.onStart()
- val alertDialog = dialog as AlertDialog
-
- val positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as? MaterialButton
- positiveButton?.let {
- viewThemeUtils.material.colorMaterialButtonPrimaryTonal(positiveButton)
- }
- }
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
binding = DialogDataStorageLocationBinding.inflate(layoutInflater)
@@ -72,7 +62,8 @@ class ChooseStorageLocationDialogFragment :
dialog.dismiss()
}.setView(binding.root)
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(requireContext(), builder)
+ // NMC customization: customize dialog bg color
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireContext(), builder)
binding.storageRadioGroup.setOnCheckedChangeListener { _, _ ->
updateMediaIndexSwitch()
diff --git a/app/src/main/java/com/nmc/android/utils/DialogThemeUtils.kt b/app/src/main/java/com/nmc/android/utils/DialogThemeUtils.kt
new file mode 100644
index 000000000000..0898f2b46ca2
--- /dev/null
+++ b/app/src/main/java/com/nmc/android/utils/DialogThemeUtils.kt
@@ -0,0 +1,30 @@
+package com.nmc.android.utils
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.os.Build
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import com.google.android.material.shape.MaterialShapeDrawable
+import com.owncloud.android.R
+
+object DialogThemeUtils {
+ fun colorMaterialAlertDialogBackground(context: Context, dialogBuilder: MaterialAlertDialogBuilder) {
+ val materialShapeDrawable = MaterialShapeDrawable(
+ context,
+ null,
+ androidx.appcompat.R.attr.alertDialogStyle,
+ com.google.android.material.R.style.MaterialAlertDialog_MaterialComponents
+ )
+ materialShapeDrawable.initializeElevationOverlay(context)
+ materialShapeDrawable.fillColor =
+ ColorStateList.valueOf(context.resources.getColor(R.color.alert_bg_color, null))
+
+ // dialogCornerRadius first appeared in Android Pie
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ val radius: Float =
+ context.resources.getDimension(com.nextcloud.android.common.ui.R.dimen.dialogBorderRadius)
+ materialShapeDrawable.setCornerSize(radius)
+ }
+ dialogBuilder.background = materialShapeDrawable
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt
index 14033d2380cb..08f6e2151ebf 100644
--- a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt
+++ b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt
@@ -87,6 +87,7 @@ import com.nextcloud.utils.extensions.observeWorker
import com.nextcloud.utils.extensions.setVisibleIf
import com.nextcloud.utils.fileNameValidator.FileNameValidator.checkFolderPath
import com.nextcloud.utils.view.FastScrollUtils
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.MainApp
import com.owncloud.android.R
import com.owncloud.android.authentication.PassCodeManager
@@ -379,7 +380,8 @@ class FileDisplayActivity :
) { dialog: DialogInterface?, which: Int -> dialog?.dismiss() }
.setIcon(R.drawable.ic_settings)
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(applicationContext, builder)
+ // NMC customization: customize dialog bg color
+ DialogThemeUtils.colorMaterialAlertDialogBackground(applicationContext, builder)
builder.create().show()
} catch (e: BadTokenException) {
@@ -3094,7 +3096,8 @@ class FileDisplayActivity :
showLoadingDialog(getString(R.string.retrieving_file))
}
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(applicationContext, builder)
+ // NMC customization: customize dialog bg color
+ DialogThemeUtils.colorMaterialAlertDialogBackground(applicationContext, builder)
val dialog = builder.create()
dismissLoadingDialog()
diff --git a/app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java
index 99e68a196af5..e5b01824fa7c 100755
--- a/app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java
+++ b/app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java
@@ -58,6 +58,7 @@
import com.nextcloud.utils.extensions.IntentExtensionsKt;
import com.nextcloud.utils.fileNameValidator.FileNameTextWatcher;
import com.nextcloud.utils.fileNameValidator.FileNameValidator;
+import com.nmc.android.utils.DialogThemeUtils;
import com.owncloud.android.MainApp;
import com.owncloud.android.R;
import com.owncloud.android.databinding.ReceiveExternalFilesBinding;
@@ -366,7 +367,8 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
});
builder.setNeutralButton(R.string.uploader_wrn_no_account_quit_btn_text,
(dialog, which) -> requireActivity().finish());
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(requireContext(), builder);
+ // NMC customization: customize dialog bg color
+ DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(requireContext(), builder);
return builder.create();
}
}
diff --git a/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java
index 97f2f24fcb00..fee876020afb 100644
--- a/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java
+++ b/app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java
@@ -55,6 +55,7 @@
import com.nextcloud.utils.extensions.ContextExtensionsKt;
import com.nextcloud.utils.mdm.MDMConfig;
import com.owncloud.android.BuildConfig;
+import com.nmc.android.utils.DialogThemeUtils;
import com.owncloud.android.MainApp;
import com.owncloud.android.R;
import com.owncloud.android.authentication.AuthenticatorActivity;
@@ -639,7 +640,7 @@ private void onRenewE2ECertificateResult(Preference preference, E2ECertificateRe
}
private void showRemoveE2EAlertDialog(PreferenceCategory preferenceCategoryMore, Preference preference) {
- new MaterialAlertDialogBuilder(this, R.style.FallbackTheming_Dialog)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.FallbackTheming_Dialog)
.setTitle(R.string.prefs_e2e_mnemonic)
.setMessage(getString(R.string.remove_e2e_message))
.setCancelable(true)
@@ -654,8 +655,10 @@ private void showRemoveE2EAlertDialog(PreferenceCategory preferenceCategoryMore,
}
dialog.dismiss();
- })
- .create()
+ });
+ // NMC customization: customize dialog bg color
+ DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(this, builder);
+ builder.create()
.show();
}
@@ -1175,14 +1178,16 @@ public void handleMnemonicRequest(Intent data) {
}
private void showMnemonicAlertDialogDialog(String mnemonic) {
- new MaterialAlertDialogBuilder(this, R.style.FallbackTheming_Dialog)
- .setTitle(R.string.prefs_e2e_mnemonic)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.FallbackTheming_Dialog)
+ .setTitle(R.string.dialog_e2e_mnemonic_title)
.setMessage(mnemonic)
.setPositiveButton(R.string.common_ok, (dialog, which) -> dialog.dismiss())
.setNegativeButton(R.string.common_cancel, (dialog, i) -> dialog.dismiss())
.setNeutralButton(R.string.common_copy, (dialog, i) ->
- ClipboardUtil.copyToClipboard(this, mnemonic, false))
- .create()
+ ClipboardUtil.copyToClipboard(this, mnemonic, false));
+ // NMC customization: customize dialog bg color
+ DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(this, builder);
+ builder.create()
.show();
}
diff --git a/app/src/main/java/com/owncloud/android/ui/activity/StorageMigration.java b/app/src/main/java/com/owncloud/android/ui/activity/StorageMigration.java
index 02a1fb67b4d8..c38ebcad261b 100644
--- a/app/src/main/java/com/owncloud/android/ui/activity/StorageMigration.java
+++ b/app/src/main/java/com/owncloud/android/ui/activity/StorageMigration.java
@@ -20,6 +20,7 @@
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.nextcloud.client.account.User;
+import com.nmc.android.utils.DialogThemeUtils;
import com.owncloud.android.MainApp;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
@@ -106,7 +107,8 @@ public static void a(ViewThemeUtils viewThemeUtils, Context context) {
});
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(context, builder);
+ // NMC customization: customize dialog bg color
+ DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(context, builder);
AlertDialog alertDialog = builder.create();
@@ -157,7 +159,8 @@ private void askToOverride() {
progressDialog.getButton(ProgressDialog.BUTTON_POSITIVE).setVisibility(View.GONE);
});
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(mContext, builder);
+ // NMC customization: customize dialog bg color
+ DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(mContext, builder);
builder.create().show();
}
@@ -250,7 +253,8 @@ private void askToStillMove() {
}
});
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(mContext, builder);
+ // NMC customization: customize dialog bg color
+ DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(mContext, builder);
builder.create().show();
}
diff --git a/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt b/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt
index 662b879f0bce..3ccc2bd957d4 100644
--- a/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt
+++ b/app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt
@@ -35,6 +35,7 @@ import com.nextcloud.client.jobs.upload.FileUploadWorker
import com.nextcloud.client.preferences.SubFolderRule
import com.nextcloud.ui.component.UploadWarningCard
import com.nextcloud.utils.BatteryOptimizationHelper
+import com.nmc.android.utils.DialogThemeUtils
import com.nextcloud.utils.extensions.getParcelableArgument
import com.nextcloud.utils.extensions.isDialogFragmentReady
import com.nextcloud.utils.extensions.setVisibleIf
@@ -240,7 +241,8 @@ class SyncedFoldersActivity :
.setTitle(R.string.autoupload_disable_power_save_check)
.setMessage(getString(R.string.power_save_check_dialog_message))
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(this, builder)
+ // NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(this, builder)
return builder.create()
}
@@ -888,7 +890,7 @@ class SyncedFoldersActivity :
return
}
- val dialog = MaterialAlertDialogBuilder(this, R.style.Theme_ownCloud_Dialog)
+ val dialog = MaterialAlertDialogBuilder(this)
.setTitle(R.string.battery_optimization_title)
.setMessage(R.string.battery_optimization_message)
.setPositiveButton(R.string.battery_optimization_disable) { _, _ ->
@@ -897,11 +899,9 @@ class SyncedFoldersActivity :
.setNeutralButton(R.string.battery_optimization_close, null)
.setIcon(R.drawable.ic_battery_alert)
- val alertDialog = dialog.show()
+ // NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(this, dialog)
- viewThemeUtils.platform.colorTextButtons(
- alertDialog.getButton(AlertDialog.BUTTON_POSITIVE),
- alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL)
- )
+ dialog.show()
}
}
diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/StoragePathAdapter.kt b/app/src/main/java/com/owncloud/android/ui/adapter/StoragePathAdapter.kt
index 6b23d5098ba7..80da68bad25f 100644
--- a/app/src/main/java/com/owncloud/android/ui/adapter/StoragePathAdapter.kt
+++ b/app/src/main/java/com/owncloud/android/ui/adapter/StoragePathAdapter.kt
@@ -29,7 +29,6 @@ class StoragePathAdapter(
val storagePathItem = pathList[position]
holder.binding.btnStoragePath.setIconResource(storagePathItem.icon)
holder.binding.btnStoragePath.text = storagePathItem.name
- viewThemeUtils.material.colorMaterialButtonPrimaryBorderless(holder.binding.btnStoragePath)
}
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalDialog.kt b/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalDialog.kt
index 3516bf4564ce..595a0f2696ab 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalDialog.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalDialog.kt
@@ -9,30 +9,21 @@
package com.owncloud.android.ui.dialog
import android.app.Dialog
-import android.graphics.drawable.Drawable
+import android.content.DialogInterface
import android.os.Bundle
-import android.view.View
-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.account.UserAccountManager
import com.nextcloud.client.di.Injectable
import com.nextcloud.client.jobs.BackgroundJobManager
import com.nextcloud.utils.extensions.getParcelableArgument
+import com.nmc.android.utils.DialogThemeUtils
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.DisplayUtils.AvatarGenerationListener
import com.owncloud.android.utils.theme.ViewThemeUtils
import javax.inject.Inject
-class AccountRemovalDialog :
- DialogFragment(),
- AvatarGenerationListener,
- Injectable {
+// NMC Customization: We don't need two option for logout. On logout directly logout the user locally from the app
+class AccountRemovalDialog : DialogFragment(), Injectable {
@Inject
lateinit var backgroundJobManager: BackgroundJobManager
@@ -41,134 +32,33 @@ class AccountRemovalDialog :
lateinit var viewThemeUtils: ViewThemeUtils
private var user: User? = null
- private lateinit var alertDialog: AlertDialog
- private var _binding: AccountRemovalDialogBinding? = null
- val binding get() = _binding!!
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
user = requireArguments().getParcelableArgument(KEY_USER, User::class.java)
}
- override fun onStart() {
- super.onStart()
-
- // disable positive button and apply theming
- alertDialog = dialog as AlertDialog
- alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).isEnabled = false
-
- viewThemeUtils.platform.themeRadioButton(binding.radioLocalRemove)
- viewThemeUtils.platform.themeRadioButton(binding.radioRequestDeletion)
- viewThemeUtils.material.colorMaterialButtonPrimaryTonal(
- alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as MaterialButton
- )
- viewThemeUtils.material.colorMaterialButtonPrimaryBorderless(
- alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE) as MaterialButton
- )
-
- 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)
-
- // start avatar generation
- setAvatar()
-
- // hide second option when plug-in isn't installed
- if (hasDropAccount()) {
- binding.requestDeletion.visibility = View.VISIBLE
- }
-
- val builder =
- MaterialAlertDialogBuilder(requireActivity())
- .setTitle(R.string.delete_account)
- .setView(binding.root)
- .setNegativeButton(R.string.common_cancel) { _, _ -> }
- .setPositiveButton(R.string.delete_account) { _, _ -> removeAccount() }
-
- // allow selection by clicking on list element
- binding.localRemove.setOnClickListener {
- binding.radioLocalRemove.performClick()
- }
- binding.requestDeletion.setOnClickListener {
- binding.radioRequestDeletion.performClick()
- }
-
- // set listeners for custom radio button list
- binding.radioLocalRemove.setOnClickListener {
- binding.radioRequestDeletion.isChecked = false
- alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).apply {
- text = getText(R.string.delete_account)
- isEnabled = true
- }
- }
- binding.radioRequestDeletion.setOnClickListener {
- binding.radioLocalRemove.isChecked = false
- alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).apply {
- text = getString(R.string.request_account_deletion_button)
- isEnabled = true
+ 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)
+ // NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireActivity(), builder)
return builder.create()
}
- /**
- * Get value of `drop-account` capability.
- */
- private fun hasDropAccount(): Boolean {
- val capability = FileDataStorageManager(user, context?.contentResolver).getCapability(user)
- return capability.dropAccount.isTrue
- }
-
- /**
- * Start removal of account. Depending on which option is checked, either a browser will open to request deletion,
- * or the local account will be removed immediately.
- */
- private fun removeAccount() {
- user?.let { user ->
- if (binding.radioRequestDeletion.isChecked) {
- DisplayUtils.startLinkIntent(activity, user.server.uri.toString() + DROP_ACCOUNT_URI)
- } else {
- backgroundJobManager.startAccountRemovalJob(user.accountName, false)
- }
- }
- }
-
- /**
- * Start avatar generation.
- */
- private fun setAvatar() {
- try {
- val imageView = binding.userIcon
- imageView.tag = user!!.accountName
- DisplayUtils.setAvatar(
- user!!,
- this,
- resources.getDimension(R.dimen.list_item_avatar_icon_radius),
- resources,
- imageView,
- context
- )
- } catch (_: Exception) {
- }
- }
-
- override fun avatarGenerated(avatarDrawable: Drawable?, callContext: Any?) {
- avatarDrawable?.let {
- binding.userIcon.setImageDrawable(it)
- }
- }
-
- override fun shouldCallGeneratedCallback(tag: String?, callContext: Any?): Boolean = binding.userIcon.tag == tag
-
companion object {
private const val KEY_USER = "USER"
- private const val DROP_ACCOUNT_URI = "/settings/user/drop_account"
@JvmStatic
fun newInstance(user: User) = AccountRemovalDialog().apply {
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/AppPassCodeDialog.kt b/app/src/main/java/com/owncloud/android/ui/dialog/AppPassCodeDialog.kt
index 4859fcfc2529..812f2d0e491a 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/AppPassCodeDialog.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/AppPassCodeDialog.kt
@@ -19,6 +19,7 @@ import com.nextcloud.client.di.Injectable
import com.nextcloud.client.preferences.AppPreferences
import com.nextcloud.utils.extensions.setVisibleIf
import com.nextcloud.utils.mdm.MDMConfig
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.R
import com.owncloud.android.databinding.DialogAppPasscodeBinding
import com.owncloud.android.ui.activity.SettingsActivity
@@ -43,12 +44,7 @@ class AppPassCodeDialog :
override fun onStart() {
super.onStart()
- val alertDialog = dialog as AlertDialog
- val positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as? MaterialButton
- positiveButton?.let {
- viewThemeUtils.material.colorMaterialButtonPrimaryTonal(it)
- }
checkPositiveButtonActiveness()
val dismissable = arguments?.getBoolean(ARG_DISMISSABLE, true) ?: true
@@ -70,7 +66,6 @@ class AppPassCodeDialog :
binding.lockDeviceCredentials.setVisibleIf(deviceCredentialsEnabled && deviceCredentialsAvailable)
binding.lockNone.setVisibleIf(!enforceProtection)
- setupTheme()
setCurrentSelection()
setupListener()
@@ -89,20 +84,12 @@ class AppPassCodeDialog :
builder.setCancelable(dismissable)
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(requireContext(), builder)
+ // NMC customization: customize dialog bg color
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireContext(), builder)
return builder.create()
}
- private fun setupTheme() {
- viewThemeUtils.platform.apply {
- colorTextView(binding.dialogTitle)
- themeRadioButton(binding.lockPasscode)
- themeRadioButton(binding.lockDeviceCredentials)
- themeRadioButton(binding.lockNone)
- }
- }
-
private fun setCurrentSelection() {
val radioGroup = binding.lockRadioGroup
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/ChooseRichDocumentsTemplateDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/ChooseRichDocumentsTemplateDialogFragment.kt
index 1afec56af969..079a2cdd0f3e 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/ChooseRichDocumentsTemplateDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/ChooseRichDocumentsTemplateDialogFragment.kt
@@ -27,6 +27,7 @@ import com.nextcloud.client.network.ClientFactory
import com.nextcloud.utils.extensions.getParcelableArgument
import com.nextcloud.utils.extensions.getTypedActivity
import com.nextcloud.utils.fileNameValidator.FileNameValidator
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.MainApp
import com.owncloud.android.R
import com.owncloud.android.databinding.ChooseTemplateBinding
@@ -99,15 +100,9 @@ class ChooseRichDocumentsTemplateDialogFragment :
alertDialog?.let {
positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as? MaterialButton
positiveButton?.let {
- viewThemeUtils.material.colorMaterialButtonPrimaryTonal(it)
it.setOnClickListener(this)
it.isEnabled = false
}
-
- val negativeButton = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE) as? MaterialButton
- negativeButton?.let {
- viewThemeUtils.material.colorMaterialButtonPrimaryBorderless(negativeButton)
- }
}
checkEnablingCreateButton()
@@ -130,7 +125,6 @@ class ChooseRichDocumentsTemplateDialogFragment :
val activity = activity ?: throw IllegalArgumentException("Activity may not be null")
initFilenames(arguments)
- viewThemeUtils.material.colorTextInputLayout(binding.filenameContainer)
val type = Type.valueOf(arguments.getString(ARG_TYPE) ?: "")
@@ -184,8 +178,8 @@ class ChooseRichDocumentsTemplateDialogFragment :
.setNegativeButton(R.string.common_cancel, null)
.setTitle(titleTextId)
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(activity, builder)
-
+ //NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(activity, builder)
return builder
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt
index 733205a9db3a..81164fe3f2d4 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt
@@ -33,6 +33,7 @@ import com.nextcloud.client.network.ClientFactory
import com.nextcloud.client.network.ClientFactory.CreationException
import com.nextcloud.utils.extensions.getParcelableArgument
import com.nextcloud.utils.fileNameValidator.FileNameValidator
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.MainApp
import com.owncloud.android.R
import com.owncloud.android.databinding.ChooseTemplateBinding
@@ -94,14 +95,8 @@ class ChooseTemplateDialogFragment :
super.onStart()
val alertDialog = dialog as AlertDialog
- val negativeButton = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE) as? MaterialButton
- negativeButton?.let {
- viewThemeUtils.material.colorMaterialButtonPrimaryBorderless(negativeButton)
- }
-
val positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as? MaterialButton
positiveButton?.let {
- viewThemeUtils.material.colorMaterialButtonPrimaryTonal(positiveButton)
positiveButton.setOnClickListener(this)
positiveButton.isEnabled = false
positiveButton.isClickable = false
@@ -134,10 +129,6 @@ class ChooseTemplateDialogFragment :
val inflater = requireActivity().layoutInflater
_binding = ChooseTemplateBinding.inflate(inflater, null, false)
- viewThemeUtils.material.colorTextInputLayout(
- binding.filenameContainer
- )
-
binding.filename.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) = Unit
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) = Unit
@@ -166,7 +157,8 @@ class ChooseTemplateDialogFragment :
.setNegativeButton(R.string.common_cancel, null)
.setTitle(title)
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(binding.list.context, builder)
+ //NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(binding.list.context, builder)
return builder.create()
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/ConfirmationDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/ConfirmationDialogFragment.kt
index 02667163efa7..053979648922 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/ConfirmationDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/ConfirmationDialogFragment.kt
@@ -14,12 +14,11 @@ import android.R
import android.app.Dialog
import android.content.DialogInterface
import android.os.Bundle
-import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import androidx.fragment.app.DialogFragment
-import com.google.android.material.button.MaterialButton
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.nextcloud.client.di.Injectable
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.utils.theme.ViewThemeUtils
import javax.inject.Inject
@@ -33,29 +32,6 @@ open class ConfirmationDialogFragment :
private var mListener: ConfirmationDialogFragmentListener? = null
- override fun onStart() {
- super.onStart()
-
- val alertDialog = dialog as AlertDialog?
-
- if (alertDialog != null) {
- val positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as MaterialButton?
- if (positiveButton != null) {
- viewThemeUtils?.material?.colorMaterialButtonPrimaryTonal(positiveButton)
- }
-
- val negativeButton = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE) as MaterialButton?
- if (negativeButton != null) {
- viewThemeUtils?.material?.colorMaterialButtonPrimaryBorderless(negativeButton)
- }
-
- val neutralButton = alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL) as MaterialButton?
- if (neutralButton != null) {
- viewThemeUtils?.material?.colorMaterialButtonPrimaryBorderless(neutralButton)
- }
- }
- }
-
fun setOnConfirmationListener(listener: ConfirmationDialogFragmentListener?) {
mListener = listener
}
@@ -116,7 +92,8 @@ open class ConfirmationDialogFragment :
}
}
- viewThemeUtils?.dialog?.colorMaterialAlertDialogBackground(requireActivity(), builder)
+ // NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireActivity(), builder)
return builder.create()
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.kt
index 12fddaf4fbf2..1f2b8f2696e2 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.kt
@@ -30,6 +30,7 @@ import com.nextcloud.utils.autoRename.AutoRename
import com.nextcloud.utils.extensions.getParcelableArgument
import com.nextcloud.utils.extensions.typedActivity
import com.nextcloud.utils.fileNameValidator.FileNameValidator
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.R
import com.owncloud.android.databinding.EditBoxDialogBinding
import com.owncloud.android.datamodel.FileDataStorageManager
@@ -90,12 +91,6 @@ class CreateFolderDialogFragment :
positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE) as? MaterialButton
positiveButton?.let {
it.isEnabled = false
- viewThemeUtils.material.colorMaterialButtonPrimaryTonal(it)
- }
-
- val negativeButton = dialog.getButton(AlertDialog.BUTTON_NEGATIVE) as? MaterialButton
- negativeButton?.let {
- viewThemeUtils.material.colorMaterialButtonPrimaryBorderless(it)
}
}
}
@@ -114,7 +109,6 @@ class CreateFolderDialogFragment :
binding = EditBoxDialogBinding.inflate(inflater, null, false)
binding.userInput.setText(R.string.empty)
- viewThemeUtils.material.colorTextInputLayout(binding.userInputContainer)
val parentFolder = requireArguments().getParcelableArgument(ARG_PARENT_FOLDER, OCFile::class.java)
encrypted = requireArguments().getBoolean(ARG_ENCRYPTED, false)
@@ -134,7 +128,8 @@ class CreateFolderDialogFragment :
})
val builder = buildMaterialAlertDialog(binding.root)
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(binding.userInputContainer.context, builder)
+ // NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(binding.userInputContainer.context, builder)
return builder.create()
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/ExpirationDatePickerDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/ExpirationDatePickerDialogFragment.kt
index 261b3a9515a5..81398a451b76 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/ExpirationDatePickerDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/ExpirationDatePickerDialogFragment.kt
@@ -53,18 +53,25 @@ class ExpirationDatePickerDialogFragment :
if (currentDialog != null) {
val dialog = currentDialog as DatePickerDialog
- val positiveButton = dialog.getButton(DatePickerDialog.BUTTON_POSITIVE) as MaterialButton?
- if (positiveButton != null) {
- viewThemeUtils?.material?.colorMaterialButtonPrimaryTonal(positiveButton)
- }
- val negativeButton = dialog.getButton(DatePickerDialog.BUTTON_NEGATIVE) as MaterialButton?
- if (negativeButton != null) {
- viewThemeUtils?.material?.colorMaterialButtonPrimaryBorderless(negativeButton)
- }
- val neutralButton = dialog.getButton(DatePickerDialog.BUTTON_NEUTRAL) as MaterialButton?
- if (neutralButton != null) {
- viewThemeUtils?.material?.colorMaterialButtonPrimaryBorderless(neutralButton)
- }
+ // NMC Customization
+ (dialog.getButton(DatePickerDialog.BUTTON_POSITIVE) as MaterialButton?)?.setTextColor(
+ resources.getColor(
+ R.color.primary,
+ null
+ )
+ )
+ (dialog.getButton(DatePickerDialog.BUTTON_NEGATIVE) as MaterialButton?)?.setTextColor(
+ resources.getColor(
+ R.color.text_color,
+ null
+ )
+ )
+ (dialog.getButton(DatePickerDialog.BUTTON_NEUTRAL) as MaterialButton?)?.setTextColor(
+ resources.getColor(
+ R.color.text_color,
+ null
+ )
+ )
}
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/IndeterminateProgressDialog.kt b/app/src/main/java/com/owncloud/android/ui/dialog/IndeterminateProgressDialog.kt
index 97af3f793580..6c3a3a25fee2 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/IndeterminateProgressDialog.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/IndeterminateProgressDialog.kt
@@ -35,7 +35,11 @@ class IndeterminateProgressDialog :
val binding = LoadingDialogBinding.inflate(layoutInflater).apply {
loadingText.setText(messageId)
loadingBar.indeterminateDrawable?.let { drawable ->
- viewThemeUtils.platform.tintDrawable(requireContext(), drawable)
+ // NMC Customization
+ viewThemeUtils.platform.colorDrawable(
+ drawable,
+ requireContext().resources.getColor(R.color.white, null)
+ )
}
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/LoadingDialog.kt b/app/src/main/java/com/owncloud/android/ui/dialog/LoadingDialog.kt
index 226da7768e36..bacaf63cfc5f 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/LoadingDialog.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/LoadingDialog.kt
@@ -8,13 +8,15 @@
*/
package com.owncloud.android.ui.dialog
+import android.graphics.PorterDuff
+import android.graphics.PorterDuffColorFilter
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.DialogFragment
-import com.nextcloud.android.common.ui.theme.utils.ColorRole
import com.nextcloud.client.di.Injectable
+import com.owncloud.android.R
import com.owncloud.android.databinding.LoadingDialogBinding
import com.owncloud.android.utils.theme.ViewThemeUtils
import javax.inject.Inject
@@ -41,11 +43,11 @@ class LoadingDialog :
val loadingDrawable = binding.loadingBar.indeterminateDrawable
if (loadingDrawable != null) {
- viewThemeUtils.platform.tintDrawable(requireContext(), loadingDrawable)
+ // NMC Customisation
+ loadingDrawable.colorFilter =
+ PorterDuffColorFilter(resources.getColor(R.color.primary, null), PorterDuff.Mode.SRC_IN)
}
- viewThemeUtils.platform.colorViewBackground(binding.loadingLayout, ColorRole.SURFACE)
-
return binding.root
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/LocalStoragePathPickerDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/LocalStoragePathPickerDialogFragment.kt
index ae5d0f86adbe..f596c8b13531 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/LocalStoragePathPickerDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/LocalStoragePathPickerDialogFragment.kt
@@ -13,9 +13,9 @@ import android.os.Environment
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.recyclerview.widget.LinearLayoutManager
-import com.google.android.material.button.MaterialButton
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.nextcloud.client.di.Injectable
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.R
import com.owncloud.android.databinding.StoragePathDialogBinding
import com.owncloud.android.ui.adapter.StoragePathAdapter
@@ -38,17 +38,6 @@ class LocalStoragePathPickerDialogFragment :
private lateinit var binding: StoragePathDialogBinding
- override fun onStart() {
- super.onStart()
-
- val alertDialog = dialog as AlertDialog?
-
- val positiveButton = alertDialog?.getButton(AlertDialog.BUTTON_POSITIVE) as MaterialButton?
- positiveButton?.let {
- viewThemeUtils.material.colorMaterialButtonPrimaryTonal(positiveButton)
- }
- }
-
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
require(activity is StoragePathAdapterListener) {
"Calling activity must implement " +
@@ -70,7 +59,8 @@ class LocalStoragePathPickerDialogFragment :
.setPositiveButton(R.string.common_cancel, this)
.setTitle(R.string.storage_choose_location)
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(requireContext(), builder)
+ //NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireContext(), builder)
return builder.create()
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/RemoveFilesDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/RemoveFilesDialogFragment.kt
index fba168e67560..d7d0f4dc0f8f 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/RemoveFilesDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/RemoveFilesDialogFragment.kt
@@ -15,9 +15,7 @@ package com.owncloud.android.ui.dialog
import android.app.Dialog
import android.os.Bundle
import android.view.ActionMode
-import androidx.appcompat.app.AlertDialog
import androidx.lifecycle.lifecycleScope
-import com.google.android.material.button.MaterialButton
import com.nextcloud.client.account.UserAccountManager
import com.nextcloud.client.di.Injectable
import com.nextcloud.client.jobs.upload.FileUploadHelper
@@ -51,29 +49,6 @@ class RemoveFilesDialogFragment :
@Inject
lateinit var userAccountManager: UserAccountManager
- private var positiveButton: MaterialButton? = null
-
- override fun onStart() {
- super.onStart()
-
- val alertDialog = dialog as AlertDialog? ?: return
-
- positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as? MaterialButton
- positiveButton?.let {
- viewThemeUtils?.material?.colorMaterialButtonPrimaryTonal(it)
- }
-
- val negativeButton = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE) as? MaterialButton
- negativeButton?.let {
- viewThemeUtils?.material?.colorMaterialButtonPrimaryBorderless(negativeButton)
- }
-
- val neutralButton = alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL) as? MaterialButton
- neutralButton?.let {
- viewThemeUtils?.material?.colorMaterialButtonPrimaryBorderless(neutralButton)
- }
- }
-
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val dialog = super.onCreateDialog(savedInstanceState)
val arguments = arguments ?: return dialog
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt
index 37875db7ac28..d90659d889a5 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.kt
@@ -25,6 +25,7 @@ import com.nextcloud.utils.extensions.getParcelableArgument
import com.nextcloud.utils.extensions.typedActivity
import com.nextcloud.utils.fileNameValidator.FileNameTextWatcher
import com.nextcloud.utils.fileNameValidator.FileNameValidator.checkFileName
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.R
import com.owncloud.android.databinding.EditBoxDialogBinding
import com.owncloud.android.datamodel.FileDataStorageManager
@@ -76,7 +77,6 @@ class RenameFileDialogFragment :
val currentName = targetFile?.fileName
binding.userInput.setText(currentName)
- viewThemeUtils.material.colorTextInputLayout(binding.userInputContainer)
val extensionStart = if (targetFile?.isFolder == true) -1 else currentName?.lastIndexOf('.')
val selectionEnd = if ((extensionStart ?: -1) >= 0) extensionStart else currentName?.length
if (selectionEnd != null) {
@@ -116,7 +116,8 @@ class RenameFileDialogFragment :
val builder = buildMaterialAlertDialog(binding.root)
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(binding.userInputContainer.context, builder)
+ // NMC Customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(binding.userInputContainer.context, builder)
return builder.create()
}
@@ -138,12 +139,6 @@ class RenameFileDialogFragment :
if (alertDialog != null) {
positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as MaterialButton
- val negativeButton = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE) as MaterialButton
-
- positiveButton?.let {
- viewThemeUtils.material.colorMaterialButtonPrimaryTonal(it)
- }
- viewThemeUtils.material.colorMaterialButtonPrimaryBorderless(negativeButton)
}
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/ShareLinkToDialog.kt b/app/src/main/java/com/owncloud/android/ui/dialog/ShareLinkToDialog.kt
index a13bc6e341a7..cb7cd7e49dc9 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/ShareLinkToDialog.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/ShareLinkToDialog.kt
@@ -27,6 +27,7 @@ import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.nextcloud.utils.extensions.getParcelableArgument
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.R
import com.owncloud.android.lib.common.utils.Log_OC
import com.owncloud.android.ui.activity.CopyToClipboardActivity
@@ -85,7 +86,7 @@ class ShareLinkToDialog : DialogFragment() {
R.string.activity_chooser_title
}
- return MaterialAlertDialogBuilder(requireActivity())
+ val builder = MaterialAlertDialogBuilder(requireActivity())
.setTitle(titleId)
.setAdapter(mAdapter) { _, which ->
// Add the information of the chosen activity to the intent to send
@@ -98,7 +99,9 @@ class ShareLinkToDialog : DialogFragment() {
mIntent?.setComponent(name)
activity?.startActivity(mIntent)
}
- .create()
+ // NMC Customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireContext(), builder)
+ return builder.create()
}
internal inner class ActivityAdapter(
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/SharePasswordDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/SharePasswordDialogFragment.kt
index 9eb12a7a0d2b..1962d3ca2f96 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/SharePasswordDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/SharePasswordDialogFragment.kt
@@ -15,12 +15,12 @@ import android.app.Dialog
import android.content.DialogInterface
import android.os.Bundle
import androidx.appcompat.app.AlertDialog
-import androidx.core.content.ContextCompat
import androidx.fragment.app.DialogFragment
import com.google.android.material.button.MaterialButton
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.nextcloud.client.di.Injectable
import com.nextcloud.utils.extensions.getParcelableArgument
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.R
import com.owncloud.android.databinding.PasswordDialogBinding
import com.owncloud.android.datamodel.OCFile
@@ -60,11 +60,8 @@ class SharePasswordDialogFragment :
val alertDialog = dialog as AlertDialog?
if (alertDialog != null) {
- val positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as MaterialButton?
- if (positiveButton != null) {
- viewThemeUtils?.material?.colorMaterialButtonPrimaryTonal(positiveButton)
- positiveButton.setOnClickListener {
- val sharePassword = binding?.sharePassword?.text
+ (alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as MaterialButton?)?.setOnClickListener {
+ val sharePassword = binding?.sharePassword?.text
if (sharePassword != null) {
val password = sharePassword.toString()
@@ -79,19 +76,7 @@ class SharePasswordDialogFragment :
}
}
- alertDialog.dismiss()
- }
- }
-
- val negativeButton = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE) as MaterialButton?
- if (negativeButton != null) {
- viewThemeUtils?.material?.colorMaterialButtonPrimaryBorderless(negativeButton)
- }
-
- val neutralButton = alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL) as MaterialButton?
- if (neutralButton != null) {
- val warningColorId = ContextCompat.getColor(requireContext(), R.color.highlight_textColor_Warning)
- viewThemeUtils?.platform?.colorTextButtons(warningColorId, neutralButton)
+ alertDialog.dismiss()
}
}
}
@@ -114,7 +99,6 @@ class SharePasswordDialogFragment :
// Setup layout
binding?.sharePassword?.setText(R.string.empty)
- viewThemeUtils?.material?.colorTextInputLayout(binding!!.sharePasswordContainer)
val neutralButtonTextId: Int
val title: Int
@@ -138,7 +122,8 @@ class SharePasswordDialogFragment :
}
.setTitle(title)
- viewThemeUtils?.dialog?.colorMaterialAlertDialogBackground(requireContext(), builder)
+ // NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireContext(), builder)
return builder.create()
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/SortingOrderDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/SortingOrderDialogFragment.kt
index b788e2ad6e23..0c594acbb310 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/SortingOrderDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/SortingOrderDialogFragment.kt
@@ -15,6 +15,7 @@ import android.view.View
import androidx.fragment.app.DialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.nextcloud.client.di.Injectable
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.R
import com.owncloud.android.databinding.SortingOrderFragmentBinding
import com.owncloud.android.lib.common.utils.Log_OC
@@ -80,7 +81,8 @@ class SortingOrderDialogFragment :
val builder = MaterialAlertDialogBuilder(requireContext())
builder.setView(binding?.root)
- viewThemeUtils?.dialog?.colorMaterialAlertDialogBackground(requireContext(), builder)
+ //NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireContext(), builder)
return builder.create()
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/SslUntrustedCertDialog.kt b/app/src/main/java/com/owncloud/android/ui/dialog/SslUntrustedCertDialog.kt
index 75ddaecced48..c277b0e58167 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/SslUntrustedCertDialog.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/SslUntrustedCertDialog.kt
@@ -24,6 +24,7 @@ import androidx.core.view.isVisible
import androidx.fragment.app.DialogFragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.nextcloud.client.di.Injectable
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.R
import com.owncloud.android.databinding.SslUntrustedCertLayoutBinding
import com.owncloud.android.lib.common.network.CertificateCombinedException
@@ -106,7 +107,8 @@ open class SslUntrustedCertDialog :
setView(layoutBinding.getRoot())
}
- viewThemeUtils?.dialog?.colorMaterialAlertDialogBackground(requireContext(), builder)
+ // NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireContext(), builder)
return builder.create().apply {
requestWindowFeature(Window.FEATURE_NO_TITLE)
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/StoragePermissionDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/StoragePermissionDialogFragment.kt
index 32424b7e1e8c..78170bde70e5 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/StoragePermissionDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/StoragePermissionDialogFragment.kt
@@ -12,12 +12,12 @@ import android.app.Dialog
import android.os.Build
import android.os.Bundle
import androidx.annotation.RequiresApi
-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.di.Injectable
import com.nextcloud.client.preferences.AppPreferences
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.R
import com.owncloud.android.utils.PermissionUtil
import com.owncloud.android.utils.theme.ViewThemeUtils
@@ -47,18 +47,6 @@ class StoragePermissionDialogFragment :
override fun onStart() {
super.onStart()
dialog?.setCanceledOnTouchOutside(false)
- dialog?.let {
- val alertDialog = it as AlertDialog
-
- 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)
-
- val neutralButton = alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL) as MaterialButton
- viewThemeUtils.material.colorMaterialButtonPrimaryBorderless(neutralButton)
- }
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
@@ -83,7 +71,8 @@ class StoragePermissionDialogFragment :
dismiss()
}
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(requireContext(), dialogBuilder)
+ //NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireContext(), dialogBuilder)
return dialogBuilder.create()
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/SyncedFolderPreferencesDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/SyncedFolderPreferencesDialogFragment.kt
index 618bd7ab9033..77e44d1a6b8e 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/SyncedFolderPreferencesDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/SyncedFolderPreferencesDialogFragment.kt
@@ -20,6 +20,7 @@ import android.widget.AdapterView
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope
+import com.nmc.android.utils.DialogThemeUtils
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.nextcloud.client.di.Injectable
import com.nextcloud.client.preferences.SubFolderRule
@@ -102,7 +103,8 @@ class SyncedFolderPreferencesDialogFragment :
val builder = MaterialAlertDialogBuilder(requireContext())
builder.setView(binding!!.getRoot())
- viewThemeUtils?.dialog?.colorMaterialAlertDialogBackground(requireContext(), builder)
+ //NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireContext(), builder)
return builder.create()
}
@@ -161,10 +163,6 @@ class SyncedFolderPreferencesDialogFragment :
binding.settingInstantUploadPathUseSubfoldersCheckbox,
binding.settingInstantUploadExcludeHiddenCheckbox
)
-
- viewThemeUtils?.material?.colorMaterialButtonPrimaryTonal(binding.btnPositive)
- viewThemeUtils?.material?.colorMaterialButtonPrimaryBorderless(binding.btnNegative)
- viewThemeUtils?.material?.colorMaterialButtonPrimaryBorderless(binding.btnNeutral)
}
private fun setButtonOrder(binding: SyncedFoldersSettingsLayoutBinding) {
@@ -434,7 +432,8 @@ class SyncedFolderPreferencesDialogFragment :
}
behaviourDialogShown = true
- viewThemeUtils?.dialog?.colorMaterialAlertDialogBackground(requireActivity(), builder)
+ //NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireActivity(), builder)
behaviourDialog = builder.create()
behaviourDialog?.show()
@@ -453,7 +452,8 @@ class SyncedFolderPreferencesDialogFragment :
nameCollisionPolicyDialogShown = true
- viewThemeUtils?.dialog?.colorMaterialAlertDialogBackground(requireActivity(), builder)
+ //NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireActivity(), builder)
behaviourDialog = builder.create()
behaviourDialog?.show()
}
diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/setupEncryption/SetupEncryptionDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/setupEncryption/SetupEncryptionDialogFragment.kt
index 8232980d97c2..3bd98599d105 100644
--- a/app/src/main/java/com/owncloud/android/ui/dialog/setupEncryption/SetupEncryptionDialogFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/dialog/setupEncryption/SetupEncryptionDialogFragment.kt
@@ -23,6 +23,7 @@ import com.nextcloud.client.di.Injectable
import com.nextcloud.client.network.ClientFactory
import com.nextcloud.utils.extensions.getParcelableArgument
import com.owncloud.android.BuildConfig
+import com.nmc.android.utils.DialogThemeUtils
import com.owncloud.android.R
import com.owncloud.android.databinding.SetupEncryptionDialogBinding
import com.owncloud.android.datamodel.ArbitraryDataProvider
@@ -88,15 +89,8 @@ class SetupEncryptionDialogFragment :
val alertDialog = dialog as AlertDialog?
if (alertDialog != null) {
- positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as? MaterialButton?
- positiveButton?.let {
- viewThemeUtils.material.colorMaterialButtonPrimaryTonal(it)
- }
-
- negativeButton = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE) as? MaterialButton?
- negativeButton?.let {
- viewThemeUtils.material.colorMaterialButtonPrimaryBorderless(it)
- }
+ positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as MaterialButton?
+ negativeButton = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE) as MaterialButton?
}
}
@@ -115,16 +109,13 @@ class SetupEncryptionDialogFragment :
val inflater = requireActivity().layoutInflater
binding = SetupEncryptionDialogBinding.inflate(inflater, null, false)
- // Setup layout
- viewThemeUtils.material.colorTextInputLayout(binding.encryptionPasswordInputContainer)
- viewThemeUtils.material.colorProgressBar(binding.progressBar)
-
if (BuildConfig.DEBUG) {
binding.encryptionPasswordInputContainer.endIconMode = TextInputLayout.END_ICON_PASSWORD_TOGGLE
}
val builder = buildMaterialAlertDialog(binding.root)
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(requireContext(), builder)
+ // NMC customization
+ DialogThemeUtils.colorMaterialAlertDialogBackground(requireContext(), builder)
return builder.create().apply {
setCanceledOnTouchOutside(false)
setOnShowListener { dialog1: DialogInterface ->
@@ -483,7 +474,6 @@ class SetupEncryptionDialogFragment :
}
requireDialog().setTitle(R.string.end_to_end_encryption_passphrase_title)
binding.encryptionStatus.setText(R.string.end_to_end_encryption_keywords_description)
- viewThemeUtils.material.colorTextInputLayout(binding.encryptionPasswordInputContainer)
binding.encryptionPassphrase.text = generateMnemonicString(true)
binding.encryptionPassphrase.visibility = View.VISIBLE
@@ -493,12 +483,6 @@ class SetupEncryptionDialogFragment :
positiveButton?.visibility = View.VISIBLE
negativeButton?.visibility = View.VISIBLE
- positiveButton?.let { positiveButton ->
- negativeButton?.let { negativeButton ->
- viewThemeUtils.platform.colorTextButtons(positiveButton, negativeButton)
- }
- }
-
keyResult = KEY_GENERATE
}
@@ -527,9 +511,6 @@ class SetupEncryptionDialogFragment :
positiveButton?.setText(R.string.end_to_end_encryption_dialog_close)
positiveButton?.visibility = View.VISIBLE
- positiveButton?.let {
- viewThemeUtils.platform.colorTextButtons(it)
- }
}
@VisibleForTesting
diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java b/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java
index 1ce195ff29b8..d6f1c46fbaaa 100644
--- a/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java
+++ b/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java
@@ -64,6 +64,7 @@
import com.nextcloud.utils.extensions.ViewExtensionsKt;
import com.nextcloud.utils.fileNameValidator.FileNameValidator;
import com.nextcloud.utils.view.FastScrollUtils;
+import com.nmc.android.utils.DialogThemeUtils;
import com.owncloud.android.MainApp;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.ArbitraryDataProvider;
@@ -603,7 +604,8 @@ private void showDirectCameraUploadAlertDialog(FileDisplayActivity fileDisplayAc
.setPositiveButton(R.string.upload_direct_camera_video, (dialog, which) -> fileDisplayActivity.getFileOperationsHelper().uploadFromCamera(fileDisplayActivity, FileDisplayActivity.REQUEST_CODE__UPLOAD_FROM_VIDEO_CAMERA, true))
.setNegativeButton(R.string.upload_direct_camera_photo, (dialog, which) -> fileDisplayActivity.getFileOperationsHelper().uploadFromCamera(fileDisplayActivity, FileDisplayActivity.REQUEST_CODE__UPLOAD_FROM_CAMERA, false));
- viewThemeUtils.dialog.colorMaterialAlertDialogBackground(fileDisplayActivity, builder);
+ // NMC customization: customize dialog bg color
+ DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(fileDisplayActivity, builder);
builder.create();
builder.show();
diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/contactsbackup/BackupFragment.kt b/app/src/main/java/com/owncloud/android/ui/fragment/contactsbackup/BackupFragment.kt
index 1d932709cb6f..ae53f8b8f503 100644
--- a/app/src/main/java/com/owncloud/android/ui/fragment/contactsbackup/BackupFragment.kt
+++ b/app/src/main/java/com/owncloud/android/ui/fragment/contactsbackup/BackupFragment.kt
@@ -390,6 +390,7 @@ class BackupFragment :
val cal = savedDate ?: Calendar.getInstance()
datePickerDialog = DatePickerDialog(
contactsPreferenceActivity,
+ R.style.FallbackDatePickerDialogTheme,
this,
cal.get(Calendar.YEAR),
cal.get(Calendar.MONTH),
diff --git a/app/src/main/res/color/dialog_positive_btn_color.xml b/app/src/main/res/color/dialog_positive_btn_color.xml
new file mode 100644
index 000000000000..5913e0da1a1d
--- /dev/null
+++ b/app/src/main/res/color/dialog_positive_btn_color.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/choose_template.xml b/app/src/main/res/layout/choose_template.xml
index 524b1912bde4..6746603f29da 100644
--- a/app/src/main/res/layout/choose_template.xml
+++ b/app/src/main/res/layout/choose_template.xml
@@ -36,6 +36,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/filename_hint"
+ android:theme="@style/TextInputLayoutInputWarning"
android:paddingTop="@dimen/standard_padding">
+ android:textColor="@color/primary" />
diff --git a/app/src/main/res/layout/passcodelock.xml b/app/src/main/res/layout/passcodelock.xml
index e0aa3bf2d378..685f95601f65 100644
--- a/app/src/main/res/layout/passcodelock.xml
+++ b/app/src/main/res/layout/passcodelock.xml
@@ -22,6 +22,7 @@
android:layout_gravity="center"
android:layout_margin="@dimen/standard_double_margin"
card_view:strokeWidth="0dp"
+ card_view:cardBackgroundColor="@color/alert_bg_color"
card_view:cardCornerRadius="16dp"
card_view:cardElevation="@dimen/dialog_elevation">
diff --git a/app/src/main/res/layout/password_dialog.xml b/app/src/main/res/layout/password_dialog.xml
index 81721b41455b..cf874782cb10 100644
--- a/app/src/main/res/layout/password_dialog.xml
+++ b/app/src/main/res/layout/password_dialog.xml
@@ -22,7 +22,10 @@
android:layout_height="wrap_content"
android:autofillHints="password"
android:ems="10"
+ android:backgroundTint="@color/secondary_text_color"
android:gravity="top"
+ android:textColorHint="@color/bg_fallback_highlight"
+ android:textColorHighlight="@color/et_highlight_color"
android:inputType="textPassword">
diff --git a/app/src/main/res/layout/setup_encryption_dialog.xml b/app/src/main/res/layout/setup_encryption_dialog.xml
index 3fa8d5784bfb..9a6e68c89f5f 100644
--- a/app/src/main/res/layout/setup_encryption_dialog.xml
+++ b/app/src/main/res/layout/setup_encryption_dialog.xml
@@ -72,6 +72,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autofillHints="password"
+ android:backgroundTint="@color/secondary_text_color"
+ android:textColorHighlight="@color/et_highlight_color"
android:ems="10"
android:inputType="textPassword"
android:textCursorDrawable="@null" />
diff --git a/app/src/main/res/layout/storage_path_item.xml b/app/src/main/res/layout/storage_path_item.xml
index 44180c9acb64..76dfcfae9041 100644
--- a/app/src/main/res/layout/storage_path_item.xml
+++ b/app/src/main/res/layout/storage_path_item.xml
@@ -15,6 +15,8 @@
android:gravity="center|start"
android:paddingBottom="@dimen/standard_half_padding"
android:text="@string/menu_item_sort_by_name_z_a"
+ android:textColor="@color/text_color"
app:icon="@drawable/ic_user_outline"
app:iconPadding="@dimen/standard_padding"
+ app:iconTint="@color/text_color"
tools:text="@string/placeholder_file_path" />
diff --git a/app/src/main/res/layout/upload_file_dialog.xml b/app/src/main/res/layout/upload_file_dialog.xml
index aeeb38074be0..4b5475961bfb 100755
--- a/app/src/main/res/layout/upload_file_dialog.xml
+++ b/app/src/main/res/layout/upload_file_dialog.xml
@@ -34,6 +34,8 @@
android:layout_height="wrap_content"
android:ems="10"
android:gravity="top"
+ android:backgroundTint="@color/secondary_text_color"
+ android:textColorHighlight="@color/et_highlight_color"
android:importantForAutofill="no"
android:inputType="textNoSuggestions|textCapSentences"
android:scrollbars="vertical">
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 7dfa6f16c7a6..44234b6636b0 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -264,8 +264,9 @@
Tägliche Sicherung
Zu sichernde Daten
Zugangsdaten falsch
- Konto entfernen
+ Benutzer abmelden
Einträge löschen
+ Benutzer %s auf diesem Gerät abmelden und lokale Daten löschen?
Link löschen
Auswahl aufheben
Ziel-Dateiname
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
index 72908c65f15b..9408ab128c72 100644
--- a/app/src/main/res/values-night/colors.xml
+++ b/app/src/main/res/values-night/colors.xml
@@ -39,4 +39,69 @@
@android:color/white
#2A2A2A
+
+
+ #FFFFFF
+ @color/grey_30
+ @color/grey_30
+ #CCCCCC
+ @color/grey_70
+ @color/grey_80
+ #2D2D2D
+ @color/grey_70
+ @color/grey_70
+
+
+ @color/grey_80
+ @color/grey_0
+
+
+ @color/grey_80
+ @color/grey_0
+
+
+ @color/grey_60
+ @color/grey_0
+ @color/grey_0
+ @color/grey_30
+ #FFFFFF
+ @color/grey_30
+ @color/grey_80
+ #FFFFFF
+
+
+ @color/grey_80
+ @color/grey_30
+ @color/grey_0
+
+
+ @color/grey_80
+ @color/grey_0
+ @color/grey_80
+
+
+ @color/grey_70
+ @color/grey_60
+
+
+ @color/grey_70
+ @color/grey_70
+
+
+ #FFFFFF
+ @color/grey_30
+ @color/grey_0
+ @color/grey_0
+ @color/grey_0
+ @color/grey_0
+ @color/grey_60
+ @color/grey_0
+ #FFFFFF
+ #7d94f9
+
+
+ #121212
+ @color/grey_0
+ @color/grey_80
+ @color/grey_80
diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml
index 19b3ce692520..a35b19c79d66 100644
--- a/app/src/main/res/values-night/themes.xml
+++ b/app/src/main/res/values-night/themes.xml
@@ -10,6 +10,8 @@
+
+
+
+
+
+
+