Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
ialokim committed Aug 7, 2022
1 parent 187b5e7 commit 29fbd55
Show file tree
Hide file tree
Showing 26 changed files with 508 additions and 480 deletions.
7 changes: 4 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ dependencies {
kapt 'androidx.room:room-compiler:2.3.0'
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'

implementation 'com.squareup.okhttp3:okhttp:3.12.12'
implementation 'com.github.omadahealth:swipy:1.2.3'
implementation 'de.cketti.library.changelog:ckchangelog:1.2.2'
implementation 'com.google.android:flexbox:0.3.2'
Expand All @@ -132,9 +133,9 @@ dependencies {
implementation "com.mikepenz:fastadapter-commons:$fastadapterVersion"
implementation "com.mikepenz:fastadapter-extensions-expandable:$fastadapterVersion"
implementation 'uk.co.samuelwall:material-tap-target-prompt:2.14.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:5.5.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-locationlayer:0.4.0'
implementation 'com.mapzen.android:lost:3.0.4'
implementation('org.maplibre.gl:android-sdk:9.5.2') {
exclude group: 'com.google.android.gms' // no proprietary Google libraries
}
// only added because of lint bug Timber 4.6.0
implementation 'com.jakewharton.timber:timber:4.7.0'

Expand Down
6 changes: 3 additions & 3 deletions app/src/main/java/de/grobox/transportr/AppModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import de.grobox.transportr.data.locations.LocationRepository;
import de.grobox.transportr.data.searches.SearchesDao;
import de.grobox.transportr.data.searches.SearchesRepository;
import de.grobox.transportr.map.GpsController;
import de.grobox.transportr.map.PositionController;
import de.grobox.transportr.networks.TransportNetworkManager;
import de.grobox.transportr.settings.SettingsManager;

Expand Down Expand Up @@ -70,8 +70,8 @@ SearchesRepository searchesRepository(SearchesDao searchesDao, LocationDao locat
}

@Provides
GpsController gpsController() {
return new GpsController(application.getApplicationContext());
PositionController gpsController() {
return new PositionController(application.getApplicationContext());
}

}
10 changes: 3 additions & 7 deletions app/src/main/java/de/grobox/transportr/TransportrApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ package de.grobox.transportr

import android.app.Application
import com.mapbox.mapboxsdk.Mapbox
import com.mapbox.services.android.telemetry.MapboxTelemetry
import com.mapbox.mapboxsdk.WellKnownTileServer

open class TransportrApplication : Application() {
lateinit var component: AppComponent
Expand All @@ -29,11 +29,7 @@ open class TransportrApplication : Application() {
override fun onCreate() {
super.onCreate()

Mapbox.getInstance(
applicationContext,
"pk.eyJ1IjoidG92b2s3IiwiYSI6ImNpeTA1OG82YjAwN3YycXA5cWJ6NThmcWIifQ.QpURhF9y7XBMLmWhELsOnw"
)
MapboxTelemetry.getInstance().isTelemetryEnabled = false
Mapbox.getInstance(applicationContext)

component = createComponent()
}
Expand All @@ -43,4 +39,4 @@ open class TransportrApplication : Application() {
.appModule(AppModule(this))
.build()
}
}
}

This file was deleted.

45 changes: 37 additions & 8 deletions app/src/main/java/de/grobox/transportr/map/BaseMapFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,15 @@
package de.grobox.transportr.map

import android.os.Bundle
import android.text.Html
import android.text.method.LinkMovementMethod
import androidx.annotation.CallSuper
import androidx.annotation.LayoutRes
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.annotation.CallSuper
import androidx.annotation.LayoutRes
import androidx.core.text.HtmlCompat
import androidx.core.text.HtmlCompat.FROM_HTML_MODE_LEGACY
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory
import com.mapbox.mapboxsdk.geometry.LatLng
import com.mapbox.mapboxsdk.geometry.LatLngBounds
Expand All @@ -43,10 +44,16 @@ abstract class BaseMapFragment : TransportrFragment(), OnMapReadyCallback {
private lateinit var attribution: TextView
protected var map: MapboxMap? = null
protected var mapPadding: Int = 0
protected var mapInset: MapPadding = MapPadding()

@get:LayoutRes
protected abstract val layout: Int

// Returns the Jawg url depending on the style given (jawg-streets by default)
// taken from https://www.jawg.io/docs/integration/maplibre-gl-android/simple-map/
private fun makeStyleUrl(style: String = "jawg-streets") =
"${getString(R.string.jawg_styles_url) + style}.json?access-token=${getString(R.string.jawg_access_token)}"

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
super.onCreateView(inflater, container, savedInstanceState)

Expand All @@ -64,7 +71,7 @@ abstract class BaseMapFragment : TransportrFragment(), OnMapReadyCallback {
mapView.onCreate(savedInstanceState)
mapView.getMapAsync(this)
attribution.movementMethod = LinkMovementMethod.getInstance()
attribution.text = Html.fromHtml(getString(R.string.map_attribution, getString(R.string.map_attribution_improve)))
attribution.text = HtmlCompat.fromHtml(getString(R.string.map_attribution, getString(R.string.map_attribution_improve)), FROM_HTML_MODE_LEGACY)
}

override fun onStart() {
Expand All @@ -78,9 +85,9 @@ abstract class BaseMapFragment : TransportrFragment(), OnMapReadyCallback {
activity?.run {
// work-around to force update map style after theme switching
obtainStyledAttributes(intArrayOf(R.attr.mapStyle)).apply {
val mapStyle = getString(0)
if (mapStyle != null && mapboxMap.styleUrl != mapStyle) {
mapboxMap.setStyleUrl(mapStyle)
val mapStyle = getString(0)?.let { makeStyleUrl(it) }
if (mapStyle != null && mapboxMap.style?.uri != mapStyle) {
mapboxMap.setStyle(mapStyle)
}
recycle()
}
Expand Down Expand Up @@ -120,6 +127,8 @@ abstract class BaseMapFragment : TransportrFragment(), OnMapReadyCallback {
protected open fun animateTo(latLng: LatLng?, zoom: Int) {
if (latLng == null) return
map?.let { map ->
val padding = mapInset + mapPadding
map.moveCamera(CameraUpdateFactory.paddingTo(padding.left.toDouble(), padding.top.toDouble(), padding.right.toDouble(), padding.bottom.toDouble()))
val update = if (map.cameraPosition.zoom < zoom) CameraUpdateFactory.newLatLngZoom(
latLng,
zoom.toDouble()
Expand All @@ -130,7 +139,8 @@ abstract class BaseMapFragment : TransportrFragment(), OnMapReadyCallback {

protected open fun zoomToBounds(latLngBounds: LatLngBounds?, animate: Boolean) {
if (latLngBounds == null) return
val update = CameraUpdateFactory.newLatLngBounds(latLngBounds, mapPadding)
val padding = mapInset + mapPadding
val update = CameraUpdateFactory.newLatLngBounds(latLngBounds, padding.left, padding.top, padding.right, padding.bottom)
map?.let { map ->
if (animate) {
map.easeCamera(update)
Expand All @@ -148,4 +158,23 @@ abstract class BaseMapFragment : TransportrFragment(), OnMapReadyCallback {
zoomToBounds(latLngBounds, true)
}

protected fun setPadding(left: Int = 0, top: Int = 0, right: Int = 0, bottom: Int = 0) {
// store map padding to be retained even after CameraBoundsUpdates
// and update directly for subsequent camera updates in MapDrawer
mapInset = MapPadding(left, top, right, bottom)
map?.moveCamera(CameraUpdateFactory.paddingTo(left.toDouble(), top.toDouble(), right.toDouble(), bottom.toDouble()))
}

data class MapPadding(
val left: Int = 0,
val top: Int = 0,
val right: Int = 0,
val bottom: Int = 0
) {
constructor(padding: DoubleArray) : this(padding[0].toInt(), padding[1].toInt(), padding[2].toInt(), padding[3].toInt())

operator fun plus(other: Int) =
MapPadding(left + other, top + other, right + other, bottom + other)
}

}
120 changes: 0 additions & 120 deletions app/src/main/java/de/grobox/transportr/map/GpsController.kt

This file was deleted.

Loading

0 comments on commit 29fbd55

Please sign in to comment.