aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-12-27 14:54:45 -0600
committerIván Ávalos <avalos@disroot.org>2022-12-27 14:54:45 -0600
commitd3d6f20ec3d4a54e3d2036dc6bd809f33c6a02e6 (patch)
treeece2d06694fca4ff779cc0cafb3d0f92ed600bcf
parent84f2df769c9a6db96498c4762dd8301d5671916b (diff)
parenta7b9e807d7f90b5c34d8c423806de90ceed0f065 (diff)
downloadetbsa-trackermap-mobile-d3d6f20ec3d4a54e3d2036dc6bd809f33c6a02e6.tar.gz
etbsa-trackermap-mobile-d3d6f20ec3d4a54e3d2036dc6bd809f33c6a02e6.tar.bz2
etbsa-trackermap-mobile-d3d6f20ec3d4a54e3d2036dc6bd809f33c6a02e6.zip
Merge branch 'main' of lraspi:/secret/git/repos/etbsa-trackermap-mobile
-rw-r--r--androidApp/build.gradle.kts6
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/reports/UnitReportsFragment.kt22
2 files changed, 24 insertions, 4 deletions
diff --git a/androidApp/build.gradle.kts b/androidApp/build.gradle.kts
index 655676e..f4fb316 100644
--- a/androidApp/build.gradle.kts
+++ b/androidApp/build.gradle.kts
@@ -11,8 +11,8 @@ android {
applicationId = "net.etbsa.etbsa"
minSdk = 21
targetSdk = 31
- versionCode = 1402
- versionName = "1.3.2"
+ versionCode = 1403
+ versionName = "1.3.3"
ndk {
abiFilters.clear()
//abiFilters += listOf("armeabi-v7a", "arm64-v8a")
@@ -65,6 +65,8 @@ dependencies {
implementation(group = "", name = "WhirlyGlobeMaply", ext = "aar")
implementation("androidx.legacy:legacy-support-v4:1.0.0")
+ debugImplementation("com.squareup.leakcanary:leakcanary-android:2.10")
+
googleImplementation(platform("com.google.firebase:firebase-bom:29.0.3"))
googleImplementation("com.google.firebase:firebase-messaging")
}
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/reports/UnitReportsFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/reports/UnitReportsFragment.kt
index 6cc36bd..aab3cfa 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/reports/UnitReportsFragment.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/reports/UnitReportsFragment.kt
@@ -38,7 +38,8 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.card.MaterialCardView
import io.ktor.utils.io.*
import kotlinx.coroutines.DelicateCoroutinesApi
-import kotlinx.datetime.LocalDateTime
+import kotlinx.datetime.*
+import kotlinx.datetime.TimeZone
import mx.trackermap.TrackerMap.android.R
import mx.trackermap.TrackerMap.android.databinding.UnitDetailsReportsBinding
import mx.trackermap.TrackerMap.android.details.UnitDetailsAdapter
@@ -53,7 +54,9 @@ import org.koin.androidx.viewmodel.ext.android.viewModel
import java.io.*
import java.util.*
import kotlin.math.max
+import kotlin.time.DurationUnit
import kotlin.time.ExperimentalTime
+import kotlin.time.toDuration
@DelicateCoroutinesApi
@ExperimentalTime
@@ -271,7 +274,22 @@ class UnitReportsFragment : Fragment() {
p1, p2
)
(period as? ReportDates.ReportPeriod.Custom)?.let {
- unitReportsViewModel.setReportPeriod(it.withFrom(fromPickedDatetime))
+ val fromInstant = fromPickedDatetime.toInstant(TimeZone.currentSystemDefault())
+ val toInstant = Calendar.getInstance().toInstant().toKotlinInstant()
+ val plusMonth = fromInstant.plus(31.toDuration(DurationUnit.DAYS))
+
+ /* Make ultra sure that user can't select a period longer than a month */
+ unitReportsViewModel.setReportPeriod(
+ if (fromInstant.daysUntil(toInstant, TimeZone.currentSystemDefault()) > 31) {
+ it.withFrom(fromPickedDatetime).withTo(
+ plusMonth.toLocalDateTime(TimeZone.currentSystemDefault()))
+ } else {
+ it.withFrom(fromPickedDatetime)
+ }
+ )
+
+ toDatePicker.datePicker.minDate = fromInstant.toEpochMilliseconds()
+ toDatePicker.datePicker.maxDate = plusMonth.toEpochMilliseconds()
}
}, from.hour, from.minute, false)