Skip to content

Commit

Permalink
fix relative times
Browse files Browse the repository at this point in the history
  • Loading branch information
Théophile Delmas committed Nov 25, 2023
1 parent b511114 commit c757b96
Show file tree
Hide file tree
Showing 8 changed files with 246 additions and 63 deletions.
123 changes: 123 additions & 0 deletions .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/codeStyles/codeStyleConfig.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 4 additions & 12 deletions app/src/main/java/com/rooster/rooster/Alarm.kt
Original file line number Diff line number Diff line change
Expand Up @@ -60,19 +60,11 @@ class Alarm(
}
}
fun getFormattedTime(timeInSec: Long): CharSequence? {
val minutes = (timeInSec / 60) % 60
val hours = timeInSec / 3600
val fullDateFormat = SimpleDateFormat("HH:mm")
val calendar = Calendar.getInstance()
if (hours < calendar.get(Calendar.HOUR_OF_DAY) ||
(hours.toInt() == calendar.get(Calendar.HOUR_OF_DAY) && minutes < calendar.get(Calendar.MINUTE))) {
calendar.add(Calendar.DAY_OF_YEAR, 1)
}
calendar.set(Calendar.HOUR_OF_DAY, hours.toInt())
calendar.set(Calendar.MINUTE, minutes.toInt())
calendar.set(Calendar.SECOND, 0)

val timeInHumanReadableFormat = SimpleDateFormat("HH:mm").format(calendar.time)
return timeInHumanReadableFormat
calendar.timeInMillis = timeInSec
var formattedDate = fullDateFormat.format(calendar.time)
return formattedDate
}

var extended: Boolean = false
Expand Down
97 changes: 64 additions & 33 deletions app/src/main/java/com/rooster/rooster/AlarmAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,9 @@ class AlarmAdapter(private val alarmList: List<Alarm>, val alarmDbHelper: AlarmD
// Time
val pickRaw = container.findViewById<LinearLayout>(R.id.timePickRaw)
pickRaw.setOnClickListener{
promptModePick(context, container, alarm)
promptModePick(context, container, alarm, holder)
}
arrangeLayout(context, container, alarm, alarm.mode)
arrangeLayout(context, container, alarm, alarm.mode, holder)


// Enabled
Expand Down Expand Up @@ -146,29 +146,45 @@ class AlarmAdapter(private val alarmList: List<Alarm>, val alarmDbHelper: AlarmD
}
}

private fun promptModePick(context: Context, container: LinearLayout, alarm: Alarm) {
private fun promptModePick(
context: Context,
container: LinearLayout,
alarm: Alarm,
holder: ViewHolder
) {
val dialog = AlertDialog.Builder(context)
.setTitle("Choose Time Mode")
.setItems(alarmModes) { dialog, which ->
// Update the alarm mode
alarm.mode = alarmModes[which]
alarmDbHelper.updateAlarm(alarm)
arrangeLayout(context, container, alarm, alarmModes[which])
arrangeLayout(context, container, alarm, alarmModes[which], holder)
}
.create()
dialog.show()
}

private fun arrangeLayout(context: Context, container: LinearLayout, alarm: Alarm, s: String) {
private fun arrangeLayout(
context: Context,
container: LinearLayout,
alarm: Alarm,
s: String,
holder: ViewHolder
) {
when(s) {
"At" -> arrangeLayoutAt(context, container, alarm)
"After" -> arrangeLayoutAfterBefore(context, container, alarm)
"Before" -> arrangeLayoutAfterBefore(context, container, alarm)
"Between" -> arrangeLayoutBetween(context, container, alarm)
"At" -> arrangeLayoutAt(context, container, alarm, holder)
"After" -> arrangeLayoutAfterBefore(context, container, alarm, holder)
"Before" -> arrangeLayoutAfterBefore(context, container, alarm, holder)
"Between" -> arrangeLayoutBetween(context, container, alarm, holder)
}
}

private fun arrangeLayoutAt(context: Context, container: LinearLayout, alarm: Alarm) {
private fun arrangeLayoutAt(
context: Context,
container: LinearLayout,
alarm: Alarm,
holder: ViewHolder
) {
cleanView(container)

var tvTime1 = container.findViewById<TextView>(R.id.tvAlarmTime1)
Expand All @@ -177,18 +193,17 @@ class AlarmAdapter(private val alarmList: List<Alarm>, val alarmDbHelper: AlarmD
tvTime1.visibility = View.VISIBLE

var time = alarm.getFormattedTime(alarm.calculatedTime)
Log.e("TTTTTTTTT", time.toString())
if (alarm.relative1 != "Pick Time") {
tvTime1.setText(alarm.relative1)
tvCal.setText(time)
} else {
tvCal.setText(time)
}
tvTime1.setOnClickListener {
promptRelativePick(context, container, alarm, 1)
promptRelativePick(context, container, alarm, 1, holder)
}
tvCal.setOnClickListener {
promptRelativePick(context, container, alarm, 1)
promptRelativePick(context, container, alarm, 1, holder)
}
}

Expand Down Expand Up @@ -229,7 +244,13 @@ class AlarmAdapter(private val alarmList: List<Alarm>, val alarmDbHelper: AlarmD
tvTime5.setOnClickListener { }
}

private fun promptRelativePick(context: Context, container: LinearLayout, alarm: Alarm, index: Int) {
private fun promptRelativePick(
context: Context,
container: LinearLayout,
alarm: Alarm,
index: Int,
holder: ViewHolder
) {
val dialog = AlertDialog.Builder(context)
.setTitle("Choose Time Mode")
.setItems(alarmRelatives) { dialog, which ->
Expand All @@ -252,7 +273,7 @@ class AlarmAdapter(private val alarmList: List<Alarm>, val alarmDbHelper: AlarmD
Log.e("ALARM", alarm.getFormattedTime(alarm.time1).toString())
Log.e("ALARM", alarm.getFormattedTime(alarm.time2).toString())
alarmDbHelper.updateAlarm(alarm)
arrangeLayout(context, container, alarm, alarm.mode)
arrangeLayout(context, container, alarm, alarm.mode, holder)
}, (alarm.time1 / 3600).toInt(), (alarm.time1 % 60 / 60).toInt(), true)
}
else -> {
Expand All @@ -266,7 +287,7 @@ class AlarmAdapter(private val alarmList: List<Alarm>, val alarmDbHelper: AlarmD
val swicthEnabled = container.findViewById<Switch>(R.id.switchAlarmEnabled)
swicthEnabled.isChecked = alarm.enabled
alarmDbHelper.updateAlarm(alarm)
arrangeLayout(context, container, alarm, alarm.mode)
arrangeLayout(context, container, alarm, alarm.mode, holder)
null
}
}
Expand All @@ -276,7 +297,12 @@ class AlarmAdapter(private val alarmList: List<Alarm>, val alarmDbHelper: AlarmD
dialog.show()
}

private fun arrangeLayoutAfterBefore(context: Context, container: LinearLayout, alarm: Alarm) {
private fun arrangeLayoutAfterBefore(
context: Context,
container: LinearLayout,
alarm: Alarm,
holder: ViewHolder
) {
cleanView(container)
var tvTime1 = container.findViewById<TextView>(R.id.tvAlarmTime1)
var tvTime2 = container.findViewById<TextView>(R.id.tvAlarmTime2)
Expand Down Expand Up @@ -310,25 +336,30 @@ class AlarmAdapter(private val alarmList: List<Alarm>, val alarmDbHelper: AlarmD
swicthEnabled.isChecked = alarm.enabled
Log.e("ALARM", alarm.getFormattedTime(alarm.time1).toString())
alarmDbHelper.updateAlarm(alarm)
arrangeLayout(context, container, alarm, alarm.mode)
arrangeLayout(context, container, alarm, alarm.mode, holder)
}, (alarm.time1 / 3600).toInt(), (alarm.time1 % 60 / 60).toInt(), true)
picker.show()
}

tvTime3.setOnClickListener {
promptModePick(context, container, alarm)
promptModePick(context, container, alarm, holder)
}
tvTime4.setOnClickListener {
promptRelativePick(context, container, alarm, 2)
arrangeLayout(context, container, alarm, alarm.mode)
promptRelativePick(context, container, alarm, 2, holder)
arrangeLayout(context, container, alarm, alarm.mode, holder)
}
tvTime5.setOnClickListener {
promptRelativePick(context, container, alarm, 2)
arrangeLayout(context, container, alarm, alarm.mode)
promptRelativePick(context, container, alarm, 2, holder)
arrangeLayout(context, container, alarm, alarm.mode, holder)
}
}

private fun arrangeLayoutBetween(context: Context, container: LinearLayout, alarm: Alarm) {
private fun arrangeLayoutBetween(
context: Context,
container: LinearLayout,
alarm: Alarm,
holder: ViewHolder
) {
cleanView(container)
var tvTime0 = container.findViewById<TextView>(R.id.tvAlarmTime0)
var tvTime1 = container.findViewById<TextView>(R.id.tvAlarmTime1)
Expand Down Expand Up @@ -370,25 +401,25 @@ class AlarmAdapter(private val alarmList: List<Alarm>, val alarmDbHelper: AlarmD
}

tvTime1.setOnClickListener {
promptRelativePick(context, container, alarm, 1)
arrangeLayout(context, container, alarm, alarm.mode)
promptRelativePick(context, container, alarm, 1, holder)
arrangeLayout(context, container, alarm, alarm.mode, holder)
}

tvTime2.setOnClickListener {
promptRelativePick(context, container, alarm, 1)
arrangeLayout(context, container, alarm, alarm.mode)
promptRelativePick(context, container, alarm, 1, holder)
arrangeLayout(context, container, alarm, alarm.mode, holder)
}

tvTime3.setOnClickListener {
promptModePick(context, container, alarm)
promptModePick(context, container, alarm, holder)
}
tvTime4.setOnClickListener {
promptRelativePick(context, container, alarm, 2)
arrangeLayout(context, container, alarm, alarm.mode)
promptRelativePick(context, container, alarm, 2, holder)
arrangeLayout(context, container, alarm, alarm.mode, holder)
}
tvTime5.setOnClickListener {
promptRelativePick(context, container, alarm, 2)
arrangeLayout(context, container, alarm, alarm.mode)
promptRelativePick(context, container, alarm, 2, holder)
arrangeLayout(context, container, alarm, alarm.mode, holder)
}
}

Expand Down
Loading

0 comments on commit c757b96

Please sign in to comment.