2 Commits 31308b3aaa ... 5d029c3915

Author SHA1 Message Date
  Adam Pioterek 5d029c3915 searchbar text handles 5 years ago
  Adam Pioterek 75997bba18 kotlin stable corutines 5 years ago

+ 0 - 26
app/src/androidTest/java/ml/adamsprogs/bimba/ExampleInstrumentedTest.java

@@ -1,26 +0,0 @@
-package ml.adamsprogs.bimba;
-
-import android.content.Context;
-import androidx.test.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumentation test, which will execute on an Android device.
- *
- * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
-    @Test
-    public void useAppContext() throws Exception {
-        // Context of the app under test.
-        Context appContext = InstrumentationRegistry.getTargetContext();
-
-        assertEquals("ml.adamsprogs.bimba", appContext.getPackageName());
-    }
-}

+ 5 - 8
app/src/main/AndroidManifest.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     package="ml.adamsprogs.bimba"
     android:installLocation="auto">
 
@@ -7,12 +8,12 @@
     <uses-permission android:name="android.permission.INTERNET" />
 
     <application
-        android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
-        android:roundIcon="@mipmap/ic_launcher_round"
         android:label="@string/app_name"
+        android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
-        android:theme="@style/AppTheme">
+        android:theme="@style/AppTheme"
+        tools:ignore="GoogleAppIndexingWarning">
         <activity android:name=".activities.DashActivity" />
 
         <service
@@ -33,15 +34,11 @@
             android:name=".activities.SettingsActivity"
             android:label="@string/title_activity_settings"
             android:parentActivityName=".activities.DashActivity"
-            android:theme="@style/AppTheme" >
+            android:theme="@style/AppTheme">
             <meta-data
                 android:name="android.support.PARENT_ACTIVITY"
                 android:value="ml.adamsprogs.bimba.activities.DashActivity" />
         </activity>
-        <activity
-            android:name=".activities.HelpActivity"
-            android:label="@string/title_activity_help"
-            android:theme="@style/AppTheme" />
 
         <service
             android:name=".datasources.VmService"

+ 0 - 8
app/src/main/java/ml/adamsprogs/bimba/NetworkStateReceiver.kt

@@ -24,14 +24,6 @@ class NetworkStateReceiver : BroadcastReceiver() {
         }
     }
 
-    fun addOnConnectivityChangeListener(listener: OnConnectivityChangeListener) {
-        onConnectivityChangeListeners.add(listener)
-    }
-
-    fun removeOnConnectivityChangeListener(listener: OnConnectivityChangeListener) {
-        onConnectivityChangeListeners.remove(listener)
-    }
-
     interface OnConnectivityChangeListener {
         fun onConnectivityChange(connected: Boolean)
     }

+ 1 - 1
app/src/main/java/ml/adamsprogs/bimba/NotificationChannels.kt

@@ -8,7 +8,7 @@ import androidx.annotation.RequiresApi
 
 class NotificationChannels {
     companion object {
-        val CHANNEL_UPDATES = "updates"
+        const val CHANNEL_UPDATES = "updates"
 
         @RequiresApi(Build.VERSION_CODES.O)
         fun makeChannel(id: String, name: String, manager: NotificationManager) {

+ 33 - 31
app/src/main/java/ml/adamsprogs/bimba/ProviderProxy.kt

@@ -1,11 +1,17 @@
 package ml.adamsprogs.bimba
 
-import android.content.*
+import android.content.Context
+import android.content.Intent
 import kotlinx.coroutines.*
 import kotlinx.coroutines.android.Main
-import ml.adamsprogs.bimba.datasources.*
-import ml.adamsprogs.bimba.models.*
-import ml.adamsprogs.bimba.models.suggestions.*
+import ml.adamsprogs.bimba.datasources.VmClient
+import ml.adamsprogs.bimba.datasources.VmService
+import ml.adamsprogs.bimba.models.Departure
+import ml.adamsprogs.bimba.models.Plate
+import ml.adamsprogs.bimba.models.StopSegment
+import ml.adamsprogs.bimba.models.Timetable
+import ml.adamsprogs.bimba.models.suggestions.GtfsSuggestion
+import ml.adamsprogs.bimba.models.suggestions.StopSuggestion
 import java.util.*
 import kotlin.collections.HashMap
 
@@ -24,13 +30,13 @@ class ProviderProxy(context: Context? = null) {
     }
 
     fun getSuggestions(query: String = "", callback: (List<GtfsSuggestion>) -> Unit) {
-        launch(Dispatchers.Main, CoroutineStart.DEFAULT, null, {
-            val filtered = withContext(Dispatchers.Default) {
-                suggestions = getStopSuggestions(query) //+ getLineSuggestions(query) //todo<p:v+1> + bike stations, train stations, &c
-                filterSuggestions(query)
+        GlobalScope.launch {
+            suggestions = getStopSuggestions(query) //+ getLineSuggestions(query) //todo<p:v+1> + bike stations, train stations, &c
+            val filtered = filterSuggestions(query)
+            launch(Dispatchers.Main) {
+                callback(filtered)
             }
-            callback(filtered)
-        })
+        }
     }
 
     private suspend fun getStopSuggestions(query: String): List<StopSuggestion> {
@@ -65,18 +71,18 @@ class ProviderProxy(context: Context? = null) {
     }
 
     fun getSheds(name: String, callback: (Map<String, Set<String>>) -> Unit) {
-        launch(Dispatchers.Main) {
-            val sheds = withContext(Dispatchers.Default) {
-                val vmSheds = vmClient.getSheds(name)
+        GlobalScope.launch {
+            val vmSheds = vmClient.getSheds(name)
 
-                if (vmSheds.isEmpty() and !timetable.isEmpty()) {
-                    timetable.getHeadlinesForStop(name)
-                } else {
-                    vmSheds
-                }
+            val sheds = if (vmSheds.isEmpty() and !timetable.isEmpty()) {
+                timetable.getHeadlinesForStop(name)
+            } else {
+                vmSheds
             }
 
-            callback(sheds)
+            launch(Dispatchers.Main) {
+                callback(sheds)
+            }
         }
     }
 
@@ -104,13 +110,13 @@ class ProviderProxy(context: Context? = null) {
     }
 
     private fun constructSegmentDepartures(stopSegments: Set<StopSegment>): Deferred<Map<String, List<Departure>>> {
-        return GlobalScope.async(Dispatchers.Default, CoroutineStart.DEFAULT, null, {
+        return GlobalScope.async {
             if (timetable.isEmpty())
                 emptyMap()
             else {
                 timetable.getStopDeparturesBySegments(stopSegments)
             }
-        })
+        }
     }
 
     private fun filterDepartures(departures: Map<String, List<Departure>>): List<Departure> {
@@ -161,10 +167,8 @@ class ProviderProxy(context: Context? = null) {
     }
 
     fun fillStopSegment(stopSegment: StopSegment, callback: (StopSegment?) -> Unit) {
-        launch(Dispatchers.Main) {
-            withContext(Dispatchers.Default) {
-                callback(fillStopSegment(stopSegment))
-            }
+        GlobalScope.launch {
+            callback(fillStopSegment(stopSegment))
         }
     }
 
@@ -179,10 +183,8 @@ class ProviderProxy(context: Context? = null) {
     }
 
     fun getStopName(stopCode: String, callback: (String?) -> Unit) {
-        launch(Dispatchers.Main) {
-            withContext(Dispatchers.Default) {
-                callback(getStopName(stopCode))
-            }
+        GlobalScope.launch {
+            callback(getStopName(stopCode))
         }
     }
 
@@ -216,13 +218,13 @@ class ProviderProxy(context: Context? = null) {
 
         init {
             receiver.addOnVmListener(this@Request)
-            launch(Dispatchers.Main) {
+            GlobalScope.launch {
                 cache = constructSegmentDepartures(segments)
             }
         }
 
         override fun onVm(vmDepartures: Set<Departure>?, plateId: Plate.ID?, stopCode: String, code: Int) {
-            launch(Dispatchers.Main) {
+            GlobalScope.launch(Dispatchers.Main) {
                 if ((plateId == null || vmDepartures == null) and (timetable.isEmpty())) {
                     listener.onDeparturesReady(emptyList(), null, code)
                     return@launch

+ 11 - 10
app/src/main/java/ml/adamsprogs/bimba/activities/AppCompatPreferenceActivity.java

@@ -1,16 +1,17 @@
 package ml.adamsprogs.bimba.activities;
 
 import android.content.res.Configuration;
-        import android.os.Bundle;
-        import android.preference.PreferenceActivity;
-        import androidx.annotation.LayoutRes;
-        import androidx.annotation.Nullable;
-        import androidx.appcompat.app.ActionBar;
-        import androidx.appcompat.app.AppCompatDelegate;
-        import androidx.appcompat.widget.Toolbar;
-        import android.view.MenuInflater;
-        import android.view.View;
-        import android.view.ViewGroup;
+import android.os.Bundle;
+import android.preference.PreferenceActivity;
+import android.view.MenuInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.LayoutRes;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AppCompatDelegate;
+import androidx.appcompat.widget.Toolbar;
 
 /**
  * A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls

+ 5 - 8
app/src/main/java/ml/adamsprogs/bimba/activities/EditFavouriteActivity.kt

@@ -1,18 +1,15 @@
 package ml.adamsprogs.bimba.activities
 
-import androidx.appcompat.app.AppCompatActivity
+import android.app.Activity
+import android.content.Intent
 import android.os.Bundle
-import androidx.recyclerview.widget.DividerItemDecoration
-import androidx.recyclerview.widget.LinearLayoutManager
 import android.widget.EditText
+import androidx.appcompat.app.AppCompatActivity
+import kotlinx.android.synthetic.main.activity_edit_favourite.*
 import ml.adamsprogs.bimba.R
+import ml.adamsprogs.bimba.collections.FavouriteStorage
 import ml.adamsprogs.bimba.models.Favourite
 import ml.adamsprogs.bimba.models.adapters.FavouriteEditRowAdapter
-import ml.adamsprogs.bimba.collections.FavouriteStorage
-import kotlinx.android.synthetic.main.activity_edit_favourite.*
-import android.app.Activity
-import android.content.Intent
-
 
 
 class EditFavouriteActivity : AppCompatActivity() {

+ 0 - 15
app/src/main/java/ml/adamsprogs/bimba/activities/HelpActivity.kt

@@ -1,15 +0,0 @@
-package ml.adamsprogs.bimba.activities
-
-import android.os.Bundle
-import androidx.appcompat.app.AppCompatActivity
-import kotlinx.android.synthetic.main.activity_help.*
-import ml.adamsprogs.bimba.R
-
-class HelpActivity : AppCompatActivity() {
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        setContentView(R.layout.activity_help)
-        setSupportActionBar(toolbar)
-    }
-}

+ 5 - 7
app/src/main/java/ml/adamsprogs/bimba/activities/LineSpecifyActivity.kt

@@ -1,17 +1,15 @@
 package ml.adamsprogs.bimba.activities
 
-import com.google.android.material.tabs.TabLayout
-import androidx.appcompat.app.AppCompatActivity
-
-import androidx.core.app.*
 import android.os.Bundle
-import android.view.*
-
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.appcompat.app.AppCompatActivity
+import com.google.android.material.tabs.TabLayout
 import kotlinx.android.synthetic.main.activity_line_specify.*
 import kotlinx.android.synthetic.main.fragment_line_specify.view.*
 import ml.adamsprogs.bimba.R
 import ml.adamsprogs.bimba.models.Timetable
-import ml.adamsprogs.bimba.models.gtfs.*
 
 class LineSpecifyActivity : AppCompatActivity() {
     companion object {

+ 0 - 0
app/src/main/java/ml/adamsprogs/bimba/activities/SplashActivity.kt


Some files were not shown because too many files changed in this diff