Skip to content

Commit ecf8231

Browse files
committed
Customized dialog theme.
1 parent ceb6cd6 commit ecf8231

27 files changed

+150
-145
lines changed
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/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;
@@ -100,9 +101,6 @@ public void onStart() {
100101

101102
if (alertDialog != null) {
102103
positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
103-
104-
viewThemeUtils.platform.colorTextButtons(positiveButton,
105-
alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL));
106104
}
107105
}
108106

@@ -124,7 +122,6 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
124122

125123
// Setup layout
126124
binding.userInput.setText("");
127-
viewThemeUtils.material.colorTextInputLayout(binding.userInputContainer);
128125

129126
OCFile parentFolder = requireArguments().getParcelable(ARG_PARENT_FOLDER);
130127
List<OCFile> folderContent = fileDataStorageManager.getFolderContent(parentFolder, false);
@@ -182,7 +179,8 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {
182179
.setNeutralButton(R.string.common_cancel, this)
183180
.setTitle(R.string.uploader_info_dirname);
184181

185-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(binding.userInputContainer.getContext(), builder);
182+
//NMC customization
183+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(binding.userInputContainer.getContext(), builder);
186184

187185
return builder.create();
188186
}

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
}

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

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
3131
import com.nextcloud.client.di.Injectable;
32+
import com.nmc.android.utils.DialogThemeUtils;
3233
import com.owncloud.android.R;
3334
import com.owncloud.android.databinding.StoragePathDialogBinding;
3435
import com.owncloud.android.ui.adapter.StoragePathAdapter;
@@ -74,17 +75,6 @@ public static LocalStoragePathPickerDialogFragment newInstance() {
7475
return new LocalStoragePathPickerDialogFragment();
7576
}
7677

77-
@Override
78-
public void onStart() {
79-
super.onStart();
80-
81-
AlertDialog alertDialog = (AlertDialog) getDialog();
82-
83-
if (alertDialog != null) {
84-
viewThemeUtils.platform.colorTextButtons(alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE));
85-
}
86-
}
87-
8878
@Override
8979
public void onCreate(@Nullable Bundle savedInstanceState) {
9080
super.onCreate(savedInstanceState);
@@ -111,10 +101,12 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
111101
// Build the dialog
112102
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(binding.getRoot().getContext());
113103
builder.setView(view)
114-
.setNegativeButton(R.string.common_cancel, this)
104+
//NMC customisation to show primary color
105+
.setPositiveButton(R.string.common_cancel, this)
115106
.setTitle(R.string.storage_choose_location);
116107

117-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(binding.getRoot().getContext(), builder);
108+
//NMC customization
109+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(binding.getRoot().getContext(), builder);
118110

119111
return builder.create();
120112
}

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

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import java.util.Collection;
3434

3535
import androidx.annotation.NonNull;
36-
import androidx.appcompat.app.AlertDialog;
3736

3837
/**
3938
* Dialog requiring confirmation before removing a collection of given OCFiles.
@@ -124,19 +123,6 @@ public static RemoveFilesDialogFragment newInstance(OCFile file) {
124123
return newInstance(list);
125124
}
126125

127-
@Override
128-
public void onStart() {
129-
super.onStart();
130-
131-
AlertDialog alertDialog = (AlertDialog) getDialog();
132-
133-
if (alertDialog != null) {
134-
viewThemeUtils.platform.colorTextButtons(alertDialog.getButton(AlertDialog.BUTTON_POSITIVE),
135-
alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE),
136-
alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL));
137-
}
138-
}
139-
140126
@NonNull
141127
@Override
142128
public Dialog onCreateDialog(Bundle savedInstanceState) {

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
4040
import com.google.common.collect.Sets;
4141
import com.nextcloud.client.di.Injectable;
42+
import com.nmc.android.utils.DialogThemeUtils;
4243
import com.owncloud.android.R;
4344
import com.owncloud.android.databinding.EditBoxDialogBinding;
4445
import com.owncloud.android.datamodel.FileDataStorageManager;
@@ -102,8 +103,6 @@ public void onStart() {
102103

103104
if (alertDialog != null) {
104105
positiveButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
105-
viewThemeUtils.platform.colorTextButtons(positiveButton,
106-
alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL));
107106
}
108107
}
109108

@@ -126,7 +125,6 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
126125
// Setup layout
127126
String currentName = mTargetFile.getFileName();
128127
binding.userInput.setText(currentName);
129-
viewThemeUtils.material.colorTextInputLayout(binding.userInputContainer);
130128
int extensionStart = mTargetFile.isFolder() ? -1 : currentName.lastIndexOf('.');
131129
int selectionEnd = extensionStart >= 0 ? extensionStart : currentName.length();
132130
binding.userInput.setSelection(0, selectionEnd);
@@ -184,7 +182,8 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {
184182
.setNeutralButton(R.string.common_cancel, this)
185183
.setTitle(R.string.rename_dialog_title);
186184

187-
viewThemeUtils.dialog.colorMaterialAlertDialogBackground(binding.userInputContainer.getContext(), builder);
185+
//NMC customization
186+
DialogThemeUtils.INSTANCE.colorMaterialAlertDialogBackground(binding.userInputContainer.getContext(), builder);
188187

189188
return builder.create();
190189
}

0 commit comments

Comments
 (0)