Skip to content

Commit 656ff8d

Browse files
committed
Customized dialog theme.
NMC-3805 -- logout popup wording adaptation
1 parent 21a36fa commit 656ff8d

45 files changed

Lines changed: 396 additions & 371 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/src/main/java/com/nextcloud/ui/ChooseStorageLocationDialogFragment.kt

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@ import android.preference.PreferenceManager
1414
import android.view.LayoutInflater
1515
import android.view.View
1616
import android.view.ViewGroup
17-
import androidx.appcompat.app.AlertDialog
1817
import androidx.fragment.app.DialogFragment
19-
import com.google.android.material.button.MaterialButton
2018
import com.google.android.material.dialog.MaterialAlertDialogBuilder
2119
import com.nextcloud.client.di.Injectable
2220
import com.nextcloud.client.preferences.AppPreferencesImpl
21+
import com.nmc.android.utils.DialogThemeUtils
2322
import com.owncloud.android.MainApp
2423
import com.owncloud.android.R
2524
import com.owncloud.android.databinding.DialogDataStorageLocationBinding
@@ -49,15 +48,6 @@ class ChooseStorageLocationDialogFragment :
4948
private val selectedPrivacyType
5049
get() = if (binding.allowMediaIndexSwitch.isChecked) PrivacyType.PUBLIC else PrivacyType.PRIVATE
5150

52-
override fun onStart() {
53-
super.onStart()
54-
val alertDialog = dialog as AlertDialog
55-
56-
val positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE) as? MaterialButton
57-
positiveButton?.let {
58-
viewThemeUtils.material.colorMaterialButtonPrimaryTonal(positiveButton)
59-
}
60-
}
6151

6252
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
6353
binding = DialogDataStorageLocationBinding.inflate(layoutInflater)
@@ -72,7 +62,8 @@ class ChooseStorageLocationDialogFragment :
7262
dialog.dismiss()
7363
}.setView(binding.root)
7464

75-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(requireContext(), builder)
65+
// NMC customization: customize dialog bg color
66+
DialogThemeUtils.colorMaterialAlertDialogBackground(requireContext(), builder)
7667

7768
binding.storageRadioGroup.setOnCheckedChangeListener { _, _ ->
7869
updateMediaIndexSwitch()
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.nmc.android.utils
2+
3+
import android.content.Context
4+
import android.content.res.ColorStateList
5+
import android.os.Build
6+
import com.google.android.material.dialog.MaterialAlertDialogBuilder
7+
import com.google.android.material.shape.MaterialShapeDrawable
8+
import com.owncloud.android.R
9+
10+
object DialogThemeUtils {
11+
fun colorMaterialAlertDialogBackground(context: Context, dialogBuilder: MaterialAlertDialogBuilder) {
12+
val materialShapeDrawable = MaterialShapeDrawable(
13+
context,
14+
null,
15+
androidx.appcompat.R.attr.alertDialogStyle,
16+
com.google.android.material.R.style.MaterialAlertDialog_MaterialComponents
17+
)
18+
materialShapeDrawable.initializeElevationOverlay(context)
19+
materialShapeDrawable.fillColor =
20+
ColorStateList.valueOf(context.resources.getColor(R.color.alert_bg_color, null))
21+
22+
// dialogCornerRadius first appeared in Android Pie
23+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
24+
val radius: Float =
25+
context.resources.getDimension(com.nextcloud.android.common.ui.R.dimen.dialogBorderRadius)
26+
materialShapeDrawable.setCornerSize(radius)
27+
}
28+
dialogBuilder.background = materialShapeDrawable
29+
}
30+
}

app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ import com.nextcloud.utils.extensions.navigateToAllFiles
8282
import com.nextcloud.utils.extensions.observeWorker
8383
import com.nextcloud.utils.fileNameValidator.FileNameValidator.checkFolderPath
8484
import com.nextcloud.utils.view.FastScrollUtils
85+
import com.nmc.android.utils.DialogThemeUtils
8586
import com.owncloud.android.MainApp
8687
import com.owncloud.android.R
8788
import com.owncloud.android.databinding.FilesBinding
@@ -358,7 +359,8 @@ class FileDisplayActivity :
358359
) { dialog: DialogInterface?, which: Int -> dialog?.dismiss() }
359360
.setIcon(R.drawable.ic_settings)
360361

