Skip to content

Commit 824d66b

Browse files
authored
Feature/android build error (#3)
* Fix Android BuildError * Refactoring from SharedLocationRequest to ABCLocationRequest * Refactoring setLocationRequest Parameter & Priority enum
1 parent 60bfa06 commit 824d66b

5 files changed

Lines changed: 45 additions & 15 deletions

File tree

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import org.jetbrains.kotlin.cli.common.toBooleanLenient
22
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
33

44
val isSnapshotUpload = System.getProperty("snapshot").toBooleanLenient() ?: false
5-
val libVersion = "0.2.4"
5+
val libVersion = "0.2.5"
66
val gitName = "abc-${project.name}"
77

88
buildscript {

kmm_location.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |spec|
22
spec.name = 'kmm_location'
3-
spec.version = '0.2.4'
3+
spec.version = '0.2.5'
44
spec.homepage = ''
55
spec.source = { :git => "Not Published", :tag => "Cocoapods/#{spec.name}/#{spec.version}" }
66
spec.authors = ''
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.linecorp.abc.location
2+
3+
data class ABCLocationRequest(
4+
var priority: Priority = Priority.PRIORITY_BALANCED_POWER_ACCURACY,
5+
var fastestInterval: Long? = null,
6+
var interval: Long? = null,
7+
var maxWaitTime: Long? = null,
8+
var smallestDisplacement: Float? = null,
9+
var isWaitForAccurateLocation: Boolean? = null,
10+
var numUpdates: Int? = null,
11+
var expirationTime: Long? = null,
12+
) {
13+
enum class Priority(val value: Int) {
14+
PRIORITY_HIGH_ACCURACY(100),
15+
PRIORITY_BALANCED_POWER_ACCURACY(102),
16+
PRIORITY_LOW_POWER(104),
17+
PRIORITY_NO_POWER(105)
18+
}
19+
}

src/androidMain/kotlin/com/linecorp/abc/location/LocationManager.kt

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ internal actual class LocationManager {
9393
val settings = LocationSettingsRequest.Builder()
9494
.addLocationRequest(locationRequest)
9595
.build()
96-
buildLocationRequest()
96+
9797
LocationServices
9898
.getSettingsClient(context)
9999
.checkLocationSettings(settings)
@@ -148,15 +148,22 @@ internal actual class LocationManager {
148148
private lateinit var fusedLocationClient: FusedLocationProviderClient
149149

150150
private lateinit var locationCallback: LocationCallback
151-
private lateinit var locationRequest: LocationRequest
152-
153-
private fun buildLocationRequest() {
154-
locationRequest = LocationRequest.create()
155-
locationRequest.run {
156-
priority = LocationRequest.PRIORITY_HIGH_ACCURACY
157-
fastestInterval = 1 * 1000
158-
interval = 1 * 1000
159-
smallestDisplacement = 10f
151+
private var locationRequest: LocationRequest = LocationRequest.create().apply {
152+
priority = LocationRequest.PRIORITY_HIGH_ACCURACY
153+
fastestInterval = 1 * 1000L
154+
interval = 10 * 1000L
155+
}
156+
157+
fun setLocationRequest(abcLocationRequest: ABCLocationRequest) {
158+
locationRequest = LocationRequest.create().apply {
159+
priority = abcLocationRequest.priority.value
160+
abcLocationRequest.fastestInterval?.let { fastestInterval = it }
161+
abcLocationRequest.interval?.let { interval = it }
162+
abcLocationRequest.maxWaitTime?.let { maxWaitTime = it }
163+
abcLocationRequest.smallestDisplacement?.let { smallestDisplacement = it }
164+
abcLocationRequest.isWaitForAccurateLocation?.let { isWaitForAccurateLocation = it }
165+
abcLocationRequest.numUpdates?.let { numUpdates = it }
166+
abcLocationRequest.expirationTime?.let { expirationTime = it }
160167
}
161168
}
162169
}

src/androidMain/kotlin/com/linecorp/abc/location/extension/ABCLocationExt.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import android.app.Activity
44
import android.app.Application
55
import android.content.Context
66
import com.linecorp.abc.location.ABCLocation
7+
import com.linecorp.abc.location.ABCLocationRequest
78
import com.linecorp.abc.location.observers.ActivityLifecycleObserver
89

910
fun ABCLocation.Companion.processRequestPermissionsResult(
@@ -19,14 +20,17 @@ fun ABCLocation.Companion.processRequestPermissionsResult(
1920
fun ABCLocation.Companion.showNotificationSetting() =
2021
locationManager.showNotificationSetting()
2122

23+
fun ABCLocation.Companion.setLocationRequest(locationRequest: ABCLocationRequest) =
24+
locationManager.setLocationRequest(locationRequest)
25+
26+
2227
internal var ABCLocation.Companion.activity: Activity?
2328
get() = locationManager.activity
2429
set(value) { locationManager.activity = value }
2530

2631
internal fun ABCLocation.Companion.configure(context: Context) {
27-
val applicationContext = context.applicationContext
28-
ABCLocation.configure(applicationContext)
32+
locationManager.configure(context)
2933

30-
val application = applicationContext as? Application ?: return
34+
val application = context.applicationContext as? Application ?: return
3135
application.registerActivityLifecycleCallbacks(ActivityLifecycleObserver)
3236
}

0 commit comments

Comments
 (0)