Skip to content

Commit 913796b

Browse files
committed
Customized dialog theme.
1 parent 9ab5d15 commit 913796b

31 files changed

Lines changed: 301 additions & 155 deletions
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+
R.attr.alertDialogStyle,
16+
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/SyncedFoldersActivity.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -807,11 +807,8 @@ class SyncedFoldersActivity :
807807
.setNeutralButton(getString(R.string.battery_optimization_close)) { dialog, _ -> dialog.dismiss() }
808808
.setIcon(R.drawable.ic_battery_alert)
809809
if (lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)) {
810-
val alertDialog = alertDialogBuilder.show()
811-
viewThemeUtils.platform.colorTextButtons(
812-
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE),
813-
alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL)
814-
)
810+
//NMC Customization
811+
alertDialogBuilder.show()
815812
}
816813
}
817814
}

app/src/main/java/com/owncloud/android/ui/dialog/AccountRemovalConfirmationDialog.java

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@
2929
import com.nextcloud.client.account.User;
3030
import com.nextcloud.client.di.Injectable;
3131
import com.nextcloud.client.jobs.BackgroundJobManager;
32+
import com.nmc.android.utils.DialogThemeUtils;
3233
import com.owncloud.android.R;
3334
import com.owncloud.android.utils.theme.ViewThemeUtils;
3435

3536
import javax.inject.Inject;
3637

3738
import androidx.annotation.NonNull;
3839
import androidx.annotation.Nullable;
39-
import androidx.appcompat.app.AlertDialog;
4040
import androidx.fragment.app.DialogFragment;
4141

4242
public class AccountRemovalConfirmationDialog extends DialogFragment implements Injectable {
@@ -62,16 +62,6 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
6262
user = getArguments().getParcelable(KEY_USER);
6363
}
6464

65-
@Override
66-
public void onStart() {
67-
super.onStart();
68-
69-
AlertDialog alertDialog = (AlertDialog) getDialog();
70-
71-
viewThemeUtils.platform.colorTextButtons(alertDialog.getButton(AlertDialog.BUTTON_POSITIVE),
72-
alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL));
73-
}
74-
7565
@NonNull
7666
@Override
7767
public Dialog onCreateDialog(Bundle savedInstanceState) {
@@ -84,7 +74,8 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
8474
false))
8575
.setNeutralButton(R.string.common_cancel, null);
8676

87-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(requireActivity(), builder);
77+
//NMC customization
78+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(requireActivity(), builder);
8879

8980
return builder.create();
9081
}

app/src/main/java/com/owncloud/android/ui/dialog/ChooseRichDocumentsTemplateDialogFragment.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import com.nextcloud.client.account.User;
4242
import com.nextcloud.client.di.Injectable;
4343
import com.nextcloud.client.network.ClientFactory;
44+
import com.nmc.android.utils.DialogThemeUtils;
4445
import com.owncloud.android.MainApp;
4546
import com.owncloud.android.R;
4647
import com.owncloud.android.databinding.ChooseTemplateBinding;
@@ -125,8 +126,6 @@ public void onStart() {
125126
AlertDialog alertDialog = (AlertDialog) getDialog();
126127

127128
positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
128-
viewThemeUtils.platform.colorTextButtons(positiveButton,
129-
alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL));
130129
positiveButton.setOnClickListener(this);
131130
positiveButton.setEnabled(false);
132131

@@ -171,8 +170,6 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
171170
binding = ChooseTemplateBinding.inflate(inflater, null, false);
172171
View view = binding.getRoot();
173172

174-
viewThemeUtils.material.colorTextInputLayout(binding.filenameContainer);
175-
176173
Type type = Type.valueOf(arguments.getString(ARG_TYPE));
177174
new FetchTemplateTask(this, client).execute(type);
178175

@@ -210,7 +207,8 @@ public void afterTextChanged(Editable s) {
210207
.setNeutralButton(R.string.common_cancel, null)
211208
.setTitle(getTitle(type));
212209

213-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(activity, builder);
210+
//NMC customization
211+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(activity, builder);
214212

215213
return builder.create();
216214
}

app/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.kt

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import com.nextcloud.client.account.User
4444
import com.nextcloud.client.di.Injectable
4545
import com.nextcloud.client.network.ClientFactory
4646
import com.nextcloud.client.network.ClientFactory.CreationException
47+
import com.nmc.android.utils.DialogThemeUtils
4748
import com.owncloud.android.MainApp
4849
import com.owncloud.android.R
4950
import com.owncloud.android.databinding.ChooseTemplateBinding
@@ -105,10 +106,6 @@ class ChooseTemplateDialogFragment : DialogFragment(), View.OnClickListener, Tem
105106
val alertDialog = dialog as AlertDialog
106107
val button = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE)
107108

108-
viewThemeUtils.platform.colorTextButtons(
109-
button,
110-
alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL)
111-
)
112109
button.setOnClickListener(this)
113110
button.isEnabled = false
114111
button.isClickable = false
@@ -141,10 +138,6 @@ class ChooseTemplateDialogFragment : DialogFragment(), View.OnClickListener, Tem
141138
_binding = ChooseTemplateBinding.inflate(inflater, null, false)
142139
val view: View = binding.root
143140

144-
viewThemeUtils.material.colorTextInputLayout(
145-
binding.filenameContainer
146-
)
147-
148141
binding.filename.addTextChangedListener(object : TextWatcher {
149142
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) = Unit
150143

@@ -178,7 +171,8 @@ class ChooseTemplateDialogFragment : DialogFragment(), View.OnClickListener, Tem
178171
.setNeutralButton(R.string.common_cancel, null)
179172
.setTitle(title)
180173

181-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(binding.list.context, builder)
174+
//NMC customization
175+
DialogThemeUtils.colorMaterialAlertDialogBackground(binding.list.context, builder)
182176

183177
return builder.create()
184178
}

