diff --git a/app/src/main/java/org/sportiduino/app/FragmentReadCard.java b/app/src/main/java/org/sportiduino/app/FragmentReadCard.java
index 0aea957..c6d7af1 100644
--- a/app/src/main/java/org/sportiduino/app/FragmentReadCard.java
+++ b/app/src/main/java/org/sportiduino/app/FragmentReadCard.java
@@ -21,6 +21,7 @@
public class FragmentReadCard extends NfcFragment implements IntentReceiver {
private FragmentReadCardBinding binding;
+ private View currentView;
@Override
public View onCreateView(
@@ -34,6 +35,7 @@ public View onCreateView(
@Override
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
+ this.currentView = view;
binding.textViewInfo.setText(R.string.bring_card);
binding.layoutTagInfo.setVisibility(View.GONE);
@@ -100,7 +102,7 @@ protected void onPostExecute(Boolean result) {
binding.textViewTagType.setText(String.format(getString(R.string.tag_type_s), card.adapter.tagType.name()));
binding.textViewInfo.setText(card.parseData(buffer));
} else {
- binding.textViewInfo.setText(Util.error(getString(R.string.reading_card_failed)));
+ binding.textViewInfo.setText(Util.error(getString(R.string.reading_card_failed), currentView));
}
}
}
diff --git a/app/src/main/java/org/sportiduino/app/FragmentStationSettings.java b/app/src/main/java/org/sportiduino/app/FragmentStationSettings.java
index 6f76fd2..06d7ebc 100644
--- a/app/src/main/java/org/sportiduino/app/FragmentStationSettings.java
+++ b/app/src/main/java/org/sportiduino/app/FragmentStationSettings.java
@@ -48,6 +48,7 @@ public class FragmentStationSettings extends NfcFragment {
private int timerCount;
private Timer timer;
private SharedPreferences.OnSharedPreferenceChangeListener preferenceChangeListener;
+ private View currentView;
@Override
public View onCreateView(
@@ -62,6 +63,7 @@ public View onCreateView(
@Override
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
+ this.currentView = view;
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(requireActivity());
updatePasswordFromSharedPreferences(sharedPref);
@@ -360,12 +362,12 @@ protected Boolean doInBackground(Void... params) {
@Override
protected void onPostExecute(Boolean result) {
if (result) {
- binding.textViewNfcInfo.setText(Util.ok(getString(R.string.data_written_to_card_successfully)));
+ binding.textViewNfcInfo.setText(Util.ok(getString(R.string.data_written_to_card_successfully), currentView));
if (binding.radioButtonMasterTime.isChecked()) {
startCountdownTimer();
}
} else {
- binding.textViewNfcInfo.setText(Util.error(getString(R.string.writing_card_failed)));
+ binding.textViewNfcInfo.setText(Util.error(getString(R.string.writing_card_failed), currentView));
}
}
}
diff --git a/app/src/main/java/org/sportiduino/app/FragmentWriteCard.java b/app/src/main/java/org/sportiduino/app/FragmentWriteCard.java
index 2fa27e0..58590ff 100644
--- a/app/src/main/java/org/sportiduino/app/FragmentWriteCard.java
+++ b/app/src/main/java/org/sportiduino/app/FragmentWriteCard.java
@@ -24,6 +24,7 @@
public class FragmentWriteCard extends NfcFragment {
private FragmentWriteCardBinding binding;
private int cardNumber;
+ private View currentView;
@Override
public View onCreateView(
@@ -37,6 +38,7 @@ public View onCreateView(
@Override
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
+ this.currentView = view;
binding.textViewNfcInfo.setText(R.string.bring_card);
@@ -113,12 +115,12 @@ protected Boolean doInBackground(Void... params) {
protected void onPostExecute(Boolean result) {
binding.progressBar.setVisibility(View.GONE);
if (result) {
- binding.textViewNfcInfo.setText(Util.ok(getString(R.string.data_written_to_card_successfully)));
+ binding.textViewNfcInfo.setText(Util.ok(getString(R.string.data_written_to_card_successfully), currentView));
if (binding.checkBoxAutoIncrement.isChecked() && !binding.checkBoxCleaningOnly.isChecked()) {
binding.editTextCardNumber.setText(String.valueOf(cardNumber + 1));
}
} else {
- binding.textViewNfcInfo.setText(Util.error(getString(R.string.writing_card_failed)));
+ binding.textViewNfcInfo.setText(Util.error(getString(R.string.writing_card_failed), currentView));
}
}
}
diff --git a/app/src/main/java/org/sportiduino/app/MainActivity.java b/app/src/main/java/org/sportiduino/app/MainActivity.java
index 9a94242..218c675 100644
--- a/app/src/main/java/org/sportiduino/app/MainActivity.java
+++ b/app/src/main/java/org/sportiduino/app/MainActivity.java
@@ -8,10 +8,6 @@
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
-import androidx.navigation.NavController;
-import androidx.navigation.Navigation;
-import androidx.navigation.ui.AppBarConfiguration;
-import androidx.navigation.ui.NavigationUI;
import androidx.preference.PreferenceManager;
import org.sportiduino.app.databinding.ActivityMainBinding;
diff --git a/app/src/main/java/org/sportiduino/app/SettingsFragment.java b/app/src/main/java/org/sportiduino/app/SettingsFragment.java
index b427db1..868c66a 100644
--- a/app/src/main/java/org/sportiduino/app/SettingsFragment.java
+++ b/app/src/main/java/org/sportiduino/app/SettingsFragment.java
@@ -2,17 +2,34 @@
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatDelegate;
import androidx.fragment.app.DialogFragment;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceManager;
-public class SettingsFragment extends PreferenceFragmentCompat {
+public class SettingsFragment extends PreferenceFragmentCompat implements PreferenceManager.OnPreferenceTreeClickListener {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences, rootKey);
}
+ @Override
+ public boolean onPreferenceTreeClick(Preference preference) {
+ if (preference.getKey().equals("night_mode")) {
+ if (AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO) {
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
+ } else {
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
+ }
+
+ return true;
+ }
+
+ return false;
+ }
+
@Override
public void onDisplayPreferenceDialog(Preference preference) {
// Try if the preference is one of our custom Preferences
diff --git a/app/src/main/java/org/sportiduino/app/sportiduino/State.java b/app/src/main/java/org/sportiduino/app/sportiduino/State.java
index 3daa107..33fdd21 100644
--- a/app/src/main/java/org/sportiduino/app/sportiduino/State.java
+++ b/app/src/main/java/org/sportiduino/app/sportiduino/State.java
@@ -116,9 +116,9 @@ public String toString() {
}
if (isOk()) {
- return Util.coloredHtmlString(App.str(R.string.battery_ok) + voltageText, "#008000");
+ return Util.coloredHtmlString(App.str(R.string.battery_ok) + voltageText, Util.colorToHexCode(R.color.green));
}
- return Util.coloredHtmlString(App.str(R.string.battery_low) + voltageText, "red");
+ return Util.coloredHtmlString(App.str(R.string.battery_low) + voltageText, Util.colorToHexCode(R.color.red));
}
}
@@ -166,9 +166,9 @@ public String toString() {
}
clockStr += deltaStr;
if (timestamp < (nowSec - 20) || timestamp > (nowSec + 17)) {
- clockStr = Util.coloredHtmlString(clockStr, "red");
+ clockStr = Util.coloredHtmlString(clockStr, Util.colorToHexCode(R.color.red));
} else if (timestamp < (nowSec - 5) || timestamp > nowSec) {
- clockStr = Util.coloredHtmlString(clockStr, "#FFC300");
+ clockStr = Util.coloredHtmlString(clockStr, Util.colorToHexCode(R.color.yellow));
}
stringState += App.str(R.string.state_clock_) + " " + clockStr;
stringState += App.str(R.string.state_alarm_) + " " + Util.dformat.format(new Date(wakeupTimestamp*1000));
diff --git a/app/src/main/java/org/sportiduino/app/sportiduino/Util.java b/app/src/main/java/org/sportiduino/app/sportiduino/Util.java
index 4c503b5..890b1bc 100644
--- a/app/src/main/java/org/sportiduino/app/sportiduino/Util.java
+++ b/app/src/main/java/org/sportiduino/app/sportiduino/Util.java
@@ -4,6 +4,8 @@
import android.text.SpannableString;
import android.text.style.BackgroundColorSpan;
+import android.view.View;
+import androidx.core.content.ContextCompat;
import org.sportiduino.app.App;
import org.sportiduino.app.R;
@@ -60,12 +62,28 @@ public static SpannableString error(String s) {
return colorString(s, App.color(R.color.error_text_bg));
}
+ public static SpannableString error(String s, View view) {
+ int color = ContextCompat.getColor(view.getContext(), R.color.error_text_bg);
+
+ return colorString(s, color);
+ }
+
public static SpannableString ok(String s) {
return colorString(s, App.color(R.color.ok_text_bg));
}
+ public static SpannableString ok(String s, View view) {
+ int color = ContextCompat.getColor(view.getContext(), R.color.ok_text_bg);
+
+ return colorString(s, color);
+ }
+
public static String coloredHtmlString(String s, String color) {
return String.format("%s", color, s);
}
+
+ public static String colorToHexCode(Integer color) {
+ return String.format("#%06x", App.color(color) & 0x00ffffff);
+ }
}
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
new file mode 100644
index 0000000..3e0d426
--- /dev/null
+++ b/app/src/main/res/values-night/colors.xml
@@ -0,0 +1,7 @@
+
+
+ #999999
+ #980b0b
+ @color/red
+ @color/green
+
diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml
index 1a5c583..c1fbb8c 100644
--- a/app/src/main/res/values-night/themes.xml
+++ b/app/src/main/res/values-night/themes.xml
@@ -1,16 +1,9 @@
-
-
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 29a79ba..83adaf4 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -1,17 +1,14 @@
- #FFBB86FC
- #FF6200EE
- #FF3700B3
- #343b9f
- #6a65d1
- #001570
- #FF03DAC5
- #FF018786
- #FF000000
- #FFFFFFFF
- #FF808080
- #FFF6C0C0
- #FFC5E1B0
+ #333333
+ #980b0b
+ #ff000000
+ #ffffffff
+ #ff808080
+ #ff0000
+ #008000
+ #ffc300
+ #fff6c0c0
+ #ffc5E1b0
@color/gray
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index ca4a156..8f43e30 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -1,17 +1,8 @@
-
-
+
-
-
+