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

[ADD] connect sdk

parent ed67cd6a
......@@ -5,6 +5,7 @@
<map>
<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="..\:/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_lang.xml" value="0.2796296296296296" />
<entry key="app/src/main/res/drawable/bgn_pin_btn.xml" value="0.26525096525096525" />
......
......@@ -21,7 +21,7 @@ android {
targetSdk 31
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
......@@ -38,7 +38,7 @@ android {
kotlinOptions {
jvmTarget = '1.8'
}
buildFeatures{
buildFeatures {
viewBinding true
}
}
......@@ -50,11 +50,10 @@ repositories {
}
dependencies {
// api fileTree(dir: 'aars', include: ['*.jar', '*.aar'])
// api(name: 'core', ext: 'aar')
// api(name: 'coreui', ext: 'aar')
// api(name: 'delta', ext: 'aar')
// api(name: 'release', ext: 'aar')
api fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
api(name: 'agr-sdk-core-debug-1.7.0', ext: 'aar')
api(name: 'agr-sdk-coreui-release-1.7.0', ext: 'aar')
api(name: 'agr-sdk-release-1.2.5.2-alpha-3', ext: 'aar')
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.3.1'
......@@ -95,7 +94,7 @@ dependencies {
// SquareUp
implementation "com.squareup.retrofit2:retrofit:$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"
// Lifecycle ViewModel LiveData
......@@ -125,4 +124,200 @@ dependencies {
// 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
import com.mobiuz.app.dev.ui.auth.pin.PinAdapter
import com.mobiuz.app.dev.ui.base.BaseFragment
import dagger.hilt.android.AndroidEntryPoint
import uz.agr.sdk.AGRBilling
import uz.agr.sdk.coreui.extension.showSnackMessage
import javax.inject.Inject
@AndroidEntryPoint
......@@ -32,13 +34,54 @@ class BillingFragment : BaseFragment(R.layout.fragment_billing) {
count = 3
setUpUI()
collects()
}
override fun setUpUI() {
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) {
}
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() {
_bn = null
super.onDestroy()
......
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 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
class App : Application()
\ No newline at end of file
class App : MultiDexApplication() {
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
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import retrofit2.converter.gson.GsonConverterFactory
import javax.inject.Singleton
......@@ -29,7 +29,7 @@ class ServerModule {
.baseUrl(CONSTANTS.BASE_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava3CallAdapterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build()
@Provides
......
<?xml version="1.0" encoding="utf-8"?>
<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"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:fitsSystemWindows="true"
android:orientation="vertical"
tools:context=".BillingFragment">
......@@ -11,17 +12,18 @@
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
app:title="Billing"
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
android:id="@+id/card_view1"
app:cardUseCompatPadding="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="12dp"
app:cardElevation="1dp">
app:cardElevation="1dp"
android:layout_marginHorizontal="6dp"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
......@@ -63,11 +65,12 @@
<com.google.android.material.card.MaterialCardView
android:id="@+id/card_view2"
app:cardUseCompatPadding="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="12dp"
app:cardElevation="1dp">
app:cardElevation="1dp"
android:layout_marginHorizontal="6dp"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
......@@ -109,11 +112,12 @@
<com.google.android.material.card.MaterialCardView
android:id="@+id/card_view3"
app:cardUseCompatPadding="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="12dp"
app:cardElevation="1dp">
app:cardElevation="1dp"
android:layout_marginHorizontal="6dp"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
......
......@@ -7,6 +7,23 @@ buildscript {
nav_version = "2.3.5"
chuck_version = "1.1.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 {
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