|
|
|
|
@@ -481,15 +481,15 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
d.setTitle(event.getDialogTitle(this))
|
|
|
|
|
d.setView(dialogView)
|
|
|
|
|
|
|
|
|
|
val durationTextView = dialogView.findViewById<TextView>(R.id.dialog_date_duration)
|
|
|
|
|
val datePickerBegin = dialogView.findViewById<TextView>(R.id.dialog_date_picker_begin)
|
|
|
|
|
val datePickerEnd = dialogView.findViewById<TextView>(R.id.dialog_date_picker_end)
|
|
|
|
|
val dateDelimiter = dialogView.findViewById<TextView>(R.id.dialog_date_range_delimiter)
|
|
|
|
|
val durationTV = dialogView.findViewById<TextView>(R.id.dialog_date_duration)
|
|
|
|
|
val datePickerBeginTV = dialogView.findViewById<TextView>(R.id.dialog_date_picker_begin)
|
|
|
|
|
val datePickerEndTV = dialogView.findViewById<TextView>(R.id.dialog_date_picker_end)
|
|
|
|
|
val dateDelimiterTV = dialogView.findViewById<TextView>(R.id.dialog_date_range_delimiter)
|
|
|
|
|
val durationButtons = dialogView.findViewById<LinearLayout>(R.id.duration_buttons)
|
|
|
|
|
val durationNowButton = dialogView.findViewById<Button>(R.id.dialog_date_duration_now)
|
|
|
|
|
val durationClearButton = dialogView.findViewById<Button>(R.id.dialog_date_duration_clear)
|
|
|
|
|
|
|
|
|
|
val currentDurationTextColor = durationTextView.currentTextColor
|
|
|
|
|
val currentDurationTextColor = durationTV.currentTextColor
|
|
|
|
|
val invalidDurationTextColor = ContextCompat.getColor(this, R.color.danger)
|
|
|
|
|
|
|
|
|
|
// in seconds
|
|
|
|
|
@@ -506,59 +506,59 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fun updateFields() {
|
|
|
|
|
datePickerBegin.text = DateUtils.formatDateTime(durationStart)
|
|
|
|
|
datePickerEnd.text = DateUtils.formatDateTime(durationEnd)
|
|
|
|
|
datePickerBeginTV.text = DateUtils.formatDateTime(durationStart)
|
|
|
|
|
datePickerEndTV.text = DateUtils.formatDateTime(durationEnd)
|
|
|
|
|
|
|
|
|
|
durationTextView.setTextColor(currentDurationTextColor)
|
|
|
|
|
dateTimePicker(durationStart, datePickerBeginTV) { pickedTime: Long ->
|
|
|
|
|
durationStart = pickedTime
|
|
|
|
|
if (datePickerEndTV.visibility == View.GONE) {
|
|
|
|
|
durationEnd = pickedTime
|
|
|
|
|
}
|
|
|
|
|
updateFields()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dateTimePicker(durationEnd, datePickerEndTV) { pickedTime: Long ->
|
|
|
|
|
durationEnd = pickedTime
|
|
|
|
|
updateFields()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
durationTV.setTextColor(currentDurationTextColor)
|
|
|
|
|
val duration = durationEnd - durationStart
|
|
|
|
|
if (duration == 0L) {
|
|
|
|
|
// event is ongoing
|
|
|
|
|
durationTextView.text = "💤"
|
|
|
|
|
dateDelimiter.visibility = View.GONE
|
|
|
|
|
datePickerEnd.visibility = View.GONE
|
|
|
|
|
durationTV.text = "💤"
|
|
|
|
|
dateDelimiterTV.visibility = View.GONE
|
|
|
|
|
datePickerEndTV.visibility = View.GONE
|
|
|
|
|
} else {
|
|
|
|
|
durationTextView.text = DateUtils.formatTimeDuration(applicationContext, duration)
|
|
|
|
|
durationTV.text = DateUtils.formatTimeDuration(applicationContext, duration)
|
|
|
|
|
if (!isValidTimeSpan(durationStart, durationEnd)) {
|
|
|
|
|
durationTextView.setTextColor(invalidDurationTextColor)
|
|
|
|
|
durationTV.setTextColor(invalidDurationTextColor)
|
|
|
|
|
}
|
|
|
|
|
dateDelimiter.visibility = View.VISIBLE
|
|
|
|
|
datePickerEnd.visibility = View.VISIBLE
|
|
|
|
|
dateDelimiterTV.visibility = View.VISIBLE
|
|
|
|
|
datePickerEndTV.visibility = View.VISIBLE
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
datePickerBegin.setTextColor(if (isValidTime(durationStart)) { currentDurationTextColor } else { invalidDurationTextColor })
|
|
|
|
|
datePickerEnd.setTextColor(if (isValidTime(durationEnd)) { currentDurationTextColor } else { invalidDurationTextColor })
|
|
|
|
|
}
|
|
|
|
|
val colorBegin = if (isValidTime(durationStart)) { currentDurationTextColor } else { invalidDurationTextColor }
|
|
|
|
|
datePickerBeginTV.setTextColor(colorBegin)
|
|
|
|
|
|
|
|
|
|
val pickedDateTimeBegin = dateTimePicker(event.time, datePickerBegin) { pickedTime: Long ->
|
|
|
|
|
durationStart = pickedTime
|
|
|
|
|
if (datePickerEnd.visibility == View.GONE) {
|
|
|
|
|
durationEnd = pickedTime
|
|
|
|
|
}
|
|
|
|
|
updateFields()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
val pickedDateTimeEnd = dateTimePicker(event.time + event.quantity, datePickerEnd) { pickedTime: Long ->
|
|
|
|
|
durationEnd = pickedTime
|
|
|
|
|
updateFields()
|
|
|
|
|
val colorEnd = if (isValidTime(durationEnd)) { currentDurationTextColor } else { invalidDurationTextColor }
|
|
|
|
|
datePickerEndTV.setTextColor(colorEnd)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (showTime) {
|
|
|
|
|
dateDelimiter.visibility = View.GONE
|
|
|
|
|
datePickerEnd.visibility = View.GONE
|
|
|
|
|
durationTextView.visibility = View.GONE
|
|
|
|
|
dateDelimiterTV.visibility = View.GONE
|
|
|
|
|
datePickerEndTV.visibility = View.GONE
|
|
|
|
|
durationTV.visibility = View.GONE
|
|
|
|
|
durationButtons.visibility = View.GONE
|
|
|
|
|
//d.setMessage("")
|
|
|
|
|
} else {
|
|
|
|
|
dateDelimiter.visibility = View.VISIBLE
|
|
|
|
|
datePickerEnd.visibility = View.VISIBLE
|
|
|
|
|
durationTextView.visibility = View.VISIBLE
|
|
|
|
|
dateDelimiterTV.visibility = View.VISIBLE
|
|
|
|
|
datePickerEndTV.visibility = View.VISIBLE
|
|
|
|
|
durationTV.visibility = View.VISIBLE
|
|
|
|
|
durationButtons.visibility = View.VISIBLE
|
|
|
|
|
d.setMessage(event.getDialogMessage(this))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
durationStart = pickedDateTimeBegin.time.time / 1000
|
|
|
|
|
durationEnd = pickedDateTimeEnd.time.time / 1000
|
|
|
|
|
|
|
|
|
|
updateFields()
|
|
|
|
|
|
|
|
|
|
durationClearButton.setOnClickListener {
|
|
|
|
|
@@ -695,9 +695,6 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
var nextEvent = getNextSameEvent(current, templates)
|
|
|
|
|
|
|
|
|
|
notesET.setText(current.notes)
|
|
|
|
|
if (useQuantity) {
|
|
|
|
|
qtyET.setText(current.quantity.toString())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nextEvent == null && current != event) {
|
|
|
|
|
nextEvent = event
|
|
|
|
|
@@ -706,9 +703,6 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
if (nextEvent != null) {
|
|
|
|
|
nextTextView.setOnClickListener {
|
|
|
|
|
notesET.setText(nextEvent.notes)
|
|
|
|
|
if (useQuantity) {
|
|
|
|
|
qtyET.setText(nextEvent.quantity.toString())
|
|
|
|
|
}
|
|
|
|
|
updateContent(nextEvent)
|
|
|
|
|
}
|
|
|
|
|
nextTextView.alpha = 1.0f
|
|
|
|
|
@@ -720,9 +714,6 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
if (prevEvent != null) {
|
|
|
|
|
prevTextView.setOnClickListener {
|
|
|
|
|
notesET.setText(prevEvent.notes)
|
|
|
|
|
if (useQuantity) {
|
|
|
|
|
qtyET.setText(prevEvent.quantity.toString())
|
|
|
|
|
}
|
|
|
|
|
updateContent(prevEvent)
|
|
|
|
|
}
|
|
|
|
|
prevTextView.alpha = 1.0f
|
|
|
|
|
@@ -1368,7 +1359,7 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
// Add statistics (hard coded)
|
|
|
|
|
contentView.findViewById<View>(R.id.button_statistics).setOnClickListener {
|
|
|
|
|
if (logbook != null && !pauseLogbookUpdate) {
|
|
|
|
|
val i = Intent(applicationContext, StatisticsActivity::class.java)
|
|
|
|
|
val i = Intent(applicationContext, LongTermStatisticsActivity::class.java)
|
|
|
|
|
i.putExtra("LOOGBOOK_NAME", logbook!!.name)
|
|
|
|
|
startActivity(i)
|
|
|
|
|
} else {
|
|
|
|
|
|