Author: Adam Pioterek <adam.pioterek@protonmail.ch>
timetable "valid since" in drawer
app/src/main/java/ml/adamsprogs/bimba/MessageReceiver.kt | 4 app/src/main/java/ml/adamsprogs/bimba/TimetableDownloader.kt | 7 app/src/main/java/ml/adamsprogs/bimba/VmClient.kt | 7 app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt | 5 app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt | 15 app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt | 2 app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt | 2 app/src/main/java/ml/adamsprogs/bimba/models/Timetable.kt | 8 app/src/main/res/menu/menu_drawer.xml | 7 app/src/main/res/values-pl/strings.xml | 1 app/src/main/res/values/strings.xml | 1 build.gradle | 4 gradle/wrapper/gradle-wrapper.properties | 4
diff --git a/app/src/main/java/ml/adamsprogs/bimba/MessageReceiver.kt b/app/src/main/java/ml/adamsprogs/bimba/MessageReceiver.kt index 28a62879797264439b8d0a2e62cdf70f76d05ea1..402e0b565b06a8eb16794fd3f7f6533e5cff5a00 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/MessageReceiver.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/MessageReceiver.kt @@ -3,7 +3,6 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import android.util.Log import ml.adamsprogs.bimba.models.Departure class MessageReceiver : BroadcastReceiver() { @@ -11,7 +10,6 @@ private val onTimetableDownloadListeners: HashSet= HashSet() private val onVmListeners: HashSet<OnVmListener> = HashSet() override fun onReceive(context: Context?, intent: Intent?) { - Log.i("Recv", "${intent?.action}") if (intent?.action == TimetableDownloader.ACTION_DOWNLOADED) { val result = intent.getStringExtra(TimetableDownloader.EXTRA_RESULT) for (listener in onTimetableDownloadListeners) { @@ -21,14 +19,12 @@ } if (intent?.action == VmClient.ACTION_DEPARTURES_CREATED) { val departures = intent.getStringArrayListExtra(VmClient.EXTRA_DEPARTURES).map { Departure.fromString(it) } as ArrayList<Departure> val requester = intent.getStringExtra(VmClient.EXTRA_REQUESTER) - Log.i("VmRecv", "Got Vm for $requester") for (listener in onVmListeners) { listener.onVm(departures, requester) } } if (intent?.action == VmClient.ACTION_NO_DEPARTURES) { val requester = intent.getStringExtra(VmClient.EXTRA_REQUESTER) - Log.i("VmRecv", "Got null for $requester") for (listener in onVmListeners) { listener.onVm(null, requester) } diff --git a/app/src/main/java/ml/adamsprogs/bimba/TimetableDownloader.kt b/app/src/main/java/ml/adamsprogs/bimba/TimetableDownloader.kt index 9912fb6a5c6b5f7ebe188773dba983abccc33370..18dc9b9000c129195152a33b65473644bf4b402c 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/TimetableDownloader.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/TimetableDownloader.kt @@ -10,7 +10,6 @@ import org.tukaani.xz.XZInputStream import java.io.* import java.security.MessageDigest import kotlin.experimental.and -import android.util.Log import android.app.NotificationManager import ml.adamsprogs.bimba.models.Timetable @@ -44,7 +43,6 @@ if (httpCon.responseCode != HttpURLConnection.HTTP_OK){ sendResult(RESULT_NO_CONNECTIVITY) return } - Log.i("Downloader", "Got metadata") val reader = BufferedReader(InputStreamReader(httpCon.inputStream)) val lastModified = reader.readLine() val checksum = reader.readLine() @@ -60,7 +58,6 @@ if (lastModified <= currentLastModified && !intent.getBooleanExtra(EXTRA_FORCE, false)) { sendResult(RESULT_UP_TO_DATE) return } - Log.i("Downloader", "timetable is newer ($lastModified > $currentLastModified)") notify(0) @@ -70,11 +67,9 @@ if (httpCon.responseCode != HttpURLConnection.HTTP_OK){ sendResult(RESULT_NO_CONNECTIVITY) return } - Log.i("Downloader", "connected to db") val xzIn = XZInputStream(httpCon.inputStream) val file = File(this.filesDir, "new_timetable.db") if (copyInputStreamToFile(xzIn, file, checksum)) { - Log.i("Downloader", "downloaded") val oldFile = File(this.filesDir, "timetable.db") oldFile.delete() file.renameTo(oldFile) @@ -83,7 +78,6 @@ prefsEditor.putString("timetableLastModified", lastModified) prefsEditor.apply() sendResult(RESULT_DOWNLOADED) } else { - Log.i("Downloader", "downloaded but is wrong") sendResult(RESULT_VALIDITY_FAILED) } @@ -141,7 +135,6 @@ val digest = md.digest() for (i in 0 until digest.size) { hex += Integer.toString((digest[i] and 0xff.toByte()) + 0x100, 16).padStart(3, '0').substring(1) } - Log.i("Downloader", "checksum is $checksum, and hex is $hex") return checksum == hex } } diff --git a/app/src/main/java/ml/adamsprogs/bimba/VmClient.kt b/app/src/main/java/ml/adamsprogs/bimba/VmClient.kt index 7a3dadf8b864f53b49addeddb997df0bd9c49cfc..ea28e94f6692274d70fe5d5fd937d96d63d2b728 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/VmClient.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/VmClient.kt @@ -2,7 +2,6 @@ package ml.adamsprogs.bimba import android.app.IntentService import android.content.Intent -import android.util.Log import ml.adamsprogs.bimba.models.* import okhttp3.* import com.google.gson.Gson @@ -24,10 +23,7 @@ override fun onHandleIntent(intent: Intent?) { if (intent != null) { val requester = intent.getStringExtra(EXTRA_REQUESTER) - Log.i("VMClient", "starting vm for $requester") - if (!NetworkStateReceiver.isNetworkAvailable(this)) { - Log.i("VMClient", "offline") sendNullResult(requester) return } @@ -49,7 +45,6 @@ val responseBody: String? try { responseBody = client.newCall(request).execute().body()?.string() } catch(e: IOException) { - Log.i("VMClient", "IO Err") sendNullResult(requester) return } @@ -72,8 +67,6 @@ departureDay != todayDay, t["onStopPoint"] as Boolean) departuresToday.add(departure) } } - Log.i("VMClient", "Sending") - departuresToday.forEach {Log.i("VMClient", "send: $it")} if (departuresToday.isEmpty()) sendNullResult(requester) else diff --git a/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt b/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt index 5322e013f4698048f772d16695b019ff7800c9ee..2361c656a482ae8af9e25fba925adebe39b5e4b9 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt @@ -13,7 +13,6 @@ import android.app.Activity import android.support.design.widget.NavigationView import android.support.v4.widget.* import android.support.v7.widget.* -import android.util.Log import android.view.* import android.view.inputmethod.InputMethodManager import ml.adamsprogs.bimba.* @@ -70,6 +69,9 @@ } drawerLayout.closeDrawer(drawer) super.onOptionsItemSelected(item) } + + val validity = timetable.getValidity() + drawer.menu.findItem(R.id.drawer_validity).title = getString(R.string.valid_through, validity) searchView = findViewById(R.id.search_view) as FloatingSearchView @@ -242,7 +244,6 @@ return result } override fun onTimetableDownload(result: String?) { - Log.i("Refresh", "downloaded: $result") val message: String = when (result) { TimetableDownloader.RESULT_DOWNLOADED -> getString(R.string.timetable_downloaded) TimetableDownloader.RESULT_NO_CONNECTIVITY -> getString(R.string.no_connectivity) diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt b/app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt index 357e0ef9d4721ae8a4c5ab3016501a59fb0f8c91..9b9d7525391486c5d55b953c1bb6d8e4d011a589 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt @@ -2,7 +2,6 @@ package ml.adamsprogs.bimba.models import android.os.Parcel import android.os.Parcelable -import android.util.Log import ml.adamsprogs.bimba.MessageReceiver import ml.adamsprogs.bimba.getMode import java.util.* @@ -17,13 +16,10 @@ requester.split(";")[1] } catch (e: IndexOutOfBoundsException) { "" } - Log.i("VM", "got vm for $requesterName and my name is $name") if (vmDepartures != null && requesterName == name) { - Log.i("VM", "so I’m adding") vmDeparturesMap[requesterTimetable] = vmDepartures this.vmDepartures = vmDeparturesMap.flatMap { it.value } as ArrayList<Departure> } - Log.i("VM", "so I’m not adding") filterVmDepartures() } @@ -76,14 +72,9 @@ filterVmDepartures() if (timetables.isEmpty() && vmDepartures.isEmpty()) return null - Log.i("FAV", "vmDeps is empty? ${vmDepartures.isEmpty()} so") if (vmDepartures.isNotEmpty()) { - val d = vmDepartures.minBy { it.timeTill() } - Log.i("FAV", "using vm: ${d.toString()}") - return d + return vmDepartures.minBy { it.timeTill() } } - - Log.i("FAV", "using offline") val twoDayDepartures = ArrayList<Departure>() val today = Calendar.getInstance().getMode() @@ -125,15 +116,11 @@ .forEach { this.vmDepartures.remove(it) } } fun delete(stop: String, line: String) { - Log.i("ROW", "Favourite deleting $stop, $line") timetables.remove(timetables.find { it[TAG_STOP] == stop && it[TAG_LINE] == line }) - Log.i("ROW", timetables.toString()) } fun registerOnVm(receiver: MessageReceiver) { - Log.i("FAV", "Shall register? ${!isRegisteredOnVmListener}") if (!isRegisteredOnVmListener) { - Log.i("FAV", "registering") receiver.addOnVmListener(this) isRegisteredOnVmListener = true } diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt b/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt index e66d81c93a955e206d16cf36ac0a98f8a49d5794..8ba9f57fafb2e926b510afa6bf3a56824c25f0d3 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt @@ -2,7 +2,6 @@ package ml.adamsprogs.bimba.models import android.content.Context import android.content.SharedPreferences -import android.util.Log import com.google.gson.Gson import com.google.gson.JsonArray import com.google.gson.JsonObject @@ -87,7 +86,6 @@ } rootObject.add(name, timetables) } val favouritesString = Gson().toJson(rootObject) - Log.i("FAB", favouritesString) val editor = preferences.edit() editor.putString("favourites", favouritesString) editor.apply() diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt b/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt index fdc2ca495df514048bcd8dfc08169088b7bee2bb..62506b751f954db068782aa7604f17c0be9993c0 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt @@ -6,7 +6,6 @@ import android.os.Build import android.support.v4.content.res.ResourcesCompat import android.support.v7.widget.* import android.support.v7.widget.PopupMenu -import android.util.Log import android.view.* import android.widget.* import ml.adamsprogs.bimba.R @@ -59,7 +58,6 @@ } val nextDepartureText: String val nextDepartureLineText: String if (nextDeparture != null) { - Log.i("NEXT DEP", nextDeparture.toString()) val interval = nextDeparture.timeTill() if (interval < 0) return@thread diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/Timetable.kt b/app/src/main/java/ml/adamsprogs/bimba/models/Timetable.kt index 9f38d413c8d0eada814603ae307b0fb6e4c3e5da..374e225e0466b2c3aa6c319ccc10b7f857ec2062 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/Timetable.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/Timetable.kt @@ -183,4 +183,12 @@ return true } return false } + + fun getValidity(): String { + val cursor = db.rawQuery("select value from metadata where key = 'validFrom'", null) + cursor.moveToNext() + val validity = cursor.getString(0) + cursor.close() + return "%s-%s-%s".format(validity.substring(0..3), validity.substring(4..5), validity.substring(6..7)) + } } diff --git a/app/src/main/res/menu/menu_drawer.xml b/app/src/main/res/menu/menu_drawer.xml index 2ecf126df6b27d3b53eda5c5e30360d1faa8a61d..34ef96f91038985d8a1983e9d15b9f6b83bb497d 100644 --- a/app/src/main/res/menu/menu_drawer.xml +++ b/app/src/main/res/menu/menu_drawer.xml @@ -16,4 +16,11 @@ android:id="@+id/drawer_help" android:icon="@drawable/ic_help" android:title="@string/help" /> </group> + <group + android:id="@+id/drawer_group_validity" + android:enabled="false"> + <item + android:id="@+id/drawer_validity" + android:title="" /> + </group> </menu> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 33c0b0bc4be7d5185ece9d532f7809bdca720bea..e4a0b7944507d18118fb28818f53b80f0aea2cb2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -66,4 +66,5 @@ "it’s Tuesday, it will be on ‘workdays’ tab).\n" "Be sure to consult the messages on\nhttps://www.ztm.poznan.pl/en.\n\n" </string> <string name="departure_row_getting_departures">Getting departures…</string> + <string name="valid_through">Valid since: %1$s</string> </resources> diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 3d08457d03c0ac3c8ebe6fcebc503caa94e9697f..29b1181d5657465eb3c04c58b000d7f0903fa0f1 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -56,4 +56,5 @@ "zakładce (jeśli jest wtorek, to w „dni robocze”).\n" "Pamiętaj, aby sprawdzić aktualności na\nhttps://www.ztm.poznan.pl.\n\n" </string> <string name="departure_row_getting_departures">Zbieranie odjazdów…</string> + <string name="valid_through">Ważny od %1$s</string> </resources> \ No newline at end of file diff --git a/build.gradle b/build.gradle index 8bb20f456380ed224c6055ed3de7c3076557fe5b..48ce329c8f4650a568c0c0a885aa64d190aa2033 100644 --- a/build.gradle +++ b/build.gradle @@ -1,14 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.1.3-2' + ext.kotlin_version = '1.1.4-2' repositories { jcenter() maven { url 'https://maven.google.com' } google() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.0-beta2' + classpath 'com.android.tools.build:gradle:3.0.0-beta3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e32fbb2e5966d81de9c87d2031502fdcf69e38a7..2b67fb4ff0ade262f685a5d092a5d1ff26f8e4c2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Aug 08 15:29:42 CEST 2017 +#Tue Aug 29 11:31:16 CEST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip