display seconds counter on last 24h

This commit is contained in:
DrMaxNix 2022-08-31 15:45:42 +02:00
parent 0203c6c72b
commit c8fc997b76
3 changed files with 79 additions and 36 deletions

View File

@ -28,9 +28,12 @@ public class MainActivity extends AppCompatActivity {
int[] birthdate = new int[3]; int[] birthdate = new int[3];
TextView countdown_days; TextView countdown_part_0;
TextView countdown_hours; TextView countdown_part_0_unit;
TextView countdown_minutes; TextView countdown_part_1;
TextView countdown_part_1_unit;
TextView countdown_part_2;
TextView countdown_part_2_unit;
LinearLayout date_select_container; LinearLayout date_select_container;
TextView date_select_text; TextView date_select_text;
@ -91,9 +94,12 @@ public class MainActivity extends AppCompatActivity {
// BIND VIEWS // // BIND VIEWS //
countdown_days = findViewById(R.id.countdown_days); countdown_part_0 = findViewById(R.id.countdown_part_0);
countdown_hours = findViewById(R.id.countdown_hours); countdown_part_0_unit = findViewById(R.id.countdown_part_0_unit);
countdown_minutes = findViewById(R.id.countdown_minutes); 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_container = findViewById(R.id.date_select_container);
date_select_text = findViewById(R.id.date_select_text); date_select_text = findViewById(R.id.date_select_text);
@ -299,7 +305,7 @@ public class MainActivity extends AppCompatActivity {
// CALL AGAIN AFTER DELAY // // 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 HELPER: Update overview countdown
*/ */
private void update_overview_countdown(){ private void update_overview_countdown(){
// MAYBE DISPLAY PLACEHOLDER // // MAYBE DISPLAY PLACEHOLDERS //
if(birthdate[0] <= -1 || birthdate[1] <= -1 || birthdate[2] <= -1){ if(birthdate[0] <= -1 || birthdate[1] <= -1 || birthdate[2] <= -1){
countdown_days.setText(R.string.countdown_days_placeholder); countdown_part_0.setText(R.string.countdown_part_0_placeholder);
countdown_hours.setText(R.string.countdown_hours_placeholder); countdown_part_0_unit.setText(R.string.countdown_part_0_unit_placeholder);
countdown_minutes.setText(R.string.countdown_minutes_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; return;
} }
@ -323,10 +332,26 @@ public class MainActivity extends AppCompatActivity {
// format millis left // format millis left
String[] countdown = format_countdown(birthday.millis_left()); String[] countdown = format_countdown(birthday.millis_left());
// set texts
countdown_days.setText(countdown[0]); // DISPLAY 3 MOST SIGNIFICANT SEGMENTS //
countdown_hours.setText(countdown[1]); if(get_most_significant_segment(countdown)[1].equals("d")){
countdown_minutes.setText(countdown[2]); // 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){ private String[] format_countdown(double millis_left, boolean fill_up_with_zeroes){
// GET VALUES // // GET VALUES //
// make up for the missing seconds display
millis_left += DateUtils.MINUTE_IN_MILLIS;
// days // days
int date_diff_days = (int)Math.floor(millis_left / DateUtils.DAY_IN_MILLIS); int date_diff_days = (int)Math.floor(millis_left / DateUtils.DAY_IN_MILLIS);
millis_left -= (date_diff_days * DateUtils.DAY_IN_MILLIS); millis_left -= (date_diff_days * DateUtils.DAY_IN_MILLIS);
@ -483,6 +505,10 @@ public class MainActivity extends AppCompatActivity {
// minutes // minutes
int date_diff_minutes = (int)Math.floor(millis_left / DateUtils.MINUTE_IN_MILLIS); 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 // // GET TEXTS //
@ -503,9 +529,16 @@ public class MainActivity extends AppCompatActivity {
} }
countdown_segment_minutes += Integer.toString(date_diff_minutes); 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 //
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,10 +551,13 @@ public class MainActivity extends AppCompatActivity {
if(countdown[1].replace("0", "").length() > 0){ if(countdown[1].replace("0", "").length() > 0){
return new String[]{countdown[1], "h"}; 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"};
}
/* /*
TOOL: Format number as ordinal string TOOL: Format number as ordinal string
*/ */

View File

@ -84,53 +84,55 @@
tools:ignore="UselessParent"> tools:ignore="UselessParent">
<TextView <TextView
android:id="@+id/countdown_days" android:id="@+id/countdown_part_0"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/countdown_days_placeholder" android:text="@string/countdown_part_0_placeholder"
android:typeface="monospace" android:typeface="monospace"
android:textSize="56sp" android:textSize="56sp"
android:textColor="@color/white"/> android:textColor="@color/white"/>
<TextView <TextView
android:id="@+id/countdown_part_0_unit"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:text="@string/countdown_days_unit" android:text="@string/countdown_part_0_unit_placeholder"
android:textSize="24sp" android:textSize="24sp"
android:textColor="@color/white"/> android:textColor="@color/white"/>
<TextView <TextView
android:id="@+id/countdown_hours" android:id="@+id/countdown_part_1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/countdown_hours_placeholder" android:text="@string/countdown_part_1_placeholder"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:typeface="monospace" android:typeface="monospace"
android:textSize="56sp" android:textSize="56sp"
android:textColor="@color/white"/> android:textColor="@color/white"/>
<TextView <TextView
android:id="@+id/countdown_part_1_unit"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:text="@string/countdown_hours_unit" android:text="@string/countdown_part_1_unit_placeholder"
android:textSize="24sp" android:textSize="24sp"
android:textColor="@color/white"/> android:textColor="@color/white"/>
<TextView <TextView
android:id="@+id/countdown_minutes" android:id="@+id/countdown_part_2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/countdown_minutes_placeholder" android:text="@string/countdown_part_2_placeholder"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:typeface="monospace" android:typeface="monospace"
android:textSize="24sp" android:textSize="24sp"
android:textColor="@color/white"/> android:textColor="@color/white"/>
<TextView <TextView
android:id="@+id/countdown_part_2_unit"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:text="@string/countdown_minutes_unit" android:text="@string/countdown_part_2_unit_placeholder"
android:textSize="24sp" android:textSize="24sp"
android:textColor="@color/white"/> android:textColor="@color/white"/>
</LinearLayout> </LinearLayout>

View File

@ -3,12 +3,17 @@
<string name="content_description_app_icon">App icon</string> <string name="content_description_app_icon">App icon</string>
<string name="select_date_button">&gt; Select Date of Birth &lt;</string> <string name="select_date_button">&gt; Select Date of Birth &lt;</string>
<string name="countdown_days_placeholder">000</string> <string name="countdown_part_0_placeholder">000</string>
<string name="countdown_days_unit">d</string> <string name="countdown_part_0_unit_placeholder">d</string>
<string name="countdown_hours_placeholder">00</string> <string name="countdown_part_1_placeholder">00</string>
<string name="countdown_hours_unit">h</string> <string name="countdown_part_1_unit_placeholder">h</string>
<string name="countdown_minutes_placeholder">00</string> <string name="countdown_part_2_placeholder">00</string>
<string name="countdown_minutes_unit">m</string> <string name="countdown_part_2_unit_placeholder">m</string>
<string name="countdown_unit_days">d</string>
<string name="countdown_unit_hours">h</string>
<string name="countdown_unit_minutes">m</string>
<string name="countdown_unit_seconds">s</string>
<string name="milestone_header">Milestones</string> <string name="milestone_header">Milestones</string>
<string name="milestone_birthday_unit">birthday</string> <string name="milestone_birthday_unit">birthday</string>