forked from penguin86/luna-tracker
Compare commits
3 Commits
16e5b39d6f
...
bottle_tim
| Author | SHA1 | Date | |
|---|---|---|---|
| 4f8209b793 | |||
| ddcc2fc492 | |||
| c75d4ed8a7 |
@@ -31,7 +31,7 @@
|
||||
android:label="@string/settings_title"
|
||||
android:theme="@style/Theme.LunaTracker"/>
|
||||
<activity
|
||||
android:name=".StatisticsActivity"
|
||||
android:name=".LongTermStatisticsActivity"
|
||||
android:label="@string/statistics_title"
|
||||
android:theme="@style/Theme.LunaTracker"/>
|
||||
</application>
|
||||
|
||||
@@ -35,7 +35,7 @@ import java.util.Locale
|
||||
import kotlin.math.max
|
||||
import kotlin.math.min
|
||||
|
||||
class StatisticsActivity : AppCompatActivity() {
|
||||
class LongTermStatisticsActivity : AppCompatActivity() {
|
||||
var lastToastShown = 0L
|
||||
|
||||
lateinit var barChart: BarChart
|
||||
@@ -767,7 +767,7 @@ class StatisticsActivity : AppCompatActivity() {
|
||||
override fun onItemSelected(parent: AdapterView<*>?, view: View?, pos: Int, id: Long) {
|
||||
if (pos >= arrayValues.size) {
|
||||
Toast.makeText(
|
||||
this@StatisticsActivity,
|
||||
this@LongTermStatisticsActivity,
|
||||
"pos out of bounds: $arrayValues", Toast.LENGTH_SHORT
|
||||
).show()
|
||||
return
|
||||
@@ -784,7 +784,7 @@ class StatisticsActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val TAG = "StatisticsActivity"
|
||||
const val TAG = "LongTermStatisticsActivity"
|
||||
|
||||
// 15 min steps
|
||||
const val SLEEP_PATTERN_GRANULARITY = 15 * 60
|
||||
@@ -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 {
|
||||
@@ -1359,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 {
|
||||
|
||||
@@ -259,6 +259,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginHorizontal="10dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/no_connection_explain"/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user