diff --git a/app/build.gradle b/app/build.gradle
index 921b5758..4bbc67fb 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -4,7 +4,7 @@ apply plugin: 'kotlin-parcelize'
apply plugin: 'kotlin-kapt'
apply plugin: 'androidx.navigation.safeargs.kotlin'
apply plugin: 'com.google.gms.google-services'
-apply plugin: 'com.google.firebase.crashlytics'
+apply plugin: 'appmetrica-plugin'
ext {
compose_version = "1.0.5"
@@ -22,12 +22,8 @@ android {
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- vectorDrawables.useSupportLibrary = true
-
- buildConfigField "Long", "READ_TIMEOUT_SECOND", READ_TIMEOUT_SECOND
- buildConfigField "Long", "CONNECTION_TIMEOUT_SECOND", CONNECTION_TIMEOUT_SECOND
-
- resValue "string", "google_maps_key", (project.findProperty("GOOGLE_MAPS_API_KEY") ?: "")
+ resValue "string", "google_maps_key", "\"${GOOGLE_MAPS_API_KEY}\""
+ buildConfigField "String", "APP_METRICA_API_KEY", "\"${APP_METRICA_API_KEY}\""
}
buildFeatures {
@@ -38,11 +34,12 @@ android {
buildTypes {
release {
- minifyEnabled false
+ minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ signingConfig signingConfigs.debug
}
debug {
- manifestPlaceholders = [isBranchSdkInTestMode: "true"]
+ applicationIdSuffix = ".debug"
}
}
@@ -51,11 +48,11 @@ android {
productFlavors {
staging {
versionNameSuffix 'Staging'
- buildConfigField "String", "URL_WEBAPI", "${STAGING_URL_WEBAPI_BASE_URL}"
+ buildConfigField "String", "URL_WEBAPI", "\"${STAGING_URL_WEBAPI_BASE_URL}\""
}
production {
- buildConfigField "String", "URL_WEBAPI", "${PRODUCTION_URL_WEBAPI_BASE_URL}"
+ buildConfigField "String", "URL_WEBAPI", "\"${PRODUCTION_URL_WEBAPI_BASE_URL}\""
}
}
@@ -91,9 +88,6 @@ dependencies {
def koin_version = "2.0.1"
implementation "org.koin:koin-android-viewmodel:$koin_version"
- def androidXAnnotations = '1.0.1'
- implementation "androidx.annotation:annotation:$androidXAnnotations"
-
def coroutinesVersion = '1.5.2'
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion"
@@ -130,14 +124,14 @@ dependencies {
implementation "com.github.skydoves:landscapist-glide:1.4.0"
// firebase
- implementation 'com.google.firebase:firebase-messaging:20.2.0'
- implementation 'com.google.firebase:firebase-analytics:17.4.2'
- implementation 'com.google.firebase:firebase-crashlytics:17.0.0'
+ implementation 'com.google.firebase:firebase-messaging-ktx:23.0.0'
+ implementation 'com.google.firebase:firebase-analytics-ktx:20.0.2'
+
+ implementation 'com.yandex.android:mobmetricalib:4.1.1'
def kotpref_version = "2.13.2"
implementation "com.chibatching.kotpref:kotpref:$kotpref_version"
implementation "com.chibatching.kotpref:gson-support:$kotpref_version"
- implementation "com.chibatching.kotpref:initializer:$kotpref_version"
implementation "com.chibatching.kotpref:livedata-support:$kotpref_version"
// zoomable image view
@@ -151,9 +145,6 @@ dependencies {
implementation "com.github.marlonlom:timeago:4.0.3"
- //recycler view swipe detector
- implementation 'it.xabaras.android:recyclerview-swipedecorator:1.2.2'
-
implementation 'com.github.samanzamani.persiandate:PersianDate:0.8'
//chucker debugger
@@ -172,3 +163,6 @@ dependencies {
implementation 'com.jakewharton.timber:timber:5.0.1'
}
+appmetrica {
+ postApiKey = "${APP_METRICA_POST_API_KEY}"
+}
\ No newline at end of file
diff --git a/app/google-services.json b/app/google-services.json
index 43016aac..ea6ec0b6 100644
--- a/app/google-services.json
+++ b/app/google-services.json
@@ -17,7 +17,20 @@
"current_key": "AAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
]
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:1111:android:bbbbbbbbb",
+ "android_client_info": {
+ "package_name": "com.kindnesswand.debug"
+ }
+ },
+ "api_key": [
+ {
+ "current_key": "BBbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
+ }
+ ]
}
],
"configuration_version": "1"
-}
\ No newline at end of file
+}
diff --git a/app/gradle.properties b/app/gradle.properties
index 05ae66d0..2fa65a68 100644
--- a/app/gradle.properties
+++ b/app/gradle.properties
@@ -1,15 +1,8 @@
-################### APP_VERSION #######################
VERSION_CODE=8
VERSION_NAME=2.2.0
-#######################################################
-################## Web Api Url ########################
-PRODUCTION_URL_WEBAPI_BASE_URL="http://kindnesswand.com/api/v1/"
-STAGING_URL_WEBAPI_BASE_URL="http://dev.kindnesswand.com/api/v1/"
-#######################################################
-################## Timeout Configs ####################
-READ_TIMEOUT_SECOND=20l
-CONNECTION_TIMEOUT_SECOND=20l
-#######################################################
-##################### GOOGLE #########################
+# These properties must be override in build script
+PRODUCTION_URL_WEBAPI_BASE_URL=http://kindnesswand.com/api/v1/
+STAGING_URL_WEBAPI_BASE_URL=http://dev.kindnesswand.com/api/v1/
GOOGLE_MAPS_API_KEY=googleApiKey
-######################################################
+APP_METRICA_API_KEY=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
+APP_METRICA_POST_API_KEY=bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
\ No newline at end of file
diff --git a/app/src/debug/res/values/strings.xml b/app/src/debug/res/values/strings.xml
new file mode 100644
index 00000000..9316b98c
--- /dev/null
+++ b/app/src/debug/res/values/strings.xml
@@ -0,0 +1,4 @@
+
+
+ نسخه دیباگ
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f191bed7..e069ad15 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,11 @@
+
+
+
+ FirebaseMessaging.getInstance().token.addOnCompleteListener { result ->
if (result.isSuccessful) {
- val token = result.result?.token.toString()
+ val token = result.result.toString()
if (token.isNotEmpty()) {
UserInfoPref.fireBaseToken = token
userRepo.registerFirebaseToken()
diff --git a/app/src/main/java/ir/kindnesswall/KindnessApplication.kt b/app/src/main/java/ir/kindnesswall/KindnessApplication.kt
index 8b5b14d7..4115378b 100644
--- a/app/src/main/java/ir/kindnesswall/KindnessApplication.kt
+++ b/app/src/main/java/ir/kindnesswall/KindnessApplication.kt
@@ -9,7 +9,11 @@ import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.OnLifecycleEvent
import androidx.lifecycle.ProcessLifecycleOwner
+import com.chibatching.kotpref.Kotpref
+import com.yandex.metrica.YandexMetrica
+import com.yandex.metrica.YandexMetricaConfig
import ir.kindnesswall.data.local.AppPref
+import ir.kindnesswall.data.local.UserInfoPref
import ir.kindnesswall.data.local.dao.catalog.GiftModel
import ir.kindnesswall.data.model.ChatContactModel
import ir.kindnesswall.di.dataBaseModule
@@ -20,7 +24,7 @@ import org.koin.android.ext.koin.androidContext
import org.koin.android.ext.koin.androidLogger
import org.koin.core.context.startKoin
import timber.log.Timber
-import java.util.*
+import java.util.Locale
/**
* Created by farshid.abazari since 2019-11-01
@@ -49,9 +53,26 @@ class KindnessApplication : Application(), LifecycleObserver {
override fun onCreate() {
super.onCreate()
+ Kotpref.init(this)
+
if (BuildConfig.DEBUG)
Timber.plant(Timber.DebugTree())
+ if (BuildConfig.DEBUG.not()) {
+ YandexMetrica.activate(
+ this,
+ YandexMetricaConfig
+ .newConfigBuilder(BuildConfig.APP_METRICA_API_KEY)
+ .withLocationTracking(false)
+ .apply {
+ UserInfoPref.userId.takeIf { it != 0L }
+ ?.let { withUserProfileID(it.toString()) }
+ }
+ .build()
+ )
+ YandexMetrica.enableActivityAutoTracking(this)
+ }
+
startKoin {
androidLogger()
androidContext(this@KindnessApplication)
diff --git a/app/src/main/java/ir/kindnesswall/di/NetworkModule.kt b/app/src/main/java/ir/kindnesswall/di/NetworkModule.kt
index 58849ca6..00c0ab20 100644
--- a/app/src/main/java/ir/kindnesswall/di/NetworkModule.kt
+++ b/app/src/main/java/ir/kindnesswall/di/NetworkModule.kt
@@ -81,9 +81,9 @@ fun headersInterceptor(addAuthHeader: Boolean) = Interceptor { chain ->
private fun setTimeOutToOkHttpClient(okHttpClientBuilder: OkHttpClient.Builder) =
okHttpClientBuilder.apply {
- readTimeout(BuildConfig.READ_TIMEOUT_SECOND, TimeUnit.SECONDS)
- connectTimeout(BuildConfig.CONNECTION_TIMEOUT_SECOND, TimeUnit.SECONDS)
- writeTimeout(BuildConfig.READ_TIMEOUT_SECOND, TimeUnit.SECONDS)
+ readTimeout(15L, TimeUnit.SECONDS)
+ connectTimeout(15L, TimeUnit.SECONDS)
+ writeTimeout(15L, TimeUnit.SECONDS)
}
class NullOnEmptyConverterFactory : Converter.Factory() {
diff --git a/app/src/main/java/ir/kindnesswall/view/authentication/InsertVerificationNumberFragment.kt b/app/src/main/java/ir/kindnesswall/view/authentication/InsertVerificationNumberFragment.kt
index 8522e719..cd73a267 100644
--- a/app/src/main/java/ir/kindnesswall/view/authentication/InsertVerificationNumberFragment.kt
+++ b/app/src/main/java/ir/kindnesswall/view/authentication/InsertVerificationNumberFragment.kt
@@ -9,7 +9,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.core.widget.doOnTextChanged
import androidx.databinding.DataBindingUtil
-import com.google.firebase.iid.FirebaseInstanceId
+import com.google.firebase.messaging.FirebaseMessaging
import ir.kindnesswall.BaseFragment
import ir.kindnesswall.R
import ir.kindnesswall.data.local.AppPref
@@ -157,9 +157,9 @@ class InsertVerificationNumberFragment : BaseFragment() {
when (it.status) {
CustomResult.Status.SUCCESS -> {
dismissProgressDialog()
- FirebaseInstanceId.getInstance().instanceId.addOnCompleteListener { result ->
+ FirebaseMessaging.getInstance().token.addOnCompleteListener { result ->
if (result.isSuccessful) {
- val token = result.result?.token.toString()
+ val token = result.result.toString()
if (token.isNotEmpty()) {
UserInfoPref.fireBaseToken = token
AppPref.shouldUpdatedFireBaseToken = true
diff --git a/app/src/main/java/ir/kindnesswall/view/main/more/MoreFragment.kt b/app/src/main/java/ir/kindnesswall/view/main/more/MoreFragment.kt
index 8544bfd0..fb963ada 100644
--- a/app/src/main/java/ir/kindnesswall/view/main/more/MoreFragment.kt
+++ b/app/src/main/java/ir/kindnesswall/view/main/more/MoreFragment.kt
@@ -5,9 +5,20 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.ViewGroup.LayoutParams
+import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.Image
import androidx.compose.foundation.clickable
-import androidx.compose.foundation.layout.*
+import androidx.compose.foundation.combinedClickable
+import androidx.compose.foundation.interaction.MutableInteractionSource
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.width
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.verticalScroll
@@ -17,6 +28,7 @@ import androidx.compose.material.Text
import androidx.compose.material.TopAppBar
import androidx.compose.runtime.Composable
import androidx.compose.runtime.livedata.observeAsState
+import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
@@ -70,6 +82,7 @@ class MoreFragment : BaseFragment() {
override fun configureViews() {}
+ @OptIn(ExperimentalFoundationApi::class)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
view as ComposeView
view.setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
@@ -173,7 +186,16 @@ class MoreFragment : BaseFragment() {
Text(
text = stringResource(R.string.version, BuildConfig.VERSION_NAME),
style = MaterialTheme.typography.overline,
- modifier = Modifier.align(Alignment.CenterHorizontally)
+ modifier = Modifier
+ .align(Alignment.CenterHorizontally)
+ .combinedClickable(
+ enabled = BuildConfig.FLAVOR == "staging",
+ interactionSource = remember { MutableInteractionSource() },
+ indication = null,
+ onClick = {},
+ onLongClick = { throwByLongClick() },
+ onDoubleClick = { throwByDoubleClick() }
+ )
)
}
}
@@ -223,6 +245,20 @@ class MoreFragment : BaseFragment() {
}
.show()
}
+
+ private fun throwByLongClick() {
+ throw RuntimeException("Hello from more fragment: long click")
+ }
+
+ private fun throwByDoubleClick() {
+ TestCrash().crash("Hello from more fragment: double click")
+ }
+
+ class TestCrash {
+ fun crash(message: String) {
+ throw RuntimeException(message)
+ }
+ }
}
@Composable
diff --git a/build.gradle b/build.gradle
index 6f98f81f..607a89df 100644
--- a/build.gradle
+++ b/build.gradle
@@ -17,8 +17,8 @@ buildscript {
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5"
classpath 'com.google.gms:google-services:4.3.3'
- classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.2'
classpath "com.github.ben-manes:gradle-versions-plugin:0.39.0"
+ classpath "com.yandex.android:appmetrica-build-plugin:0.3.0"
}
}
diff --git a/scripts/extract_dependencies/kapt.txt b/scripts/extract_dependencies/kapt.txt
index b0200af4..3ebfa4a7 100644
--- a/scripts/extract_dependencies/kapt.txt
+++ b/scripts/extract_dependencies/kapt.txt
@@ -109,5 +109,5 @@ You can use '--warning-mode all' to show the individual deprecation warnings and
See https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings
-BUILD SUCCESSFUL in 1s
+BUILD SUCCESSFUL in 2s
1 actionable task: 1 executed
diff --git a/scripts/extract_dependencies/stagingDebugRuntimeClasspath.txt b/scripts/extract_dependencies/stagingDebugRuntimeClasspath.txt
index c31b89c3..ab864d34 100644
--- a/scripts/extract_dependencies/stagingDebugRuntimeClasspath.txt
+++ b/scripts/extract_dependencies/stagingDebugRuntimeClasspath.txt
@@ -12,13 +12,14 @@ Project ':app'
------------------------------------------------------------
stagingDebugRuntimeClasspath - Runtime classpath of compilation 'stagingDebug' (target (androidJvm)).
++--- androidx.databinding:viewbinding:7.0.4
+| \--- androidx.annotation:annotation:1.0.0 -> 1.2.0
+--- androidx.databinding:databinding-common:7.0.4
+--- androidx.databinding:databinding-runtime:7.0.4
| +--- androidx.collection:collection:1.0.0 -> 1.1.0
| | \--- androidx.annotation:annotation:1.1.0 -> 1.2.0
| +--- androidx.databinding:databinding-common:7.0.4
-| +--- androidx.databinding:viewbinding:7.0.4
-| | \--- androidx.annotation:annotation:1.0.0 -> 1.2.0
+| +--- androidx.databinding:viewbinding:7.0.4 (*)
| \--- androidx.lifecycle:lifecycle-runtime:2.2.0 -> 2.3.1
| +--- androidx.arch.core:core-runtime:2.1.0
| | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0
@@ -223,7 +224,6 @@ stagingDebugRuntimeClasspath - Runtime classpath of compilation 'stagingDebug' (
| | +--- android.arch.lifecycle:common:1.1.1 -> androidx.lifecycle:lifecycle-common:2.3.1 (*)
| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.3.1 (*)
| \--- android.arch.lifecycle:extensions:1.1.1 -> androidx.lifecycle:lifecycle-extensions:2.2.0 (*)
-+--- androidx.annotation:annotation:1.0.1 -> 1.2.0
+--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 (*)
+--- androidx.fragment:fragment-ktx:1.3.6
@@ -420,124 +420,130 @@ stagingDebugRuntimeClasspath - Runtime classpath of compilation 'stagingDebug' (
| +--- androidx.compose.ui:ui:1.0.4 -> 1.0.5 (*)
| +--- androidx.compose.runtime:runtime:1.0.4 -> 1.0.5 (*)
| \--- androidx.compose.foundation:foundation:1.0.4 -> 1.0.5 (*)
-+--- com.google.firebase:firebase-messaging:20.2.0
-| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
-| +--- androidx.core:core:1.0.0 -> 1.5.0 (*)
-| +--- com.google.android.datatransport:transport-api:2.2.0
-| +--- com.google.android.datatransport:transport-backend-cct:2.2.0 -> 2.2.1
-| | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0
-| | +--- com.google.android.datatransport:transport-api:2.2.0
-| | +--- com.google.android.datatransport:transport-runtime:2.2.1
-| | | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0
-| | | +--- com.google.android.datatransport:transport-api:2.2.0
-| | | \--- com.google.dagger:dagger:2.27
-| | | \--- javax.inject:javax.inject:1
-| | \--- com.google.firebase:firebase-encoders-json:16.1.0
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.2.0
-| +--- com.google.android.datatransport:transport-runtime:2.2.0 -> 2.2.1 (*)
-| +--- com.google.android.gms:play-services-basement:17.0.0
++--- com.google.firebase:firebase-messaging-ktx:23.0.0
+| +--- com.google.android.gms:play-services-basement:17.2.1 -> 18.0.0
| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
-| | +--- androidx.core:core:1.0.0 -> 1.5.0 (*)
+| | +--- androidx.core:core:1.2.0 -> 1.5.0 (*)
| | \--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*)
-| +--- com.google.android.gms:play-services-stats:17.0.0
-| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
-| | \--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| +--- com.google.android.gms:play-services-tasks:17.0.0
-| | \--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| +--- com.google.firebase:firebase-common:19.3.0
-| | +--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
-| | +--- com.google.auto.value:auto-value-annotations:1.6.5
-| | \--- com.google.firebase:firebase-components:16.0.0
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.2.0
-| +--- com.google.firebase:firebase-components:16.0.0 (*)
-| +--- com.google.firebase:firebase-datatransport:17.0.3
+| +--- com.google.firebase:firebase-common:20.0.0
+| | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.0.0 (*)
+| | +--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.0.1
+| | | \--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| | \--- com.google.firebase:firebase-components:17.0.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0
+| | \--- com.google.firebase:firebase-annotations:16.0.0
+| +--- com.google.firebase:firebase-common-ktx:20.0.0
| | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0
-| | +--- com.google.android.datatransport:transport-api:2.1.0 -> 2.2.0
-| | +--- com.google.android.datatransport:transport-backend-cct:2.1.0 -> 2.2.1 (*)
-| | +--- com.google.android.datatransport:transport-runtime:2.1.0 -> 2.2.1 (*)
-| | \--- com.google.firebase:firebase-common:19.3.0 (*)
-| +--- com.google.firebase:firebase-encoders-json:16.0.0 -> 16.1.0 (*)
-| +--- com.google.firebase:firebase-iid:20.2.0
+| | +--- com.google.firebase:firebase-common:20.0.0 (*)
+| | +--- com.google.firebase:firebase-components:17.0.0 (*)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72 -> 1.5.31 (*)
+| +--- com.google.firebase:firebase-components:17.0.0 (*)
+| +--- com.google.firebase:firebase-messaging:23.0.0
| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
| | +--- androidx.core:core:1.0.0 -> 1.5.0 (*)
-| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
-| | +--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| | +--- com.google.android.gms:play-services-stats:17.0.0 (*)
-| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
-| | +--- com.google.firebase:firebase-common:19.3.0 (*)
-| | +--- com.google.firebase:firebase-components:16.0.0 (*)
-| | +--- com.google.firebase:firebase-iid-interop:17.0.0
-| | | +--- com.google.android.gms:play-services-base:17.0.0
+| | +--- com.google.android.datatransport:transport-api:3.0.0
+| | | \--- androidx.annotation:annotation:1.1.0 -> 1.2.0
+| | +--- com.google.android.datatransport:transport-backend-cct:3.0.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0
+| | | +--- com.google.android.datatransport:transport-api:3.0.0 (*)
+| | | +--- com.google.android.datatransport:transport-runtime:3.0.0
+| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0
+| | | | +--- com.google.android.datatransport:transport-api:3.0.0 (*)
+| | | | \--- javax.inject:javax.inject:1
+| | | +--- com.google.firebase:firebase-encoders:17.0.0
+| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.2.0
+| | | \--- com.google.firebase:firebase-encoders-json:18.0.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0
+| | | \--- com.google.firebase:firebase-encoders:17.0.0 (*)
+| | +--- com.google.android.datatransport:transport-runtime:3.0.0 (*)
+| | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.0.0 (*)
+| | +--- com.google.android.gms:play-services-cloud-messaging:17.0.0
+| | | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.0.0 (*)
+| | | \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.0.1 (*)
+| | +--- com.google.android.gms:play-services-stats:17.0.0 -> 17.0.2
+| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
+| | | \--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| | +--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.0.1 (*)
+| | +--- com.google.firebase:firebase-common:20.0.0 (*)
+| | +--- com.google.firebase:firebase-components:17.0.0 (*)
+| | +--- com.google.firebase:firebase-datatransport:18.0.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0
+| | | +--- com.google.android.datatransport:transport-api:3.0.0 (*)
+| | | +--- com.google.android.datatransport:transport-backend-cct:3.0.0 (*)
+| | | +--- com.google.android.datatransport:transport-runtime:3.0.0 (*)
+| | | +--- com.google.firebase:firebase-common:20.0.0 (*)
+| | | \--- com.google.firebase:firebase-components:17.0.0 (*)
+| | +--- com.google.firebase:firebase-iid-interop:17.1.0
+| | | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.0.0 (*)
+| | | \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.0.1 (*)
+| | +--- com.google.firebase:firebase-installations:17.0.0
+| | | +--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.0.1 (*)
+| | | +--- com.google.firebase:firebase-common:20.0.0 (*)
+| | | +--- com.google.firebase:firebase-components:17.0.0 (*)
+| | | \--- com.google.firebase:firebase-installations-interop:17.0.0
+| | | +--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.0.1 (*)
+| | | \--- com.google.firebase:firebase-annotations:16.0.0
+| | +--- com.google.firebase:firebase-installations-interop:17.0.0 (*)
+| | \--- com.google.firebase:firebase-measurement-connector:19.0.0
+| | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.0.0 (*)
+| | \--- com.google.firebase:firebase-annotations:16.0.0
+| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72 -> 1.5.31 (*)
++--- com.google.firebase:firebase-analytics-ktx:20.0.2
+| +--- com.google.firebase:firebase-analytics:20.0.2
+| | +--- com.google.android.gms:play-services-measurement:20.0.2
+| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
+| | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0
+| | | | \--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| | | +--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| | | +--- com.google.android.gms:play-services-measurement-base:20.0.2
+| | | | \--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| | | +--- com.google.android.gms:play-services-measurement-impl:20.0.2
| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
| | | | +--- androidx.core:core:1.0.0 -> 1.5.0 (*)
-| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*)
-| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*)
-| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| | +--- com.google.firebase:firebase-installations:16.3.1
-| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
-| | | +--- com.google.firebase:firebase-common:19.3.0 (*)
-| | | +--- com.google.firebase:firebase-components:16.0.0 (*)
-| | | \--- com.google.firebase:firebase-installations-interop:16.0.0
-| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*)
-| | \--- com.google.firebase:firebase-installations-interop:16.0.0 (*)
-| +--- com.google.firebase:firebase-installations:16.3.1 (*)
-| +--- com.google.firebase:firebase-installations-interop:16.0.0 (*)
-| \--- com.google.firebase:firebase-measurement-connector:18.0.0
-| \--- com.google.android.gms:play-services-basement:17.0.0 (*)
-+--- com.google.firebase:firebase-analytics:17.4.2
-| +--- com.google.android.gms:play-services-measurement:17.4.2
-| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
-| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
-| | +--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| | +--- com.google.android.gms:play-services-measurement-base:17.4.2
-| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| | +--- com.google.android.gms:play-services-measurement-impl:17.4.2
+| | | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*)
+| | | | +--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| | | | +--- com.google.android.gms:play-services-measurement-base:20.0.2 (*)
+| | | | \--- com.google.android.gms:play-services-stats:17.0.2 (*)
+| | | \--- com.google.android.gms:play-services-stats:17.0.2 (*)
+| | +--- com.google.android.gms:play-services-measurement-api:20.0.2
+| | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*)
+| | | +--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| | | +--- com.google.android.gms:play-services-measurement-base:20.0.2 (*)
+| | | +--- com.google.android.gms:play-services-measurement-sdk-api:20.0.2
+| | | | +--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| | | | \--- com.google.android.gms:play-services-measurement-base:20.0.2 (*)
+| | | +--- com.google.android.gms:play-services-tasks:18.0.1 (*)
+| | | +--- com.google.firebase:firebase-common:20.0.0 (*)
+| | | +--- com.google.firebase:firebase-components:17.0.0 (*)
+| | | +--- com.google.firebase:firebase-installations:17.0.0 (*)
+| | | +--- com.google.firebase:firebase-installations-interop:17.0.0 (*)
+| | | \--- com.google.firebase:firebase-measurement-connector:19.0.0 (*)
+| | \--- com.google.android.gms:play-services-measurement-sdk:20.0.2
+| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | +--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| | +--- com.google.android.gms:play-services-measurement-base:20.0.2 (*)
+| | \--- com.google.android.gms:play-services-measurement-impl:20.0.2 (*)
+| +--- com.google.firebase:firebase-common:20.0.0 (*)
+| +--- com.google.firebase:firebase-common-ktx:20.0.0 (*)
+| +--- com.google.firebase:firebase-components:17.0.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50 -> 1.5.31 (*)
++--- com.yandex.android:mobmetricalib:4.1.1
+| +--- com.google.android.gms:play-services-appset:16.0.0
+| | +--- com.google.android.gms:play-services-base:17.6.0
| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
-| | | +--- androidx.core:core:1.0.0 -> 1.5.0 (*)
-| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0
-| | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| | | +--- com.google.android.gms:play-services-measurement-base:17.4.2 (*)
-| | | \--- com.google.android.gms:play-services-stats:17.0.0 (*)
-| | \--- com.google.android.gms:play-services-stats:17.0.0 (*)
-| +--- com.google.android.gms:play-services-measurement-api:17.4.2
-| | +--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| | +--- com.google.android.gms:play-services-measurement-base:17.4.2 (*)
-| | +--- com.google.android.gms:play-services-measurement-impl:17.4.2 (*)
-| | +--- com.google.android.gms:play-services-measurement-sdk-api:17.4.2
-| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| | | \--- com.google.android.gms:play-services-measurement-base:17.4.2 (*)
-| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
-| | +--- com.google.firebase:firebase-common:19.3.0 (*)
-| | +--- com.google.firebase:firebase-components:16.0.0 (*)
-| | +--- com.google.firebase:firebase-iid:20.1.5 -> 20.2.0 (*)
-| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*)
-| \--- com.google.android.gms:play-services-measurement-sdk:17.4.2
-| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
-| +--- com.google.android.gms:play-services-basement:17.0.0 (*)
-| +--- com.google.android.gms:play-services-measurement-base:17.4.2 (*)
-| \--- com.google.android.gms:play-services-measurement-impl:17.4.2 (*)
-+--- com.google.firebase:firebase-crashlytics:17.0.0
-| +--- com.google.android.datatransport:transport-api:2.2.0
-| +--- com.google.android.datatransport:transport-backend-cct:2.2.1 (*)
-| +--- com.google.android.datatransport:transport-runtime:2.2.1 (*)
-| +--- com.google.android.gms:play-services-tasks:17.0.0 (*)
-| +--- com.google.firebase:firebase-common:19.3.0 (*)
-| +--- com.google.firebase:firebase-components:16.0.0 (*)
-| +--- com.google.firebase:firebase-encoders-json:16.1.0 (*)
-| +--- com.google.firebase:firebase-iid:20.1.5 -> 20.2.0 (*)
-| +--- com.google.firebase:firebase-iid-interop:17.0.0 (*)
-| +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*)
-| \--- com.squareup.okhttp3:okhttp:3.12.1 -> 3.12.10 (*)
+| | | +--- androidx.core:core:1.2.0 -> 1.5.0 (*)
+| | | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*)
+| | | +--- com.google.android.gms:play-services-basement:17.6.0 -> 18.0.0 (*)
+| | | \--- com.google.android.gms:play-services-tasks:17.2.1 -> 18.0.1 (*)
+| | +--- com.google.android.gms:play-services-basement:17.6.0 -> 18.0.0 (*)
+| | \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.0.1 (*)
+| +--- com.android.installreferrer:installreferrer:2.2
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.32 -> 1.5.31 (*)
+--- com.chibatching.kotpref:kotpref:2.13.2
| \--- androidx.annotation:annotation:1.1.0 -> 1.2.0
+--- com.chibatching.kotpref:gson-support:2.13.2
| \--- com.chibatching.kotpref:kotpref:2.13.2 (*)
-+--- com.chibatching.kotpref:initializer:2.13.2
-| +--- com.chibatching.kotpref:kotpref:2.13.2 (*)
-| \--- androidx.startup:startup-runtime:1.0.0 (*)
+--- com.chibatching.kotpref:livedata-support:2.13.2
| \--- com.chibatching.kotpref:kotpref:2.13.2 (*)
+--- com.github.chrisbanes:PhotoView:2.3.0
@@ -556,7 +562,6 @@ stagingDebugRuntimeClasspath - Runtime classpath of compilation 'stagingDebug' (
| | \--- androidx.annotation:annotation:1.1.0 -> 1.2.0
| \--- androidx.interpolator:interpolator:1.0.0 (*)
+--- com.github.marlonlom:timeago:4.0.3
-+--- it.xabaras.android:recyclerview-swipedecorator:1.2.2
+--- com.github.samanzamani.persiandate:PersianDate:0.8
+--- androidx.compose.ui:ui:1.0.5 (*)
+--- androidx.compose.ui:ui-tooling:1.0.5