diff --git a/android_app/app/src/main/java/com/health/openscale/gui/measurement/FloatMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/FloatMeasurementView.java index 808c01d8..88b0e442 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/measurement/FloatMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/FloatMeasurementView.java @@ -49,6 +49,7 @@ import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.evaluation.EvaluationResult; import com.health.openscale.core.evaluation.EvaluationSheet; import com.health.openscale.core.utils.Converters; +import com.health.openscale.gui.utils.ColorUtil; import java.util.Date; import java.util.Locale; @@ -707,10 +708,12 @@ public abstract class FloatMeasurementView extends MeasurementView { final Button inc = view.findViewById(R.id.btn_inc); inc.setText("\u25b2 +" + formatValue(INC_DEC_DELTA)); inc.setOnClickListener(onClickListener); + inc.setTextColor(ColorUtil.getPrimaryColor(getContext())); inc.setOnTouchListener(repeatListener); final Button dec = view.findViewById(R.id.btn_dec); dec.setText("\u25bc -" + formatValue(INC_DEC_DELTA)); + dec.setTextColor(ColorUtil.getPrimaryColor(getContext())); dec.setOnClickListener(onClickListener); dec.setOnTouchListener(repeatListener); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/measurement/MeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/measurement/MeasurementView.java index c4d972b5..70127ea8 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/measurement/MeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/measurement/MeasurementView.java @@ -20,11 +20,11 @@ import static com.health.openscale.gui.measurement.MeasurementView.MeasurementVi import static com.health.openscale.gui.measurement.MeasurementView.MeasurementViewMode.STATISTIC; import static com.health.openscale.gui.measurement.MeasurementView.MeasurementViewMode.VIEW; -import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.SharedPreferences; import android.graphics.Color; +import android.graphics.PorterDuff; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; @@ -44,11 +44,13 @@ import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; +import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import androidx.preference.CheckBoxPreference; import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleMeasurement; @@ -454,11 +456,12 @@ public abstract class MeasurementView extends TableLayout { private void prepareInputDialog(final AlertDialog dialog) { dialog.setTitle(getName()); + getIcon().setColorFilter(ColorUtil.getTintColor(getContext()), PorterDuff.Mode.SRC_IN); dialog.setIcon(getIcon()); final View input = getInputView(); - FrameLayout fl = dialog.findViewById(android.R.id.custom); + FrameLayout fl = dialog.findViewById(R.id.custom); fl.removeAllViews(); fl.addView(input, new LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); @@ -475,10 +478,13 @@ public abstract class MeasurementView extends TableLayout { }; dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(clickListener); + dialog.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(ColorUtil.getPrimaryColor(getContext())); dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setOnClickListener(clickListener); + dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setTextColor(ColorUtil.getPrimaryColor(getContext())); final MeasurementView next = getNextView(); if (next != null) { + dialog.getButton(DialogInterface.BUTTON_NEUTRAL).setTextColor(ColorUtil.getPrimaryColor(getContext())); dialog.getButton(DialogInterface.BUTTON_NEUTRAL).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -494,7 +500,7 @@ public abstract class MeasurementView extends TableLayout { } private void showInputDialog() { - AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getContext()); builder.setTitle(getName()); builder.setIcon(getIcon()); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/utils/ColorUtil.java b/android_app/app/src/main/java/com/health/openscale/gui/utils/ColorUtil.java index 4fc4b898..153dce5b 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/utils/ColorUtil.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/utils/ColorUtil.java @@ -33,6 +33,18 @@ public class ColorUtil { public static final int COLOR_BLACK = Color.parseColor("#000000"); public static final int[] COLORS = new int[]{COLOR_BLUE, COLOR_VIOLET, COLOR_GREEN, COLOR_ORANGE, COLOR_RED}; + public static int getPrimaryColor(Context context) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + + int nightModeFlags = context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + + if (prefs.getString("app_theme", "Light").equals("Dark") || nightModeFlags == Configuration.UI_MODE_NIGHT_YES) { + return context.getResources().getColor(android.R.color.primary_text_dark); + } + + return context.getResources().getColor(android.R.color.primary_text_light); + } + public static int getTintColor(Context context) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);