diff options
author | Iván Ávalos <avalos@disroot.org> | 2022-01-02 20:03:20 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2022-01-02 20:03:20 -0600 |
commit | 287d0b62126b36ed4b268c99957143924ea295e6 (patch) | |
tree | dfdea6c4ad576148bee44df0c566fb1f29380c3f | |
parent | a38ac4af6dfd9123670123f695048add7be53eee (diff) | |
parent | e8247f785fcacbebff9801464de025b0e16b52b3 (diff) | |
download | etbsa-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.gradle | 8 | ||||
-rw-r--r-- | app/src/google/AndroidManifest.xml | 2 | ||||
-rw-r--r-- | app/src/google/java/org/traccar/manager/ManagerMessagingService.kt | 8 | ||||
-rw-r--r-- | app/src/main/java/org/traccar/manager/MainFragment.kt | 12 | ||||
-rw-r--r-- | build.gradle | 3 |
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" } } |