Commit ff86ab01 authored by Dostonbek Ibragimov's avatar Dostonbek Ibragimov 💻

[ADD] connect sdk

parent ed67cd6a
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<map> <map>
<entry key="../../../../layout/custom_preview.xml" value="0.3527777777777778" /> <entry key="../../../../layout/custom_preview.xml" value="0.3527777777777778" />
<entry key="../../.gradle/caches/transforms-3/eea77424a90e1e1097be3e7a9314e37d/transformed/jetified-mobi_uz/res/layout/agr_fragment_fast_pay.xml" value="0.25" /> <entry key="../../.gradle/caches/transforms-3/eea77424a90e1e1097be3e7a9314e37d/transformed/jetified-mobi_uz/res/layout/agr_fragment_fast_pay.xml" value="0.25" />
<entry key="..\:/Users/NEW AGE/StudioProjects/shunchaki/app/src/main/res/layout/fragment_billing.xml" value="0.20520833333333333" />
<entry key="app/src/main/res/drawable/bgn_avatar.xml" value="0.25069444444444444" /> <entry key="app/src/main/res/drawable/bgn_avatar.xml" value="0.25069444444444444" />
<entry key="app/src/main/res/drawable/bgn_lang.xml" value="0.2796296296296296" /> <entry key="app/src/main/res/drawable/bgn_lang.xml" value="0.2796296296296296" />
<entry key="app/src/main/res/drawable/bgn_pin_btn.xml" value="0.26525096525096525" /> <entry key="app/src/main/res/drawable/bgn_pin_btn.xml" value="0.26525096525096525" />
......
...@@ -21,7 +21,7 @@ android { ...@@ -21,7 +21,7 @@ android {
targetSdk 31 targetSdk 31
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }
...@@ -38,7 +38,7 @@ android { ...@@ -38,7 +38,7 @@ android {
kotlinOptions { kotlinOptions {
jvmTarget = '1.8' jvmTarget = '1.8'
} }
buildFeatures{ buildFeatures {
viewBinding true viewBinding true
} }
} }
...@@ -50,11 +50,10 @@ repositories { ...@@ -50,11 +50,10 @@ repositories {
} }
dependencies { dependencies {
// api fileTree(dir: 'aars', include: ['*.jar', '*.aar']) api fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
// api(name: 'core', ext: 'aar') api(name: 'agr-sdk-core-debug-1.7.0', ext: 'aar')
// api(name: 'coreui', ext: 'aar') api(name: 'agr-sdk-coreui-release-1.7.0', ext: 'aar')
// api(name: 'delta', ext: 'aar') api(name: 'agr-sdk-release-1.2.5.2-alpha-3', ext: 'aar')
// api(name: 'release', ext: 'aar')
implementation 'androidx.core:core-ktx:1.7.0' implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.appcompat:appcompat:1.3.1'
...@@ -95,7 +94,7 @@ dependencies { ...@@ -95,7 +94,7 @@ dependencies {
// SquareUp // SquareUp
implementation "com.squareup.retrofit2:retrofit:$retrofit_version" implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
implementation "com.squareup.retrofit2:converter-gson:$retrofit_version" implementation "com.squareup.retrofit2:converter-gson:$retrofit_version"
implementation "com.squareup.retrofit2:adapter-rxjava3:$retrofit_version" // implementation "com.squareup.retrofit2:adapter-rxjava3:$retrofit_version"
implementation "com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2" implementation "com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2"
// Lifecycle ViewModel LiveData // Lifecycle ViewModel LiveData
...@@ -125,4 +124,200 @@ dependencies { ...@@ -125,4 +124,200 @@ dependencies {
// implementation 'com.github.woxingxiao:BounceScrollView:1.5-androidx' // implementation 'com.github.woxingxiao:BounceScrollView:1.5-androidx'
// SDK libs
// ### Cicerone Navigation ###
implementation "ru.terrakok.cicerone:cicerone:5.1.0"
implementation 'com.android.support:multidex:1.0.3'
// ### SearchView ###
implementation 'com.github.Ferfalk:SimpleSearchView:0.1.6'
// ### DI ###
implementation "com.github.stephanenicolas.toothpick:toothpick-runtime:3.1.0"
kapt("com.github.stephanenicolas.toothpick:toothpick-compiler:3.1.0")
implementation "ru.tinkoff.scrollingpagerindicator:scrollingpagerindicator:1.2.0"
implementation "androidx.viewpager2:viewpager2:1.0.0"
implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
implementation 'androidx.room:room-rxjava2:2.3.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.1'
// ### MVP Moxy ###
kapt("com.github.moxy-community:moxy-compiler:$moxyVersion")
implementation "com.github.moxy-community:moxy:$moxyVersion"
implementation "com.github.moxy-community:moxy-androidx:$moxyVersion"
implementation "com.google.code.gson:gson:2.8.6"
// ### Cicerone Navigation ###
implementation "ru.terrakok.cicerone:cicerone:5.1.0"
// ### DI ###
implementation "com.github.stephanenicolas.toothpick:toothpick-runtime:$toothpickVersion"
kapt("com.github.stephanenicolas.toothpick:toothpick-compiler:$toothpickVersion")
// ### Moshi ###
implementation 'com.squareup.moshi:moshi:1.12.0'
kapt('com.squareup.moshi:moshi-kotlin-codegen:1.12.0')
// ### Retrofit ###
implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
implementation "com.squareup.retrofit2:converter-moshi:$retrofitVersion"
// ### Coroutine ###
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0")
implementation("com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2")
implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.1'
// ### Logging ###
implementation "com.jakewharton.timber:timber:4.7.1"
implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2'
// ### Room ###
implementation('androidx.room:room-runtime:2.3.0')
implementation('androidx.room:room-ktx:2.3.0')
kapt('androidx.room:room-compiler:2.3.0')
// ### Input mask ###
implementation 'ru.egslava:MaskedEditText:1.0.5'
implementation 'com.aurelhubert:ahbottomnavigation:2.3.4'
// ### Verify Pin View ###
implementation 'com.github.mukeshsolanki:android-otpview-pinview:2.1.2'
implementation 'io.github.chaosleung:pinview:1.4.4'
implementation 'com.github.kirich1409:viewbindingpropertydelegate:1.4.4'
implementation "androidx.biometric:biometric:1.1.0"
implementation "de.adorsys.android:finger:1.0.1"
//----------------------------------------------------------------------------------------------------
// ### Lottie ###
api 'com.airbnb.android:lottie:3.5.0'
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
// ### View Pager Dots ###
implementation 'com.ToxicBakery.viewpager.transforms:view-pager-transforms:2.0.24'
implementation "ru.tinkoff.scrollingpagerindicator:scrollingpagerindicator:1.2.0"
implementation "com.aurelhubert:ahbottomnavigation:2.3.4"
implementation 'com.justkiddingbaby:vercodeedittext:1.1.0'
// volley http library
implementation 'com.android.volley:volley:1.2.0'
// ### SMS ###
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
// noinspection GradleDependency
implementation 'com.google.android.gms:play-services-auth:17.0.0'
// noinspection GradleDependency
implementation 'com.google.android.gms:play-services-auth-api-phone:17.1.0'
// ### Logging ###
implementation "com.jakewharton.timber:timber:$timber_version"
// ### MVP Moxy ###
kapt("com.github.moxy-community:moxy-compiler:$moxy_version")
implementation "com.github.moxy-community:moxy:$moxy_version"
implementation "com.github.moxy-community:moxy-androidx:$moxy_version"
// ### Cicerone Navigation ###
implementation "ru.terrakok.cicerone:cicerone:5.1.0"
// ### DI ###
implementation "com.github.stephanenicolas.toothpick:toothpick-runtime:$toothpick_version"
kapt("com.github.stephanenicolas.toothpick:toothpick-compiler:$toothpick_version")
// ### Network ###
implementation "com.squareup.moshi:moshi:1.11.0"
kapt("com.squareup.moshi:moshi-kotlin-codegen:1.11.0")
implementation 'com.facebook.stetho:stetho:1.5.1'
implementation 'com.facebook.stetho:stetho-okhttp3:1.5.1'
// ### RxJava ### noinspection GradleDependency
implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.1'
// ### Image load and cache ### noinspection GradleDependency
implementation "com.github.bumptech.glide:glide:$glide_version"
kapt("com.github.bumptech.glide:compiler:$glide_version")
implementation "com.github.bumptech.glide:okhttp3-integration:$glide_version"
implementation 'com.github.ome450901:SimpleRatingBar:1.5.1'
// ### ViewPager ###
implementation "ru.tinkoff.scrollingpagerindicator:scrollingpagerindicator:1.2.0"
implementation "androidx.viewpager2:viewpager2:1.0.0"
// ### Animation ###
implementation 'androidx.dynamicanimation:dynamicanimation:1.0.0'
// ### EditText ###
implementation 'com.vicmikhailau:MaskedEditText:3.0.4'
// ### View Support ###
implementation 'com.intuit.sdp:sdp-android:1.0.6'
// implementation files('libs/core-3.4.1.jar')
// ### Debug ###
implementation 'com.github.bobekos:SimpleBarcodeScanner:1.0.23'
// ### SearchView ###
implementation 'com.github.Ferfalk:SimpleSearchView:0.1.6'
// Comment this before publishing
implementation 'androidx.core:core-ktx:1.7.0'
// ### AdapterDelegates ###
api "com.hannesdorfmann:adapterdelegates4:4.2.0"
// ### MaterialDateRangePicker ###
api 'com.borax12.materialdaterangepicker:library:2.0'
// ### Room database ### noinspection GradleDependency
implementation 'androidx.room:room-runtime:2.1.0'
implementation 'androidx.room:room-rxjava2:2.3.0'
kapt('androidx.room:room-compiler:2.3.0')
//### Camera scan card ###
implementation 'com.github.Lucem-Anb:android-text-scanner:0.1.0'
// ### Network ###
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version"
implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofit_version"
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
implementation "com.squareup.okhttp3:logging-interceptor:$okhttp_version"
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
debugImplementation 'com.readystatesoftware.chuck:library:1.1.0'
releaseImplementation 'com.readystatesoftware.chuck:library-no-op:1.1.0'
//-------------------------------------------------------------------------------------------------------------------------------------
// Firebase
implementation platform('com.google.firebase:firebase-bom:27.1.0')
implementation 'com.google.firebase:firebase-crashlytics-ktx:18.0.0'
implementation 'com.google.firebase:firebase-analytics-ktx:19.0.0'
implementation 'com.google.firebase:firebase-messaging-ktx'
implementation 'com.google.firebase:firebase-messaging-ktx:22.0.0'
implementation 'com.github.dhaval2404:imagepicker:2.1'
implementation 'com.nabinbhandari.android:permissions:3.8'
// compress
implementation 'id.zelory:compressor:3.0.1'
implementation 'top.zibin:Luban:1.0.8'
implementation 'me.shaohui.advancedluban:library:1.3.5'
//svg loader
implementation("io.coil-kt:coil:0.11.0")
implementation("io.coil-kt:coil-svg:0.11.0")
// ### Test ###
testImplementation 'junit:junit:4.13.2'
testImplementation "com.google.truth:truth:1.1.2"
androidTestImplementation "com.google.truth:truth:1.1.2"
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
//cache fragment
implementation 'com.jakewharton:process-phoenix:2.1.2'
} }
\ No newline at end of file
...@@ -10,6 +10,8 @@ import com.mobiuz.app.dev.model.SharedPref ...@@ -10,6 +10,8 @@ import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.ui.auth.pin.PinAdapter import com.mobiuz.app.dev.ui.auth.pin.PinAdapter
import com.mobiuz.app.dev.ui.base.BaseFragment import com.mobiuz.app.dev.ui.base.BaseFragment
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import uz.agr.sdk.AGRBilling
import uz.agr.sdk.coreui.extension.showSnackMessage
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
...@@ -32,13 +34,54 @@ class BillingFragment : BaseFragment(R.layout.fragment_billing) { ...@@ -32,13 +34,54 @@ class BillingFragment : BaseFragment(R.layout.fragment_billing) {
count = 3 count = 3
setUpUI() setUpUI()
collects() collects()
} }
override fun setUpUI() { override fun setUpUI() {
bn.apply { bn.apply {
cardView1.setOnClickListener { toolbar.setNavigationOnClickListener {
navController.navigateUp()
}
AGRBilling.hasCards().subscribe({
showSnackMessage("Has Cards")
}, {
showSnackMessage("No Card")
}).dispose()
cardView1.setOnClickListener {
getPhoneNumber(object : LoadPhoneNumber {
override fun invoke(phoneNumber: String) {
pref.isShowPin = false
startActivity(
AGRBilling.createCardsListIntent(requireContext(), "998990552109")
)
}
})
}
cardView2.setOnClickListener {
getPhoneNumber(object : LoadPhoneNumber {
override fun invoke(phoneNumber: String) {
pref.isShowPin = false
/*
Vendor(
100082, "OOO UMS", "UMS", "https://agr.uz/application/resources/img/ums.jpg"
)
*/
startActivity(
AGRBilling.createPaymentForServicesIntent(requireContext(), phoneNumber)
)
}
})
}
cardView3.setOnClickListener {
getPhoneNumber(object : LoadPhoneNumber {
override fun invoke(phoneNumber: String) {
pref.isShowPin = false
startActivity(
AGRBilling.createHistoryIntent(requireContext(), phoneNumber)
)
}
})
} }
} }
} }
...@@ -48,6 +91,19 @@ class BillingFragment : BaseFragment(R.layout.fragment_billing) { ...@@ -48,6 +91,19 @@ class BillingFragment : BaseFragment(R.layout.fragment_billing) {
} }
private fun getPhoneNumber(listener: LoadPhoneNumber) {
val number = "998990552109"
if (number.length == 12) {
listener.invoke(number)
} else {
showSnackMessage("Invalid phone number")
}
}
private interface LoadPhoneNumber {
fun invoke(phoneNumber: String)
}
override fun onDestroy() { override fun onDestroy() {
_bn = null _bn = null
super.onDestroy() super.onDestroy()
......
package com.mobiuz.app.dev.app package com.mobiuz.app.dev.app
import android.app.Application import android.content.Context
import androidx.multidex.MultiDex
import androidx.multidex.MultiDexApplication
import com.mobiuz.app.BuildConfig
import dagger.hilt.android.HiltAndroidApp import dagger.hilt.android.HiltAndroidApp
import toothpick.Toothpick
import toothpick.configuration.Configuration
import uz.agr.sdk.AGRBilling
import uz.agr.sdk.core.di.DI
import uz.agr.sdk.core.model.system.LocaleManager
import uz.agr.sdk.coreui.di.ServerModule
import uz.agr.sdk.di.AppModule
@HiltAndroidApp @HiltAndroidApp
class App : Application() class App : MultiDexApplication() {
\ No newline at end of file
override fun onCreate() {
super.onCreate()
initToothpick()
initAppScope()
AGRBilling.init(this)
}
override fun attachBaseContext(base: Context) {
super.attachBaseContext(LocaleManager.setLocale(base))
MultiDex.install(this)
}
private fun initToothpick() {
if (BuildConfig.DEBUG) {
Toothpick.setConfiguration(Configuration.forDevelopment().preventMultipleRootScopes())
} else {
Toothpick.setConfiguration(Configuration.forProduction())
}
}
private fun initAppScope() {
val appScope = Toothpick.openScope(DI.APP_SCOPE)
appScope.installModules(AppModule())
val serverScope = Toothpick.openScopes(DI.APP_SCOPE, DI.SERVER_SCOPE)
serverScope.installModules(ServerModule())
}
}
\ No newline at end of file
...@@ -15,7 +15,7 @@ import okhttp3.Interceptor ...@@ -15,7 +15,7 @@ import okhttp3.Interceptor
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit import retrofit2.Retrofit
import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import retrofit2.converter.gson.GsonConverterFactory import retrofit2.converter.gson.GsonConverterFactory
import javax.inject.Singleton import javax.inject.Singleton
...@@ -29,7 +29,7 @@ class ServerModule { ...@@ -29,7 +29,7 @@ class ServerModule {
.baseUrl(CONSTANTS.BASE_URL) .baseUrl(CONSTANTS.BASE_URL)
.client(client) .client(client)
.addConverterFactory(GsonConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava3CallAdapterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build() .build()
@Provides @Provides
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto" android:fitsSystemWindows="true"
android:orientation="vertical" android:orientation="vertical"
tools:context=".BillingFragment"> tools:context=".BillingFragment">
...@@ -11,17 +12,18 @@ ...@@ -11,17 +12,18 @@
<com.google.android.material.appbar.MaterialToolbar <com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
app:title="Billing"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:navigationIcon="@drawable/ic_baseline_arrow_back" /> app:navigationIcon="@drawable/ic_baseline_arrow_back"
app:title="Billing" />
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/card_view1" android:id="@+id/card_view1"
app:cardUseCompatPadding="true"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:cardCornerRadius="12dp" app:cardCornerRadius="12dp"
app:cardElevation="1dp"> app:cardElevation="1dp"
android:layout_marginHorizontal="6dp"
app:cardUseCompatPadding="true">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -63,11 +65,12 @@ ...@@ -63,11 +65,12 @@
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/card_view2" android:id="@+id/card_view2"
app:cardUseCompatPadding="true"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:cardCornerRadius="12dp" app:cardCornerRadius="12dp"
app:cardElevation="1dp"> app:cardElevation="1dp"
android:layout_marginHorizontal="6dp"
app:cardUseCompatPadding="true">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -109,11 +112,12 @@ ...@@ -109,11 +112,12 @@
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/card_view3" android:id="@+id/card_view3"
app:cardUseCompatPadding="true"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:cardCornerRadius="12dp" app:cardCornerRadius="12dp"
app:cardElevation="1dp"> app:cardElevation="1dp"
android:layout_marginHorizontal="6dp"
app:cardUseCompatPadding="true">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -7,6 +7,23 @@ buildscript { ...@@ -7,6 +7,23 @@ buildscript {
nav_version = "2.3.5" nav_version = "2.3.5"
chuck_version = "1.1.0" chuck_version = "1.1.0"
retrofit_version = "2.9.0" retrofit_version = "2.9.0"
moxyVersion = "2.1.2"
toothpickVersion = "3.1.0"
retrofitVersion = '2.9.0'
glideVersion = "4.12.0"
roomVersion = '1.0.0'
room_version = '2.2.5'
multidex_version = '2.0.1'
timber_version = '4.7.1'
moxy_version = '2.0.2'
toothpick_version = '3.0.2'
retrofit_version = '2.6.2'
okhttp_version = '4.2.0'
glide_version = '4.10.0'
rx_java = '2.2.8'
android_version = '3.6.0'
} }
repositories { repositories {
google() google()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment