Commit e0450ad2 authored by shohboz's avatar shohboz

[UPD] MUS-276 Feature, updated billing add card, payment, delete card and others

parents 533c8c3a 637b860e
......@@ -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-release-1.7.0', ext: 'aar')
api(name: 'agr-sdk-coreui-release-1.7.0', ext: 'aar')
api(name: 'agr-sdk-mobi-uz-release-1.0.0', 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
......@@ -23,9 +23,6 @@
tools:targetApi="m">
<activity
android:name=".dev.ui.settings.SettingsActivity"
android:exported="false" />
<activity
android:name=".dev.SplashActivity"
android:configChanges="orientation"
android:exported="true"
......@@ -61,6 +58,13 @@
android:exported="false"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".BillingActivity"
android:configChanges="orientation"
android:exported="false"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" />
</application>
</manifest>
\ No newline at end of file
package com.mobiuz.app
import android.os.Bundle
import android.os.PersistableBundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
import com.mobiuz.app.databinding.ActivityMainBinding
import com.mobiuz.app.databinding.FragmentBillingBinding
import com.mobiuz.app.dev.model.PinData
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 com.mobiuz.app.dev.utils.LocaleHelper
import dagger.hilt.android.AndroidEntryPoint
import uz.agr.mobiuz.AGRBilling
import uz.agr.sdk.coreui.extension.showMessage
import uz.agr.sdk.coreui.extension.showSnackMessage
import javax.inject.Inject
@AndroidEntryPoint
class BillingActivity : AppCompatActivity() {
@Inject
lateinit var pref: SharedPref
private var _bn: FragmentBillingBinding? = null
private val bn get() = _bn ?: throw NullPointerException("cannot inflate")
override fun onCreate(savedInstanceState: Bundle?) {
LocaleHelper.setLocale(this)
super.onCreate(savedInstanceState)
_bn = FragmentBillingBinding.inflate(layoutInflater)
setContentView(bn.root)
val window = window.decorView
window.systemUiVisibility = window.systemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
setUpUI()
}
fun setUpUI() {
bn.apply {
toolbar.setNavigationOnClickListener {
finish()
}
AGRBilling.hasCards().subscribe({
showMessage("Has Cards")
}, {
showMessage("No Card")
}).dispose()
savedCards.setOnClickListener {
getPhoneNumber(object : LoadPhoneNumber {
override fun invoke(phoneNumber: String) {
pref.isShowPin = false
startActivity(
AGRBilling.createCardsListIntent(this@BillingActivity, pref.userPhone.filter { it.isDigit() })
)
}
})
}
payments.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.createReplenishBalanceIntent(this@BillingActivity, phoneNumber)
)
}
})
}
monitoring.setOnClickListener {
getPhoneNumber(object : LoadPhoneNumber {
override fun invoke(phoneNumber: String) {
pref.isShowPin = false
startActivity(
AGRBilling.createHistoryIntent(this@BillingActivity, phoneNumber)
)
}
})
}
}
}
private fun getPhoneNumber(listener: LoadPhoneNumber) {
val number = pref.userPhone.filter { it.isDigit() }
if (number.length == 12) {
listener.invoke(number)
} else {
showMessage("Invalid phone number")
}
}
private interface LoadPhoneNumber {
fun invoke(phoneNumber: String)
}
override fun onDestroy() {
_bn = null
super.onDestroy()
}
}
\ No newline at end of file
package com.mobiuz.app
import android.os.Bundle
import android.view.View
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
import com.mobiuz.app.databinding.FragmentBillingBinding
import com.mobiuz.app.dev.model.PinData
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 javax.inject.Inject
@AndroidEntryPoint
class BillingFragment : BaseFragment(R.layout.fragment_billing) {
@Inject
lateinit var pref: SharedPref
private var _bn: FragmentBillingBinding? = null
private val bn get() = _bn ?: throw NullPointerException("cannot inflate")
private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) }
private val data = ArrayList<PinData>()
private val pinAdapter = PinAdapter()
private var count = 3
private lateinit var decorView: View
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
_bn = FragmentBillingBinding.bind(view)
count = 3
setUpUI()
collects()
}
override fun setUpUI() {
bn.apply {
cardView1.setOnClickListener {
}
}
}
override fun collects() {
}
override fun onDestroy() {
_bn = null
super.onDestroy()
}
}
\ No newline at end of file
package com.mobiuz.app.dev.app
import android.app.Application
import android.content.Context
import android.content.res.Configuration
import androidx.multidex.MultiDex
import androidx.multidex.MultiDexApplication
import com.mobiuz.app.BuildConfig
import com.mobiuz.app.dev.utils.LocaleHelper
import dagger.hilt.android.HiltAndroidApp
import ru.terrakok.cicerone.Router
import timber.log.Timber
import toothpick.Toothpick
import toothpick.configuration.Configuration
import uz.agr.mobiuz.AGRBilling
import uz.agr.mobiuz.di.AppModule
import uz.agr.sdk.core.di.DI
import uz.agr.sdk.core.di.module.CoreServerModule
import uz.agr.sdk.core.model.system.LocaleManager
import uz.agr.sdk.coreui.di.FlowNavigationModule
import uz.agr.sdk.coreui.di.ServerModule
@HiltAndroidApp
class App : Application(){
override fun attachBaseContext(base: Context?) {
super.attachBaseContext(LocaleHelper.setLocale(base!!))
class App : MultiDexApplication() {
override fun onCreate() {
super.onCreate()
initToothpick()
initAppScope()
initLogger()
AGRBilling.init(this)
}
override fun attachBaseContext(base: Context) {
super.attachBaseContext(LocaleManager.setLocale(base))
MultiDex.install(this)
}
override fun onConfigurationChanged(newConfig: Configuration) {
override fun onConfigurationChanged(newConfig: android.content.res.Configuration) {
super.onConfigurationChanged(newConfig)
LocaleHelper.setLocale(this)
}
private fun initToothpick() {
if (BuildConfig.DEBUG) {
Toothpick.setConfiguration(Configuration.forDevelopment().preventMultipleRootScopes())
} else {
Toothpick.setConfiguration(Configuration.forProduction())
}
}
private fun initLogger() {
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
}
}
private fun initAppScope() {
val appScope = Toothpick.openScope(DI.APP_SCOPE)
appScope.installModules(AppModule())
appScope.installModules(CoreServerModule("MOBIUZ"))
appScope.installModules(FlowNavigationModule(appScope.getInstance(Router::class.java)))
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
......
package com.mobiuz.app.dev.ui.home
import android.annotation.SuppressLint
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import android.view.View
......@@ -10,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
import com.mobiuz.app.BillingActivity
import com.mobiuz.app.R
import com.mobiuz.app.databinding.FragmentHomeBinding
import com.mobiuz.app.dev.MainViewModel
......@@ -61,7 +63,9 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
bn.apply {
btnAddSum.setOnClickListener {
// navController.navigate(R.id.billingFragment)
pref.isShowPin = false
pref.blockedTime = System.currentTimeMillis()
startActivity(Intent(requireContext(),BillingActivity::class.java))
}
txtMyNumber.text = pref.userPhone.customMasketHome().replace("-", " ")
......
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="40"
android:viewportHeight="40">
<path
android:pathData="M18.6356,3.361C15.8345,3.6532 13.2305,4.5377 11.0739,5.9295L10.5151,6.2901L10.473,5.7705C10.406,4.9439 10.0196,4.545 9.2859,4.545C8.8147,4.545 8.5766,4.667 8.2847,5.0581C8.1376,5.2552 8.1311,5.3579 8.1311,7.4889C8.1311,9.6198 8.1376,9.7225 8.2847,9.9196C8.3692,10.0328 8.5309,10.1946 8.644,10.2791C8.8411,10.4263 8.9438,10.4328 11.0739,10.4328C13.204,10.4328 13.3066,10.4263 13.5037,10.2791C13.8946,9.9871 14.0166,9.7489 14.0166,9.2776C14.0166,8.9532 13.9772,8.7885 13.863,8.6355C13.5675,8.2396 13.3455,8.1323 12.731,8.0887L12.1541,8.0478L12.752,7.6966C18.3231,4.4233 25.3324,5.2472 29.9472,9.7175C31.2523,10.9817 32.0914,12.1285 32.8697,13.712C35.0185,18.0838 34.8108,23.2562 32.3203,27.3881C31.4342,28.8582 30.0368,30.4275 28.7408,31.4078C24.4455,34.6571 18.7117,35.2635 13.9171,32.9756C12.3369,32.2216 11.2766,31.4693 9.9844,30.1855C8.5308,28.7414 7.619,27.4163 6.8797,25.6739C6.1834,24.0332 5.8344,22.4895 5.7212,20.5494C5.6591,19.4864 5.6065,19.3419 5.1597,19.0082C4.8712,18.7927 4.1645,18.7927 3.8761,19.0082C3.3277,19.4177 3.2515,19.804 3.396,21.4395C3.7385,25.3151 5.3229,28.7955 8.0136,31.5835C10.621,34.285 13.7417,35.8957 17.5926,36.5277C18.7206,36.7127 21.273,36.7138 22.4472,36.5296C25.9656,35.9777 29.0603,34.4517 31.5612,32.0356C34.2265,29.4604 35.8573,26.3474 36.4945,22.6182C36.687,21.4911 36.7261,18.8038 36.5643,17.8111C35.9028,13.7519 34.3332,10.6599 31.5893,8.0106C29.1106,5.6172 26.1119,4.1086 22.6958,3.5364C21.795,3.3856 19.3945,3.2819 18.6356,3.361Z"
android:fillColor="#F4CDCE"
android:fillType="evenOdd"/>
<path
android:pathData="M18.6353,9.3614C17.8681,9.4572 16.7359,9.7635 15.9463,10.0887C12.59,11.4712 10.1855,14.4221 9.4579,18.0516C9.2607,19.0348 9.2785,21.1413 9.4919,22.1099C9.9795,24.322 10.9069,26.0386 12.4469,27.5791C13.9864,29.1193 15.6992,30.0455 17.9139,30.5357C18.9532,30.7658 21.0738,30.7658 22.1131,30.5357C24.3276,30.0456 26.0365,29.1207 27.5788,27.5777C29.1408,26.0152 30.1348,24.1495 30.5678,21.9673C30.753,21.0346 30.7513,19.1056 30.5645,18.109C29.7843,13.9456 26.6942,10.6366 22.6291,9.6116C21.3749,9.2954 19.9015,9.2031 18.6353,9.3614ZM20.6664,13.0538C20.7734,13.1338 20.9302,13.2919 21.0146,13.405C21.1626,13.6032 21.1691,13.7163 21.1905,16.4933L21.2128,19.376L22.7833,20.4183C23.647,20.9917 24.4331,21.5649 24.5302,21.6921C24.9596,22.2554 24.7573,23.0915 24.111,23.424C23.4909,23.7431 23.379,23.6968 21.1463,22.1979C20.0557,21.4656 19.0948,20.7719 19.011,20.6562C18.8641,20.4533 18.8579,20.3321 18.8366,17.2279C18.8244,15.458 18.8341,13.9019 18.8582,13.7698C18.9124,13.4726 19.224,13.0923 19.5255,12.9554C19.8271,12.8185 20.4198,12.8697 20.6664,13.0538Z"
android:fillColor="#D0151C"
android:fillType="evenOdd"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="41dp"
android:height="40dp"
android:viewportWidth="41"
android:viewportHeight="40">
<path
android:pathData="M2.7239,18.0822C2.563,18.1665 2.3986,18.3317 2.312,18.4959C2.1703,18.7648 2.168,18.8924 2.168,26.2636C2.168,33.6379 2.1703,33.7624 2.3122,34.0316C2.4073,34.2121 2.5574,34.3552 2.7527,34.4516C3.0182,34.5827 3.143,34.5952 3.9516,34.5719C4.679,34.5508 4.919,34.5172 5.1874,34.3988C5.6118,34.2116 6.0789,33.7602 6.2764,33.3468L6.4304,33.0244V26.2636V19.5029L6.2764,19.1805C6.0791,18.7672 5.6119,18.3158 5.1874,18.1283C4.9128,18.0069 4.6909,17.9776 3.9231,17.9614C3.1003,17.944 2.9606,17.9581 2.7239,18.0822ZM8.6153,26.3536C8.6153,29.8414 8.5967,32.7847 8.5741,32.8944L8.5329,33.0937L11.8873,34.7018C15.2425,36.3102 15.5882,36.4555 16.3831,36.5919C16.9746,36.6934 27.1705,36.6914 27.6851,36.5898C28.2093,36.4862 28.759,36.2856 29.1209,36.0658C29.7599,35.6777 37.9619,30.048 38.1864,29.8434C38.4939,29.5632 38.7668,29.0154 38.8214,28.5689C38.9447,27.5616 38.1904,26.5495 37.1479,26.3238C36.4096,26.1639 36.3002,26.2105 32.2943,28.3953L28.6378,30.3894L22.2077,30.4079C15.869,30.426 15.7736,30.4243 15.4927,30.2856C15.1727,30.1275 14.9193,29.7292 14.9193,29.384C14.9193,29.0723 15.1726,28.6425 15.4394,28.5013C15.6539,28.3878 16.079,28.3759 21.0443,28.3439C26.3524,28.3096 26.421,28.3074 26.7501,28.1602C27.1768,27.9692 27.6432,27.5173 27.8376,27.1061C28.0494,26.6583 28.0494,25.869 27.8376,25.4212C27.6432,25.01 27.1768,24.5581 26.7501,24.3671C26.4318,24.2247 26.291,24.2166 23.5874,24.1834L20.7577,24.1487L18.1703,22.4728C14.2737,19.949 14.6498,20.0791 11.1405,20.0401L8.6153,20.0121V26.3536Z"
android:fillColor="#D0151C"
android:fillType="evenOdd"/>
<path
android:pathData="M23.7324,17.9422C23.7324,16.0467 25.1933,14.2871 27.0968,13.8899C28.561,13.5844 29.9766,13.9911 31.0434,15.0236C32.1075,16.0537 32.5247,17.3976 32.2186,18.809C31.8127,20.6802 30.0047,22.1003 28.0281,22.1003C25.7102,22.1003 23.7324,20.1858 23.7324,17.9422Z"
android:fillColor="#F4CDCE"/>
<path
android:pathData="M14.666,9.996C14.666,7.7149 16.3679,5.5973 18.5854,5.1193C20.2911,4.7517 21.9402,5.2411 23.1829,6.4836C24.4225,7.7232 24.9086,9.3406 24.552,11.0391C24.0791,13.291 21.9729,15 19.6703,15C16.9701,15 14.666,12.6961 14.666,9.996Z"
android:fillColor="#F4CDCE"/>
</vector>
This diff is collapsed.
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="40dp"
android:viewportWidth="40"
android:viewportHeight="40">
<path
android:pathData="M4.8746,16.2312C4.2948,16.346 3.7446,16.8025 3.4694,17.397L3.332,17.6937V26.4306V35.1675L3.5024,35.5305C3.7038,35.9598 4.048,36.3131 4.4653,36.5185L4.7671,36.6672H19.9987H35.2303L35.5303,36.5194C35.9388,36.3182 36.2907,35.9559 36.4949,35.5261L36.6654,35.1675V26.4306V17.6937L36.484,17.3246C36.2752,16.8997 35.8994,16.5335 35.4665,16.3334L35.165,16.1941L20.1618,16.1845C11.91,16.1792 5.0307,16.2002 4.8746,16.2312ZM12.3489,20.1734C12.7314,20.3331 12.9758,20.5545 13.1837,20.9296L13.3777,21.2798V23.1054V24.931L13.1837,25.2811C13.077,25.4738 12.8992,25.7002 12.7888,25.7844C12.3365,26.1292 12.2716,26.1372 9.9342,26.1372H7.7586L7.4048,25.9579C7.0022,25.7539 6.6669,25.3567 6.5589,24.9559C6.5136,24.7878 6.4953,24.0648 6.5082,22.9537C6.5274,21.2988 6.5354,21.2014 6.6742,20.942C6.8438,20.6248 7.2349,20.2762 7.5484,20.1628C7.7031,20.1069 8.4084,20.082 9.9388,20.0785C11.7487,20.0744 12.1496,20.0902 12.3489,20.1734ZM8.4527,23.1054V24.1812H9.953H11.4534V23.1054V22.0296H9.953H8.4527V23.1054ZM11.1924,31.4837V32.4617H8.7789H6.3653V31.4837V30.5057H8.7789H11.1924V31.4837ZM18.6941,31.4837V32.4617H16.2805H13.8669V31.4837V30.5057H16.2805H18.6941V31.4837ZM26.1305,31.4837V32.4617H23.7169H21.3033V31.4837V30.5057H23.7169H26.1305V31.4837ZM33.6321,31.4837V32.4617H31.2185H28.805V31.4837V30.5057H31.2185H33.6321V31.4837Z"
android:fillColor="#D0151C"
android:fillType="evenOdd"/>
<path
android:pathData="M22.8234,3.7288C22.9955,3.6011 23.2597,3.4562 23.4105,3.4069C23.822,3.2725 24.4647,3.3273 24.8589,3.5305C25.0946,3.652 25.7901,4.3048 27.366,5.8835L29.547,8.0683L29.0946,8.5466C28.8459,8.8097 27.5438,10.1904 26.2012,11.6149L23.76,14.205H18.0147H12.2695L17.39,9.0831C20.2063,6.266 22.6513,3.8566 22.8234,3.7288Z"
android:fillColor="#F4CDCE"/>
<path
android:pathData="M27.0222,13.5935L29.262,11.2161L30.9254,9.4502L31.6922,10.2131C32.1139,10.6328 32.4515,10.9961 32.4423,11.0204C32.4332,11.0449 31.7653,11.769 30.9581,12.6296L29.4903,14.1944L27.9681,14.1997L26.4459,14.205L27.0222,13.5935Z"
android:fillColor="#F4CDCE"/>
<path
android:pathData="M32.18,14.1724L33.0204,13.2773L33.8609,12.3822L34.8533,13.372C35.3991,13.9164 35.8375,14.3701 35.8275,14.3801C35.8174,14.3902 35.7083,14.3669 35.5852,14.3285C35.462,14.2901 34.6454,14.2392 33.7706,14.2155L32.18,14.1724Z"
android:fillColor="#F4CDCE"/>
</vector>
......@@ -44,7 +44,7 @@
<fragment
android:id="@+id/billingFragment"
android:name="com.mobiuz.app.BillingFragment"
android:name="com.mobiuz.app.BillingActivity"
android:label="fragment_billing"
tools:layout="@layout/fragment_billing" />
......
......@@ -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