Skip to content

Commit 50f2d3d

Browse files
committed
Add night mode support
Closes #52 Android theming is hell of a funhouse.. Signed-off-by: Aron Heinecke <aron.heinecke@t-online.de>
1 parent f15ac1a commit 50f2d3d

Some content is hidden

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

49 files changed

+301
-101
lines changed

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/activity/EditorActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ public void addEntry() {
291291
private void showEntryDeleteDialog(final VEntry entry, final int position) {
292292
if (entry.getId() == ID_RESERVED_SKIP)
293293
return;
294-
AlertDialog.Builder delDiag = new AlertDialog.Builder(this);
294+
AlertDialog.Builder delDiag = new AlertDialog.Builder(this,R.style.CustomDialog);
295295

296296
delDiag.setTitle(R.string.Editor_Diag_delete_Title);
297297
delDiag.setMessage(String.format(getString(R.string.Editor_Diag_delete_MSG_part) + "\n %s %s %s", entry.getAString(), entry.getBString(), entry.getTip()));

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/activity/FileActivity.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package vocabletrainer.heinecke.aron.vocabletrainer.activity;
22

33
import android.app.Activity;
4+
45
import androidx.lifecycle.ViewModelProviders;
6+
57
import android.content.Intent;
68
import android.content.SharedPreferences;
79
import android.graphics.Color;
810
import android.graphics.PorterDuff;
911
import android.os.Bundle;
1012
import androidx.annotation.NonNull;
13+
1114
import com.google.android.material.snackbar.Snackbar;
1215
import androidx.appcompat.app.ActionBar;
1316
import androidx.appcompat.app.AlertDialog;
@@ -317,8 +320,7 @@ public void onOkPressed(View view) {
317320
.show();
318321
Log.d(TAG,"selection is directory");
319322
} else if (selectedFile.exists()) {
320-
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
321-
323+
final AlertDialog.Builder alert = new AlertDialog.Builder(this,R.style.CustomDialog);
322324
alert.setTitle(R.string.File_Diag_exists_Title);
323325
alert.setMessage(getString(R.string.File_Diag_MSG_part).replace("%f", selectedFile.getName()));
324326

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/activity/MainActivity.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package vocabletrainer.heinecke.aron.vocabletrainer.activity;
22

33
import android.app.Activity;
4+
import android.content.DialogInterface;
45
import android.content.Intent;
56
import android.content.SharedPreferences;
67
import android.os.Bundle;
@@ -9,6 +10,8 @@
910

1011
import androidx.appcompat.app.AlertDialog;
1112
import androidx.appcompat.app.AppCompatActivity;
13+
import androidx.core.content.ContextCompat;
14+
1215
import vocabletrainer.heinecke.aron.vocabletrainer.R;
1316
import vocabletrainer.heinecke.aron.vocabletrainer.dialog.SurveyDialog;
1417
import vocabletrainer.heinecke.aron.vocabletrainer.lib.Database;
@@ -38,7 +41,7 @@ protected void onCreate(Bundle savedInstanceState) {
3841
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
3942
showedDialog = settings.getBoolean(P_KEY_ALPHA_DIALOG, false);
4043
if (!showedDialog) {
41-
final AlertDialog.Builder betaWarnDiag = new AlertDialog.Builder(this);
44+
final AlertDialog.Builder betaWarnDiag = new AlertDialog.Builder(this,R.style.CustomDialog);
4245

4346
betaWarnDiag.setTitle(R.string.Beta_Warning_Diag_Title);
4447
betaWarnDiag.setMessage(R.string.Beta_Warning_Diag_Msg);
@@ -71,6 +74,7 @@ protected void onCreate(Bundle savedInstanceState) {
7174

7275
@Override
7376
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
77+
super.onActivityResult(requestCode, resultCode, data);
7478
if (resultCode == Activity.RESULT_OK) {
7579
switch (requestCode) {
7680
case REQUEST_PERM_EXPORT: {

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/activity/TrainerActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ public void showResultDialog(){
152152
return null;
153153
};
154154
TrainerResultDialog resultDialog = TrainerResultDialog.newInstance(trainer,callable);
155-
resultDialog.show(getFragmentManager(),TAG);
155+
resultDialog.show(getSupportFragmentManager(),TAG);
156156
}
157157
}
158158

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/dialog/ImportLogDialog.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,11 @@ public static ImportLogDialog newInstance(final ImportViewModel.LogData log){
3030
return dialog;
3131
}
3232

33-
@Override
34-
public void onCreate(@Nullable Bundle savedInstanceState) {
35-
super.onCreate(savedInstanceState);
36-
setStyle(DialogFragment.STYLE_NORMAL, R.style.CustomDialog);
37-
}
38-
3933
@NonNull
4034
@Override
4135
public Dialog onCreateDialog(Bundle savedInstanceState) {
4236

43-
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity());
37+
AlertDialog.Builder alertDialog = new AlertDialog.Builder(requireActivity(),R.style.CustomDialog);
4438
alertDialog.setTitle(getArguments().getBoolean(PREVIEW) ?
4539
R.string.Import_Preview_Log_Title : R.string.Import_Finished_Title);
4640
alertDialog.setMessage(getArguments().getString(LOG));

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/dialog/ItemPickerDialog.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,6 @@ public void setItemPickerHandler(ItemPickerHandler handler){
3838
this.handler = handler;
3939
}
4040

41-
@Override
42-
public void onCreate(@Nullable Bundle savedInstanceState) {
43-
super.onCreate(savedInstanceState);
44-
setStyle(DialogFragment.STYLE_NORMAL, R.style.CustomDialog);
45-
}
46-
4741
/**
4842
* Creates a new instance
4943
*/
@@ -73,7 +67,7 @@ public void overrideEntry(int id, String value){
7367
public Dialog onCreateDialog(Bundle savedInstanceState) {
7468
int itemArray = getArguments().getInt(P_ITEMS);
7569

76-
AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
70+
AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity(),R.style.CustomDialog);
7771
dialog.setTitle(getArguments().getInt(P_TITLE));
7872
String[] values = getResources().getStringArray(itemArray);
7973
if(overrides != null) {

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/dialog/ProgressDialog.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package vocabletrainer.heinecke.aron.vocabletrainer.dialog;
22

33
import android.annotation.SuppressLint;
4+
5+
import androidx.appcompat.app.AppCompatDelegate;
46
import androidx.lifecycle.LiveData;
57
import androidx.lifecycle.MutableLiveData;
68
import android.os.Bundle;
@@ -38,12 +40,6 @@ public class ProgressDialog extends DialogFragment {
3840
private int max = 0;
3941
private @StringRes int title = R.string.Placeholder;
4042

41-
@Override
42-
public void onCreate(@Nullable Bundle savedInstanceState) {
43-
super.onCreate(savedInstanceState);
44-
setStyle(DialogFragment.STYLE_NORMAL, R.style.CustomDialog);
45-
}
46-
4743
@Override
4844
public void onSaveInstanceState(Bundle outState) {
4945
super.onSaveInstanceState(outState);
@@ -131,7 +127,8 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
131127
indeterminateMode = savedInstanceState.getBoolean(P_KEY_MODE);
132128
}
133129
View view = View.inflate(getContext(),R.layout.dialog_progress, null);
134-
130+
// hack to get daynight theme working
131+
view.getContext().getTheme().applyStyle(R.style.CustomDialog, true);
135132
progressBar = view.findViewById(R.id.dialog_progressbar);
136133
messageView = view.findViewById(R.id.dialog_message);
137134
titleView = view.findViewById(R.id.dialog_title);

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/dialog/SurveyDialog.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import androidx.annotation.NonNull;
1717
import androidx.annotation.Nullable;
18+
import androidx.core.content.ContextCompat;
1819
import androidx.fragment.app.DialogFragment;
1920
import androidx.lifecycle.ViewModelProviders;
2021
import vocabletrainer.heinecke.aron.vocabletrainer.R;
@@ -40,7 +41,6 @@ public class SurveyDialog extends DialogFragment {
4041
@Override
4142
public void onCreate(@Nullable Bundle savedInstanceState) {
4243
super.onCreate(savedInstanceState);
43-
setStyle(DialogFragment.STYLE_NORMAL, R.style.CustomDialog);
4444
surveyViewModel = ViewModelProviders.of(getActivity()).get(SurveyViewModel.class);
4545

4646
surveyViewModel.getErrorLiveData().observe(this,err -> {
@@ -96,7 +96,8 @@ public static SurveyDialog newInstance(){
9696
@Override
9797
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
9898
View view = View.inflate(getContext(),R.layout.dialog_survey, null);
99-
99+
/*int color = ContextCompat.getColor(requireContext(), R.color.background);
100+
view.setBackgroundColor(color);*/
100101
progressBar = view.findViewById(R.id.dialog_progressbar);
101102
progressBar.setIndeterminate(true);
102103
progressBar.setVisibility(View.GONE);

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/dialog/TrainerResultDialog.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package vocabletrainer.heinecke.aron.vocabletrainer.dialog;
22

33
import android.app.Dialog;
4-
import android.app.DialogFragment;
4+
import androidx.fragment.app.DialogFragment;
55
import android.content.DialogInterface;
66
import android.os.Bundle;
77
import androidx.annotation.Nullable;
@@ -60,7 +60,7 @@ private void setTrainer(Trainer trainer){
6060
@Override
6161
public Dialog onCreateDialog(Bundle savedInstanceState) {
6262

63-
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity());
63+
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity(),R.style.CustomDialog);
6464
alertDialog.setTitle(R.string.Trainer_Diag_finished_Title);
6565
alertDialog.setMessage(R.string.Trainer_Diag_finished_MSG);
6666

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/dialog/VEntryEditorDialog.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ public void setCancelAction(Function<Void,VEntry> cancelAction) {
7777
@Override
7878
public void onCreate(@Nullable Bundle savedInstanceState) {
7979
super.onCreate(savedInstanceState);
80+
// we have to override this one, because we're inflating + using the builder, apparently
8081
setStyle(DialogFragment.STYLE_NORMAL, R.style.CustomDialog);
8182
}
8283

@@ -99,9 +100,12 @@ public void onSaveInstanceState(Bundle outState) {
99100
@NonNull
100101
@Override
101102
public Dialog onCreateDialog(Bundle savedInstanceState) {
102-
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
103+
AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity(),R.style.CustomDialog);
103104

104105
final View view = View.inflate(getActivity(), R.layout.dialog_entry, null);
106+
// and we have to use this one, together with onCreate, because of the inflation here
107+
// to override dialog buttons + inflated view
108+
view.getContext().getTheme().applyStyle(R.style.CustomDialog, true);
105109
builder.setTitle(R.string.Editor_Diag_edit_Title);
106110
builder.setView(view);
107111

@@ -263,8 +267,7 @@ public void onClick(View v) {
263267
private View generateMeaning(final String meaning, final String hint,int image, String description, View.OnClickListener listener,
264268
boolean focus){
265269
final RelativeLayout container = (RelativeLayout) View.inflate(getActivity(),R.layout.editor_meaning,null);
266-
267-
container.setTag(tagCounter);
270+
container.getContext().getTheme().applyStyle(R.style.CustomDialog, true);
268271
tagCounter++;
269272
final TextInputLayout layout = container.findViewById(R.id.wrapper_meaning);
270273
final TextInputEditText text = container.findViewById(R.id.meaning);

0 commit comments

Comments
 (0)