aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-01-02 20:03:20 -0600
committerIván Ávalos <avalos@disroot.org>2022-01-02 20:03:20 -0600
commit287d0b62126b36ed4b268c99957143924ea295e6 (patch)
treedfdea6c4ad576148bee44df0c566fb1f29380c3f
parenta38ac4af6dfd9123670123f695048add7be53eee (diff)
parente8247f785fcacbebff9801464de025b0e16b52b3 (diff)
downloadetbsa-traccar-manager-android-287d0b62126b36ed4b268c99957143924ea295e6.tar.gz
etbsa-traccar-manager-android-287d0b62126b36ed4b268c99957143924ea295e6.tar.bz2
etbsa-traccar-manager-android-287d0b62126b36ed4b268c99957143924ea295e6.zip
Merge remote-tracking branch 'origin/master'
# Conflicts: # app/build.gradle # app/src/main/AndroidManifest.xml # build.gradle
-rw-r--r--app/build.gradle8
-rw-r--r--app/src/google/AndroidManifest.xml2
-rw-r--r--app/src/google/java/org/traccar/manager/ManagerMessagingService.kt8
-rw-r--r--app/src/main/java/org/traccar/manager/MainFragment.kt12
-rw-r--r--build.gradle3
5 files changed, 22 insertions, 11 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 86c3cdd..12fbc96 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -8,8 +8,8 @@ android {
applicationId 'net.etbsa.ETBSA'
minSdkVersion 19
targetSdkVersion 31
- versionCode 28
- versionName '2.17'
+ versionCode 30
+ versionName '2.19'
}
compileOptions {
@@ -30,9 +30,9 @@ dependencies {
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
implementation 'androidx.preference:preference-ktx:1.1.1'
- implementation 'androidx.core:core-ktx:1.6.0'
+ implementation 'androidx.core:core-ktx:1.7.0'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
- googleImplementation platform('com.google.firebase:firebase-bom:28.2.1')
+ googleImplementation platform('com.google.firebase:firebase-bom:29.0.3')
googleImplementation 'com.google.firebase:firebase-core'
googleImplementation 'com.google.firebase:firebase-analytics'
googleImplementation 'com.google.firebase:firebase-crashlytics'
diff --git a/app/src/google/AndroidManifest.xml b/app/src/google/AndroidManifest.xml
index c9b855e..468e5b7 100644
--- a/app/src/google/AndroidManifest.xml
+++ b/app/src/google/AndroidManifest.xml
@@ -21,7 +21,7 @@
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_stat_notify" />
- <service android:name=".ManagerMessagingService">
+ <service android:exported="false" android:name=".ManagerMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
diff --git a/app/src/google/java/org/traccar/manager/ManagerMessagingService.kt b/app/src/google/java/org/traccar/manager/ManagerMessagingService.kt
index 165de63..a298591 100644
--- a/app/src/google/java/org/traccar/manager/ManagerMessagingService.kt
+++ b/app/src/google/java/org/traccar/manager/ManagerMessagingService.kt
@@ -19,6 +19,7 @@ import android.annotation.SuppressLint
import android.app.NotificationManager
import android.app.PendingIntent
import android.content.Intent
+import android.os.Build
import androidx.core.app.NotificationCompat
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
@@ -28,7 +29,12 @@ class ManagerMessagingService : FirebaseMessagingService() {
@SuppressLint("UnspecifiedImmutableFlag")
override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remoteMessage)
- val pendingIntent = PendingIntent.getActivity(this, 0, Intent(this, MainActivity::class.java), PendingIntent.FLAG_ONE_SHOT)
+ val flags = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE
+ } else {
+ PendingIntent.FLAG_ONE_SHOT
+ }
+ val pendingIntent = PendingIntent.getActivity(this, 0, Intent(this, MainActivity::class.java), flags)
val builder = NotificationCompat.Builder(this, getString(R.string.notification_channel_id))
.setSmallIcon(R.drawable.ic_stat_notify)
.setContentTitle(getString(R.string.app_name))
diff --git a/app/src/main/java/org/traccar/manager/MainFragment.kt b/app/src/main/java/org/traccar/manager/MainFragment.kt
index d5144f5..bb8ade8 100644
--- a/app/src/main/java/org/traccar/manager/MainFragment.kt
+++ b/app/src/main/java/org/traccar/manager/MainFragment.kt
@@ -51,8 +51,13 @@ class MainFragment : WebViewFragment() {
inner class AppInterface {
@JavascriptInterface
fun postMessage(message: String) {
- if (message.contains("login")) {
+ if (message.startsWith("login")) {
broadcastManager.sendBroadcast(Intent(EVENT_LOGIN))
+ } else if (message.startsWith("server")) {
+ val url = message.substring(7)
+ PreferenceManager.getDefaultSharedPreferences(activity)
+ .edit().putString(MainActivity.PREFERENCE_URL, url).apply()
+ activity.runOnUiThread { webView.loadUrl(url) }
}
}
}
@@ -138,7 +143,7 @@ class MainFragment : WebViewFragment() {
private var geolocationRequestOrigin: String? = null
private var geolocationCallback: GeolocationPermissions.Callback? = null
- private val webChromeClient: WebChromeClient = object : WebChromeClient() {
+ private val webChromeClient = object : WebChromeClient() {
override fun onGeolocationPermissionsShowPrompt(origin: String, callback: GeolocationPermissions.Callback) {
geolocationRequestOrigin = null
@@ -147,7 +152,7 @@ class MainFragment : WebViewFragment() {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.ACCESS_FINE_LOCATION)) {
AlertDialog.Builder(activity)
.setMessage(R.string.permission_location_rationale)
- .setNeutralButton(android.R.string.ok) { dialog: DialogInterface?, which: Int ->
+ .setNeutralButton(android.R.string.ok) { _: DialogInterface?, _: Int ->
geolocationRequestOrigin = origin
geolocationCallback = callback
ActivityCompat.requestPermissions(
@@ -172,6 +177,7 @@ class MainFragment : WebViewFragment() {
}
// Android 4.1+
+ @Suppress("UNUSED_PARAMETER")
fun openFileChooser(uploadMessage: ValueCallback<Uri?>?, acceptType: String?, capture: String?) {
openFileCallback = uploadMessage
val intent = Intent(Intent.ACTION_GET_CONTENT)
diff --git a/build.gradle b/build.gradle
index 55d17e9..03807b6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,5 +1,5 @@
buildscript {
- ext.kotlin_version = '1.5.21'
+ ext.kotlin_version = '1.6.0'
repositories {
google()
mavenCentral()
@@ -7,7 +7,6 @@ buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:7.0.2'
classpath 'com.google.gms:google-services:4.3.8'
- classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}