diff --git a/app/build.gradle b/app/build.gradle index 846e5467..1c350b0c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,7 +4,7 @@ apply plugin: 'kotlin-kapt' apply plugin: 'kotlin-android-extensions' apply plugin: 'org.sonarqube' // TODO: Uncomment this to enable Firebase Crashlytics -// apply plugin: 'com.google.firebase.crashlytics' +apply plugin: 'com.google.firebase.crashlytics' static def getKey(String env, String key) { Properties props = new Properties() @@ -24,8 +24,8 @@ android { applicationId "ro.code4.monitorizarevot" minSdkVersion 21 targetSdkVersion 33 - versionCode 42 - versionName "2.1.1" + versionCode 49 + versionName "2.1.8" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true @@ -105,10 +105,10 @@ ext { koinVersion = '2.0.1' parcelerVersion = "1.1.13" roomVersion = '2.4.3' - firebaseAnalyticsVersion = '17.4.3' - firebaseCrashlyticsVersion = '17.1.0' - firebaseMessagingVersion = "20.2.0" - firebaseConfigVersion = "19.1.4" + firebaseAnalyticsVersion = '21.3.0' + firebaseCrashlyticsVersion = '18.4.3' + firebaseMessagingVersion = "23.2.1" + firebaseConfigVersion = "21.4.1" adapterDelegatesVersion = "4.2.0" } @@ -185,4 +185,4 @@ sonarqube { } // TODO: Uncomment this to enable FirebaseAnalytics and Crashlytics -//apply plugin: 'com.google.gms.google-services' +apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/app/src/main/java/ro/code4/monitorizarevot/App.kt b/app/src/main/java/ro/code4/monitorizarevot/App.kt index 55bbaaed..34821340 100644 --- a/app/src/main/java/ro/code4/monitorizarevot/App.kt +++ b/app/src/main/java/ro/code4/monitorizarevot/App.kt @@ -2,6 +2,7 @@ package ro.code4.monitorizarevot import android.app.Application import android.content.Context +import com.google.firebase.FirebaseApp import com.sylversky.fontreplacer.FontReplacer import org.koin.android.ext.koin.androidContext import org.koin.android.ext.koin.androidLogger @@ -26,6 +27,7 @@ class App : Application() { modules(listOf(appModule, apiModule, dbModule, viewModelsModule, analyticsModule)) } replaceFonts() + FirebaseApp.initializeApp(this); } private fun replaceFonts() { diff --git a/app/src/main/java/ro/code4/monitorizarevot/helper/PreferenceManager.kt b/app/src/main/java/ro/code4/monitorizarevot/helper/PreferenceManager.kt index a66b8a53..ca80e027 100644 --- a/app/src/main/java/ro/code4/monitorizarevot/helper/PreferenceManager.kt +++ b/app/src/main/java/ro/code4/monitorizarevot/helper/PreferenceManager.kt @@ -93,7 +93,9 @@ fun SharedPreferences.clearUserPrefs() = run { private fun SharedPreferences.removeCurrentLocationPrefs() { val editor = edit() + editor.remove(PREFS_PROVINCE_CODE) editor.remove(PREFS_COUNTY_CODE) + editor.remove(PREFS_MUNICIPALITY_CODE) editor.remove(PREFS_POLLING_STATION_NUMBER) editor.apply() } \ No newline at end of file diff --git a/app/src/main/java/ro/code4/monitorizarevot/ui/base/BaseFormViewModel.kt b/app/src/main/java/ro/code4/monitorizarevot/ui/base/BaseFormViewModel.kt index 90326d55..8fccc112 100644 --- a/app/src/main/java/ro/code4/monitorizarevot/ui/base/BaseFormViewModel.kt +++ b/app/src/main/java/ro/code4/monitorizarevot/ui/base/BaseFormViewModel.kt @@ -22,9 +22,9 @@ abstract class BaseFormViewModel : BaseViewModel() { fun setTitle(title: String) = titleLiveData.postValue(title) init { - provinceCode = preferences.getProvinceCode()!! - countyCode = preferences.getCountyCode()!! - municipalityCode = preferences.getMunicipalityCode()!! + provinceCode = preferences.getProvinceCode().orEmpty() + countyCode = preferences.getCountyCode().orEmpty() + municipalityCode = preferences.getMunicipalityCode().orEmpty() pollingStationNumber = preferences.getPollingStationNumber() } } \ No newline at end of file diff --git a/app/src/main/java/ro/code4/monitorizarevot/ui/login/LoginActivity.kt b/app/src/main/java/ro/code4/monitorizarevot/ui/login/LoginActivity.kt index 650e56dc..e61b8126 100644 --- a/app/src/main/java/ro/code4/monitorizarevot/ui/login/LoginActivity.kt +++ b/app/src/main/java/ro/code4/monitorizarevot/ui/login/LoginActivity.kt @@ -4,6 +4,7 @@ import android.os.Bundle import android.text.TextWatcher import androidx.lifecycle.Observer import com.google.android.material.snackbar.Snackbar +import com.google.firebase.FirebaseApp import kotlinx.android.synthetic.main.activity_login.* import org.koin.android.viewmodel.ext.android.viewModel import ro.code4.monitorizarevot.BuildConfig @@ -68,6 +69,7 @@ class LoginActivity : BaseAnalyticsActivity() { } loginButton.isEnabled = false + FirebaseApp.initializeApp(this); viewModel.login(phone.text.toString(), password.text.toString()) } } diff --git a/app/src/main/java/ro/code4/monitorizarevot/ui/login/LoginViewModel.kt b/app/src/main/java/ro/code4/monitorizarevot/ui/login/LoginViewModel.kt index e1868d3c..6c15a3e4 100644 --- a/app/src/main/java/ro/code4/monitorizarevot/ui/login/LoginViewModel.kt +++ b/app/src/main/java/ro/code4/monitorizarevot/ui/login/LoginViewModel.kt @@ -3,7 +3,7 @@ package ro.code4.monitorizarevot.ui.login import android.content.SharedPreferences import androidx.lifecycle.LiveData import com.google.firebase.analytics.FirebaseAnalytics -import com.google.firebase.iid.FirebaseInstanceId +import com.google.firebase.messaging.FirebaseMessaging import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers import org.koin.core.inject @@ -46,8 +46,8 @@ class LoginViewModel : BaseViewModel() { private fun getFirebaseToken(phone: String, password: String) { try { - FirebaseInstanceId.getInstance().instanceId.addOnCompleteListener { - val firebaseToken = it.result?.token + FirebaseMessaging.getInstance().token.addOnCompleteListener { + val firebaseToken = it.result if (it.isSuccessful && firebaseToken != null) { login(phone, password, firebaseToken) } else { diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index 9b897922..47f1bc04 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -117,7 +117,7 @@ Wygląda na to, że część pytań nie udało się zsynchronizować.naciśnij przycisk niżej, by wysłać wiadomości ponownie Wszystkie odpowiedzi i notatki zostały zsynchronizowane - Wymuś cję + Wymuś synchronizację Musisz mieć połączenie z internetem, żeby móc zsynchronizować dane!