Added crashlytics (Tested).
Solved bug related to empty OneSignal user ID when the app is initially launched. Tested and shared build for wokeland.com server.
This commit is contained in:
@@ -6,6 +6,7 @@ plugins {
|
||||
alias(libs.plugins.ksp)
|
||||
id 'com.google.gms.google-services'
|
||||
id 'com.google.firebase.firebase-perf'
|
||||
id 'com.google.firebase.crashlytics'
|
||||
}
|
||||
|
||||
android {
|
||||
@@ -119,6 +120,7 @@ dependencies {
|
||||
|
||||
// one-signal
|
||||
implementation(libs.onesignal)
|
||||
implementation libs.firebase.crashlytics
|
||||
|
||||
// room-database
|
||||
def room_version = "2.6.1"
|
||||
|
||||
@@ -6,11 +6,13 @@ import android.transition.TransitionInflater
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.app.ActivityOptionsCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.google.firebase.analytics.ktx.analytics
|
||||
import com.google.firebase.ktx.Firebase
|
||||
import com.onesignal.OneSignal
|
||||
import com.onesignal.user.state.IUserStateObserver
|
||||
import com.onesignal.user.state.UserChangedState
|
||||
import com.woka.R
|
||||
import com.woka.WokaApp.Companion.userPrefs
|
||||
import com.woka.database.helpers.ClicksHelper
|
||||
@@ -20,7 +22,6 @@ import com.woka.home.views.HomeActivity
|
||||
import com.woka.networking.ApiResult
|
||||
import com.woka.onboard.models.Guest
|
||||
import com.woka.onboard.mvvm.OnboardRepository
|
||||
import com.woka.onboard.views.OnboardActivity
|
||||
import com.woka.userPreference.UserType
|
||||
import com.woka.utils.ANALYTICS_GUEST_LOGIN
|
||||
import com.woka.utils.ANALYTICS_NEW_USER
|
||||
@@ -62,21 +63,18 @@ class LanguageFragment : Fragment() {
|
||||
lifecycleScope.launch {
|
||||
ClicksHelper.upsertClickEvent(ContentType.OTHERS)
|
||||
progressView.show()
|
||||
when (val response = onboardRepository.guestLogin()){
|
||||
is ApiResult.Error -> {
|
||||
progressView.hide()
|
||||
toast(response.errorMessage)
|
||||
if (OneSignal.User.onesignalId.isEmpty()){
|
||||
OneSignal.User.addObserver(object : IUserStateObserver{
|
||||
override fun onUserStateChange(state: UserChangedState) {
|
||||
lifecycleScope.launch {
|
||||
guestLogin()
|
||||
}
|
||||
is ApiResult.Loading -> {}
|
||||
is ApiResult.Success -> {
|
||||
progressView.hide()
|
||||
toast(response.message)
|
||||
requireActivity().changeLocale(LOCALE_ENGLISH)
|
||||
|
||||
response.data?.let {
|
||||
completeGuestLogin(response.data)
|
||||
}
|
||||
OneSignal.User.removeObserver(this)
|
||||
}
|
||||
})
|
||||
}else{
|
||||
guestLogin()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -105,6 +103,25 @@ class LanguageFragment : Fragment() {
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun guestLogin(){
|
||||
when (val response = onboardRepository.guestLogin()){
|
||||
is ApiResult.Error -> {
|
||||
progressView.hide()
|
||||
toast(response.errorMessage)
|
||||
}
|
||||
is ApiResult.Loading -> {}
|
||||
is ApiResult.Success -> {
|
||||
progressView.hide()
|
||||
toast(response.message)
|
||||
requireActivity().changeLocale(LOCALE_ENGLISH)
|
||||
|
||||
response.data?.let {
|
||||
completeGuestLogin(response.data)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun completeGuestLogin(data: Guest) {
|
||||
userPrefs?.userType = UserType.GUEST
|
||||
userPrefs?.guestUserName = data.fullname
|
||||
@@ -123,9 +140,9 @@ class LanguageFragment : Fragment() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun gotoOnboardActivity() {
|
||||
startActivity(Intent(requireActivity(), OnboardActivity::class.java),
|
||||
ActivityOptionsCompat.makeSceneTransitionAnimation(requireActivity(),
|
||||
binding.logo, "logo").toBundle())
|
||||
}
|
||||
// private fun gotoOnboardActivity() {
|
||||
// startActivity(Intent(requireActivity(), OnboardActivity::class.java),
|
||||
// ActivityOptionsCompat.makeSceneTransitionAnimation(requireActivity(),
|
||||
// binding.logo, "logo").toBundle())
|
||||
// }
|
||||
}
|
||||
@@ -13,14 +13,10 @@ import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.FragmentNavigatorExtras
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.google.android.gms.ads.AdRequest
|
||||
import com.google.android.gms.ads.AdSize
|
||||
import com.google.android.gms.ads.AdView
|
||||
import com.woka.BuildConfig
|
||||
import com.woka.R
|
||||
import com.woka.WokaApp.Companion.userPrefs
|
||||
import com.woka.databinding.FragmentSplashBinding
|
||||
import com.woka.googleads.SPLASH
|
||||
import com.woka.home.views.HomeActivity
|
||||
import com.woka.networking.ApiResult
|
||||
import com.woka.onboard.models.appupdate.VersionHistoryResponseData
|
||||
@@ -82,36 +78,6 @@ class SplashFragment : Fragment(), Observer<ApiResult<UserDataResponse>?> {
|
||||
}
|
||||
|
||||
clickEvents()
|
||||
|
||||
// loadGoogleAds()
|
||||
}
|
||||
|
||||
private fun loadGoogleAds() {
|
||||
// ad container 1
|
||||
val adView1 = AdView(requireContext())
|
||||
adView1.adUnitId = SPLASH
|
||||
adView1.setAdSize(AdSize(AdSize.FULL_WIDTH, 100))
|
||||
|
||||
binding.adsContainer1.removeAllViews()
|
||||
binding.adsContainer1.addView(adView1)
|
||||
|
||||
adView1.loadAd(
|
||||
AdRequest.Builder()
|
||||
.build()
|
||||
)
|
||||
|
||||
// ad container 2
|
||||
val adView2 = AdView(requireContext())
|
||||
adView2.adUnitId = SPLASH
|
||||
adView2.setAdSize(AdSize(AdSize.FULL_WIDTH, 100))
|
||||
|
||||
binding.adsContainer2.removeAllViews()
|
||||
binding.adsContainer2.addView(adView2)
|
||||
|
||||
adView2.loadAd(
|
||||
AdRequest.Builder()
|
||||
.build()
|
||||
)
|
||||
}
|
||||
|
||||
private fun clickEvents() {
|
||||
@@ -181,7 +147,7 @@ class SplashFragment : Fragment(), Observer<ApiResult<UserDataResponse>?> {
|
||||
userPrefs?.skippedVersion?.let {skippedVersion ->
|
||||
if (newVersion > skippedVersion){
|
||||
it.data.`0`.force_update_version?.let { forceVersion ->
|
||||
findNavController().navigate(SplashFragmentDirections.actionSplashFragmentToNewUpdateFragment(newVersion, 1))
|
||||
findNavController().navigate(SplashFragmentDirections.actionSplashFragmentToNewUpdateFragment(newVersion, forceVersion))
|
||||
return@observe
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,4 +31,4 @@ const val ONESIGNAL_APP_ID = "f9674e6f-75fb-49e8-8379-4f2ed2a880b8"
|
||||
const val ANALYTICS_GUEST_LOGIN = "guest_login_android"
|
||||
const val ANALYTICS_USER_SIGN_UP = "user_signup_android"
|
||||
const val ANALYTICS_NEW_USER = "new_user_android"
|
||||
const val ANALYTICS_UNIQUE_USER = "engaged_users"
|
||||
const val ANALYTICS_UNIQUE_USER = "engaged_users_android"
|
||||
@@ -3,6 +3,7 @@ buildscript {
|
||||
classpath libs.google.services
|
||||
classpath libs.gradle
|
||||
classpath libs.perf.plugin
|
||||
classpath libs.firebase.crashlytics.gradle
|
||||
}
|
||||
}// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
plugins {
|
||||
|
||||
@@ -26,14 +26,14 @@ android.enableJetifier=true
|
||||
|
||||
# BASE URLS
|
||||
|
||||
# staging
|
||||
# production
|
||||
WOKA_BASE_URL="https://wokaland.com/secret-panel-10102023/hidden-admin-portal-20092023/api/"
|
||||
|
||||
# staging
|
||||
#WOKA_BASE_URL="https://wokastaging.in/api/"
|
||||
|
||||
# testing
|
||||
#WOKA_BASE_URL="https://wokanative.betadelivery.com/api/"
|
||||
|
||||
# production
|
||||
#WOKA_BASE_URL="https://wokaland.com/api/"
|
||||
|
||||
WOKA_USER_NAME="admin"
|
||||
WOKA_PASSWORD="Woka@1234"
|
||||
@@ -40,6 +40,8 @@ sdpAndroid = "1.1.1"
|
||||
shimmer = "0.5.0"
|
||||
sspAndroid = "1.1.1"
|
||||
workRuntimeKtx = "2.9.1"
|
||||
firebaseCrashlytics = "19.2.0"
|
||||
firebaseCrashlyticsGradle = "3.0.2"
|
||||
|
||||
[libraries]
|
||||
android_audio_mixer = { module = "com.github.ZeroOneZeroR:android_audio_mixer", version.ref = "android_audio_mixer" }
|
||||
@@ -93,6 +95,8 @@ perf-plugin = { group = "com.google.firebase", name = "perf-plugin", version.ref
|
||||
sdp-android = { module = "com.intuit.sdp:sdp-android", version.ref = "sdpAndroid" }
|
||||
shimmer = { module = "com.facebook.shimmer:shimmer", version.ref = "shimmer" }
|
||||
ssp-android = { module = "com.intuit.ssp:ssp-android", version.ref = "sspAndroid" }
|
||||
firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics", version.ref = "firebaseCrashlytics" }
|
||||
firebase-crashlytics-gradle = { group = "com.google.firebase", name = "firebase-crashlytics-gradle", version.ref = "firebaseCrashlyticsGradle" }
|
||||
|
||||
[plugins]
|
||||
androidApplication = { id = "com.android.application", version.ref = "agp" }
|
||||
|
||||
Reference in New Issue
Block a user