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];
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"};
}
/*

View File

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

View File

@ -3,12 +3,17 @@
<string name="content_description_app_icon">App icon</string>
<string name="select_date_button">&gt; Select Date of Birth &lt;</string>
<string name="countdown_days_placeholder">000</string>
<string name="countdown_days_unit">d</string>
<string name="countdown_hours_placeholder">00</string>
<string name="countdown_hours_unit">h</string>
<string name="countdown_minutes_placeholder">00</string>
<string name="countdown_minutes_unit">m</string>
<string name="countdown_part_0_placeholder">000</string>
<string name="countdown_part_0_unit_placeholder">d</string>
<string name="countdown_part_1_placeholder">00</string>
<string name="countdown_part_1_unit_placeholder">h</string>
<string name="countdown_part_2_placeholder">00</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_birthday_unit">birthday</string>