361-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(applicationContext, builder)
362+
// NMC customization: customize dialog bg color
363+
DialogThemeUtils.colorMaterialAlertDialogBackground(applicationContext, builder)
362364

363365
builder.create().show()
364366
} catch (e: BadTokenException) {
@@ -2925,7 +2927,8 @@ class FileDisplayActivity :
29252927
showLoadingDialog(getString(R.string.retrieving_file))
29262928
}
29272929

2928-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(applicationContext, builder)
2930+
// NMC customization: customize dialog bg color
2931+
DialogThemeUtils.colorMaterialAlertDialogBackground(applicationContext, builder)
29292932

29302933
val dialog = builder.create()
29312934
dismissLoadingDialog()

app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import com.nextcloud.utils.extensions.FileExtensionsKt;
5656
import com.nextcloud.utils.extensions.IntentExtensionsKt;
5757
import com.nextcloud.utils.fileNameValidator.FileNameValidator;
58+
import com.nmc.android.utils.DialogThemeUtils;
5859
import com.owncloud.android.MainApp;
5960
import com.owncloud.android.R;
6061
import com.owncloud.android.databinding.ReceiveExternalFilesBinding;
@@ -350,7 +351,8 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
350351
});
351352
builder.setNeutralButton(R.string.uploader_wrn_no_account_quit_btn_text,
352353
(dialog, which) -> requireActivity().finish());
353-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(requireContext(), builder);
354+
// NMC customization: customize dialog bg color
355+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(requireContext(), builder);
354356
return builder.create();
355357
}
356358
}

app/src/main/java/com/owncloud/android/ui/activity/SettingsActivity.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
import com.nextcloud.client.preferences.DarkMode;
5555
import com.nextcloud.utils.extensions.ContextExtensionsKt;
5656
import com.nextcloud.utils.mdm.MDMConfig;
57+
import com.nmc.android.utils.DialogThemeUtils;
5758
import com.owncloud.android.MainApp;
5859
import com.owncloud.android.R;
5960
import com.owncloud.android.authentication.AuthenticatorActivity;
@@ -535,7 +536,7 @@ private void removeE2E(PreferenceCategory preferenceCategoryMore) {
535536
}
536537

537538
private void showRemoveE2EAlertDialog(PreferenceCategory preferenceCategoryMore, Preference preference) {
538-
new MaterialAlertDialogBuilder(this, R.style.FallbackTheming_Dialog)
539+
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.FallbackTheming_Dialog)
539540
.setTitle(R.string.prefs_e2e_mnemonic)
540541
.setMessage(getString(R.string.remove_e2e_message))
541542
.setCancelable(true)
@@ -550,8 +551,10 @@ private void showRemoveE2EAlertDialog(PreferenceCategory preferenceCategoryMore,
550551
}
551552

552553
dialog.dismiss();
553-
})
554-
.create()
554+
});
555+
// NMC customization: customize dialog bg color
556+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(this, builder);
557+
builder.create()
555558
.show();
556559
}
557560

@@ -1071,14 +1074,16 @@ public void handleMnemonicRequest(Intent data) {
10711074
}
10721075

10731076
private void showMnemonicAlertDialogDialog(String mnemonic) {
1074-
new MaterialAlertDialogBuilder(this, R.style.FallbackTheming_Dialog)
1075-
.setTitle(R.string.prefs_e2e_mnemonic)
1077+
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.FallbackTheming_Dialog)
1078+
.setTitle(R.string.dialog_e2e_mnemonic_title)
10761079
.setMessage(mnemonic)
10771080
.setPositiveButton(R.string.common_ok, (dialog, which) -> dialog.dismiss())
10781081
.setNegativeButton(R.string.common_cancel, (dialog, i) -> dialog.dismiss())
10791082
.setNeutralButton(R.string.common_copy, (dialog, i) ->
1080-
ClipboardUtil.copyToClipboard(this, mnemonic, false))
1081-
.create()
1083+
ClipboardUtil.copyToClipboard(this, mnemonic, false));
1084+
// NMC customization: customize dialog bg color
1085+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(this, builder);
1086+
builder.create()
10821087
.show();
10831088
}
10841089

