diff --git a/android-app/app/src/main/java/de/drmaxnix/birthdaycountdown/MainActivity.java b/android-app/app/src/main/java/de/drmaxnix/birthdaycountdown/MainActivity.java
index 20832ad..4e916f2 100755
--- a/android-app/app/src/main/java/de/drmaxnix/birthdaycountdown/MainActivity.java
+++ b/android-app/app/src/main/java/de/drmaxnix/birthdaycountdown/MainActivity.java
@@ -28,9 +28,12 @@ public class MainActivity extends AppCompatActivity {
int[] birthdate = new int[3];
- TextView countdown_days;
- TextView countdown_hours;
- TextView countdown_minutes;
+ TextView countdown_part_0;
+ TextView countdown_part_0_unit;
+ TextView countdown_part_1;
+ TextView countdown_part_1_unit;
+ TextView countdown_part_2;
+ TextView countdown_part_2_unit;
LinearLayout date_select_container;
TextView date_select_text;
@@ -91,9 +94,12 @@ public class MainActivity extends AppCompatActivity {
// BIND VIEWS //
- countdown_days = findViewById(R.id.countdown_days);
- countdown_hours = findViewById(R.id.countdown_hours);
- countdown_minutes = findViewById(R.id.countdown_minutes);
+ countdown_part_0 = findViewById(R.id.countdown_part_0);
+ countdown_part_0_unit = findViewById(R.id.countdown_part_0_unit);
+ countdown_part_1 = findViewById(R.id.countdown_part_1);
+ countdown_part_1_unit = findViewById(R.id.countdown_part_1_unit);
+ countdown_part_2 = findViewById(R.id.countdown_part_2);
+ countdown_part_2_unit = findViewById(R.id.countdown_part_2_unit);
date_select_container = findViewById(R.id.date_select_container);
date_select_text = findViewById(R.id.date_select_text);
@@ -299,7 +305,7 @@ public class MainActivity extends AppCompatActivity {
// CALL AGAIN AFTER DELAY //
- update_handler.postDelayed(this, 1000);
+ update_handler.postDelayed(this, 200);
}
};
@@ -307,11 +313,14 @@ public class MainActivity extends AppCompatActivity {
HELPER: Update overview countdown
*/
private void update_overview_countdown(){
- // MAYBE DISPLAY PLACEHOLDER //
+ // MAYBE DISPLAY PLACEHOLDERS //
if(birthdate[0] <= -1 || birthdate[1] <= -1 || birthdate[2] <= -1){
- countdown_days.setText(R.string.countdown_days_placeholder);
- countdown_hours.setText(R.string.countdown_hours_placeholder);
- countdown_minutes.setText(R.string.countdown_minutes_placeholder);
+ countdown_part_0.setText(R.string.countdown_part_0_placeholder);
+ countdown_part_0_unit.setText(R.string.countdown_part_0_unit_placeholder);
+ countdown_part_1.setText(R.string.countdown_part_1_placeholder);
+ countdown_part_1_unit.setText(R.string.countdown_part_1_unit_placeholder);
+ countdown_part_2.setText(R.string.countdown_part_2_placeholder);
+ countdown_part_2_unit.setText(R.string.countdown_part_2_unit_placeholder);
return;
}
@@ -323,10 +332,26 @@ public class MainActivity extends AppCompatActivity {
// format millis left
String[] countdown = format_countdown(birthday.millis_left());
- // set texts
- countdown_days.setText(countdown[0]);
- countdown_hours.setText(countdown[1]);
- countdown_minutes.setText(countdown[2]);
+
+ // DISPLAY 3 MOST SIGNIFICANT SEGMENTS //
+ if(get_most_significant_segment(countdown)[1].equals("d")){
+ // display days, hours and minutes
+ countdown_part_0.setText(countdown[0]);
+ countdown_part_0_unit.setText(R.string.countdown_unit_days);
+ countdown_part_1.setText(countdown[1]);
+ countdown_part_1_unit.setText(R.string.countdown_unit_hours);
+ countdown_part_2.setText(countdown[2]);
+ countdown_part_2_unit.setText(R.string.countdown_unit_minutes);
+
+ } else {
+ // display hours, minutes and seconds
+ countdown_part_0.setText(countdown[1]);
+ countdown_part_0_unit.setText(R.string.countdown_unit_hours);
+ countdown_part_1.setText(countdown[2]);
+ countdown_part_1_unit.setText(R.string.countdown_unit_minutes);
+ countdown_part_2.setText(countdown[3]);
+ countdown_part_2_unit.setText(R.string.countdown_unit_seconds);
+ }
}
/*
@@ -470,9 +495,6 @@ public class MainActivity extends AppCompatActivity {
}
private String[] format_countdown(double millis_left, boolean fill_up_with_zeroes){
// GET VALUES //
- // make up for the missing seconds display
- millis_left += DateUtils.MINUTE_IN_MILLIS;
-
// days
int date_diff_days = (int)Math.floor(millis_left / DateUtils.DAY_IN_MILLIS);
millis_left -= (date_diff_days * DateUtils.DAY_IN_MILLIS);
@@ -483,6 +505,10 @@ public class MainActivity extends AppCompatActivity {
// minutes
int date_diff_minutes = (int)Math.floor(millis_left / DateUtils.MINUTE_IN_MILLIS);
+ millis_left -= (date_diff_minutes * DateUtils.MINUTE_IN_MILLIS);
+
+ // seconds
+ int date_diff_seconds = (int)Math.floor(millis_left / DateUtils.SECOND_IN_MILLIS);
// GET TEXTS //
@@ -503,9 +529,16 @@ public class MainActivity extends AppCompatActivity {
}
countdown_segment_minutes += Integer.toString(date_diff_minutes);
+ // seconds
+ String countdown_segment_seconds = "";
+ if(fill_up_with_zeroes && date_diff_seconds < 10){
+ countdown_segment_seconds += "0";
+ }
+ countdown_segment_seconds += Integer.toString(date_diff_seconds);
+
// RETURN //
- return new String[]{countdown_segment_days, countdown_segment_hours, countdown_segment_minutes};
+ return new String[]{countdown_segment_days, countdown_segment_hours, countdown_segment_minutes, countdown_segment_seconds};
}
/*
@@ -518,8 +551,11 @@ public class MainActivity extends AppCompatActivity {
if(countdown[1].replace("0", "").length() > 0){
return new String[]{countdown[1], "h"};
}
+ if(countdown[2].replace("0", "").length() > 0){
+ return new String[]{countdown[2], "m"};
+ }
- return new String[]{countdown[2], "m"};
+ return new String[]{countdown[3], "s"};
}
/*
diff --git a/android-app/app/src/main/res/layout/activity_main.xml b/android-app/app/src/main/res/layout/activity_main.xml
index beea3fe..ad75b84 100755
--- a/android-app/app/src/main/res/layout/activity_main.xml
+++ b/android-app/app/src/main/res/layout/activity_main.xml
@@ -84,53 +84,55 @@
tools:ignore="UselessParent">
diff --git a/android-app/app/src/main/res/values/strings.xml b/android-app/app/src/main/res/values/strings.xml
index 0d86a6e..cbcc840 100755
--- a/android-app/app/src/main/res/values/strings.xml
+++ b/android-app/app/src/main/res/values/strings.xml
@@ -3,12 +3,17 @@
App icon
> Select Date of Birth <
- 000
- d
- 00
- h
- 00
- m
+ 000
+ d
+ 00
+ h
+ 00
+ m
+
+ d
+ h
+ m
+ s
Milestones
birthday