app/src/main/java/com/owncloud/android/ui/dialog/ConfirmationDialogFragment.java

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@
2222

2323
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
2424
import com.nextcloud.client.di.Injectable;
25+
import com.nmc.android.utils.DialogThemeUtils;
2526
import com.owncloud.android.R;
2627
import com.owncloud.android.utils.theme.ViewThemeUtils;
2728

2829
import javax.inject.Inject;
2930

3031
import androidx.annotation.NonNull;
31-
import androidx.appcompat.app.AlertDialog;
3232
import androidx.fragment.app.DialogFragment;
3333

3434

@@ -78,19 +78,6 @@ public static ConfirmationDialogFragment newInstance(int messageResId, String[]
7878
return frag;
7979
}
8080

81-
@Override
82-
public void onStart() {
83-
super.onStart();
84-
85-
AlertDialog alertDialog = (AlertDialog) getDialog();
86-
87-
if(alertDialog != null) {
88-
viewThemeUtils.platform.colorTextButtons(alertDialog.getButton(AlertDialog.BUTTON_POSITIVE),
89-
alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE),
90-
alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL));
91-
}
92-
}
93-
9481
public void setOnConfirmationListener(ConfirmationDialogFragmentListener listener) {
9582
mListener = listener;
9683
}
@@ -157,7 +144,8 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
157144
});
158145
}
159146

160-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(activity, builder);
147+
//NMC customization
148+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(activity, builder);
161149

162150
return builder.create();
163151
}

app/src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
3535
import com.google.common.collect.Sets;
3636
import com.nextcloud.client.di.Injectable;
37+
import com.nmc.android.utils.DialogThemeUtils;
3738
import com.owncloud.android.R;
3839
import com.owncloud.android.databinding.EditBoxDialogBinding;
3940
import com.owncloud.android.datamodel.FileDataStorageManager;
@@ -105,9 +106,6 @@ private void bindButton() {
105106
AlertDialog alertDialog = (AlertDialog) dialog;
106107

107108
positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
108-
109-
viewThemeUtils.platform.colorTextButtons(positiveButton,
110-
alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL));
111109
}
112110
}
113111

@@ -131,7 +129,6 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
131129

132130
// Setup layout
133131
binding.userInput.setText("");
134-
viewThemeUtils.material.colorTextInputLayout(binding.userInputContainer);
135132

136133
OCFile parentFolder = requireArguments().getParcelable(ARG_PARENT_FOLDER);
137134
List<OCFile> folderContent = fileDataStorageManager.getFolderContent(parentFolder, false);
@@ -192,7 +189,8 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {
192189
.setNeutralButton(R.string.common_cancel, this)
193190
.setTitle(R.string.uploader_info_dirname);
194191

195-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(binding.userInputContainer.getContext(), builder);
192+
//NMC customization
193+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(binding.userInputContainer.getContext(), builder);
196194

197195
return builder.create();
198196
}

app/src/main/java/com/owncloud/android/ui/dialog/ExpirationDatePickerDialogFragment.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,10 @@ public void onStart() {
8484
if (currentDialog != null) {
8585
final DatePickerDialog dialog = (DatePickerDialog) currentDialog;
8686

87-
viewThemeUtils.platform.colorTextButtons(dialog.getButton(DatePickerDialog.BUTTON_NEUTRAL),
88-
dialog.getButton(DatePickerDialog.BUTTON_NEGATIVE),
89-
dialog.getButton(DatePickerDialog.BUTTON_POSITIVE));
87+
//NMC Customization
88+
dialog.getButton(DatePickerDialog.BUTTON_NEUTRAL).setTextColor(getResources().getColor(R.color.text_color, null));
89+
dialog.getButton(DatePickerDialog.BUTTON_NEGATIVE).setTextColor(getResources().getColor(R.color.text_color, null));
90+
dialog.getButton(DatePickerDialog.BUTTON_POSITIVE).setTextColor(getResources().getColor(R.color.primary, null));
9091
}
9192
}
9293

app/src/main/java/com/owncloud/android/ui/dialog/IndeterminateProgressDialog.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,9 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
7373
progressDialog.setIndeterminate(true);
7474
progressDialog.setOnShowListener(dialog -> {
7575
ProgressBar v = progressDialog.findViewById(android.R.id.progress);
76-
viewThemeUtils.platform.tintDrawable(requireContext(), v.getIndeterminateDrawable());
76+
//NMC Customization
77+
viewThemeUtils.platform.colorDrawable(v.getIndeterminateDrawable(),
78+
requireContext().getResources().getColor(R.color.white, null));
7779
});
7880

7981
/// set message

app/src/main/java/com/owncloud/android/ui/dialog/LoadingDialog.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package com.owncloud.android.ui.dialog;
2020

2121
import android.app.Dialog;
22+
import android.graphics.PorterDuff;
2223
import android.os.Bundle;
2324
import android.view.LayoutInflater;
2425
import android.view.View;
@@ -65,7 +66,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
6566

6667
// set progress wheel color
6768
ProgressBar progressBar = v.findViewById(R.id.loadingBar);
68-
viewThemeUtils.platform.tintDrawable(requireContext(), progressBar.getIndeterminateDrawable());
69+
//NMC Customisation
70+
progressBar.getIndeterminateDrawable().setColorFilter(getResources().getColor(R.color.primary, null), PorterDuff.Mode.SRC_IN);
6971

7072
return v;
7173
}

0 commit comments

Comments
 (0)