diff --git a/app/build.gradle b/app/build.gradle index 120837e..0585c24 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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" diff --git a/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt b/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt index c2f5ea2..d2fa844 100644 --- a/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt @@ -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) - } - is ApiResult.Loading -> {} - is ApiResult.Success -> { - progressView.hide() - toast(response.message) - requireActivity().changeLocale(LOCALE_ENGLISH) + if (OneSignal.User.onesignalId.isEmpty()){ + OneSignal.User.addObserver(object : IUserStateObserver{ + override fun onUserStateChange(state: UserChangedState) { + lifecycleScope.launch { + guestLogin() + } - 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()) +// } } \ No newline at end of file diff --git a/app/src/main/java/com/woka/onboard/fragments/SplashFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SplashFragment.kt index dc5c4fb..2f5ee31 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SplashFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SplashFragment.kt @@ -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?> { } 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?> { 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 } } diff --git a/app/src/main/java/com/woka/utils/Constants.kt b/app/src/main/java/com/woka/utils/Constants.kt index 829b5c9..fbc6897 100644 --- a/app/src/main/java/com/woka/utils/Constants.kt +++ b/app/src/main/java/com/woka/utils/Constants.kt @@ -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" \ No newline at end of file +const val ANALYTICS_UNIQUE_USER = "engaged_users_android" \ No newline at end of file diff --git a/build.gradle b/build.gradle index 404b025..9bfb36a 100644 --- a/build.gradle +++ b/build.gradle @@ -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 { diff --git a/gradle.properties b/gradle.properties index 8ce92c0..158fd2a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -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" \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8372a8f..3562c1d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -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" }