app/src/main/java/com/owncloud/android/ui/activity/StorageMigration.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
2222
import com.nextcloud.client.account.User;
23+
import com.nmc.android.utils.DialogThemeUtils;
2324
import com.owncloud.android.MainApp;
2425
import com.owncloud.android.R;
2526
import com.owncloud.android.datamodel.FileDataStorageManager;
@@ -106,7 +107,8 @@ public static void a(ViewThemeUtils viewThemeUtils, Context context) {
106107

107108
});
108109

109-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(context, builder);
110+
// NMC customization: customize dialog bg color
111+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(context, builder);
110112

111113
AlertDialog alertDialog = builder.create();
112114

@@ -157,7 +159,8 @@ private void askToOverride() {
157159
progressDialog.getButton(ProgressDialog.BUTTON_POSITIVE).setVisibility(View.GONE);
158160
});
159161

160-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(mContext, builder);
162+
// NMC customization: customize dialog bg color
163+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(mContext, builder);
161164
builder.create().show();
162165
}
163166

@@ -250,7 +253,8 @@ private void askToStillMove() {
250253
}
251254
});
252255

253-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(mContext, builder);
256+
// NMC customization: customize dialog bg color
257+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(mContext, builder);
254258
builder.create().show();
255259
}
256260

app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import com.nextcloud.client.jobs.NotificationWork
3434
import com.nextcloud.client.jobs.upload.FileUploadWorker
3535
import com.nextcloud.client.preferences.SubFolderRule
3636
import com.nextcloud.utils.BatteryOptimizationHelper
37+
import com.nmc.android.utils.DialogThemeUtils
3738
import com.nextcloud.utils.extensions.getParcelableArgument
3839
import com.nextcloud.utils.extensions.isDialogFragmentReady
3940
import com.nextcloud.utils.extensions.setVisibleIf
@@ -227,7 +228,8 @@ class SyncedFoldersActivity :
227228
.setTitle(R.string.autoupload_disable_power_save_check)
228229
.setMessage(getString(R.string.power_save_check_dialog_message))
229230

230-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(this, builder)
231+
// NMC customization
232+
DialogThemeUtils.colorMaterialAlertDialogBackground(this, builder)
231233

232234
return builder.create()
233235
}
@@ -854,7 +856,7 @@ class SyncedFoldersActivity :
854856
return
855857
}
856858

857-
val dialog = MaterialAlertDialogBuilder(this, R.style.Theme_ownCloud_Dialog)
859+
val dialog = MaterialAlertDialogBuilder(this)
858860
.setTitle(R.string.battery_optimization_title)
859861
.setMessage(R.string.battery_optimization_message)
860862
.setPositiveButton(R.string.battery_optimization_disable) { _, _ ->
@@ -863,11 +865,9 @@ class SyncedFoldersActivity :
863865
.setNeutralButton(R.string.battery_optimization_close, null)
864866
.setIcon(R.drawable.ic_battery_alert)
865867

866-
val alertDialog = dialog.show()
868+
// NMC customization
869+
DialogThemeUtils.colorMaterialAlertDialogBackground(this, dialog)
867870

868-
viewThemeUtils.platform.colorTextButtons(
869-
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE),
870-
alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL)
871-
)
871+
dialog.show()
872872
}
873873
}

app/src/main/java/com/owncloud/android/ui/adapter/StoragePathAdapter.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ class StoragePathAdapter(
2929
val storagePathItem = pathList[position]
3030
holder.binding.btnStoragePath.setIconResource(storagePathItem.icon)
3131
holder.binding.btnStoragePath.text = storagePathItem.name
32-
viewThemeUtils.material.colorMaterialButtonPrimaryBorderless(holder.binding.btnStoragePath)
3332
}
3433
}
3534

0 commit comments

Comments
 (0)