Commit f26fc380 authored by satya's avatar satya

update service

parent 38c27d8c
#Mon Dec 18 11:22:54 ICT 2023
gradle.version=7.2
# Default ignored files
/shelf/
/workspace.xml
seatel
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="1.6.20" />
</component>
</project>
\ No newline at end of file
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="navEditor-manualLayoutAlgorithm2">
<option name="myPositions">
<map>
<entry key="mobile_navigation.xml">
<value>
<LayoutPositions>
<option name="myPositions">
<map>
<entry key="navigation_home">
<value>
<LayoutPositions>
<option name="myPosition">
<Point>
<option name="x" value="12" />
<option name="y" value="12" />
</Point>
</option>
</LayoutPositions>
</value>
</entry>
<entry key="navigation_package">
<value>
<LayoutPositions>
<option name="myPosition">
<Point>
<option name="x" value="256" />
<option name="y" value="12" />
</Point>
</option>
</LayoutPositions>
</value>
</entry>
<entry key="navigation_profile">
<value>
<LayoutPositions>
<option name="myPosition">
<Point>
<option name="x" value="256" />
<option name="y" value="368" />
</Point>
</option>
</LayoutPositions>
</value>
</entry>
<entry key="navigation_usage">
<value>
<LayoutPositions>
<option name="myPosition">
<Point>
<option name="x" value="12" />
<option name="y" value="368" />
</Point>
</option>
</LayoutPositions>
</value>
</entry>
</map>
</option>
</LayoutPositions>
</value>
</entry>
</map>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
...@@ -4,7 +4,7 @@ plugins { ...@@ -4,7 +4,7 @@ plugins {
id 'kotlin-android-extensions' id 'kotlin-android-extensions'
id 'org.jetbrains.kotlin.kapt' id 'org.jetbrains.kotlin.kapt'
id 'com.google.gms.google-services' id 'com.google.gms.google-services'
id 'dagger.hilt.android.plugin' //id 'dagger.hilt.android.plugin'
} }
apply plugin: "realm-android" apply plugin: "realm-android"
...@@ -157,22 +157,22 @@ dependencies { ...@@ -157,22 +157,22 @@ dependencies {
// implementation 'io.realm.kotlin:library-sync:1.8.0' // implementation 'io.realm.kotlin:library-sync:1.8.0'
// Hilt // Hilt
implementation "com.google.dagger:hilt-android:$hilt_version" // implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-android-compiler:$hilt_version" // kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
// Coroutines // Coroutines
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9' // implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9' // implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9'
// Coroutine Lifecycle Scopes // Coroutine Lifecycle Scopes
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0" // implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0" // implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0"
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.1' // implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.1'
// Retrofit // Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0' // implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0' // implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation "com.squareup.okhttp3:logging-interceptor:4.7.2" // implementation "com.squareup.okhttp3:logging-interceptor:4.7.2"
// implementation("com.google.android.play:app-update:2.1.0") // implementation("com.google.android.play:app-update:2.1.0")
// implementation("com.google.android.play:app-update-ktx:2.1.0") // implementation("com.google.android.play:app-update-ktx:2.1.0")
......
...@@ -31,6 +31,11 @@ ...@@ -31,6 +31,11 @@
<uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<queries>
<!-- Explicit apps you know in advance about: -->
<package android:name="com.wingmoney.wingpay.uat" />
</queries>
<application <application
android:name=".ui.application.MyApplication" android:name=".ui.application.MyApplication"
android:allowBackup="true" android:allowBackup="true"
......
package com.seatel.mobilehall.data.network
import com.seatel.mobilehall.util.Resource
import retrofit2.Response
abstract class BaseApiResponse {
suspend fun <T> safeApiCall(apiCall: suspend () -> Response<T>): Resource<T> {
try {
val response = apiCall()
if (response.isSuccessful) {
val body = response.body()
body?.let {
return Resource.Success(body)
}
}
return error("${response.code()} ${response.message()}")
} catch (e: Exception) {
return error(e.message ?: e.toString())
}
}
private fun <T> error(errorMessage: String): Resource<T> =
Resource.Error("Api Call Failed $errorMessage")
}
\ No newline at end of file
package com.seatel.mobilehall.data.network.repository
import com.seatel.mobilehall.data.network.BaseApiResponse
import com.seatel.mobilehall.data.network.retrofit.RetrofitInstance
import com.seatel.mobilehall.ui.home.model.BannersModel
import com.seatel.mobilehall.util.Resource
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOn
class HomeRepository : BaseApiResponse() {
suspend fun getBanners(lang: String) = RetrofitInstance.seatelApi.getBanners(lang)
suspend fun requestBanners(lang: String): Flow<Resource<List<BannersModel>>> {
return flow {
emit(Resource.Loading())
emit(safeApiCall {
RetrofitInstance.seatelApi.getBanners(lang)
})
}.flowOn(Dispatchers.IO)
}
}
\ No newline at end of file
package com.seatel.mobilehall.data.network.repository
import android.app.Application
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import com.seatel.mobilehall.data.network.viewmodel.HomeViewModel
class ViewModelProviderFactory(
val app: Application, val repository: HomeRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
// if (modelClass.isAssignableFrom())
return HomeViewModel(app, repository) as T
}
}
\ No newline at end of file
package com.seatel.mobilehall.data.network.retrofit
import com.seatel.mobilehall.ui.home.model.BannersModel
import retrofit2.Response
import retrofit2.http.GET
import retrofit2.http.Query
interface API {
@GET("app-promotions/banners")
suspend fun getBanners(
@Query("lang") lang: String
): Response<List<BannersModel>>
}
\ No newline at end of file
package com.seatel.mobilehall.data.network.retrofit
import com.seatel.mobilehall.BuildConfig
import com.seatel.mobilehall.data.network.Devices
import com.seatel.mobilehall.ui.application.MyApplication
import okhttp3.Interceptor
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.util.concurrent.TimeUnit
class RetrofitInstance {
companion object {
private val interceptor: HttpLoggingInterceptor =
HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)
private val client = OkHttpClient.Builder().readTimeout(60, TimeUnit.SECONDS)
.connectTimeout(60, TimeUnit.SECONDS).writeTimeout(60, TimeUnit.SECONDS)
.addInterceptor(Interceptor { chain ->
val request = chain.request().newBuilder()
.addHeader("X-App-Version", Devices.getAppVersionName(MyApplication.appContext))
.addHeader("X-Language", "en").addHeader("X-Latitude", "")
.addHeader("X-Longitude", "").addHeader("X-Timestamp", "")
.addHeader("X-Timezone", "").addHeader("X-Platform", "Android")
.addHeader("X-OS-Version", "1.1.1").addHeader("X-UDID", "")
.addHeader("X-App-Signature", "")
.addHeader("Content-Type", "application/json; charset=utf-8")
.addHeader("x-api-key", BuildConfig.CLIENT_ID).build()
chain.proceed(request)
}).addInterceptor(interceptor).build()
private val retrofit = Retrofit.Builder().baseUrl(BuildConfig.BASE_URL)
.addConverterFactory(GsonConverterFactory.create()).client(client).build()
val seatelApi by lazy {
retrofit.create(API::class.java)
}
}
}
\ No newline at end of file
package com.seatel.mobilehall.data.network.viewmodel
import android.app.Application
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.viewModelScope
import com.seatel.mobilehall.data.network.repository.HomeRepository
import com.seatel.mobilehall.ui.home.model.BannersModel
import com.seatel.mobilehall.util.Resource
import kotlinx.coroutines.launch
class HomeViewModel(
app: Application, private val homeRepository: HomeRepository
) : AndroidViewModel(app) {
private val _bannerResponse = MutableLiveData<Resource<List<BannersModel>>>()
val bannersResponse: LiveData<Resource<List<BannersModel>>> = _bannerResponse
fun fetchBanners(lang: String) = viewModelScope.launch {
homeRepository.requestBanners(lang).collect {
_bannerResponse.value = it
}
}
}
\ No newline at end of file
...@@ -5,11 +5,10 @@ import android.os.StrictMode ...@@ -5,11 +5,10 @@ import android.os.StrictMode
import androidx.multidex.MultiDex import androidx.multidex.MultiDex
import androidx.multidex.MultiDexApplication import androidx.multidex.MultiDexApplication
import com.facebook.drawee.backends.pipeline.Fresco import com.facebook.drawee.backends.pipeline.Fresco
import dagger.hilt.android.HiltAndroidApp
import io.realm.Realm import io.realm.Realm
import io.realm.RealmConfiguration import io.realm.RealmConfiguration
@HiltAndroidApp
class MyApplication : MultiDexApplication() { class MyApplication : MultiDexApplication() {
......
...@@ -11,22 +11,27 @@ import android.text.style.StyleSpan ...@@ -11,22 +11,27 @@ import android.text.style.StyleSpan
import android.util.Log import android.util.Log
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast
import com.android.volley.VolleyError import com.android.volley.VolleyError
import com.google.gson.Gson import com.google.gson.Gson
import com.seatel.mobilehall.R import com.seatel.mobilehall.R
import com.seatel.mobilehall.data.network.SeatelSuperRequest import com.seatel.mobilehall.data.network.SeatelSuperRequest
import com.seatel.mobilehall.data.prefs.LanguagePreference
import com.seatel.mobilehall.data.prefs.SeatelSharePreferences
import com.seatel.mobilehall.ui.base.activity.BaseActivity import com.seatel.mobilehall.ui.base.activity.BaseActivity
import com.seatel.mobilehall.ui.home.interactor.BuyDataPackFreedomInteractor import com.seatel.mobilehall.ui.home.interactor.BuyDataPackFreedomInteractor
import com.seatel.mobilehall.ui.home.model.ValuePackSectionModel
import com.seatel.mobilehall.ui.home.model.ValuePackTableModel import com.seatel.mobilehall.ui.home.model.ValuePackTableModel
import com.seatel.mobilehall.ui.home.presenter.BuyDataPackFreedomPresenter import com.seatel.mobilehall.ui.home.presenter.BuyDataPackFreedomPresenter
import com.seatel.mobilehall.util.Constant import com.seatel.mobilehall.util.Constant
import com.seatel.mobilehall.util.SeatelAlertDialog import com.seatel.mobilehall.util.SeatelAlertDialog
import com.seatel.mobilehall.util.SeatelUtils import com.seatel.mobilehall.util.SeatelUtils
import com.seatel.mobilehall.util.customview.ErrorHandleView import com.seatel.mobilehall.util.customview.ErrorHandleView
import kotlinx.android.synthetic.main.activity_confirm_buy_data_pack.* import kotlinx.android.synthetic.main.activity_confirm_buy_data_pack.button_ok
import kotlinx.android.synthetic.main.activity_confirm_buy_data_pack.ctv_buy_data
import kotlinx.android.synthetic.main.activity_confirm_buy_data_pack.ctv_deduct
import kotlinx.android.synthetic.main.activity_confirm_buy_data_pack.cv_data_buy
import kotlinx.android.synthetic.main.activity_confirm_buy_data_pack.cv_data_valid_value_pack
import kotlinx.android.synthetic.main.activity_confirm_buy_data_pack.error_view
import kotlinx.android.synthetic.main.activity_confirm_buy_data_pack.image_view_back
import kotlinx.android.synthetic.main.activity_confirm_buy_data_pack.tv_phone_number
import java.text.DecimalFormat import java.text.DecimalFormat
class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor.View { class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor.View {
...@@ -56,6 +61,8 @@ class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor. ...@@ -56,6 +61,8 @@ class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor.
private var pricePlanCode: String = "" private var pricePlanCode: String = ""
private var requestTime: String? = null private var requestTime: String? = null
// private var valuePackSectionModel: ValuePackSectionModel? = null
override fun onBuyDataSucceed() { override fun onBuyDataSucceed() {
SuccessBuyDataPackActivity.launch(this, name, data, isAddON)/* if (isValuePack || isFortunePlan || isVipFortunePlan) mDataValuePack?.let { SuccessBuyDataPackActivity.launch(this, name, data, isAddON)/* if (isValuePack || isFortunePlan || isVipFortunePlan) mDataValuePack?.let {
...@@ -92,7 +99,12 @@ class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor. ...@@ -92,7 +99,12 @@ class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor.
} else mBuyDataPackFreedomPresenter.onBuyData( } else mBuyDataPackFreedomPresenter.onBuyData(
getPhoneLogin(), type, fee.substring(1).toDouble(), isAddON, pricePlanCode, requestTime!! getPhoneLogin(),
type,
fee.substring(1).toDouble(),
isAddON,
pricePlanCode,
requestTime!!
) )
//note: if amount 0.5 then change it to 0.1 for CRM(do it for CRM) //note: if amount 0.5 then change it to 0.1 for CRM(do it for CRM)
/*if (mAmountPost == 0.5 && !isValuePack && !isFortunePlan) { /*if (mAmountPost == 0.5 && !isValuePack && !isFortunePlan) {
...@@ -433,6 +445,12 @@ class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor. ...@@ -433,6 +445,12 @@ class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor.
else ctv_buy_data.text = SeatelUtils.translatForDialog(this, "Buy $name") else ctv_buy_data.text = SeatelUtils.translatForDialog(this, "Buy $name")
cv_data_buy.text = SeatelUtils.translatForDialog(this, "$fee") cv_data_buy.text = SeatelUtils.translatForDialog(this, "$fee")
tv_phone_number.text = getPhoneLogin() tv_phone_number.text = getPhoneLogin()
// valuePackSectionModel = intent.getSerializableExtra("valuePackSectionModel") as ValuePackSectionModel
// ctv_buy_data.text = SeatelUtils.translatForDialog(this,"Buy ${valuePackSectionModel!!.name}")
// cv_data_buy.text = SeatelUtils.translatForDialog(this, "${valuePackSectionModel!!.valuePackSecTwoModel.table[0].valuePrice}")
// Log.d("TAG::>>>", "init: $valuePackSectionModel")
ctv_deduct.text = "${ ctv_deduct.text = "${
SeatelUtils.translatForDialog( SeatelUtils.translatForDialog(
this, getString(R.string.we_will_deduct) this, getString(R.string.we_will_deduct)
...@@ -477,6 +495,12 @@ class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor. ...@@ -477,6 +495,12 @@ class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor.
context.startActivity(intent) context.startActivity(intent)
} }
fun launchData(context: Context, valuePackSectionModel: ValuePackSectionModel) {
val intent = Intent(context, ConfirmBuyDataPackActivity::class.java)
intent.putExtra("valuePackSectionModel", valuePackSectionModel)
context.startActivity(intent)
}
fun launch( fun launch(
context: Context, context: Context,
name: String, name: String,
......
...@@ -3,32 +3,33 @@ package com.seatel.mobilehall.ui.home.activity ...@@ -3,32 +3,33 @@ package com.seatel.mobilehall.ui.home.activity
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.View import android.view.View
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import com.android.volley.NoConnectionError import com.android.volley.NoConnectionError
import com.android.volley.TimeoutError import com.android.volley.TimeoutError
import com.android.volley.VolleyError import com.android.volley.VolleyError
import com.seatel.mobilehall.R import com.seatel.mobilehall.R
import com.seatel.mobilehall.ui.base.activity.BaseActivity import com.seatel.mobilehall.ui.base.activity.BaseActivity
import com.seatel.mobilehall.ui.home.adapter.LoyKobAdapter
import com.seatel.mobilehall.ui.home.adapter.LoyKobAddOnAdapter
import com.seatel.mobilehall.ui.home.adapter.TermAndServiceFooterAdapter
import com.seatel.mobilehall.ui.home.interactor.ProductServiceButtonClick import com.seatel.mobilehall.ui.home.interactor.ProductServiceButtonClick
import com.seatel.mobilehall.ui.home.interactor.ProductServiceDetailInteractor import com.seatel.mobilehall.ui.home.interactor.ProductServiceDetailInteractor
import com.seatel.mobilehall.ui.home.model.ValuePackSectionModel import com.seatel.mobilehall.ui.home.model.ValuePackSectionModel
import com.seatel.mobilehall.ui.home.model.ValuePackTableModel import com.seatel.mobilehall.ui.home.model.ValuePackTableModel
import com.seatel.mobilehall.ui.home.presenter.ProductServiceDetailPrsenter import com.seatel.mobilehall.ui.home.presenter.ProductServiceDetailPrsenter
import com.seatel.mobilehall.ui.packages.adapter.LoyKobsAdapter
import com.seatel.mobilehall.util.Constant
import com.seatel.mobilehall.util.customview.ErrorHandleView import com.seatel.mobilehall.util.customview.ErrorHandleView
import kotlinx.android.synthetic.main.activity_loykob.* import kotlinx.android.synthetic.main.activity_loykob.error_view
import kotlinx.android.synthetic.main.activity_loykob.recyclerItemLoyKob
class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View.OnClickListener, class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View,
ProductServiceButtonClick { ProductServiceButtonClick {
private var TAG = "LoyKobActivity::>>>"
private var mPlanCode: String? = null private var mPlanCode: String? = null
private var canSubscribe: Boolean = false private var canSubscribe: Boolean = false
private var valueData: String? = null private var valueData: String? = null
private var name: String? = null private var name: String? = null
private var planType: String? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
...@@ -42,62 +43,26 @@ class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View ...@@ -42,62 +43,26 @@ class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View
private fun getDataIntent() { private fun getDataIntent() {
canSubscribe = intent.getBooleanExtra("CAN_SUBSCRIBE", false) canSubscribe = intent.getBooleanExtra("CAN_SUBSCRIBE", false)
mPlanCode = intent.getStringExtra("PLAN_CODE") mPlanCode = intent.getStringExtra("PLAN_CODE")
planType = intent.getStringExtra("planType")
} }
private fun init() { private fun init() {
ProductServiceDetailPrsenter(this, this).onProServiceDetail(mPlanCode!!,getPhoneLogin()) ProductServiceDetailPrsenter(this, this).onProServiceDetail(mPlanCode!!, getPhoneLogin())
btn_benefit.setOnClickListener(this)
btn_term_condition.setOnClickListener(this)
} }
override fun onProServiceDetailSucceed(valuePackSectionModel: ValuePackSectionModel) { override fun onProServiceDetailSucceed(valuePackSectionModel: ValuePackSectionModel) {
Log.d(TAG, "responseData:>>> $valuePackSectionModel")
error_view.visibility = View.GONE error_view.visibility = View.GONE
if (valuePackSectionModel.valuePackSecTwoModel.addon.size > 0) if (planType.equals(Constant.LoyKob)) {
addon_frame.visibility = View.VISIBLE recyclerItemLoyKob.adapter =
else LoyKobsAdapter(this, Constant.LoyKob, canSubscribe, valuePackSectionModel)
addon_frame.visibility = View.GONE } else
valueData = valuePackSectionModel.type recyclerItemLoyKob.adapter =
name = valuePackSectionModel.name LoyKobsAdapter(this, "Any", canSubscribe, valuePackSectionModel)
tv_add_on_term_condition.text = "Add-on Terms & Conditions"
setupTitle(valuePackSectionModel)
setupDataList(valuePackSectionModel)
}
private fun setupTitle(valuePackSectionModel: ValuePackSectionModel) {
mainTitle.text = valuePackSectionModel.valuePackSecTwoModel.title
subTitle.text = valuePackSectionModel.valuePackSecTwoModel.subTitle
}
private fun setupDataList(valuePackSectionModel: ValuePackSectionModel) {
mRecyclerLoyKob.adapter =
LoyKobAdapter(
this,
canSubscribe,
valuePackSectionModel.valuePackSecTwoModel.table, this, getMainPhoneLogin()
)
mRecyclerLoyKobAddOn.apply {
layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
adapter = LoyKobAddOnAdapter(
context,
canSubscribe,
valuePackSectionModel.valuePackSecTwoModel.addon,
this@LoyKobActivity,
getMainPhoneLogin()
)
} }
mRecyclerTermCondition.adapter = TermAndServiceFooterAdapter(
this, getTermAndServiceEn(valuePackSectionModel.valuePackSecThreeModel.description),
true
)
mRecyclerAddOnTermCondition.adapter = TermAndServiceFooterAdapter(
this,
getTermAndServiceEn(valuePackSectionModel.valuePackSecThreeModel.description2),
true
)
}
private fun getTermAndServiceEn(str: String): List<String> { private fun getTermAndServiceEn(str: String): List<String> {
val data = ArrayList<String>() val data = ArrayList<String>()
...@@ -111,10 +76,12 @@ class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View ...@@ -111,10 +76,12 @@ class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View
error_view.errorMessage = getString(R.string.connection_timeout) error_view.errorMessage = getString(R.string.connection_timeout)
error_view.setViewMode(ErrorHandleView.Mode.TIME_OUT) error_view.setViewMode(ErrorHandleView.Mode.TIME_OUT)
} }
is NoConnectionError -> { is NoConnectionError -> {
error_view.errorMessage = getString(R.string.message_no_internet) error_view.errorMessage = getString(R.string.message_no_internet)
error_view.setViewMode(ErrorHandleView.Mode.NO_INTERNET) error_view.setViewMode(ErrorHandleView.Mode.NO_INTERNET)
} }
else -> { else -> {
error_view.errorMessage = getString(R.string.no_data) error_view.errorMessage = getString(R.string.no_data)
error_view.setViewMode(ErrorHandleView.Mode.NO_DATA) error_view.setViewMode(ErrorHandleView.Mode.NO_DATA)
...@@ -123,45 +90,23 @@ class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View ...@@ -123,45 +90,23 @@ class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View
} }
override fun getToolbarTitle(): String { override fun getToolbarTitle(): String {
return "Loy Kob" mPlanCode = intent.getStringExtra("PLAN_CODE")
return when (mPlanCode) {
Constant.LoyKob -> "Loy Kob"
"internet-pack" -> "Data Pack"
else -> mPlanCode.toString()
} }
override fun onClick(view: View?) {
when (view?.tag) {
"BUTTON_BENEFIT" -> {
frame_benefit.visibility = View.VISIBLE
btn_benefit.setTextColor(ContextCompat.getColor(this, R.color.colorPrimary))
btn_benefit.setBackgroundResource(R.drawable.bg_button_cart)
btn_benefit.isAllCaps = true
//term condition button
frame_term_condition.visibility = View.GONE
btn_term_condition.setTextColor(ContextCompat.getColor(this, R.color.black))
btn_term_condition.setBackgroundColor(resources.getColor(R.color.colorItemDataPack))
} }
"BUTTON_TERM_CONDITION" -> {
frame_term_condition.visibility = View.VISIBLE
btn_term_condition.setTextColor(ContextCompat.getColor(this, R.color.colorPrimary))
btn_term_condition.setBackgroundResource(R.drawable.bg_button_cart)
btn_term_condition.isAllCaps = true
//Benefit button
frame_benefit.visibility = View.GONE
btn_benefit.setTextColor(ContextCompat.getColor(this, R.color.black))
btn_benefit.setBackgroundColor(resources.getColor(R.color.colorItemDataPack))
}
}
}
companion object { companion object {
fun launch( fun launch(
context: Context, canSubscribe: Boolean, planCode: String context: Context, canSubscribe: Boolean, planCode: String, planType: String
) { ) {
val intent = Intent(context, LoyKobActivity::class.java) val intent = Intent(context, LoyKobActivity::class.java)
intent.putExtra("PLAN_CODE", planCode) intent.putExtra("PLAN_CODE", planCode)
intent.putExtra("CAN_SUBSCRIBE", canSubscribe) intent.putExtra("CAN_SUBSCRIBE", canSubscribe)
intent.putExtra("planType", planType)
context.startActivity(intent) context.startActivity(intent)
} }
...@@ -196,6 +141,7 @@ class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View ...@@ -196,6 +141,7 @@ class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View
pricePlanCode, pricePlanCode,
true true
) )
else -> ConfirmBuyDataPackActivity.launch( else -> ConfirmBuyDataPackActivity.launch(
this, this,
name!!, name!!,
......
...@@ -17,6 +17,7 @@ import com.seatel.mobilehall.ui.base.activity.BaseActivity ...@@ -17,6 +17,7 @@ import com.seatel.mobilehall.ui.base.activity.BaseActivity
import com.seatel.mobilehall.ui.home.interactor.AppProductsInteractor import com.seatel.mobilehall.ui.home.interactor.AppProductsInteractor
import com.seatel.mobilehall.ui.home.model.AppProductsResponseModel import com.seatel.mobilehall.ui.home.model.AppProductsResponseModel
import com.seatel.mobilehall.ui.home.presenter.AppProductsPresenter import com.seatel.mobilehall.ui.home.presenter.AppProductsPresenter
import com.seatel.mobilehall.util.Constant
import com.seatel.mobilehall.util.customview.ErrorHandleView import com.seatel.mobilehall.util.customview.ErrorHandleView
import kotlinx.android.synthetic.main.activity_product_service.* import kotlinx.android.synthetic.main.activity_product_service.*
...@@ -46,15 +47,19 @@ class ProductServiceActivity : BaseActivity(), AppProductsInteractor.View { ...@@ -46,15 +47,19 @@ class ProductServiceActivity : BaseActivity(), AppProductsInteractor.View {
"one-plan" -> { "one-plan" -> {
OnePlanDetailActivity.lunch(this) OnePlanDetailActivity.lunch(this)
} }
"international-call" -> { "international-call" -> {
error_view.setViewMode(ErrorHandleView.Mode.LOADING) error_view.setViewMode(ErrorHandleView.Mode.LOADING)
InternationalCallDetailActivity.lunch(this) InternationalCallDetailActivity.lunch(this)
} }
"loy-kobs" -> LoyKobActivity.launch(this, it.canSubscribe!!, it.code!!)
else -> {
ProductServiceDetailActivity.launch(
this, it.canSubscribe!!, it.code!!, it.name!!
"loy-kobs" -> LoyKobActivity.launch(
this, it.canSubscribe!!, it.code!!, Constant.LoyKob
)
else -> {
LoyKobActivity.launch(
this, it.canSubscribe!!, it.code!!, "Any"
) )
} }
} }
...@@ -75,10 +80,12 @@ class ProductServiceActivity : BaseActivity(), AppProductsInteractor.View { ...@@ -75,10 +80,12 @@ class ProductServiceActivity : BaseActivity(), AppProductsInteractor.View {
error_view.errorMessage = getString(R.string.connection_timeout) error_view.errorMessage = getString(R.string.connection_timeout)
error_view.setViewMode(ErrorHandleView.Mode.TIME_OUT) error_view.setViewMode(ErrorHandleView.Mode.TIME_OUT)
} }
is NoConnectionError -> { is NoConnectionError -> {
error_view.errorMessage = getString(R.string.message_no_internet) error_view.errorMessage = getString(R.string.message_no_internet)
error_view.setViewMode(ErrorHandleView.Mode.NO_INTERNET) error_view.setViewMode(ErrorHandleView.Mode.NO_INTERNET)
} }
else -> { else -> {
error_view.errorMessage = getString(R.string.no_data) error_view.errorMessage = getString(R.string.no_data)
error_view.setViewMode(ErrorHandleView.Mode.NO_DATA) error_view.setViewMode(ErrorHandleView.Mode.NO_DATA)
......
...@@ -125,7 +125,7 @@ class ProductServiceDetailActivity : BaseActivity(), View.OnClickListener, ...@@ -125,7 +125,7 @@ class ProductServiceDetailActivity : BaseActivity(), View.OnClickListener,
valueData = valuePackSectionModel.type valueData = valuePackSectionModel.type
name = valuePackSectionModel.name name = valuePackSectionModel.name
setupTitle(valuePackSectionModel) setupTitle(valuePackSectionModel)
setupDataList(valuePackSectionModel) (valuePackSectionModel)
} }
private fun setupTitle(valuePackSectionModel: ValuePackSectionModel) { private fun setupTitle(valuePackSectionModel: ValuePackSectionModel) {
......
...@@ -9,10 +9,8 @@ import com.seatel.mobilehall.databinding.ItemHomeImageSliderBinding ...@@ -9,10 +9,8 @@ import com.seatel.mobilehall.databinding.ItemHomeImageSliderBinding
import com.seatel.mobilehall.ui.home.model.BannersModel import com.seatel.mobilehall.ui.home.model.BannersModel
import com.seatel.mobilehall.ui.login.activity.TermsAndConditionsActivity import com.seatel.mobilehall.ui.login.activity.TermsAndConditionsActivity
import com.smarteist.autoimageslider.SliderViewAdapter import com.smarteist.autoimageslider.SliderViewAdapter
import dagger.hilt.android.qualifiers.ActivityContext
import javax.inject.Inject
class HomeImageSliderAdapter @Inject constructor(@ActivityContext var context: Context) : class HomeImageSliderAdapter(var context: Context) :
SliderViewAdapter<HomeImageSliderAdapter.SliderAdapterVH>() { SliderViewAdapter<HomeImageSliderAdapter.SliderAdapterVH>() {
private var mSliderItems = mutableListOf<BannersModel>() private var mSliderItems = mutableListOf<BannersModel>()
......
...@@ -56,7 +56,7 @@ class LoyKobAddOnAdapter( ...@@ -56,7 +56,7 @@ class LoyKobAddOnAdapter(
callSmsData = it.toString() callSmsData = it.toString()
} }
holder.mData.text = mAddOnList.priceChange.toString() + callSmsData holder.mData.text = mAddOnList.priceChange.toString() + callSmsData
holder.mValidity.text = mAddOnList.validityDate // holder.mValidity.text = mAddOnList.validityDate
holder.mActivateCode.text = mAddOnList.activation holder.mActivateCode.text = mAddOnList.activation
/*if (mAddOnList.callsmsList != null && mAddOnList.callsmsList.size > 0) { /*if (mAddOnList.callsmsList != null && mAddOnList.callsmsList.size > 0) {
if (mAddOnList.callsmsList.size == 1) { if (mAddOnList.callsmsList.size == 1) {
......
package com.seatel.mobilehall.ui.home.adapter
import android.content.Context
import android.graphics.Typeface
import android.os.Build
import android.text.Html
import android.text.method.LinkMovementMethod
import android.view.LayoutInflater
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.seatel.mobilehall.databinding.ItemTermsAndServiceFooterBinding
import com.seatel.mobilehall.ui.home.model.ValuePackSectionModel
/**
* Created by mac on 8/27/2018 AD.
*/
class TermAndServiceFooter2Adapter(
private val mContext: Context,
private var mTermAndServiceList: ValuePackSectionModel,
private val mIsHTMLStyle: Boolean
) : RecyclerView.Adapter<RecyclerView.ViewHolder?>() {
// private var mTermAndServiceList: List<String>? = null
companion object {
private const val HEADER = 0
private const val FOOTER = 1
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return when (viewType) {
HEADER -> {
val binding = ItemTermsAndServiceFooterBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
HeaderHolder(binding)
}
FOOTER -> {
val binding = ItemTermsAndServiceFooterBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
FooterHolder(binding)
}
else -> {
val binding = ItemTermsAndServiceFooterBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
TitleHolder(binding)
}
}
}
override fun getItemCount(): Int {
return 3
}
override fun getItemViewType(position: Int): Int {
return position
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when (holder.itemViewType) {
HEADER -> {
val text = mTermAndServiceList.valuePackSecThreeModel.description2
val customTextView: TextView = holder.itemView as TextView
if (mIsHTMLStyle) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
customTextView.text = Html.fromHtml(text, Html.FROM_HTML_MODE_COMPACT)
customTextView.movementMethod = LinkMovementMethod.getInstance()
} else {
customTextView.text = Html.fromHtml(text)
customTextView.movementMethod = LinkMovementMethod.getInstance()
}
} else customTextView.text = text
}
FOOTER -> {
val customTextView: TextView = holder.itemView as TextView
customTextView.setTypeface(customTextView.typeface, Typeface.BOLD)
if (mTermAndServiceList.valuePackSecTwoModel.addon.size > 0)
customTextView.text = "Add-on Terms & Conditions"
}
else -> {
val text = mTermAndServiceList.valuePackSecThreeModel.description
val customTextView: TextView = holder.itemView as TextView
if (mIsHTMLStyle) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
customTextView.text = Html.fromHtml(text, Html.FROM_HTML_MODE_COMPACT)
customTextView.movementMethod = LinkMovementMethod.getInstance()
} else {
customTextView.text = Html.fromHtml(text)
customTextView.movementMethod = LinkMovementMethod.getInstance()
}
} else customTextView.text = text
}
}
}
class HeaderHolder(var itemView: ItemTermsAndServiceFooterBinding) :
RecyclerView.ViewHolder(itemView.root)
class TitleHolder(var itemView: ItemTermsAndServiceFooterBinding) :
RecyclerView.ViewHolder(itemView.root)
class FooterHolder(var itemView: ItemTermsAndServiceFooterBinding) :
RecyclerView.ViewHolder(itemView.root)
}
\ No newline at end of file
...@@ -11,7 +11,6 @@ import android.view.View ...@@ -11,7 +11,6 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.RelativeLayout import android.widget.RelativeLayout
import android.widget.Toast import android.widget.Toast
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import coil.load import coil.load
import coil.transform.CircleCropTransformation import coil.transform.CircleCropTransformation
...@@ -30,7 +29,6 @@ import com.seatel.mobilehall.R ...@@ -30,7 +29,6 @@ import com.seatel.mobilehall.R
import com.seatel.mobilehall.data.network.SeatelJSONArrayRequest import com.seatel.mobilehall.data.network.SeatelJSONArrayRequest
import com.seatel.mobilehall.data.network.SeatelJSONObjectRequest import com.seatel.mobilehall.data.network.SeatelJSONObjectRequest
import com.seatel.mobilehall.data.network.SeatelSuperRequest import com.seatel.mobilehall.data.network.SeatelSuperRequest
import com.seatel.mobilehall.data.network.viewmodel.HomeViewModel
import com.seatel.mobilehall.data.prefs.SeatelSharePreferences import com.seatel.mobilehall.data.prefs.SeatelSharePreferences
import com.seatel.mobilehall.databinding.FragmentHomeBinding import com.seatel.mobilehall.databinding.FragmentHomeBinding
import com.seatel.mobilehall.ui.application.MyApplication import com.seatel.mobilehall.ui.application.MyApplication
...@@ -72,26 +70,22 @@ import com.seatel.mobilehall.util.SeatelAlertDialog ...@@ -72,26 +70,22 @@ import com.seatel.mobilehall.util.SeatelAlertDialog
import com.seatel.mobilehall.util.SeatelUtils import com.seatel.mobilehall.util.SeatelUtils
import com.seatel.mobilehall.util.lang.FirstLoginPreference import com.seatel.mobilehall.util.lang.FirstLoginPreference
import com.seatel.mobilehall.util.manager.OrderingManager import com.seatel.mobilehall.util.manager.OrderingManager
import com.seatel.mobilehall.util.observe
import com.seatel.mobilehall.util.request.GetMainData import com.seatel.mobilehall.util.request.GetMainData
import com.seatel.mobilehall.util.viewFragmentBinding import com.seatel.mobilehall.util.viewFragmentBinding
import com.smarteist.autoimageslider.IndicatorView.animation.type.IndicatorAnimationType import com.smarteist.autoimageslider.IndicatorView.animation.type.IndicatorAnimationType
import com.smarteist.autoimageslider.SliderAnimations import com.smarteist.autoimageslider.SliderAnimations
import com.smarteist.autoimageslider.SliderView import com.smarteist.autoimageslider.SliderView
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.android.synthetic.main.fragment_home.homeImageSlider
import org.json.JSONArray import org.json.JSONArray
import org.json.JSONObject import org.json.JSONObject
import javax.inject.Inject
@AndroidEntryPoint
class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.View, class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.View,
CategoryInteractor.View, BadgesCountInteractor.View { CategoryInteractor.View, BadgesCountInteractor.View {
private var TAG = javaClass.simpleName private var TAG = javaClass.simpleName
private val binding by viewFragmentBinding(
private lateinit var viewModel: HomeViewModel FragmentHomeBinding::inflate
)
private var cartCount = MyApplication.badgeCartCount private var cartCount = MyApplication.badgeCartCount
private var dataMainScreen: MainDataModel? = null private var dataMainScreen: MainDataModel? = null
...@@ -106,11 +100,6 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie ...@@ -106,11 +100,6 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
private var token: String = "" private var token: String = ""
private val binding by viewFragmentBinding(
FragmentHomeBinding::inflate
)
@Inject
lateinit var homeImageSliderAdapter: HomeImageSliderAdapter lateinit var homeImageSliderAdapter: HomeImageSliderAdapter
lateinit var categoryAdapter: CategoryAdapter lateinit var categoryAdapter: CategoryAdapter
...@@ -139,13 +128,6 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie ...@@ -139,13 +128,6 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
return binding.root return binding.root
} }
private fun setupViewModel() {
viewModel = ViewModelProvider(requireActivity()).get(HomeViewModel::class.java)
viewModel.fetchBanners("en")
viewModel.run {
observe(bannersResponse, ::handleBanner)
}
}
private fun handleBanner(resource: Resource<List<BannersModel>>) { private fun handleBanner(resource: Resource<List<BannersModel>>) {
when (resource) { when (resource) {
...@@ -502,6 +484,7 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie ...@@ -502,6 +484,7 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
binding.run { binding.run {
bannersList.let { bannersList.let {
it.run { it.run {
homeImageSliderAdapter = HomeImageSliderAdapter(requireContext())
homeImageSliderAdapter.addItem(it) homeImageSliderAdapter.addItem(it)
homeImageSlider.setSliderAdapter(homeImageSliderAdapter) homeImageSlider.setSliderAdapter(homeImageSliderAdapter)
homeImageSlider.setIndicatorAnimation(IndicatorAnimationType.WORM) homeImageSlider.setIndicatorAnimation(IndicatorAnimationType.WORM)
...@@ -515,7 +498,8 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie ...@@ -515,7 +498,8 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
} }
override fun onGetBannersFailed(error: VolleyError) { override fun onGetBannersFailed(error: VolleyError) {
SeatelAlertDialog.with(requireContext(), SeatelSuperRequest.getErrorMessageFrom(error))
.show()
} }
...@@ -578,7 +562,7 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie ...@@ -578,7 +562,7 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
} }
override fun onGetCategoryFailed(error: VolleyError) { override fun onGetCategoryFailed(error: VolleyError) {
// SeatelAlertDialog.with(requireContext(), SeatelSuperRequest.getErrorMessageFrom(error)).show()
} }
...@@ -664,7 +648,8 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie ...@@ -664,7 +648,8 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
} }
override fun responseCountFail(error: VolleyError) { override fun responseCountFail(error: VolleyError) {
SeatelAlertDialog.with(requireContext(), SeatelSuperRequest.getErrorMessageFrom(error))
.show()
} }
private fun setBadgesCount(notificationCount: Int, cartCount: Int) { private fun setBadgesCount(notificationCount: Int, cartCount: Int) {
......
...@@ -3,7 +3,9 @@ package com.seatel.mobilehall.ui.home.model; ...@@ -3,7 +3,9 @@ package com.seatel.mobilehall.ui.home.model;
import com.google.gson.annotations.Expose; import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
public class DataPackSecThreeModel { import java.io.Serializable;
public class DataPackSecThreeModel implements Serializable {
@SerializedName("description") @SerializedName("description")
@Expose @Expose
private String description; private String description;
......
package com.seatel.mobilehall.ui.home.model; package com.seatel.mobilehall.ui.home.model;
public class OnePlanDetailSecOneModel { import java.io.Serializable;
public class OnePlanDetailSecOneModel implements Serializable {
private String mobileImageUrl; private String mobileImageUrl;
private String desktopImageUrl; private String desktopImageUrl;
private String imageUrl; private String imageUrl;
......
...@@ -3,9 +3,10 @@ package com.seatel.mobilehall.ui.home.model; ...@@ -3,9 +3,10 @@ package com.seatel.mobilehall.ui.home.model;
import com.google.gson.annotations.Expose; import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
import java.util.List; import java.util.List;
public class ValuePackSecTwoModel { public class ValuePackSecTwoModel implements Serializable {
@SerializedName("title") @SerializedName("title")
@Expose @Expose
private String title; private String title;
......
...@@ -3,7 +3,9 @@ package com.seatel.mobilehall.ui.home.model; ...@@ -3,7 +3,9 @@ package com.seatel.mobilehall.ui.home.model;
import com.google.gson.annotations.Expose; import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
public class ValuePackSectionModel { import java.io.Serializable;
public class ValuePackSectionModel implements Serializable {
@SerializedName("section1") @SerializedName("section1")
@Expose @Expose
private OnePlanDetailSecOneModel dataPackDetailSecOneModel; private OnePlanDetailSecOneModel dataPackDetailSecOneModel;
......
...@@ -3,9 +3,10 @@ package com.seatel.mobilehall.ui.home.model; ...@@ -3,9 +3,10 @@ package com.seatel.mobilehall.ui.home.model;
import com.google.gson.annotations.Expose; import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
import java.util.List; import java.util.List;
public class ValuePackTableModel { public class ValuePackTableModel implements Serializable {
@SerializedName("valuePrice") @SerializedName("valuePrice")
@Expose @Expose
......
...@@ -3,49 +3,30 @@ package com.seatel.mobilehall.ui.main ...@@ -3,49 +3,30 @@ package com.seatel.mobilehall.ui.main
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.findNavController import androidx.navigation.findNavController
import androidx.navigation.ui.setupWithNavController import androidx.navigation.ui.setupWithNavController
import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.bottomnavigation.BottomNavigationView
import com.seatel.mobilehall.R import com.seatel.mobilehall.R
import com.seatel.mobilehall.databinding.ActivityMainBinding import com.seatel.mobilehall.databinding.ActivityMainBinding
import com.seatel.mobilehall.ui.base.activity.BaseActivity
import com.seatel.mobilehall.util.SeatelUtils.Companion.translatForDialog import com.seatel.mobilehall.util.SeatelUtils.Companion.translatForDialog
import com.seatel.mobilehall.util.viewBinding import com.seatel.mobilehall.util.viewBinding
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint class MainActivity : BaseActivity() {
class
MainActivity : AppCompatActivity() {
private val binding by viewBinding( private val binding by viewBinding(
ActivityMainBinding::inflate ActivityMainBinding::inflate
) )
/* private lateinit var appUpdateManager: AppUpdateManager
private val updateAvailable = MutableLiveData<Boolean>().apply { value = false }
private var updateInfo: AppUpdateInfo? = null
private var updateListener = InstallStateUpdatedListener { state: InstallState ->
commonLog("update01:$state")
if (state.installStatus() == InstallStatus.DOWNLOADED) {
showUpdateSnackbar()
}
}
*/
private lateinit var navController: NavController private lateinit var navController: NavController
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(binding.root) setContentView(binding.root)
setupBottomNav() setupBottomNav()
/*try {
appUpdateManager = AppUpdateManagerFactory.create(this)
appUpdateManager.registerListener(updateListener)
checkForUpdate()
} catch (e: Exception) {
commonLog("update01:Update e1 ${e.message}")
}*/
} }
private fun setupBottomNav() { private fun setupBottomNav() {
...@@ -63,50 +44,9 @@ MainActivity : AppCompatActivity() { ...@@ -63,50 +44,9 @@ MainActivity : AppCompatActivity() {
translatForDialog(this, getString(R.string.nav_profile)) translatForDialog(this, getString(R.string.nav_profile))
} }
//Check for update availability
/* private fun checkForUpdate() {
appUpdateManager.appUpdateInfo.addOnSuccessListener {
if (it.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && it.isUpdateTypeAllowed(
AppUpdateType.FLEXIBLE
)
) {
updateInfo = it
updateAvailable.value = true
commonLog("update01:Version code available ${it.availableVersionCode()}")
startForInAppUpdate(updateInfo)
} else {
updateAvailable.value = false
commonLog("update01:Update not available")
}
}
}
private fun startForInAppUpdate(it: AppUpdateInfo?) {
appUpdateManager.startUpdateFlowForResult(it!!, AppUpdateType.FLEXIBLE, this, 1101)
}
private fun showUpdateSnackbar() {
try {
val snackbar = Snackbar.make(
binding.container, "An update has just been downloaded.", Snackbar.LENGTH_INDEFINITE
).setAction("RESTART") { appUpdateManager.completeUpdate() }
//snackbar.anchorView = binding.appBarMain.contentMain.bottomNav
snackbar.setActionTextColor(Color.parseColor("#ffff4444"))
snackbar.show()
} catch (e: java.lang.Exception) {
}
}
private fun commonLog(message: String) {
Log.d("tag001", message)
}*/
override fun onBackPressed() { override fun onBackPressed() {
/* try {
appUpdateManager.unregisterListener(updateListener)
} catch (e: Exception) {
commonLog("update01:Update e2 ${e.message}")
}*/
when { when {
R.id.navigation_home == navController.currentDestination?.id -> { R.id.navigation_home == navController.currentDestination?.id -> {
finish() finish()
......
package com.seatel.mobilehall.ui.packages.adapter
import android.content.Context
import android.os.Handler
import android.text.TextUtils
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.ArrayAdapter
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.seatel.mobilehall.R
import com.seatel.mobilehall.databinding.ItemInternationalCallDetailActivityBinding
import com.seatel.mobilehall.ui.base.adapter.BaseAdapter
import com.seatel.mobilehall.ui.home.adapter.InternationalCallAdapter
import com.seatel.mobilehall.ui.home.model.CountryModel
import com.seatel.mobilehall.ui.home.model.ValuePackSectionModel
import com.seatel.mobilehall.ui.packages.model.TableModel
import com.seatel.mobilehall.ui.packages.model.TableSubModel
import com.seatel.mobilehall.util.SeatelUtils
import com.seatel.mobilehall.util.lang.LanguageManager
import kotlinx.android.synthetic.main.item_international_call_detail_activity.view.filter
import kotlinx.android.synthetic.main.item_international_call_detail_activity.view.img_international_call_detail
import kotlinx.android.synthetic.main.item_international_call_detail_activity.view.recycler_view_product_service
import kotlinx.android.synthetic.main.item_international_call_detail_activity.view.text_cents_min
class InternationalAdapter(
private var context: Context, private var valuePackSectionModel: ValuePackSectionModel
) : BaseAdapter<InternationalAdapter.ViewHolder>() {
private lateinit var mAdapter: InternationalCallAdapter
var lang: String = "en"
var tableDataList = ArrayList<TableModel>()
var tableDataListDisplay = ArrayList<TableModel>()
class ViewHolder(var itemView: ItemInternationalCallDetailActivityBinding) :
RecyclerView.ViewHolder(itemView.root)
override fun onCreateViewHolder(
parent: ViewGroup, viewType: Int
): ViewHolder {
val binding = ItemInternationalCallDetailActivityBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
return ViewHolder(binding)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.itemView.run {
Glide.with(this).load(valuePackSectionModel.dataPackDetailSecOneModel.mobileImageUrl)
.fitCenter().into(img_international_call_detail)
text_cents_min.text = context.getText(R.string.cents)
mAdapter = InternationalCallAdapter(
context, tableDataListDisplay
)
mAdapter.onFilterFinish = InternationalCallAdapter.OnFilter { _, content ->
val viewHolder = recycler_view_product_service.findViewHolderForAdapterPosition(0)
if (viewHolder != null) {
val subAdapter =
(viewHolder as InternationalCallAdapter.DetailViewHolder).mAdapter
subAdapter.filter.filter(content)
}
}
recycler_view_product_service.layoutManager = object : LinearLayoutManager(context) {
override fun canScrollVertically(): Boolean {
return false
}
}
recycler_view_product_service.setHasFixedSize(true)
recycler_view_product_service.adapter = mAdapter
if (LanguageManager.getInstance(context).getLanguageCode() != null) lang =
LanguageManager.getInstance(context).getLanguageCode()!!.toLowerCase()
Handler().postDelayed({
getTableData(context, holder)
}, 200)
}
}
override fun getItemCount(): Int {
return 1
}
fun filter(charString: String) {
val tableModel = TableModel(charString, ArrayList())
val index = tableDataList.indexOf(tableModel)
if (index != -1) {
val tmptableModel = tableDataList[index]
val tableSubModel = TableSubModel(charString, "")
val indexSub: Int = tmptableModel.destination!!.indexOf(tableSubModel)
if (indexSub != -1) {
val tmpSubTable = tmptableModel.destination!![indexSub]
val subList = ArrayList<TableSubModel>()
subList.add(tmpSubTable)
val newTableModel = TableModel(tmptableModel.standard, subList)
tableDataListDisplay.clear()
tableDataListDisplay.add(newTableModel)
mAdapter.notifyDataSetChanged()
Handler().postDelayed({
tableDataListDisplay.clear()
}, 200)
}
}
}
private fun getTableData(context: Context, holder: ViewHolder) {
holder.itemView.text_cents_min.text = context.getString(R.string.cents)
val strCent = holder.itemView.text_cents_min.text
val tableDataSubList = ArrayList<TableSubModel>()
val subData1 = TableSubModel(context.getString(R.string.china), "86")
val subData2 = TableSubModel(context.getString(R.string.hong_kong_china), "852")
val subData3 = TableSubModel(context.getString(R.string.malaysia), "60")
val subData4 = TableSubModel(context.getString(R.string.singapore), "65")
val subData5 = TableSubModel(context.getString(R.string.thailand), "66")
tableDataSubList.add(subData1)
tableDataSubList.add(subData2)
tableDataSubList.add(subData3)
tableDataSubList.add(subData4)
tableDataSubList.add(subData5)
val tableModel = TableModel("3 $strCent", tableDataSubList)
//Data 7 Cents
val tableDataSubList7cent = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.cents)
val strCent1 = holder.itemView.text_cents_min.text
val subData7cent1 = TableSubModel(context.getString(R.string.american_samoa), "1")
val subData7cent2 = TableSubModel(context.getString(R.string.bangladesh), "880")
val subData7cent3 = TableSubModel(context.getString(R.string.canada), "1")
val subData7cent4 = TableSubModel(context.getString(R.string.denmark), "45")
val subData7cent5 = TableSubModel(context.getString(R.string.guam), "1")
val subData7cent6 = TableSubModel(context.getString(R.string.hungary), "36")
val subData7cent7 = TableSubModel(context.getString(R.string.iceland), "354")
val subData7cent8 = TableSubModel(context.getString(R.string.india), "91")
val subData7cent9 = TableSubModel(context.getString(R.string.malta_Mobile), "356")
val subData7cent10 = TableSubModel(context.getString(R.string.mariana_islands), "1")
val subData7cent11 = TableSubModel(context.getString(R.string.puerto_rico), "1")
val subData7cent12 = TableSubModel(context.getString(R.string.romania), "40")
val subData7cent13 = TableSubModel(context.getString(R.string.south_korea), "82")
val subData7cent14 = TableSubModel(context.getString(R.string.sweden), "46")
tableDataSubList7cent.add(subData7cent1)
tableDataSubList7cent.add(subData7cent2)
tableDataSubList7cent.add(subData7cent3)
tableDataSubList7cent.add(subData7cent4)
tableDataSubList7cent.add(subData7cent5)
tableDataSubList7cent.add(subData7cent6)
tableDataSubList7cent.add(subData7cent7)
tableDataSubList7cent.add(subData7cent8)
tableDataSubList7cent.add(subData7cent9)
tableDataSubList7cent.add(subData7cent10)
tableDataSubList7cent.add(subData7cent11)
tableDataSubList7cent.add(subData7cent12)
tableDataSubList7cent.add(subData7cent13)
tableDataSubList7cent.add(subData7cent14)
val tableModel1 = TableModel("7 $strCent1", tableDataSubList7cent)
//Data 10 Cents
val tableDataSubList10cent = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.cents)
val strCent10 = holder.itemView.text_cents_min.text
val subData10cent1 = TableSubModel(context.getString(R.string.australia), "61")
val subData10cent2 =
TableSubModel(context.getString(R.string.australia_mobile_Satellite), "61")
val subData10cent3 = TableSubModel(context.getString(R.string.bermuda), "1")
val subData10cent4 = TableSubModel(context.getString(R.string.brunei), "673")
// val subData10cent5 = TableSubModel(context.getString(R.string.cambodia), "855")
val subData10cent6 =
TableSubModel(context.getString(R.string.canada_Yukon_NW_Territories), "1")
val subData10cent7 = TableSubModel(context.getString(R.string.costa_rica), "506")
val subData10cent8 = TableSubModel(context.getString(R.string.czech_republic), "420")
val subData10cent9 = TableSubModel(
context.getString(R.string.france_mobile_globalstar_special_services), "33"
)
val subData10cent10 = TableSubModel(context.getString(R.string.french_guiana), "594")
val subData10cent11 = TableSubModel(context.getString(R.string.greece), "30")
val subData10cent12 = TableSubModel(context.getString(R.string.guadeloupe), "590")
val subData10cent13 = TableSubModel(context.getString(R.string.indonesia), "62")
val subData10cent14 = TableSubModel(context.getString(R.string.japan), "81")
val subData10cent15 = TableSubModel(context.getString(R.string.kazakhstan_other_OLO), "7")
val subData10cent16 = TableSubModel(context.getString(R.string.macau), "853")
val subData10cent17 = TableSubModel(context.getString(R.string.martinique), "596")
val subData10cent18 = TableSubModel(context.getString(R.string.mayotte), "262")
val subData10cent19 = TableSubModel(context.getString(R.string.mexico), "52")
val subData10cent20 = TableSubModel(context.getString(R.string.mongolia), "976")
val subData10cent21 = TableSubModel(context.getString(R.string.namibia), "264")
val subData10cent22 = TableSubModel(context.getString(R.string.new_zealand), "64")
val subData10cent23 = TableSubModel(context.getString(R.string.nigeria_mobile), "234")
val subData10cent24 = TableSubModel(context.getString(R.string.pakistan), "92")
val subData10cent25 =
TableSubModel(context.getString(R.string.reunion_island_mobile), "262")
val subData10cent26 = TableSubModel(context.getString(R.string.russia_moscow_central), "7")
val subData10cent27 = TableSubModel(context.getString(R.string.russia_other), "7")
val subData10cent28 = TableSubModel(context.getString(R.string.russia_st_petersburg), "7")
val subData10cent30 =
TableSubModel(context.getString(R.string.universal_disaster_relief), "888")
val subData10cent31 = TableSubModel(context.getString(R.string.usa_lata), "1")
val subData10cent32 = TableSubModel(context.getString(R.string.usa_other_mainland), "1")
val subData10cent33 = TableSubModel(context.getString(R.string.uzbekistan), "998")
val subData10cent34 = TableSubModel(context.getString(R.string.vietnam), "84")
tableDataSubList10cent.add(subData10cent1)
tableDataSubList10cent.add(subData10cent2)
tableDataSubList10cent.add(subData10cent3)
tableDataSubList10cent.add(subData10cent4)
// tableDataSubList10cent.add(subData10cent5)
tableDataSubList10cent.add(subData10cent6)
tableDataSubList10cent.add(subData10cent7)
tableDataSubList10cent.add(subData10cent8)
tableDataSubList10cent.add(subData10cent9)
tableDataSubList10cent.add(subData10cent10)
tableDataSubList10cent.add(subData10cent11)
tableDataSubList10cent.add(subData10cent12)
tableDataSubList10cent.add(subData10cent13)
tableDataSubList10cent.add(subData10cent14)
tableDataSubList10cent.add(subData10cent15)
tableDataSubList10cent.add(subData10cent16)
tableDataSubList10cent.add(subData10cent17)
tableDataSubList10cent.add(subData10cent18)
tableDataSubList10cent.add(subData10cent19)
tableDataSubList10cent.add(subData10cent20)
tableDataSubList10cent.add(subData10cent21)
tableDataSubList10cent.add(subData10cent22)
tableDataSubList10cent.add(subData10cent23)
tableDataSubList10cent.add(subData10cent24)
tableDataSubList10cent.add(subData10cent25)
tableDataSubList10cent.add(subData10cent26)
tableDataSubList10cent.add(subData10cent27)
tableDataSubList10cent.add(subData10cent28)
tableDataSubList10cent.add(subData10cent30)
tableDataSubList10cent.add(subData10cent31)
tableDataSubList10cent.add(subData10cent32)
tableDataSubList10cent.add(subData10cent33)
tableDataSubList10cent.add(subData10cent34)
val tableModel2 = TableModel("10 $strCent10", tableDataSubList10cent)
//Data 15 Cents
val tableDataSubList15cent = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.cents)
val strCent15 = holder.itemView.text_cents_min.text
val subData15cent1 = TableSubModel(context.getString(R.string.angola), "224")
val subData15cent2 = TableSubModel(context.getString(R.string.argentina), "54")
val subData15cent3 = TableSubModel(context.getString(R.string.bahrain), "973")
val subData15cent4 = TableSubModel(context.getString(R.string.bhutan), "975")
val subData15cent5 = TableSubModel(context.getString(R.string.cyprus), "357")
val subData15cent6 = TableSubModel(context.getString(R.string.dominican_republic), "1")
val subData15cent7 = TableSubModel(context.getString(R.string.egypt), "20")
val subData15cent8 = TableSubModel(context.getString(R.string.ireland), "353")
val subData15cent9 = TableSubModel(context.getString(R.string.kuwait_mobile), "965")
val subData15cent10 = TableSubModel(context.getString(R.string.laos), "856")
val subData15cent11 =
TableSubModel(context.getString(R.string.liechtenstein_special_services), "423")
val subData15cent12 = TableSubModel(context.getString(R.string.luxembourg), "352")
val subData15cent13 = TableSubModel(context.getString(R.string.nepal), "977")
val subData15cent14 = TableSubModel(context.getString(R.string.paraguay), "595")
val subData15cent15 =
TableSubModel(context.getString(R.string.reunion_island_mobile), "262")
val subData15cent16 = TableSubModel(context.getString(R.string.saudi_arabia), "966")
val subData15cent17 = TableSubModel(context.getString(R.string.slovakia), "421")
val subData15cent18 = TableSubModel(context.getString(R.string.st_maarten), "1721")
val subData15cent19 = TableSubModel(context.getString(R.string.taiwan), "886")
val subData15cent20 = TableSubModel(context.getString(R.string.venezuela), "58")
tableDataSubList15cent.add(subData15cent1)
tableDataSubList15cent.add(subData15cent2)
tableDataSubList15cent.add(subData15cent3)
tableDataSubList15cent.add(subData15cent4)
tableDataSubList15cent.add(subData15cent5)
tableDataSubList15cent.add(subData15cent6)
tableDataSubList15cent.add(subData15cent7)
tableDataSubList15cent.add(subData15cent8)
tableDataSubList15cent.add(subData15cent9)
tableDataSubList15cent.add(subData15cent10)
tableDataSubList15cent.add(subData15cent11)
tableDataSubList15cent.add(subData15cent12)
tableDataSubList15cent.add(subData15cent13)
tableDataSubList15cent.add(subData15cent14)
tableDataSubList15cent.add(subData15cent15)
tableDataSubList15cent.add(subData15cent16)
tableDataSubList15cent.add(subData15cent17)
tableDataSubList15cent.add(subData15cent18)
tableDataSubList15cent.add(subData15cent19)
tableDataSubList15cent.add(subData15cent20)
val tableModel5 = TableModel("15 $strCent15", tableDataSubList15cent)
//Data 25 Cents
val tableDataSubList25cent = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.cents)
var strCent25 = holder.itemView.text_cents_min.text
val subData25cent1 = TableSubModel(context.getString(R.string.iran), "98")
val subData25cent2 = TableSubModel(context.getString(R.string.jordan), "962")
val subData25cent3 = TableSubModel(context.getString(R.string.norway), "47")
val subData25cent4 = TableSubModel(context.getString(R.string.south_africa), "27")
val subData25cent5 = TableSubModel(context.getString(R.string.abkhazia), "7")
val subData25cent6 = TableSubModel(context.getString(R.string.afghanistan), "93")
val subData25cent7 = TableSubModel(context.getString(R.string.andorra), "376")
val subData25cent8 = TableSubModel(context.getString(R.string.aruba), "297")
val subData25cent9 = TableSubModel(context.getString(R.string.bahamas), "1")
val subData25cent10 = TableSubModel(context.getString(R.string.bolivia), "591")
val subData25cent11 = TableSubModel(context.getString(R.string.cayman_islands), "1")
val subData25cent12 = TableSubModel(context.getString(R.string.colombia), "57")
val subData25cent13 = TableSubModel(context.getString(R.string.ecuador), "593")
val subData25cent14 = TableSubModel(context.getString(R.string.el_salvador), "503")
val subData25cent15 = TableSubModel(context.getString(R.string.faroe_islands), "298")
val subData25cent16 = TableSubModel(context.getString(R.string.ghana), "233")
val subData25cent17 = TableSubModel(context.getString(R.string.gibraltar), "350")
val subData25cent18 = TableSubModel(context.getString(R.string.guatemala), "502")
val subData25cent19 = TableSubModel(context.getString(R.string.honduras), "504")
val subData25cent20 = TableSubModel(context.getString(R.string.iraq), "964")
val subData25cent21 = TableSubModel(context.getString(R.string.israel), "972")
val subData25cent22 = TableSubModel(context.getString(R.string.kyrgyzstan), "996")
val subData25cent23 = TableSubModel(context.getString(R.string.lebanon), "961")
val subData25cent24 = TableSubModel(context.getString(R.string.marshall_islands), "692")
val subData25cent25 = TableSubModel(context.getString(R.string.netherlands_antilles), "599")
val subData25cent26 = TableSubModel(context.getString(R.string.new_caledonia), "687")
val subData25cent27 = TableSubModel(context.getString(R.string.palestine), "970")
val subData25cent28 = TableSubModel(context.getString(R.string.panama), "507")
val subData25cent29 = TableSubModel(context.getString(R.string.philippines), "63")
val subData25cent30 = TableSubModel(context.getString(R.string.qatar), "974")
val subData25cent31 = TableSubModel(context.getString(R.string.rusia_other1), "7")
val subData25cent32 = TableSubModel(context.getString(R.string.spain), "34")
val subData25cent33 = TableSubModel(context.getString(R.string.sri_lanka), "94")
val subData25cent34 = TableSubModel(context.getString(R.string.sudan), "249")
val subData25cent35 = TableSubModel(context.getString(R.string.swaziland), "268")
val subData25cent36 = TableSubModel(context.getString(R.string.syria), "963")
val subData25cent37 = TableSubModel(context.getString(R.string.tadjikistan), "992")
val subData25cent38 = TableSubModel(context.getString(R.string.trinidad_tobago), "1")
val subData25cent39 = TableSubModel(context.getString(R.string.turkey), "90")
val subData25cent40 = TableSubModel(context.getString(R.string.turkmenistan), "993")
val subData25cent41 =
TableSubModel(context.getString(R.string.universal_disaster_relief), "888")
val subData25cent42 = TableSubModel(context.getString(R.string.uruguay_mobile), "598")
val subData25cent43 = TableSubModel(context.getString(R.string.yemen), "967")
val subData25cent44 = TableSubModel(context.getString(R.string.zambia_mobile), "260")
tableDataSubList25cent.add(subData25cent1)
tableDataSubList25cent.add(subData25cent2)
tableDataSubList25cent.add(subData25cent3)
tableDataSubList25cent.add(subData25cent4)
tableDataSubList25cent.add(subData25cent5)
tableDataSubList25cent.add(subData25cent6)
tableDataSubList25cent.add(subData25cent7)
tableDataSubList25cent.add(subData25cent8)
tableDataSubList25cent.add(subData25cent9)
tableDataSubList25cent.add(subData25cent10)
tableDataSubList25cent.add(subData25cent11)
tableDataSubList25cent.add(subData25cent12)
tableDataSubList25cent.add(subData25cent13)
tableDataSubList25cent.add(subData25cent14)
tableDataSubList25cent.add(subData25cent15)
tableDataSubList25cent.add(subData25cent16)
tableDataSubList25cent.add(subData25cent17)
tableDataSubList25cent.add(subData25cent18)
tableDataSubList25cent.add(subData25cent19)
tableDataSubList25cent.add(subData25cent20)
tableDataSubList25cent.add(subData25cent21)
tableDataSubList25cent.add(subData25cent22)
tableDataSubList25cent.add(subData25cent23)
tableDataSubList25cent.add(subData25cent24)
tableDataSubList25cent.add(subData25cent25)
tableDataSubList25cent.add(subData25cent26)
tableDataSubList25cent.add(subData25cent27)
tableDataSubList25cent.add(subData25cent28)
tableDataSubList25cent.add(subData25cent29)
tableDataSubList25cent.add(subData25cent30)
tableDataSubList25cent.add(subData25cent31)
tableDataSubList25cent.add(subData25cent31)
tableDataSubList25cent.add(subData25cent32)
tableDataSubList25cent.add(subData25cent33)
tableDataSubList25cent.add(subData25cent34)
tableDataSubList25cent.add(subData25cent35)
tableDataSubList25cent.add(subData25cent36)
tableDataSubList25cent.add(subData25cent37)
tableDataSubList25cent.add(subData25cent38)
tableDataSubList25cent.add(subData25cent39)
tableDataSubList25cent.add(subData25cent40)
tableDataSubList25cent.add(subData25cent41)
tableDataSubList25cent.add(subData25cent42)
tableDataSubList25cent.add(subData25cent43)
tableDataSubList25cent.add(subData25cent44)
val tableMode25 = TableModel("25 $strCent25", tableDataSubList25cent)
//Data 30 Cents
val tableDataSubList30cent = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.cents)
var strCent30 = holder.itemView.text_cents_min.text
val subData30cent1 = TableSubModel(context.getString(R.string.antigua_barbuda), "1")
val subData30cent2 = TableSubModel(context.getString(R.string.armenia), "374")
val subData30cent3 = TableSubModel(context.getString(R.string.austria), "43")
val subData30cent4 = TableSubModel(context.getString(R.string.austria), "43")
val subData30cent5 = TableSubModel(context.getString(R.string.belize), "501")
val subData30cent6 = TableSubModel(context.getString(R.string.botswana), "267")
val subData30cent7 = TableSubModel(context.getString(R.string.brazil), "55")
val subData30cent8 = TableSubModel(context.getString(R.string.british_virgin_islands), "1")
val subData30cent9 = TableSubModel(context.getString(R.string.dominica), "1")
val subData30cent10 = TableSubModel(context.getString(R.string.eritrea), "291")
val subData30cent11 = TableSubModel(context.getString(R.string.ethiopia), "251")
val subData30cent12 = TableSubModel(context.getString(R.string.georgia), "995")
val subData30cent13 = TableSubModel(context.getString(R.string.germany), "49")
val subData30cent14 = TableSubModel(context.getString(R.string.guyana), "592")
val subData30cent15 = TableSubModel(context.getString(R.string.italy), "39")
val subData30cent16 = TableSubModel(context.getString(R.string.jamaica), "1")
val subData30cent17 = TableSubModel(context.getString(R.string.kenya), "254")
val subData30cent18 = TableSubModel(context.getString(R.string.libya), "254")
val subData30cent19 = TableSubModel(context.getString(R.string.montserrat), "1")
val subData30cent20 = TableSubModel(context.getString(R.string.myanmar), "95")
val subData30cent21 = TableSubModel(context.getString(R.string.netherlands), "31")
val subData30cent22 = TableSubModel(context.getString(R.string.nicaragua), "505")
val subData30cent23 = TableSubModel(context.getString(R.string.oman), "968")
val subData30cent24 = TableSubModel(context.getString(R.string.san_marino), "378")
val subData30cent25 = TableSubModel(context.getString(R.string.st_kitts_nevis), "1")
val subData30cent26 = TableSubModel(context.getString(R.string.st_lucia), "1")
val subData30cent27 = TableSubModel(context.getString(R.string.st_pierre_miquelon), "508")
val subData30cent28 = TableSubModel(context.getString(R.string.st_vincent_grenadines), "1")
val subData30cent29 = TableSubModel(context.getString(R.string.turks_caicos_islands), "1")
val subData30cent30 = TableSubModel(context.getString(R.string.ukraine), "380")
val subData30cent31 = TableSubModel(context.getString(R.string.united_arab_emirates), "44")
val subData30cent32 = TableSubModel(context.getString(R.string.wallis_futuna), "681")
tableDataSubList30cent.add(subData30cent1)
tableDataSubList30cent.add(subData30cent2)
tableDataSubList30cent.add(subData30cent3)
tableDataSubList30cent.add(subData30cent4)
tableDataSubList30cent.add(subData30cent5)
tableDataSubList30cent.add(subData30cent6)
tableDataSubList30cent.add(subData30cent7)
tableDataSubList30cent.add(subData30cent8)
tableDataSubList30cent.add(subData30cent9)
tableDataSubList30cent.add(subData30cent10)
tableDataSubList30cent.add(subData30cent11)
tableDataSubList30cent.add(subData30cent12)
tableDataSubList30cent.add(subData30cent13)
tableDataSubList30cent.add(subData30cent14)
tableDataSubList30cent.add(subData30cent15)
tableDataSubList30cent.add(subData30cent16)
tableDataSubList30cent.add(subData30cent17)
tableDataSubList30cent.add(subData30cent18)
tableDataSubList30cent.add(subData30cent19)
tableDataSubList30cent.add(subData30cent20)
tableDataSubList30cent.add(subData30cent21)
tableDataSubList30cent.add(subData30cent22)
tableDataSubList30cent.add(subData30cent23)
tableDataSubList30cent.add(subData30cent24)
tableDataSubList30cent.add(subData30cent25)
tableDataSubList30cent.add(subData30cent26)
tableDataSubList30cent.add(subData30cent27)
tableDataSubList30cent.add(subData30cent28)
tableDataSubList30cent.add(subData30cent29)
tableDataSubList30cent.add(subData30cent30)
tableDataSubList30cent.add(subData30cent31)
tableDataSubList30cent.add(subData30cent32)
val tableMode30 = TableModel("30 $strCent30", tableDataSubList30cent)
//Data 50 Cents
val tableDataSubList50cent = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.cents)
val strCent50 = holder.itemView.text_cents_min.text
val subData50cent1 = TableSubModel(context.getString(R.string.albania), "355")
val subData50cent2 = TableSubModel(context.getString(R.string.algeria), "213")
val subData50cent3 = TableSubModel(context.getString(R.string.anguilla), "1")
val subData50cent4 = TableSubModel(context.getString(R.string.austria_toll_shared), "43")
val subData50cent5 = TableSubModel(context.getString(R.string.azerbaijan), "994")
val subData50cent6 = TableSubModel(context.getString(R.string.belarus), "375")
val subData50cent7 = TableSubModel(context.getString(R.string.belgium), "32")
val subData50cent8 = TableSubModel(context.getString(R.string.benin), "229")
val subData50cent9 = TableSubModel(context.getString(R.string.bosnia_herzegovina), "387")
val subData50cent10 = TableSubModel(context.getString(R.string.bulgaria), "359")
val subData50cent11 = TableSubModel(context.getString(R.string.burkina_faso), "226")
val subData50cent12 = TableSubModel(context.getString(R.string.burundi), "257")
val subData50cent13 = TableSubModel(context.getString(R.string.cape_verde), "238")
val subData50cent14 = TableSubModel(context.getString(R.string.comoros), "269")
val subData50cent15 = TableSubModel(context.getString(R.string.congo), "242")
val subData50cent16 = TableSubModel(context.getString(R.string.croatia), "385")
val subData50cent17 = TableSubModel(context.getString(R.string.dem_rep), "243")
val subData50cent18 = TableSubModel(context.getString(R.string.djibouti), "253")
val subData50cent19 = TableSubModel(context.getString(R.string.equatorial_guinea), "240")
val subData50cent20 =
TableSubModel(context.getString(R.string.estonia_special_services), "372")
val subData50cent21 = TableSubModel(context.getString(R.string.fiji), "679")
val subData50cent22 = TableSubModel(context.getString(R.string.finland), "358")
val subData50cent23 = TableSubModel(context.getString(R.string.france), "33")
val subData50cent24 = TableSubModel(context.getString(R.string.french_polynesia), "689")
val subData50cent25 = TableSubModel(context.getString(R.string.grenada), "1")
val subData50cent26 = TableSubModel(context.getString(R.string.guinea), "224")
val subData50cent27 = TableSubModel(context.getString(R.string.guinea_bissau), "245")
val subData50cent28 = TableSubModel(context.getString(R.string.haiti), "509")
val subData50cent29 = TableSubModel(context.getString(R.string.pivory_coast), "225")
val subData50cent30 = TableSubModel(context.getString(R.string.lesotho), "266")
val subData50cent31 = TableSubModel(context.getString(R.string.liberia), "231")
val subData50cent32 = TableSubModel(context.getString(R.string.macedonia), "389")
val subData50cent33 = TableSubModel(context.getString(R.string.malawi), "265")
val subData50cent34 = TableSubModel(context.getString(R.string.mali), "223")
val subData50cent35 = TableSubModel(context.getString(R.string.micronesia), "691")
val subData50cent36 = TableSubModel(context.getString(R.string.moldova), "373")
val subData50cent37 = TableSubModel(context.getString(R.string.monaco), "377")
val subData50cent38 = TableSubModel(context.getString(R.string.montenegro), "382")
val subData50cent39 = TableSubModel(context.getString(R.string.morocco), "212")
val subData50cent40 = TableSubModel(context.getString(R.string.mozambique), "258")
val subData50cent41 = TableSubModel(context.getString(R.string.niger), "227")
val subData50cent42 =
TableSubModel(context.getString(R.string.niger_special_services), "227")
val subData50cent43 = TableSubModel(context.getString(R.string.peru), "51")
val subData50cent44 = TableSubModel(context.getString(R.string.portugal), "351")
val subData50cent45 = TableSubModel(context.getString(R.string.rwanda), "351")
val subData50cent46 = TableSubModel(context.getString(R.string.senegal), "221")
val subData50cent47 = TableSubModel(context.getString(R.string.serbia), "221")
val subData50cent48 = TableSubModel(context.getString(R.string.slovenia), "386")
val subData50cent49 =
TableSubModel(context.getString(R.string.south_sfrica_special_services), "27")
val subData50cent50 = TableSubModel(context.getString(R.string.south_sudan), "221")
val subData50cent51 = TableSubModel(context.getString(R.string.swaziland), "41")
val subData50cent52 = TableSubModel(context.getString(R.string.tanzania), "255")
val subData50cent53 = TableSubModel(context.getString(R.string.togo), "228")
val subData50cent54 = TableSubModel(context.getString(R.string.uganda), "256")
val subData50cent55 = TableSubModel(context.getString(R.string.zimbabwe), "263")
tableDataSubList50cent.add(subData50cent1)
tableDataSubList50cent.add(subData50cent2)
tableDataSubList50cent.add(subData50cent3)
tableDataSubList50cent.add(subData50cent4)
tableDataSubList50cent.add(subData50cent5)
tableDataSubList50cent.add(subData50cent6)
tableDataSubList50cent.add(subData50cent7)
tableDataSubList50cent.add(subData50cent8)
tableDataSubList50cent.add(subData50cent9)
tableDataSubList50cent.add(subData50cent10)
tableDataSubList50cent.add(subData50cent11)
tableDataSubList50cent.add(subData50cent12)
tableDataSubList50cent.add(subData50cent13)
tableDataSubList50cent.add(subData50cent14)
tableDataSubList50cent.add(subData50cent15)
tableDataSubList50cent.add(subData50cent16)
tableDataSubList50cent.add(subData50cent17)
tableDataSubList50cent.add(subData50cent18)
tableDataSubList50cent.add(subData50cent19)
tableDataSubList50cent.add(subData50cent20)
tableDataSubList50cent.add(subData50cent21)
tableDataSubList50cent.add(subData50cent22)
tableDataSubList50cent.add(subData50cent23)
tableDataSubList50cent.add(subData50cent24)
tableDataSubList50cent.add(subData50cent25)
tableDataSubList50cent.add(subData50cent26)
tableDataSubList50cent.add(subData50cent27)
tableDataSubList50cent.add(subData50cent28)
tableDataSubList50cent.add(subData50cent29)
tableDataSubList50cent.add(subData50cent30)
tableDataSubList50cent.add(subData50cent31)
tableDataSubList50cent.add(subData50cent32)
tableDataSubList50cent.add(subData50cent33)
tableDataSubList50cent.add(subData50cent34)
tableDataSubList50cent.add(subData50cent35)
tableDataSubList50cent.add(subData50cent36)
tableDataSubList50cent.add(subData50cent37)
tableDataSubList50cent.add(subData50cent38)
tableDataSubList50cent.add(subData50cent39)
tableDataSubList50cent.add(subData50cent40)
tableDataSubList50cent.add(subData50cent41)
tableDataSubList50cent.add(subData50cent42)
tableDataSubList50cent.add(subData50cent43)
tableDataSubList50cent.add(subData50cent44)
tableDataSubList50cent.add(subData50cent45)
tableDataSubList50cent.add(subData50cent46)
tableDataSubList50cent.add(subData50cent47)
tableDataSubList50cent.add(subData50cent48)
tableDataSubList50cent.add(subData50cent49)
tableDataSubList50cent.add(subData50cent50)
tableDataSubList50cent.add(subData50cent51)
tableDataSubList50cent.add(subData50cent52)
tableDataSubList50cent.add(subData50cent53)
tableDataSubList50cent.add(subData50cent54)
tableDataSubList50cent.add(subData50cent55)
val tableMode50 = TableModel("50 $strCent50", tableDataSubList50cent)
//Data 1$
val tableDataSubList1dollar = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.dollar)
var strCent1Dollar = holder.itemView.text_cents_min.text
val subData1dollar1 = TableSubModel(context.getString(R.string.cameroon), "237")
val subData1dollar2 =
TableSubModel(context.getString(R.string.central_african_republic), "236")
val subData1dollar3 = TableSubModel(context.getString(R.string.chad), "235")
val subData1dollar4 = TableSubModel(context.getString(R.string.chile), "56")
val subData1dollar5 = TableSubModel(context.getString(R.string.cook_islands), "682")
val subData1dollar6 = TableSubModel(context.getString(R.string.cuba), "53")
val subData1dollar7 = TableSubModel(context.getString(R.string.east_timor), "670")
val subData1dollar8 = TableSubModel(context.getString(R.string.estonia), "372")
val subData1dollar9 = TableSubModel(context.getString(R.string.gabon), "241")
val subData1dollar10 = TableSubModel(context.getString(R.string.gambia), "220")
val subData1dollar11 = TableSubModel(context.getString(R.string.greenland), "299")
val subData1dollar12 = TableSubModel(context.getString(R.string.kazakhstan), "7")
val subData1dollar13 = TableSubModel(context.getString(R.string.latvia), "371")
val subData1dollar14 = TableSubModel(context.getString(R.string.lithuania), "370")
val subData1dollar15 = TableSubModel(context.getString(R.string.mauritania), "222")
val subData1dollar16 = TableSubModel(context.getString(R.string.north_korea), "850")
val subData1dollar17 = TableSubModel(context.getString(R.string.palau), "680")
val subData1dollar18 = TableSubModel(context.getString(R.string.papua_new_guinea), "675")
val subData1dollar19 = TableSubModel(context.getString(R.string.poland), "48")
val subData1dollar20 =
TableSubModel(context.getString(R.string.san_marino_special_services), "378")
val subData1dollar21 = TableSubModel(context.getString(R.string.seychelles), "248")
val subData1dollar22 = TableSubModel(context.getString(R.string.sierra_leone), "232")
val subData1dollar23 = TableSubModel(context.getString(R.string.somalia), "252")
val subData1dollar24 =
TableSubModel(context.getString(R.string.south_sfrica_special_services), "27")
val subData1dollar25 = TableSubModel(context.getString(R.string.suriname), "579")
val subData1dollar26 = TableSubModel(context.getString(R.string.tonga), "579")
val subData1dollar27 = TableSubModel(context.getString(R.string.tunisia), "216")
val subData1dollar28 =
TableSubModel(context.getString(R.string.universal_personal_TPG), "878")
val subData1dollar29 = TableSubModel(context.getString(R.string.vanuatu), "678")
val subData1dollar30 = TableSubModel(context.getString(R.string.western_samoa), "685")
tableDataSubList1dollar.add(subData1dollar1)
tableDataSubList1dollar.add(subData1dollar2)
tableDataSubList1dollar.add(subData1dollar3)
tableDataSubList1dollar.add(subData1dollar4)
tableDataSubList1dollar.add(subData1dollar5)
tableDataSubList1dollar.add(subData1dollar6)
tableDataSubList1dollar.add(subData1dollar7)
tableDataSubList1dollar.add(subData1dollar8)
tableDataSubList1dollar.add(subData1dollar9)
tableDataSubList1dollar.add(subData1dollar10)
tableDataSubList1dollar.add(subData1dollar11)
tableDataSubList1dollar.add(subData1dollar12)
tableDataSubList1dollar.add(subData1dollar13)
tableDataSubList1dollar.add(subData1dollar14)
tableDataSubList1dollar.add(subData1dollar15)
tableDataSubList1dollar.add(subData1dollar16)
tableDataSubList1dollar.add(subData1dollar17)
tableDataSubList1dollar.add(subData1dollar18)
tableDataSubList1dollar.add(subData1dollar19)
tableDataSubList1dollar.add(subData1dollar20)
tableDataSubList1dollar.add(subData1dollar21)
tableDataSubList1dollar.add(subData1dollar22)
tableDataSubList1dollar.add(subData1dollar23)
tableDataSubList1dollar.add(subData1dollar24)
tableDataSubList1dollar.add(subData1dollar25)
tableDataSubList1dollar.add(subData1dollar26)
tableDataSubList1dollar.add(subData1dollar27)
tableDataSubList1dollar.add(subData1dollar28)
tableDataSubList1dollar.add(subData1dollar29)
tableDataSubList1dollar.add(subData1dollar30)
val tableMode1dollar = TableModel("1 $strCent1Dollar", tableDataSubList1dollar)
//Data 1.5$
val tableDataSubList1dollar5cents = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.dollar)
var str1Dollar5Cent = holder.itemView.text_cents_min.text
val subData1dollar5cents1 = TableSubModel(context.getString(R.string.antarctica), "6721")
val subData1dollar5cents2 =
TableSubModel(context.getString(R.string.ascension_island), "247")
val subData1dollar5cents3 =
TableSubModel(context.getString(R.string.australia_territories), "6723")
val subData1dollar5cents4 = TableSubModel(context.getString(R.string.barbados), "1")
val subData1dollar5cents5 =
TableSubModel(context.getString(R.string.belarus_special_services), "375")
val subData1dollar5cents6 =
TableSubModel(context.getString(R.string.cameroon_special_services), "237")
val subData1dollar5cents7 =
TableSubModel(context.getString(R.string.comoros_special_services), "269")
val subData1dollar5cents8 =
TableSubModel(context.getString(R.string.falkland_islands), "500")
val subData1dollar5cents9 =
TableSubModel(context.getString(R.string.ivory_coast_special_services), "225")
val subData1dollar5cents10 = TableSubModel(context.getString(R.string.kiribati), "686")
val subData1dollar5cents11 = TableSubModel(context.getString(R.string.madagascar), "261")
val subData1dollar5cents12 = TableSubModel(context.getString(R.string.maldives), "960")
val subData1dollar5cents13 = TableSubModel(context.getString(R.string.nauru), "674")
val subData1dollar5cents14 = TableSubModel(context.getString(R.string.niue_island), "683")
val subData1dollar5cents15 =
TableSubModel(context.getString(R.string.solomon_islands), "677")
val subData1dollar5cents16 = TableSubModel(context.getString(R.string.st_helena), "290")
val subData1dollar5cents17 = TableSubModel(context.getString(R.string.tokelau), "690")
val subData1dollar5cents18 = TableSubModel(context.getString(R.string.tuvalu), "688")
tableDataSubList1dollar5cents.add(subData1dollar5cents1)
tableDataSubList1dollar5cents.add(subData1dollar5cents2)
tableDataSubList1dollar5cents.add(subData1dollar5cents3)
tableDataSubList1dollar5cents.add(subData1dollar5cents4)
tableDataSubList1dollar5cents.add(subData1dollar5cents5)
tableDataSubList1dollar5cents.add(subData1dollar5cents6)
tableDataSubList1dollar5cents.add(subData1dollar5cents7)
tableDataSubList1dollar5cents.add(subData1dollar5cents8)
tableDataSubList1dollar5cents.add(subData1dollar5cents9)
tableDataSubList1dollar5cents.add(subData1dollar5cents10)
tableDataSubList1dollar5cents.add(subData1dollar5cents11)
tableDataSubList1dollar5cents.add(subData1dollar5cents12)
tableDataSubList1dollar5cents.add(subData1dollar5cents13)
tableDataSubList1dollar5cents.add(subData1dollar5cents14)
tableDataSubList1dollar5cents.add(subData1dollar5cents15)
tableDataSubList1dollar5cents.add(subData1dollar5cents16)
tableDataSubList1dollar5cents.add(subData1dollar5cents17)
tableDataSubList1dollar5cents.add(subData1dollar5cents18)
val tableMode1dollar5cent =
TableModel("1.5 $str1Dollar5Cent", tableDataSubList1dollar5cents)
//Data 2$
val tableDataSubList2dollar = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.dollar)
val strCent2Dollar = holder.itemView.text_cents_min.text
val subData2dollar = TableSubModel(context.getString(R.string.sao_tome_principe), "239")
tableDataSubList2dollar.add(subData2dollar)
val tableMode2dollar = TableModel("2 $strCent2Dollar", tableDataSubList2dollar)
//Data 3$
val tableDataSubList3dollar = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.dollar)
val strCent3Dollar = holder.itemView.text_cents_min.text
val subData3dollar =
TableSubModel(context.getString(R.string.de_rep_of_congo_special_services), "243")
val subData3dollar1 = TableSubModel(context.getString(R.string.inmarsat_unified), "870")
tableDataSubList3dollar.add(subData3dollar)
tableDataSubList3dollar.add(subData3dollar1)
val tableMode3dollar = TableModel("3 $strCent3Dollar", tableDataSubList3dollar)
val tableDataSubList4dollar = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.dollar)
val strCent4Dollar = holder.itemView.text_cents_min.text
val subData4dollar =
TableSubModel(context.getString(R.string.russia_satellite_globaltel), "7")
tableDataSubList4dollar.add(subData4dollar)
val tableMode4dollar = TableModel("4 $strCent4Dollar", tableDataSubList4dollar)
val tableDataSubList5dollar = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.dollar)
val strCent5Dollar = holder.itemView.text_cents_min.text
val subData5dollar = TableSubModel(context.getString(R.string.australia_territories), "672")
val subData5dollar1 = TableSubModel(context.getString(R.string.diego_garcia), "246")
tableDataSubList5dollar.add(subData5dollar)
tableDataSubList5dollar.add(subData5dollar1)
val tableMode5dollar = TableModel("5 $strCent5Dollar", tableDataSubList5dollar)
val tableDataSubList6dollar = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.dollar)
val strCent6Dollar = holder.itemView.text_cents_min.text
val subData6dollar = TableSubModel(context.getString(R.string.global_network), "881")
val subData6dollar1 = TableSubModel(context.getString(R.string.inmarsat_global), "870")
val subData6dollar2 =
TableSubModel(context.getString(R.string.international_networks_2), "883")
tableDataSubList6dollar.add(subData6dollar)
tableDataSubList6dollar.add(subData6dollar1)
tableDataSubList6dollar.add(subData6dollar2)
val tableMode6dollar = TableModel("6 $strCent6Dollar", tableDataSubList6dollar)
val tableDataSubList8dollar = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.dollar)
val strCent8Dollar = holder.itemView.text_cents_min.text
val subData8dollar = TableSubModel(context.getString(R.string.inmarsat_unified), "870")
val subData8dollar1 =
TableSubModel(context.getString(R.string.international_networks), "882")
tableDataSubList8dollar.add(subData8dollar)
tableDataSubList8dollar.add(subData8dollar1)
val tableMode8dollar = TableModel("8 $strCent8Dollar", tableDataSubList8dollar)
val tableDataSubList10dollar = ArrayList<TableSubModel>()
holder.itemView.text_cents_min.text = context.getString(R.string.dollar)
val str10Dollar = holder.itemView.text_cents_min.text
val subData10dollar = TableSubModel(context.getString(R.string.inmarsat_HSD), "870")
tableDataSubList10dollar.add(subData10dollar)
val tableMode10dollar = TableModel("10 $str10Dollar", tableDataSubList10dollar)
tableDataList.clear()
tableDataList.add(tableModel)
tableDataList.add(tableModel1)
tableDataList.add(tableModel2)
tableDataList.add(tableModel5)
tableDataList.add(tableMode25)
tableDataList.add(tableMode30)
tableDataList.add(tableMode50)
tableDataList.add(tableMode1dollar)
tableDataList.add(tableMode1dollar5cent)
tableDataList.add(tableMode2dollar)
tableDataList.add(tableMode3dollar)
tableDataList.add(tableMode4dollar)
tableDataList.add(tableMode5dollar)
tableDataList.add(tableMode6dollar)
tableDataList.add(tableMode8dollar)
tableDataList.add(tableMode10dollar)
tableDataListDisplay.addAll(tableDataList)
mAdapter.notifyDataSetChanged()
Handler().postDelayed({
tableDataListDisplay.clear()
}, 200)
// error_view.visibility = View.GONE
// return tableDataList
val tableCountry = ArrayList<CountryModel>()
val subdata = CountryModel(
SeatelUtils.translatForDialog(
context, context.getString(R.string.all)
), ""
)
val country20 = CountryModel(context.getString(R.string.inmarsat_HSD), "870")
val country1 = CountryModel(context.getString(R.string.china), "86")
val country2 = CountryModel(
context.getString(R.string.hong_kong_china), "852"
)
val country3 = CountryModel(context.getString(R.string.malaysia), "60")
val country4 = CountryModel(context.getString(R.string.singapore), "65")
val country5 = CountryModel(context.getString(R.string.thailand), "66")
val country6 = CountryModel(context.getString(R.string.american_samoa), "1")
val country7 = CountryModel(context.getString(R.string.bangladesh), "880")
val country8 = CountryModel(context.getString(R.string.canada), "1")
val country9 = CountryModel(context.getString(R.string.denmark), "45")
val country10 = CountryModel(context.getString(R.string.guam), "1")
val country11 = CountryModel(context.getString(R.string.hungary), "36")
val country12 = CountryModel(context.getString(R.string.iceland), "354")
val country13 = CountryModel(context.getString(R.string.india), "91")
val country14 = CountryModel(context.getString(R.string.malta_Mobile), "356")
val country15 = CountryModel(
context.getString(R.string.mariana_islands), "1"
)
val country16 = CountryModel(context.getString(R.string.puerto_rico), "1")
val country17 = CountryModel(context.getString(R.string.romania), "40")
val country18 = CountryModel(context.getString(R.string.south_korea), "82")
val country19 = CountryModel(context.getString(R.string.sweden), "46")
val country21 = CountryModel(context.getString(R.string.australia), "61")
val country22 = CountryModel(
context.getString(R.string.australia_mobile_Satellite), "61"
)
val country23 = CountryModel(context.getString(R.string.bermuda), "1")
val country24 = CountryModel(context.getString(R.string.brunei), "673")
// val subData10cent5 = TableSubModel(context.getString(R.string.cambodia), "855")
val country25 = CountryModel(
context.getString(R.string.canada_Yukon_NW_Territories), "1"
)
val country26 = CountryModel(context.getString(R.string.costa_rica), "506")
val country27 = CountryModel(
context.getString(R.string.czech_republic), "420"
)
val country28 = CountryModel(
context.getString(R.string.france_mobile_globalstar_special_services), "33"
)
val country29 = CountryModel(
context.getString(R.string.french_guiana), "594"
)
val country30 = CountryModel(context.getString(R.string.greece), "30")
val country31 = CountryModel(context.getString(R.string.guadeloupe), "590")
val country32 = CountryModel(context.getString(R.string.indonesia), "62")
val country33 = CountryModel(context.getString(R.string.japan), "81")
val country34 = CountryModel(
context.getString(R.string.kazakhstan_other_OLO), "7"
)
val country35 = CountryModel(context.getString(R.string.macau), "853")
val country36 = CountryModel(context.getString(R.string.martinique), "596")
val country37 = CountryModel(context.getString(R.string.mayotte), "262")
val country38 = CountryModel(context.getString(R.string.mexico), "52")
val country39 = CountryModel(context.getString(R.string.mongolia), "976")
val country40 = CountryModel(context.getString(R.string.namibia), "264")
val country41 = CountryModel(context.getString(R.string.new_zealand), "64")
val country42 = CountryModel(
context.getString(R.string.nigeria_mobile), "234"
)
val country43 = CountryModel(context.getString(R.string.pakistan), "92")
val country44 = CountryModel(
context.getString(R.string.reunion_island_mobile), "262"
)
val country45 = CountryModel(
context.getString(R.string.russia_moscow_central), "7"
)
val country46 = CountryModel(context.getString(R.string.russia_other), "7")
val country47 = CountryModel(
context.getString(R.string.russia_st_petersburg), "7"
)
val country48 = CountryModel(
context.getString(R.string.universal_disaster_relief), "888"
)
val country49 = CountryModel(context.getString(R.string.usa_lata), "1")
val country50 = CountryModel(
context.getString(R.string.usa_other_mainland), "1"
)
val country51 = CountryModel(context.getString(R.string.uzbekistan), "998")
val country53 = CountryModel(context.getString(R.string.vietnam), "84")
val country54 = CountryModel(context.getString(R.string.angola), "224")
val country55 = CountryModel(context.getString(R.string.argentina), "54")
val country56 = CountryModel(context.getString(R.string.bahrain), "973")
val country57 = CountryModel(context.getString(R.string.bhutan), "975")
val country58 = CountryModel(context.getString(R.string.cyprus), "357")
val country59 = CountryModel(
context.getString(R.string.dominican_republic), "1"
)
val country60 = CountryModel(context.getString(R.string.egypt), "20")
val country61 = CountryModel(context.getString(R.string.ireland), "353")
val country62 = CountryModel(
context.getString(R.string.kuwait_mobile), "965"
)
val country63 = CountryModel(context.getString(R.string.laos), "856")
val country64 = CountryModel(
context.getString(R.string.liechtenstein_special_services), "423"
)
val country65 = CountryModel(context.getString(R.string.luxembourg), "352")
val country66 = CountryModel(context.getString(R.string.nepal), "977")
val country67 = CountryModel(context.getString(R.string.paraguay), "595")
val country68 = CountryModel(
context.getString(R.string.reunion_island_mobile), "262"
)
val country69 = CountryModel(context.getString(R.string.saudi_arabia), "966")
val country70 = CountryModel(context.getString(R.string.slovakia), "421")
val country71 = CountryModel(context.getString(R.string.st_maarten), "1721")
val country72 = CountryModel(context.getString(R.string.taiwan), "886")
val country73 = CountryModel(context.getString(R.string.venezuela), "58")
val country74 = CountryModel(context.getString(R.string.iran), "98")
val country75 = CountryModel(context.getString(R.string.jordan), "962")
val country76 = CountryModel(context.getString(R.string.norway), "47")
val country77 = CountryModel(context.getString(R.string.south_africa), "27")
val country78 = CountryModel(context.getString(R.string.abkhazia), "7")
val country79 = CountryModel(context.getString(R.string.afghanistan), "93")
val country80 = CountryModel(context.getString(R.string.andorra), "376")
val country81 = CountryModel(context.getString(R.string.aruba), "297")
val country82 = CountryModel(context.getString(R.string.bahamas), "1")
val country83 = CountryModel(context.getString(R.string.bolivia), "591")
val country84 = CountryModel(context.getString(R.string.cayman_islands), "1")
val country85 = CountryModel(context.getString(R.string.colombia), "57")
val country86 = CountryModel(context.getString(R.string.ecuador), "593")
val country87 = CountryModel(context.getString(R.string.el_salvador), "503")
val country88 = CountryModel(
context.getString(R.string.faroe_islands), "298"
)
val country89 = CountryModel(context.getString(R.string.ghana), "233")
val country90 = CountryModel(context.getString(R.string.gibraltar), "350")
val country91 = CountryModel(context.getString(R.string.guatemala), "502")
val country92 = CountryModel(context.getString(R.string.honduras), "504")
val country93 = CountryModel(context.getString(R.string.iraq), "964")
val country94 = CountryModel(context.getString(R.string.israel), "972")
val country95 = CountryModel(context.getString(R.string.kyrgyzstan), "996")
val country96 = CountryModel(context.getString(R.string.lebanon), "961")
val country97 = CountryModel(
context.getString(R.string.marshall_islands), "692"
)
val country98 = CountryModel(
context.getString(R.string.netherlands_antilles), "599"
)
val country99 = CountryModel(
context.getString(R.string.new_caledonia), "687"
)
val country100 = CountryModel(context.getString(R.string.palestine), "970")
val country101 = CountryModel(context.getString(R.string.panama), "507")
val country102 = CountryModel(context.getString(R.string.philippines), "63")
val country103 = CountryModel(context.getString(R.string.qatar), "974")
val country104 = CountryModel(context.getString(R.string.rusia_other1), "7")
val country105 = CountryModel(context.getString(R.string.spain), "34")
val country106 = CountryModel(context.getString(R.string.sri_lanka), "94")
val country107 = CountryModel(context.getString(R.string.sudan), "249")
val country108 = CountryModel(context.getString(R.string.swaziland), "268")
val country109 = CountryModel(context.getString(R.string.syria), "963")
val country110 = CountryModel(context.getString(R.string.tadjikistan), "992")
val country111 = CountryModel(
context.getString(R.string.trinidad_tobago), "1"
)
val country112 = CountryModel(context.getString(R.string.turkey), "90")
val country113 = CountryModel(context.getString(R.string.turkmenistan), "993")
val country114 = CountryModel(
context.getString(R.string.universal_disaster_relief), "888"
)
val country115 = CountryModel(
context.getString(R.string.uruguay_mobile), "598"
)
val country116 = CountryModel(context.getString(R.string.yemen), "967")
val country117 = CountryModel(
context.getString(R.string.zambia_mobile), "260"
)
val country118 = CountryModel(
context.getString(R.string.antigua_barbuda), "1"
)
val country119 = CountryModel(context.getString(R.string.armenia), "374")
val country120 = CountryModel(context.getString(R.string.austria), "43")
val country121 = CountryModel(context.getString(R.string.austria), "43")
val country122 = CountryModel(context.getString(R.string.belize), "501")
val country123 = CountryModel(context.getString(R.string.botswana), "267")
val country124 = CountryModel(context.getString(R.string.brazil), "55")
val country125 = CountryModel(
context.getString(R.string.british_virgin_islands), "1"
)
val country126 = CountryModel(context.getString(R.string.dominica), "1")
val country127 = CountryModel(context.getString(R.string.eritrea), "291")
val country128 = CountryModel(context.getString(R.string.ethiopia), "251")
val country129 = CountryModel(context.getString(R.string.georgia), "995")
val country130 = CountryModel(context.getString(R.string.germany), "49")
val country131 = CountryModel(context.getString(R.string.guyana), "592")
val country132 = CountryModel(context.getString(R.string.italy), "39")
val country133 = CountryModel(context.getString(R.string.jamaica), "1")
val country134 = CountryModel(context.getString(R.string.kenya), "254")
val country135 = CountryModel(context.getString(R.string.libya), "254")
val country136 = CountryModel(context.getString(R.string.montserrat), "1")
val country137 = CountryModel(context.getString(R.string.myanmar), "95")
val country138 = CountryModel(context.getString(R.string.netherlands), "31")
val country139 = CountryModel(context.getString(R.string.nicaragua), "505")
val country140 = CountryModel(context.getString(R.string.oman), "968")
val country141 = CountryModel(context.getString(R.string.san_marino), "378")
val country142 = CountryModel(context.getString(R.string.st_kitts_nevis), "1")
val country143 = CountryModel(context.getString(R.string.st_lucia), "1")
val country144 = CountryModel(
context.getString(R.string.st_pierre_miquelon), "508"
)
val country145 = CountryModel(
context.getString(R.string.st_vincent_grenadines), "1"
)
val country146 = CountryModel(
context.getString(R.string.turks_caicos_islands), "1"
)
val country147 = CountryModel(context.getString(R.string.ukraine), "380")
val country148 = CountryModel(
context.getString(R.string.united_arab_emirates), "44"
)
val country149 = CountryModel(
context.getString(R.string.wallis_futuna), "681"
)
val country150 = CountryModel(context.getString(R.string.albania), "355")
val country151 = CountryModel(context.getString(R.string.algeria), "213")
val country152 = CountryModel(context.getString(R.string.anguilla), "1")
val country153 = CountryModel(
context.getString(R.string.austria_toll_shared), "43"
)
val country154 = CountryModel(context.getString(R.string.azerbaijan), "994")
val country155 = CountryModel(context.getString(R.string.belarus), "375")
val country156 = CountryModel(context.getString(R.string.belgium), "32")
val country157 = CountryModel(context.getString(R.string.benin), "229")
val country158 = CountryModel(
context.getString(R.string.bosnia_herzegovina), "387"
)
val country159 = CountryModel(context.getString(R.string.bulgaria), "359")
val country160 = CountryModel(context.getString(R.string.burkina_faso), "226")
val country161 = CountryModel(context.getString(R.string.burundi), "257")
val country162 = CountryModel(context.getString(R.string.cape_verde), "238")
val country163 = CountryModel(context.getString(R.string.comoros), "269")
val country164 = CountryModel(context.getString(R.string.congo), "242")
val country165 = CountryModel(context.getString(R.string.croatia), "385")
val country166 = CountryModel(context.getString(R.string.dem_rep), "243")
val country167 = CountryModel(context.getString(R.string.djibouti), "253")
val country168 = CountryModel(
context.getString(R.string.equatorial_guinea), "240"
)
val country169 = CountryModel(
context.getString(R.string.estonia_special_services), "372"
)
val country170 = CountryModel(context.getString(R.string.fiji), "679")
val country171 = CountryModel(context.getString(R.string.finland), "358")
val country172 = CountryModel(context.getString(R.string.france), "33")
val country173 = CountryModel(
context.getString(R.string.french_polynesia), "689"
)
val country174 = CountryModel(context.getString(R.string.grenada), "1")
val country175 = CountryModel(context.getString(R.string.guinea), "224")
val country176 = CountryModel(
context.getString(R.string.guinea_bissau), "245"
)
val country177 = CountryModel(context.getString(R.string.haiti), "509")
val country178 = CountryModel(context.getString(R.string.pivory_coast), "225")
val country179 = CountryModel(context.getString(R.string.lesotho), "266")
val country180 = CountryModel(context.getString(R.string.liberia), "231")
val country181 = CountryModel(context.getString(R.string.macedonia), "389")
val country182 = CountryModel(context.getString(R.string.malawi), "265")
val country183 = CountryModel(context.getString(R.string.mali), "223")
val country184 = CountryModel(context.getString(R.string.micronesia), "691")
val country185 = CountryModel(context.getString(R.string.moldova), "373")
val country186 = CountryModel(context.getString(R.string.monaco), "377")
val country187 = CountryModel(context.getString(R.string.montenegro), "382")
val country188 = CountryModel(context.getString(R.string.morocco), "212")
val country189 = CountryModel(context.getString(R.string.mozambique), "258")
val country190 = CountryModel(context.getString(R.string.niger), "227")
val country191 = CountryModel(
context.getString(R.string.niger_special_services), "227"
)
val country192 = CountryModel(context.getString(R.string.peru), "51")
val country193 = CountryModel(context.getString(R.string.portugal), "351")
val country194 = CountryModel(context.getString(R.string.rwanda), "351")
val country195 = CountryModel(context.getString(R.string.senegal), "221")
val country196 = CountryModel(context.getString(R.string.serbia), "221")
val country197 = CountryModel(context.getString(R.string.slovenia), "386")
val country198 = CountryModel(
context.getString(R.string.south_sfrica_special_services), "27"
)
val country199 = CountryModel(context.getString(R.string.south_sudan), "221")
val country200 = CountryModel(context.getString(R.string.swaziland), "41")
val country201 = CountryModel(context.getString(R.string.tanzania), "255")
val country202 = CountryModel(context.getString(R.string.togo), "228")
val country203 = CountryModel(context.getString(R.string.uganda), "256")
val country204 = CountryModel(context.getString(R.string.zimbabwe), "263")
val country205 = CountryModel(context.getString(R.string.antarctica), "6721")
val country206 = CountryModel(
context.getString(R.string.ascension_island), "247"
)
val country207 = CountryModel(
context.getString(R.string.australia_territories), "6723"
)
val country208 = CountryModel(context.getString(R.string.barbados), "1")
val country209 = CountryModel(
context.getString(R.string.belarus_special_services), "375"
)
val country210 = CountryModel(
context.getString(R.string.cameroon_special_services), "237"
)
val country211 = CountryModel(
context.getString(R.string.comoros_special_services), "269"
)
val country212 = CountryModel(
context.getString(R.string.falkland_islands), "500"
)
val country213 = CountryModel(
context.getString(R.string.ivory_coast_special_services), "225"
)
val country214 = CountryModel(context.getString(R.string.kiribati), "686")
val country215 = CountryModel(context.getString(R.string.madagascar), "261")
val country216 = CountryModel(context.getString(R.string.maldives), "960")
val country217 = CountryModel(context.getString(R.string.nauru), "674")
val country218 = CountryModel(context.getString(R.string.niue_island), "683")
val country219 = CountryModel(
context.getString(R.string.solomon_islands), "677"
)
val country220 = CountryModel(context.getString(R.string.st_helena), "290")
val country221 = CountryModel(context.getString(R.string.tokelau), "690")
val country222 = CountryModel(context.getString(R.string.tuvalu), "688")
val country223 = CountryModel(
context.getString(R.string.sao_tome_principe), "239"
)
val country224 = CountryModel(
context.getString(R.string.de_rep_of_congo_special_services), "243"
)
val country225 = CountryModel(
context.getString(R.string.inmarsat_unified), "870"
)
val country226 = CountryModel(
context.getString(R.string.russia_satellite_globaltel), "7"
)
val country227 = CountryModel(
context.getString(R.string.australia_territories), "672"
)
val country228 = CountryModel(context.getString(R.string.diego_garcia), "246")
val country229 = CountryModel(
context.getString(R.string.global_network), "881"
)
val country230 = CountryModel(
context.getString(R.string.inmarsat_global), "870"
)
val country231 = CountryModel(
context.getString(R.string.international_networks_2), "883"
)
val country232 = CountryModel(
context.getString(R.string.inmarsat_unified), "870"
)
val country233 = CountryModel(
context.getString(R.string.international_networks), "882"
)
val country234 = CountryModel(context.getString(R.string.inmarsat_HSD), "870")
tableCountry.add(subdata)
tableCountry.add(country1)
tableCountry.add(country2)
tableCountry.add(country3)
tableCountry.add(country4)
tableCountry.add(country5)
tableCountry.add(country6)
tableCountry.add(country7)
tableCountry.add(country8)
tableCountry.add(country9)
tableCountry.add(country10)
tableCountry.add(country11)
tableCountry.add(country12)
tableCountry.add(country13)
tableCountry.add(country14)
tableCountry.add(country15)
tableCountry.add(country16)
tableCountry.add(country17)
tableCountry.add(country18)
tableCountry.add(country19)
tableCountry.add(country20)
tableCountry.add(country21)
tableCountry.add(country22)
tableCountry.add(country23)
tableCountry.add(country24)
tableCountry.add(country25)
tableCountry.add(country26)
tableCountry.add(country27)
tableCountry.add(country28)
tableCountry.add(country29)
tableCountry.add(country30)
tableCountry.add(country31)
tableCountry.add(country32)
tableCountry.add(country33)
tableCountry.add(country34)
tableCountry.add(country35)
tableCountry.add(country36)
tableCountry.add(country37)
tableCountry.add(country38)
tableCountry.add(country39)
tableCountry.add(country40)
tableCountry.add(country41)
tableCountry.add(country42)
tableCountry.add(country43)
tableCountry.add(country44)
tableCountry.add(country45)
tableCountry.add(country46)
tableCountry.add(country47)
tableCountry.add(country48)
tableCountry.add(country49)
tableCountry.add(country50)
tableCountry.add(country51)
tableCountry.add(country53)
tableCountry.add(country54)
tableCountry.add(country55)
tableCountry.add(country56)
tableCountry.add(country57)
tableCountry.add(country58)
tableCountry.add(country59)
tableCountry.add(country60)
tableCountry.add(country61)
tableCountry.add(country62)
tableCountry.add(country63)
tableCountry.add(country64)
tableCountry.add(country65)
tableCountry.add(country66)
tableCountry.add(country67)
tableCountry.add(country68)
tableCountry.add(country69)
tableCountry.add(country70)
tableCountry.add(country71)
tableCountry.add(country72)
tableCountry.add(country73)
tableCountry.add(country74)
tableCountry.add(country75)
tableCountry.add(country76)
tableCountry.add(country77)
tableCountry.add(country78)
tableCountry.add(country79)
tableCountry.add(country80)
tableCountry.add(country81)
tableCountry.add(country82)
tableCountry.add(country83)
tableCountry.add(country84)
tableCountry.add(country85)
tableCountry.add(country86)
tableCountry.add(country87)
tableCountry.add(country88)
tableCountry.add(country89)
tableCountry.add(country90)
tableCountry.add(country91)
tableCountry.add(country92)
tableCountry.add(country93)
tableCountry.add(country94)
tableCountry.add(country95)
tableCountry.add(country96)
tableCountry.add(country97)
tableCountry.add(country98)
tableCountry.add(country99)
tableCountry.add(country99)
tableCountry.add(country100)
tableCountry.add(country101)
tableCountry.add(country102)
tableCountry.add(country103)
tableCountry.add(country104)
tableCountry.add(country105)
tableCountry.add(country106)
tableCountry.add(country107)
tableCountry.add(country108)
tableCountry.add(country109)
tableCountry.add(country110)
tableCountry.add(country111)
tableCountry.add(country112)
tableCountry.add(country113)
tableCountry.add(country114)
tableCountry.add(country115)
tableCountry.add(country116)
tableCountry.add(country117)
tableCountry.add(country118)
tableCountry.add(country119)
tableCountry.add(country120)
tableCountry.add(country121)
tableCountry.add(country122)
tableCountry.add(country123)
tableCountry.add(country124)
tableCountry.add(country125)
tableCountry.add(country126)
tableCountry.add(country127)
tableCountry.add(country128)
tableCountry.add(country129)
tableCountry.add(country130)
tableCountry.add(country131)
tableCountry.add(country132)
tableCountry.add(country133)
tableCountry.add(country134)
tableCountry.add(country135)
tableCountry.add(country136)
tableCountry.add(country136)
tableCountry.add(country137)
tableCountry.add(country138)
tableCountry.add(country139)
tableCountry.add(country140)
tableCountry.add(country141)
tableCountry.add(country142)
tableCountry.add(country143)
tableCountry.add(country144)
tableCountry.add(country145)
tableCountry.add(country146)
tableCountry.add(country147)
tableCountry.add(country148)
tableCountry.add(country149)
tableCountry.add(country150)
tableCountry.add(country151)
tableCountry.add(country152)
tableCountry.add(country153)
tableCountry.add(country154)
tableCountry.add(country155)
tableCountry.add(country156)
tableCountry.add(country157)
tableCountry.add(country158)
tableCountry.add(country159)
tableCountry.add(country160)
tableCountry.add(country161)
tableCountry.add(country162)
tableCountry.add(country163)
tableCountry.add(country164)
tableCountry.add(country165)
tableCountry.add(country166)
tableCountry.add(country167)
tableCountry.add(country168)
tableCountry.add(country169)
tableCountry.add(country170)
tableCountry.add(country171)
tableCountry.add(country172)
tableCountry.add(country173)
tableCountry.add(country173)
tableCountry.add(country174)
tableCountry.add(country175)
tableCountry.add(country176)
tableCountry.add(country177)
tableCountry.add(country178)
tableCountry.add(country179)
tableCountry.add(country180)
tableCountry.add(country181)
tableCountry.add(country182)
tableCountry.add(country183)
tableCountry.add(country184)
tableCountry.add(country185)
tableCountry.add(country186)
tableCountry.add(country187)
tableCountry.add(country188)
tableCountry.add(country189)
tableCountry.add(country190)
tableCountry.add(country191)
tableCountry.add(country192)
tableCountry.add(country193)
tableCountry.add(country194)
tableCountry.add(country195)
tableCountry.add(country196)
tableCountry.add(country197)
tableCountry.add(country198)
tableCountry.add(country199)
tableCountry.add(country200)
tableCountry.add(country201)
tableCountry.add(country202)
tableCountry.add(country203)
tableCountry.add(country204)
tableCountry.add(country205)
tableCountry.add(country206)
tableCountry.add(country207)
tableCountry.add(country208)
tableCountry.add(country209)
tableCountry.add(country210)
tableCountry.add(country211)
tableCountry.add(country212)
tableCountry.add(country213)
tableCountry.add(country214)
tableCountry.add(country215)
tableCountry.add(country216)
tableCountry.add(country217)
tableCountry.add(country218)
tableCountry.add(country219)
tableCountry.add(country220)
tableCountry.add(country221)
tableCountry.add(country222)
tableCountry.add(country223)
tableCountry.add(country224)
tableCountry.add(country225)
tableCountry.add(country226)
// tableCountry.add(country227)
tableCountry.add(country228)
tableCountry.add(country229)
tableCountry.add(country230)
tableCountry.add(country231)
tableCountry.add(country232)
tableCountry.add(country233)
tableCountry.add(country234)
//Adapter Spinner
val adapter = ArrayAdapter<CountryModel>(
context, android.R.layout.simple_spinner_item, tableCountry
)
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
// val sItems = findViewById<Spinner>(R.id.filter)
// sItems.setBackgroundColor(Color.TRANSPARENT)
holder.itemView.filter.adapter = adapter
holder.itemView.filter.setSelection(0)
holder.itemView.filter.onItemSelectedListener =
object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(
parent: AdapterView<*>, view: View, position: Int, id: Long
) {
val selectedItemText = parent.getItemAtPosition(position)
//Sort data when Click on Spinner
tableCountry.sortWith(Comparator { item, t1 ->
val s1 = item.destination
val s2 = t1.destination
s1.compareTo(s2, ignoreCase = true)
})
addAllToList(tableCountry)
if (parent.getItemAtPosition(position).equals(
SeatelUtils.translatForDialog(
context, context.getString(R.string.all)
)
)
) {
} else {
//tableCountry[0].destination = context.getString(R.string.all)
tableDataListDisplay.addAll(tableDataList)
adapter.notifyDataSetChanged()
mAdapter.notifyDataSetChanged()
}
val itemCountry = adapter.getItem(position)
// mAdapter.filter.filter(itemCountry.destination)
filter(itemCountry!!.destination)
}
override fun onNothingSelected(parent: AdapterView<*>) {
}
}
}
private fun addAllToList(tableCountry: ArrayList<CountryModel>) {
var indexChange = 0
for (i in tableCountry.indices) {
if (TextUtils.equals(
tableCountry[i].destination, SeatelUtils.translatForDialog(
context, context.getString(R.string.all)
)
)
) {
indexChange = i
break
}
}
if (indexChange > 0) {
val temp = tableCountry[indexChange]
val temp2 = tableCountry[0]
tableCountry[0] = temp
tableCountry[indexChange] = temp2
}
}
}
\ No newline at end of file
package com.seatel.mobilehall.ui.packages.adapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.seatel.mobilehall.databinding.ItemLoyKobListBinding
import com.seatel.mobilehall.ui.base.adapter.BaseAdapter
import com.seatel.mobilehall.ui.home.model.ValuePackTableModel
import com.seatel.mobilehall.util.Constant
import kotlinx.android.synthetic.main.item_loy_kob_list.view.btnActivation
import kotlinx.android.synthetic.main.item_loy_kob_list.view.btnBenefit
import kotlinx.android.synthetic.main.item_loy_kob_list.view.btnFee
import kotlinx.android.synthetic.main.item_loy_kob_list.view.btnValidity
import kotlinx.android.synthetic.main.item_loy_kob_list.view.btn_click
class LoyKobListAdapter(
private val tableList: List<ValuePackTableModel>,
private var type: String,
private var isData: String,
private var canSubscribe: Boolean,
private val rowClick: (ValuePackTableModel) -> Unit
) : BaseAdapter<LoyKobListAdapter.ViewHolder>() {
class ViewHolder(var itemView: ItemLoyKobListBinding) : RecyclerView.ViewHolder(itemView.root)
override fun onCreateViewHolder(
parent: ViewGroup, viewType: Int
): ViewHolder {
val binding = ItemLoyKobListBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
return ViewHolder(binding)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
when (type) {
"Table" -> {
when (isData) {
Constant.LoyKob -> {
holder.itemView.btnFee.text = tableList[position].valuePrice
holder.itemView.btnBenefit.text = tableList[position].benefitOffer
holder.itemView.btnValidity.text = tableList[position].validityDate
holder.itemView.btnActivation.text = tableList[position].activation
}
else -> {
holder.itemView.btnFee.text = tableList[position].valuePrice
holder.itemView.btnBenefit.text = tableList[position].priceChange
holder.itemView.btnValidity.text = tableList[position].validityDate
holder.itemView.btnActivation.text = tableList[position].activation
}
}
holder.itemView.run {
if (canSubscribe) btn_click.visibility =
View.VISIBLE else btn_click.visibility = View.GONE
btn_click.setOnClickListener {
val data = tableList[position]
rowClick.invoke(data)
}
}
}
"Addon" -> {
holder.itemView.run {
var callSmsData = ""
tableList[position].callsmsList.forEach {
callSmsData = it
}
btnFee.text = tableList[position].valuePrice
btnBenefit.text = tableList[position].priceChange + callSmsData
btnActivation.text = tableList[position].activation
if (tableList[position].activateBtn) btn_click.visibility =
View.VISIBLE else btn_click.visibility = View.GONE
btn_click.setOnClickListener {
val data = tableList[position]
rowClick.invoke(data)
}
}
}
}
}
override fun getItemCount(): Int {
return tableList.size
}
}
\ No newline at end of file
package com.seatel.mobilehall.ui.packages.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.seatel.mobilehall.R
import com.seatel.mobilehall.databinding.ItemLayoutLoyKobTabBinding
import com.seatel.mobilehall.databinding.ItemLayoutLoyKobTitleBinding
import com.seatel.mobilehall.ui.base.adapter.BaseAdapter
import com.seatel.mobilehall.ui.home.activity.ConfirmBuyDataPackActivity
import com.seatel.mobilehall.ui.home.adapter.TermAndServiceFooter2Adapter
import com.seatel.mobilehall.ui.home.model.ValuePackSectionModel
import com.seatel.mobilehall.util.Constant
import kotlinx.android.synthetic.main.item_layout_loy_kob_tab.view.baseValidity
import kotlinx.android.synthetic.main.item_layout_loy_kob_tab.view.btn_addon
import kotlinx.android.synthetic.main.item_layout_loy_kob_tab.view.btn_data
import kotlinx.android.synthetic.main.item_layout_loy_kob_tab.view.btn_package
import kotlinx.android.synthetic.main.item_layout_loy_kob_tab.view.btn_plan
import kotlinx.android.synthetic.main.item_layout_loy_kob_tab.view.container_benefit
import kotlinx.android.synthetic.main.item_layout_loy_kob_tab.view.recyclerItemLoyKob
import kotlinx.android.synthetic.main.item_layout_loy_kob_tab.view.recyclerItemLoyKobAddon
import kotlinx.android.synthetic.main.item_layout_loy_kob_tab.view.recyclerTermCondition
import kotlinx.android.synthetic.main.item_layout_loy_kob_title.view.loyKobDescription
import kotlinx.android.synthetic.main.item_layout_loy_kob_title.view.loyKobTitle
class LoyKobsAdapter(
private var mContext: Context,
private var type: String,
private var canSubscribe: Boolean,
private var appProductsDetail: ValuePackSectionModel
) : BaseAdapter<RecyclerView.ViewHolder>() {
companion object {
private const val HEADER_TITLE = 0
private const val HEADER_TAB = 1
}
private var selectedButton = 1
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return when (viewType) {
HEADER_TITLE -> {
val binding = ItemLayoutLoyKobTitleBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
HeaderTitleHolder(binding)
}
else -> {
val binding = ItemLayoutLoyKobTabBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
HeaderTabHolder(binding)
}
/*else -> {
val binding = ItemLayoutLoyKobDataBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
DataHolder(binding)
}*/
}
}
override fun getItemCount(): Int {
return 2
}
override fun getItemViewType(position: Int): Int {
return position
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when (holder.itemViewType) {
HEADER_TITLE -> {
holder.itemView.loyKobTitle.text = appProductsDetail.valuePackSecTwoModel.title
holder.itemView.loyKobDescription.text =
appProductsDetail.valuePackSecTwoModel.subTitle
}
HEADER_TAB -> {
when (type) {
Constant.LoyKob -> {
holder.itemView.btn_data.text = "Benefit offer"
}
else -> holder.itemView.btn_data.text = "Data"
}
updateTabLayout(holder)
holder.itemView.btn_plan.setOnClickListener {
selectedButton = 1
updateTabLayout(holder)
holder.itemView.container_benefit.visibility = View.VISIBLE
holder.itemView.recyclerTermCondition.visibility = View.GONE
}
holder.itemView.btn_package.setOnClickListener {
selectedButton = 2
updateTabLayout(holder)
holder.itemView.container_benefit.visibility = View.GONE
holder.itemView.recyclerTermCondition.visibility = View.VISIBLE
holder.itemView.recyclerTermCondition.adapter = TermAndServiceFooter2Adapter(
mContext, appProductsDetail, true
)
}
holder.itemView.recyclerItemLoyKob.adapter = LoyKobListAdapter(
appProductsDetail.valuePackSecTwoModel.table, "Table", type, canSubscribe
) {
ConfirmBuyDataPackActivity.launch(
mContext,
appProductsDetail.name,
appProductsDetail.type,
it.validityDate,
it.valuePrice,
it.priceChange,
it.code,
false
)
}
holder.itemView.recyclerItemLoyKobAddon.adapter = LoyKobListAdapter(
appProductsDetail.valuePackSecTwoModel.addon, "Addon", type, canSubscribe
) {
ConfirmBuyDataPackActivity.launch(
mContext,
appProductsDetail.name,
appProductsDetail.type,
it.validityDate,
it.valuePrice,
it.priceChange,
it.code,
true
)
}
if (appProductsDetail.valuePackSecTwoModel.addon.size > 0) {
holder.itemView.btn_addon.visibility = View.VISIBLE
if (type == Constant.LoyKob) {
holder.itemView.baseValidity.text =
appProductsDetail.valuePackSecTwoModel.addon[0].validityDate
}
}
}
}
}
class HeaderTitleHolder(var itemView: ItemLayoutLoyKobTitleBinding) :
RecyclerView.ViewHolder(itemView.root)
class HeaderTabHolder(var itemView: ItemLayoutLoyKobTabBinding) :
RecyclerView.ViewHolder(itemView.root)
/* class DataHolder(var itemView: ItemLayoutLoyKobDataBinding) :
RecyclerView.ViewHolder(itemView.root)*/
private fun updateTabLayout(holder: RecyclerView.ViewHolder) {
val defaultColor = ContextCompat.getColor(mContext, R.color.white)
val selectedColor = ContextCompat.getDrawable(mContext, R.drawable.bg_button_round_service)
holder.itemView.btn_plan.setBackgroundColor(defaultColor)
holder.itemView.btn_plan.setTextColor(
ContextCompat.getColor(
mContext, R.color.black
)
)
holder.itemView.btn_package.setBackgroundColor(defaultColor)
holder.itemView.btn_package.setTextColor(
ContextCompat.getColor(
mContext, R.color.black
)
)
when (selectedButton) {
1 -> {
holder.itemView.btn_plan.setBackgroundDrawable(selectedColor)
holder.itemView.btn_plan.setTextColor(
ContextCompat.getColor(
mContext, R.color.white
)
)
}
2 -> {
holder.itemView.btn_package.setBackgroundDrawable(selectedColor)
holder.itemView.btn_package.setTextColor(
ContextCompat.getColor(
mContext, R.color.white
)
)
}
}
}
}
\ No newline at end of file
...@@ -13,11 +13,12 @@ import com.bumptech.glide.Glide ...@@ -13,11 +13,12 @@ import com.bumptech.glide.Glide
import com.seatel.mobilehall.R import com.seatel.mobilehall.R
import com.seatel.mobilehall.ui.base.adapter.BaseAdapter import com.seatel.mobilehall.ui.base.adapter.BaseAdapter
import com.seatel.mobilehall.ui.home.model.AppProductsResponseModel import com.seatel.mobilehall.ui.home.model.AppProductsResponseModel
import kotlinx.android.synthetic.main.item_package_product_service.view.frame_parent
class ProductServicePackageAdapter( class ProductServicePackageAdapter(
private var mContext: Context, private var mContext: Context,
private var productsList: ArrayList<AppProductsResponseModel>, private var productsList: ArrayList<AppProductsResponseModel>,
private var rowClick: (index: AppProductsResponseModel) -> Unit, private var rowClick: (index: AppProductsResponseModel) -> Unit
) : BaseAdapter<ProductServicePackageAdapter.ProductServiceViewHolder>() { ) : BaseAdapter<ProductServicePackageAdapter.ProductServiceViewHolder>() {
private var selectedItemPosition: Int = 0 private var selectedItemPosition: Int = 0
...@@ -42,7 +43,7 @@ class ProductServicePackageAdapter( ...@@ -42,7 +43,7 @@ class ProductServicePackageAdapter(
val serviceModel = productsList[position] val serviceModel = productsList[position]
holder.mTitle.text = serviceModel.name holder.mTitle.text = serviceModel.name
Glide.with(mContext).load(serviceModel.icon).into(holder.mIcon) Glide.with(mContext).load(serviceModel.icon).into(holder.mIcon)
holder.itemView.setOnClickListener { holder.itemView.frame_parent.setOnClickListener {
serviceModel.let(rowClick) serviceModel.let(rowClick)
selectedItemPosition = holder.adapterPosition selectedItemPosition = holder.adapterPosition
notifyDataSetChanged() notifyDataSetChanged()
......
package com.seatel.mobilehall.ui.packages.adapter
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import coil.load
import com.seatel.mobilehall.databinding.LayoutRikReayBinding
import com.seatel.mobilehall.ui.base.adapter.BaseAdapter
import com.seatel.mobilehall.ui.packages.model.RikReayModel
import kotlinx.android.synthetic.main.layout_rik_reay.view.iv_header_banner
import kotlinx.android.synthetic.main.layout_rik_reay.view.iv_sub_header
import kotlinx.android.synthetic.main.layout_rik_reay.view.last_sub_title
import kotlinx.android.synthetic.main.layout_rik_reay.view.last_title
import kotlinx.android.synthetic.main.layout_rik_reay.view.mRecyclerTable
import kotlinx.android.synthetic.main.layout_rik_reay.view.mWebView
import kotlinx.android.synthetic.main.layout_rik_reay.view.tv_content_title
import kotlinx.android.synthetic.main.layout_rik_reay.view.tv_header_description
import kotlinx.android.synthetic.main.layout_rik_reay.view.tv_header_subTitle
import kotlinx.android.synthetic.main.layout_rik_reay.view.tv_header_title
import kotlinx.android.synthetic.main.layout_rik_reay.view.tv_sub_header_subTitle
import kotlinx.android.synthetic.main.layout_rik_reay.view.tv_table_title
class RikReayAdapter(private var rikReayModel: RikReayModel) :
BaseAdapter<RikReayAdapter.ViewHolder>() {
class ViewHolder(var itemView: LayoutRikReayBinding) : RecyclerView.ViewHolder(itemView.root)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RikReayAdapter.ViewHolder {
val binding = LayoutRikReayBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
return ViewHolder(binding)
}
override fun onBindViewHolder(holder: RikReayAdapter.ViewHolder, position: Int) {
holder.itemView.run {
iv_header_banner.load(rikReayModel.backgroundImg) {
crossfade(true)
}
tv_header_title.text = rikReayModel.mainTitle
tv_header_subTitle.text = rikReayModel.mainContent[0].title
tv_header_description.settings.javaScriptEnabled = true
tv_header_description.loadDataWithBaseURL(
null, rikReayModel.mainContent[0].content, "text/html", "UTF-8", null
)
tv_header_description.settings.defaultFontSize = 12
iv_sub_header.load(rikReayModel.mainContent[1].imgurl) {
crossfade(true)
}
tv_sub_header_subTitle.settings.javaScriptEnabled = true
tv_sub_header_subTitle.loadDataWithBaseURL(
null, rikReayModel.mainContent[1].content, "text/html", "UTF-8", null
)
tv_sub_header_subTitle.settings.defaultFontSize = 12
tv_content_title.text = rikReayModel.mainContent[2].title
val htmString = rikReayModel.mainContent[2].content
mWebView.settings.javaScriptEnabled = true
mWebView.loadDataWithBaseURL(null, htmString, "text/html", "UTF-8", null)
mWebView.settings.defaultFontSize = 12
tv_table_title.text = rikReayModel.mainContent[2].tableTitle
mRecyclerTable.adapter = RikReakDetailAdapter(context, rikReayModel)
last_title.text = rikReayModel.mainContent[3].title
last_sub_title.settings.javaScriptEnabled = true
last_sub_title.loadDataWithBaseURL(
null, rikReayModel.mainContent[3].content, "text/html", "UTF-8", null
)
last_sub_title.settings.defaultFontSize = 12
}
}
override fun getItemCount(): Int {
return 1
}
override fun getItemViewType(position: Int): Int {
return position
}
}
\ No newline at end of file
...@@ -53,6 +53,7 @@ import com.seatel.mobilehall.util.SeatelUtils ...@@ -53,6 +53,7 @@ import com.seatel.mobilehall.util.SeatelUtils
import com.seatel.mobilehall.util.customview.ErrorHandleView import com.seatel.mobilehall.util.customview.ErrorHandleView
import com.seatel.mobilehall.util.lang.LanguageManager import com.seatel.mobilehall.util.lang.LanguageManager
import kotlinx.android.synthetic.main.activity_product_service_detail.addon_frame import kotlinx.android.synthetic.main.activity_product_service_detail.addon_frame
import kotlinx.android.synthetic.main.activity_product_service_detail.base_validity
import kotlinx.android.synthetic.main.activity_product_service_detail.btn_benefit import kotlinx.android.synthetic.main.activity_product_service_detail.btn_benefit
import kotlinx.android.synthetic.main.activity_product_service_detail.btn_data_header import kotlinx.android.synthetic.main.activity_product_service_detail.btn_data_header
import kotlinx.android.synthetic.main.activity_product_service_detail.btn_term_condition import kotlinx.android.synthetic.main.activity_product_service_detail.btn_term_condition
...@@ -1719,6 +1720,8 @@ class PackageFragment : BaseFragment(), AppProductsInteractor.View, ...@@ -1719,6 +1720,8 @@ class PackageFragment : BaseFragment(), AppProductsInteractor.View,
adapter = when (valuePackSectionModel.type) { adapter = when (valuePackSectionModel.type) {
"loy-kobs" -> { "loy-kobs" -> {
base_validity.text = valuePackSectionModel.valuePackSecTwoModel.addon[0].validityDate
layoutManager = layoutManager =
LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
LoyKobAddOnAdapter( LoyKobAddOnAdapter(
......
package com.seatel.mobilehall.ui.packages.fragment
import android.content.Context
import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.core.content.ContextCompat
import com.android.volley.Request
import com.android.volley.VolleyError
import com.seatel.mobilehall.R
import com.seatel.mobilehall.data.network.SeatelJSONObjectRequest
import com.seatel.mobilehall.data.network.SeatelSuperRequest
import com.seatel.mobilehall.ui.base.fragment.BaseFragment
import com.seatel.mobilehall.ui.home.activity.SuccessBuyDataPackActivity
import com.seatel.mobilehall.ui.home.interactor.AppProductsInteractor
import com.seatel.mobilehall.ui.home.interactor.ProductServiceButtonClick
import com.seatel.mobilehall.ui.home.interactor.ProductServiceDetailInteractor
import com.seatel.mobilehall.ui.home.model.AppProductsResponseModel
import com.seatel.mobilehall.ui.home.model.ValuePackSectionModel
import com.seatel.mobilehall.ui.home.model.ValuePackTableModel
import com.seatel.mobilehall.ui.home.presenter.AppProductsPresenter
import com.seatel.mobilehall.ui.home.presenter.ProductServiceDetailPrsenter
import com.seatel.mobilehall.ui.packages.adapter.InternationalAdapter
import com.seatel.mobilehall.ui.packages.adapter.LoyKobsAdapter
import com.seatel.mobilehall.ui.packages.adapter.OnePlanDetailAdapter
import com.seatel.mobilehall.ui.packages.adapter.ProductServicePackageAdapter
import com.seatel.mobilehall.ui.packages.adapter.RikReayAdapter
import com.seatel.mobilehall.ui.packages.interactor.RikReayInteractor
import com.seatel.mobilehall.ui.packages.model.RikReayModel
import com.seatel.mobilehall.ui.packages.presenter.RikReayPresenter
import com.seatel.mobilehall.util.Constant
import com.seatel.mobilehall.util.SeatelAlertDialog
import kotlinx.android.synthetic.main.fragment_test.btn_package
import kotlinx.android.synthetic.main.fragment_test.btn_plan
import kotlinx.android.synthetic.main.fragment_test.button_switch_plan
import kotlinx.android.synthetic.main.fragment_test.mRecyclerCategory
import kotlinx.android.synthetic.main.fragment_test.mRecyclerDetail
import org.json.JSONObject
class TestFragment : BaseFragment(), AppProductsInteractor.View,
ProductServiceDetailInteractor.View, RikReayInteractor.View, ProductServiceButtonClick,
View.OnClickListener {
private var TAG = "ProductFragment::>>>"
private var selectedButton = 1
private val mPlanList = ArrayList<AppProductsResponseModel>()
private val mPackageList = ArrayList<AppProductsResponseModel>()
private var mCanSubscribe = false
private var mCanChangePlan = false
private var switchPlanName: String? = null
private var newPlanCode: String? = null
override fun onAttach(context: Context) {
super.onAttach(context)
setmContext(context)
setFragmentLayout(R.layout.fragment_test)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initPresenter()
init()
updateButtonColors()
}
private fun initPresenter() {
// request products list
AppProductsPresenter(requireContext(), this).onGetAppProducts(getPhoneLogin())
}
private fun init() {
btn_plan.setOnClickListener(this)
btn_package.setOnClickListener(this)
button_switch_plan.setOnClickListener(this)
}
// get products list
override fun onGetAppProductsSucceed(appProductsList: ArrayList<AppProductsResponseModel>) {
Log.d(TAG, "responseProductsList: $appProductsList")
mPlanList.clear()
mPackageList.clear()
for (plan in appProductsList) {
if (plan.type == "plan") {
mPlanList.add(plan)
// request products detail
mPlanList.let {
it.forEachIndexed { index, appProductsResponseModel ->
if (index == 0) {
if (appProductsResponseModel.code == "rik-reay") {
RikReayPresenter(requireContext(), this).RikReay()
} else ProductServiceDetailPrsenter(
requireActivity(), this
).onProServiceDetail(plan.code!!, getPhoneLogin())
mCanSubscribe = appProductsResponseModel.canSubscribe!!
mCanChangePlan = appProductsResponseModel.canChangePlan!!
newPlanCode = appProductsResponseModel.subscriptionPlan
switchPlanName = appProductsResponseModel.name
}
}
}
mRecyclerCategory.adapter =
ProductServicePackageAdapter(requireContext(), mPlanList) {
if (it.code!! == "rik-reay") {
RikReayPresenter(requireContext(), this).RikReay()
} else ProductServiceDetailPrsenter(
requireActivity(), this
).onProServiceDetail(it.code!!, getPhoneLogin())
mCanSubscribe = it.canSubscribe!!
mCanChangePlan = it.canChangePlan!!
newPlanCode = it.subscriptionPlan
switchPlanName = it.name
}
} else {
mPackageList.add(plan)
}
}
}
override fun onGetAppProductsFailed(error: VolleyError) {
SeatelAlertDialog.with(requireContext(), SeatelSuperRequest.getErrorMessageFrom(error)).show()
}
override fun buttonActive(
dataValuePack: ValuePackTableModel,
amountMB: String,
pricetMB: String,
account: String,
dayPlan: Int,
type: String
) {
}
override fun confirmBuy(
validity: String, fee: String, data: String, pricePlanCode: String, isAddon: Boolean
) {
}
//get detail of products
override fun onProServiceDetailSucceed(valuePackSectionModel: ValuePackSectionModel) {
Log.d(TAG, "responseProductsDetailList: $valuePackSectionModel")
if (mCanChangePlan) button_switch_plan.visibility = View.VISIBLE
else button_switch_plan.visibility = View.GONE
valuePackSectionModel.let {
when (it.type) {
Constant.LoyKob -> {
mRecyclerDetail.adapter = LoyKobsAdapter(
requireContext(), Constant.LoyKob, mCanSubscribe, valuePackSectionModel
)
}
Constant.OnePlan -> {
mRecyclerDetail.adapter =
OnePlanDetailAdapter(requireContext(), valuePackSectionModel)
}
Constant.InternationalCall -> {
mRecyclerDetail.adapter =
InternationalAdapter(requireContext(), valuePackSectionModel)
}
else -> {
mRecyclerDetail.adapter = LoyKobsAdapter(
requireContext(), "any", mCanSubscribe, valuePackSectionModel
)
}
}
}
}
override fun onProServiceDetailFailed(error: VolleyError) {
SeatelAlertDialog.with(requireContext(), SeatelSuperRequest.getErrorMessageFrom(error)).show()
}
override fun onRikReaySucceed(rikReayModel: RikReayModel) {
Log.d(TAG, "responseRikReay:>>> $rikReayModel ")
if (mCanChangePlan) button_switch_plan.visibility = View.VISIBLE
else button_switch_plan.visibility = View.GONE
mRecyclerDetail.adapter = RikReayAdapter(rikReayModel)
}
override fun onRikReayFailed(error: VolleyError) {
SeatelAlertDialog.with(requireContext(), SeatelSuperRequest.getErrorMessageFrom(error)).show()
}
override fun onClick(v: View?) {
when (v?.id) {
R.id.btn_plan -> {
selectedButton = 1
updateButtonColors()
mRecyclerCategory.adapter =
ProductServicePackageAdapter(requireContext(), mPlanList) {
if (it.code!! == "rik-reay") {
RikReayPresenter(requireContext(), this).RikReay()
} else ProductServiceDetailPrsenter(
requireActivity(), this
).onProServiceDetail(it.code!!, getPhoneLogin())
mCanSubscribe = it.canSubscribe!!
mCanChangePlan = it.canChangePlan!!
newPlanCode = it.subscriptionPlan
switchPlanName = it.name
}
mPlanList.let {
it.forEachIndexed { index, appProductsResponseModel ->
if (index == 0) {
if (appProductsResponseModel.code == "rik-reay") {
RikReayPresenter(requireContext(), this).RikReay()
} else ProductServiceDetailPrsenter(
requireActivity(), this
).onProServiceDetail(appProductsResponseModel.code!!, getPhoneLogin())
mCanSubscribe = appProductsResponseModel.canSubscribe!!
mCanChangePlan = appProductsResponseModel.canChangePlan!!
newPlanCode = appProductsResponseModel.subscriptionPlan
switchPlanName = appProductsResponseModel.name
}
}
}
}
R.id.btn_package -> {
selectedButton = 2
updateButtonColors()
mRecyclerCategory.adapter =
ProductServicePackageAdapter(requireContext(), mPackageList) {
ProductServiceDetailPrsenter(
requireActivity(), this
).onProServiceDetail(it.code!!, getPhoneLogin())
mCanSubscribe = it.canSubscribe!!
mCanChangePlan = it.canChangePlan!!
newPlanCode = it.subscriptionPlan
switchPlanName = it.name
}
mPackageList.let {
it.forEachIndexed { index, appProductsResponseModel ->
if (index == 0) {
ProductServiceDetailPrsenter(
requireActivity(), this
).onProServiceDetail(appProductsResponseModel.code!!, getPhoneLogin())
mCanSubscribe = appProductsResponseModel.canSubscribe!!
mCanChangePlan = appProductsResponseModel.canChangePlan!!
newPlanCode = appProductsResponseModel.subscriptionPlan
switchPlanName = appProductsResponseModel.name
}
}
}
}
R.id.button_switch_plan -> {
SeatelAlertDialog.with(
requireContext(),
"Are you sure you want to switch to the ${switchPlanName.toString()}? Your current plan's benefits will be active until its expiry date."
).setNegativeButton("No") { dialog, _ ->
dialog.dismiss()
}.setPositiveButton("Yes") { _, _ ->
object : SeatelJSONObjectRequest(context) {
override fun getFunctionName(): String {
return "switch-plan"
}
override fun onGetBodyRequest(): String {
val obj = JSONObject()
obj.put("phoneNumber", getPhoneLogin())
obj.put("newPlanCode", newPlanCode)
return obj.toString()
}
override fun getMethod(): Int {
return Request.Method.POST
}
}.setOnErrorListener {
SeatelAlertDialog.with(
requireContext(), SeatelSuperRequest.getErrorMessageFrom(it)
).show()
}.execute {
val message = it as JSONObject
val mMessage = message.optString("message")
SuccessBuyDataPackActivity.launchSwitchPlan(
requireContext(), mMessage.toString()
)
}
}.show()
}
}
}
private fun updateButtonColors() {
val defaultColor = ContextCompat.getColor(requireContext(), R.color.white)
val selectedColor =
ContextCompat.getDrawable(requireContext(), R.drawable.bg_button_round_service)
btn_plan.setBackgroundColor(defaultColor)
btn_plan.setTextColor(ContextCompat.getColor(requireContext(), R.color.black))
btn_package.setBackgroundColor(defaultColor)
btn_package.setTextColor(ContextCompat.getColor(requireContext(), R.color.black))
when (selectedButton) {
1 -> {
btn_plan.setBackgroundDrawable(selectedColor)
btn_plan.setTextColor(ContextCompat.getColor(requireContext(), R.color.white))
}
2 -> {
btn_package.setBackgroundDrawable(selectedColor)
btn_package.setTextColor(ContextCompat.getColor(requireContext(), R.color.white))
}
}
}
}
\ No newline at end of file
...@@ -25,6 +25,7 @@ import com.seatel.mobilehall.ui.home.presenter.AppProductsPresenter ...@@ -25,6 +25,7 @@ import com.seatel.mobilehall.ui.home.presenter.AppProductsPresenter
import com.seatel.mobilehall.util.SeatelUtils import com.seatel.mobilehall.util.SeatelUtils
import com.google.gson.Gson import com.google.gson.Gson
import com.seatel.mobilehall.ui.home.activity.LoyKobActivity import com.seatel.mobilehall.ui.home.activity.LoyKobActivity
import com.seatel.mobilehall.util.Constant
import com.seatel.mobilehall.util.customview.ErrorHandleView import com.seatel.mobilehall.util.customview.ErrorHandleView
import kotlinx.android.synthetic.main.activity_get_more_data.* import kotlinx.android.synthetic.main.activity_get_more_data.*
...@@ -39,7 +40,6 @@ class GetMoreDataActivity : BaseActivity(), AppProductsInteractor.View { ...@@ -39,7 +40,6 @@ class GetMoreDataActivity : BaseActivity(), AppProductsInteractor.View {
var canSubscribe: Boolean = false var canSubscribe: Boolean = false
override fun onGetAppProductsSucceed(appProductsList: ArrayList<AppProductsResponseModel>) { override fun onGetAppProductsSucceed(appProductsList: ArrayList<AppProductsResponseModel>) {
Log.d("---appProductsList", "onGetAppProductsSucceed: ${Gson().toJson(appProductsList)}")
if (appProductsList.size == 0) { if (appProductsList.size == 0) {
isOnlyDisplay = true isOnlyDisplay = true
productService.add( productService.add(
...@@ -65,10 +65,12 @@ class GetMoreDataActivity : BaseActivity(), AppProductsInteractor.View { ...@@ -65,10 +65,12 @@ class GetMoreDataActivity : BaseActivity(), AppProductsInteractor.View {
error_view.errorMessage = getString(R.string.connection_timeout) error_view.errorMessage = getString(R.string.connection_timeout)
error_view.setViewMode(ErrorHandleView.Mode.TIME_OUT) error_view.setViewMode(ErrorHandleView.Mode.TIME_OUT)
} }
is NoConnectionError -> { is NoConnectionError -> {
error_view.errorMessage = getString(R.string.message_no_internet) error_view.errorMessage = getString(R.string.message_no_internet)
error_view.setViewMode(ErrorHandleView.Mode.NO_INTERNET) error_view.setViewMode(ErrorHandleView.Mode.NO_INTERNET)
} }
else -> { else -> {
error_view.errorMessage = getString(R.string.no_data) error_view.errorMessage = getString(R.string.no_data)
error_view.setViewMode(ErrorHandleView.Mode.NO_DATA) error_view.setViewMode(ErrorHandleView.Mode.NO_DATA)
...@@ -89,24 +91,28 @@ class GetMoreDataActivity : BaseActivity(), AppProductsInteractor.View { ...@@ -89,24 +91,28 @@ class GetMoreDataActivity : BaseActivity(), AppProductsInteractor.View {
"one-plan" -> { "one-plan" -> {
OnePlanDetailActivity.lunch(this) OnePlanDetailActivity.lunch(this)
} }
"free-internet-promotion" -> { "free-internet-promotion" -> {
/* FreePromotionDetailActivity.lunch( /* FreePromotionDetailActivity.lunch(
this, this,
getString(R.string.free_internet_promotion) getString(R.string.free_internet_promotion)
)*/ )*/
} }
"international-call" -> { "international-call" -> {
error_view.setViewMode(ErrorHandleView.Mode.LOADING) error_view.setViewMode(ErrorHandleView.Mode.LOADING)
InternationalCallDetailActivity.lunch(this) InternationalCallDetailActivity.lunch(this)
} }
"loy-kobs" -> LoyKobActivity.launch(this, it.canSubscribe!!, it.code!!)
else -> { "loy-kobs" -> LoyKobActivity.launch(
ProductServiceDetailActivity.launch(
this, this,
it.canSubscribe!!, it.canSubscribe!!,
it.code!!,it.name!! it.code!!,
Constant.LoyKob
) )
else -> {
LoyKobActivity.launch(this, it.canSubscribe!!, it.code!!, "Any")
} }
} }
......
...@@ -14,7 +14,6 @@ import com.android.volley.TimeoutError ...@@ -14,7 +14,6 @@ import com.android.volley.TimeoutError
import com.android.volley.VolleyError import com.android.volley.VolleyError
import com.seatel.mobilehall.R import com.seatel.mobilehall.R
import com.seatel.mobilehall.data.network.SeatelSuperRequest import com.seatel.mobilehall.data.network.SeatelSuperRequest
import com.seatel.mobilehall.data.prefs.SeatelSharePreferences
import com.seatel.mobilehall.databinding.FragmentInternetBinding import com.seatel.mobilehall.databinding.FragmentInternetBinding
import com.seatel.mobilehall.ui.base.fragment.BaseFragment import com.seatel.mobilehall.ui.base.fragment.BaseFragment
import com.seatel.mobilehall.ui.login.activity.LoginActivity import com.seatel.mobilehall.ui.login.activity.LoginActivity
...@@ -27,11 +26,12 @@ import com.seatel.mobilehall.util.Constant ...@@ -27,11 +26,12 @@ import com.seatel.mobilehall.util.Constant
import com.seatel.mobilehall.util.SeatelUtils import com.seatel.mobilehall.util.SeatelUtils
import com.seatel.mobilehall.util.customview.ErrorHandleView import com.seatel.mobilehall.util.customview.ErrorHandleView
import com.seatel.mobilehall.util.viewFragmentBinding import com.seatel.mobilehall.util.viewFragmentBinding
import kotlinx.android.synthetic.main.fragment_internet.* import kotlinx.android.synthetic.main.fragment_internet.ctv_min
import kotlinx.android.synthetic.main.fragment_voice.ctv_filter_from import kotlinx.android.synthetic.main.fragment_voice.ctv_filter_from
import kotlinx.android.synthetic.main.fragment_voice.ctv_filter_to import kotlinx.android.synthetic.main.fragment_voice.ctv_filter_to
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.Calendar
import java.util.Locale
class InternetFragment : BaseFragment(), BilingDetailListInteractor.View, View.OnClickListener { class InternetFragment : BaseFragment(), BilingDetailListInteractor.View, View.OnClickListener {
......
package com.seatel.mobilehall.ui.usage package com.seatel.mobilehall.ui.usage.fragement
import android.content.Context import android.content.Context
import android.os.Build import android.os.Build
...@@ -9,14 +9,9 @@ import android.view.ViewGroup ...@@ -9,14 +9,9 @@ import android.view.ViewGroup
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.seatel.mobilehall.R import com.seatel.mobilehall.R
import com.seatel.mobilehall.data.prefs.SeatelSharePreferences
import com.seatel.mobilehall.databinding.FragmentUsageBinding import com.seatel.mobilehall.databinding.FragmentUsageBinding
import com.seatel.mobilehall.ui.base.fragment.BaseFragment import com.seatel.mobilehall.ui.base.fragment.BaseFragment
import com.seatel.mobilehall.ui.main.MainActivity
import com.seatel.mobilehall.ui.usage.adapter.UsageAdapter import com.seatel.mobilehall.ui.usage.adapter.UsageAdapter
import com.seatel.mobilehall.ui.usage.fragement.InternetFragment
import com.seatel.mobilehall.ui.usage.fragement.SMSFragment
import com.seatel.mobilehall.ui.usage.fragement.VoiceFragment
import com.seatel.mobilehall.util.viewFragmentBinding import com.seatel.mobilehall.util.viewFragmentBinding
import kotlinx.android.synthetic.main.fragment_usage.* import kotlinx.android.synthetic.main.fragment_usage.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
......
...@@ -101,7 +101,7 @@ class BilingDetailListPresenter( ...@@ -101,7 +101,7 @@ class BilingDetailListPresenter(
if (data.optJSONObject(i).has("duration")) if (data.optJSONObject(i).has("duration"))
notificationModel.duration = data.optJSONObject(i).optDouble("duration", 0.0) notificationModel.duration = data.optJSONObject(i).optDouble("duration", 0.0)
if (data.optJSONObject(i).has("cost")) if (data.optJSONObject(i).has("cost"))
notificationModel.cost = data.optJSONObject(i).optDouble("cost", 0.0) notificationModel.cost = data.optJSONObject(i).optDouble("cost")
if (data.optJSONObject(i).has("used")) if (data.optJSONObject(i).has("used"))
notificationModel.used = data.optJSONObject(i).optDouble("used", 0.0) notificationModel.used = data.optJSONObject(i).optDouble("used", 0.0)
......
...@@ -260,6 +260,15 @@ object Constant { ...@@ -260,6 +260,15 @@ object Constant {
const val INTERNET = "internet" const val INTERNET = "internet"
const val SMS = "sms" const val SMS = "sms"
/**
* Plans & packages
*/
const val LoyKob = "loy-kobs"
const val RikReay = "rik-reay"
const val OnePlan = "one-plan"
const val InternationalCall = "international-call"
/** /**
* MySubscription * MySubscription
*/ */
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorPrimary" />
<corners
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke
android:width="3dp"
android:color="@color/button_behind" />
</shape>
\ No newline at end of file
...@@ -35,7 +35,6 @@ ...@@ -35,7 +35,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:text="@string/buy_data_pack"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textSize="@dimen/large_text_size" /> android:textSize="@dimen/large_text_size" />
...@@ -45,7 +44,6 @@ ...@@ -45,7 +44,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:text="$5.00"
android:textAlignment="center" android:textAlignment="center"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textSize="@dimen/xxx_large_text_size" /> android:textSize="@dimen/xxx_large_text_size" />
...@@ -77,7 +75,6 @@ ...@@ -77,7 +75,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:text="018 902 0709"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textSize="@dimen/xxx_large_text_size" /> android:textSize="@dimen/xxx_large_text_size" />
...@@ -89,7 +86,6 @@ ...@@ -89,7 +86,6 @@
android:layout_marginStart="25dp" android:layout_marginStart="25dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginEnd="25dp" android:layout_marginEnd="25dp"
android:text="We'll deduct $10 USD from your main balance"
android:textAlignment="center" android:textAlignment="center"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textSize="@dimen/large_text_size" /> android:textSize="@dimen/large_text_size" />
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
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"
android:background="@color/white"> android:background="@color/white">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/ivMainImage"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/mainTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="@dimen/margin_1x_size"
android:textColor="@color/colorPrimary"
android:textSize="25sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ivMainImage" />
<TextView
android:id="@+id/subTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/mainTitle" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_tab"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:layout_marginTop="@dimen/margin_3x_size"
android:background="@color/colorItemDataPack"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/subTitle">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorItemDataPack"
android:orientation="horizontal">
<com.seatel.mobilehall.util.customview.CustomButton
android:id="@+id/btn_benefit"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/bg_button_cart"
android:gravity="center"
android:tag="BUTTON_BENEFIT"
android:text="@string/benefits"
android:textAllCaps="true"
android:textColor="@color/colorPrimary"
android:textStyle="bold" />
<com.seatel.mobilehall.util.customview.CustomButton
android:id="@+id/btn_term_condition"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:tag="BUTTON_TERM_CONDITION"
android:text="@string/terms_and_condition"
android:textAllCaps="true"
android:textStyle="bold" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/frame_benefit"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="12dp"
android:orientation="vertical"
app:layout_constraintTop_toBottomOf="@+id/layout_tab"
tools:layout_editor_absoluteX="109dp">
<LinearLayout
android:id="@+id/ln_tab"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:layout_marginTop="@dimen/margin_1x_size"
android:background="#5BE91E63"
android:orientation="horizontal"
android:padding="@dimen/margin_1x_size"
app:layout_constraintTop_toTopOf="parent">
<com.seatel.mobilehall.util.customview.CustomButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/colorPrimary"
android:gravity="center"
android:padding="@dimen/margin_1x_size"
android:text="Fee"
android:textAllCaps="true"
android:textColor="@color/white"
android:textSize="@dimen/small_text_size"
android:textStyle="bold" />
<com.seatel.mobilehall.util.customview.CustomButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="2dp"
android:layout_weight="1"
android:background="@color/colorPrimary"
android:gravity="center"
android:padding="@dimen/margin_1x_size"
android:text="Data"
android:textAllCaps="true"
android:textColor="@color/white"
android:textSize="@dimen/small_text_size"
android:textStyle="bold" />
<com.seatel.mobilehall.util.customview.CustomButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="2dp"
android:layout_weight="1"
android:background="@color/colorPrimary"
android:gravity="center"
android:padding="@dimen/margin_1x_size"
android:text="Call&amp;SMS"
android:textAllCaps="true"
android:textColor="@color/white"
android:textSize="@dimen/small_text_size"
android:textStyle="bold" />
<com.seatel.mobilehall.util.customview.CustomButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="2dp"
android:layout_weight="1"
android:background="@color/colorPrimary"
android:gravity="center"
android:text="Validity"
android:textAllCaps="true"
android:textColor="@color/white"
android:textSize="@dimen/small_text_size"
android:textStyle="bold" />
<com.seatel.mobilehall.util.customview.CustomButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="2dp"
android:layout_weight="1"
android:background="@color/colorPrimary"
android:gravity="center"
android:text="Activation"
android:textAllCaps="true"
android:textColor="@color/white"
android:textSize="@dimen/small_text_size"
android:textStyle="bold" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/mRecyclerLoyKob" android:id="@+id/recyclerItemLoyKob"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:nestedScrollingEnabled="false" android:nestedScrollingEnabled="true"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintTop_toBottomOf="@+id/ln_tab" /> app:layout_constraintTop_toTopOf="parent" />
<RelativeLayout
android:id="@+id/addon_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_2x_size"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/mRecyclerLoyKob">
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_add_on"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@drawable/bg_button_primary"
android:gravity="center"
android:padding="@dimen/margin_2x_size"
android:text="Add-on package"
android:textColor="@color/white"
android:textSize="@dimen/extra_large_text_size"
android:textStyle="bold" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/mRecyclerLoyKobAddOn"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tv_add_on"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/margin_1x_size"
android:nestedScrollingEnabled="false"
android:paddingBottom="@dimen/margin_1x_size" />
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/frame_term_condition"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/margin_1x_size"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@+id/layout_tab">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/mRecyclerTermCondition"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:nestedScrollingEnabled="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_add_on_term_condition"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_1x_size"
android:layout_marginTop="@dimen/margin_1x_size"
android:text="Add on Terms &amp; Conditions"
android:textSize="@dimen/large_text_size"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/mRecyclerTermCondition" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/mRecyclerAddOnTermCondition"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/margin_1x_size"
android:nestedScrollingEnabled="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintTop_toBottomOf="@+id/tv_add_on_term_condition" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>
</ScrollView>
<com.seatel.mobilehall.util.customview.ErrorHandleView <com.seatel.mobilehall.util.customview.ErrorHandleView
android:id="@+id/error_view" android:id="@+id/error_view"
......
...@@ -223,6 +223,18 @@ ...@@ -223,6 +223,18 @@
android:nestedScrollingEnabled="false" android:nestedScrollingEnabled="false"
android:paddingBottom="@dimen/margin_1x_size" /> android:paddingBottom="@dimen/margin_1x_size" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/base_validity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/mRecyclerAddOn"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textStyle="bold"
/>
</RelativeLayout> </RelativeLayout>
......
...@@ -374,13 +374,13 @@ ...@@ -374,13 +374,13 @@
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:layout_width="0dp" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_weight="2" android:layout_weight="2"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/view_balance_total" app:layout_constraintStart_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<RelativeLayout <RelativeLayout
...@@ -423,6 +423,19 @@ ...@@ -423,6 +423,19 @@
</RelativeLayout> </RelativeLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignParentEnd="true"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:background="@drawable/bg_button_primary"
android:padding="5dp"
android:text="Click Here"
android:textColor="@color/white"
android:textSize="10sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
...@@ -469,23 +482,61 @@ ...@@ -469,23 +482,61 @@
app:layout_constraintBottom_toBottomOf="@+id/view2" app:layout_constraintBottom_toBottomOf="@+id/view2"
app:layout_constraintStart_toEndOf="@+id/view2" /> app:layout_constraintStart_toEndOf="@+id/view2" />
<RelativeLayout
android:id="@+id/frame_topup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view2">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="10dp"
app:cardBackgroundColor="@color/colorPrimary"
app:cardCornerRadius="10dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignParentEnd="true"
android:layout_marginTop="10dp"
android:layout_marginEnd="5dp"
android:background="@drawable/bg_box_white_stroke_primary"
android:padding="5dp"
android:text="Click Here"
android:textColor="@color/colorPrimary"
android:textSize="10sp" />
<ImageView <ImageView
android:id="@+id/imageBuyTopup" android:id="@+id/imageBuyTopup"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="100dp" android:layout_height="100dp"
android:padding="3dp"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:tag="BUYTOPUPCARD" android:tag="BUYTOPUPCARD" />
app:layout_constraintEnd_toEndOf="parent" </RelativeLayout>
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view2" />
</androidx.cardview.widget.CardView>
</RelativeLayout>
<FrameLayout <FrameLayout
android:id="@+id/frame_video_view" android:id="@+id/frame_video_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/margin_1x_size" android:padding="@dimen/margin_1x_size"
app:layout_constraintTop_toBottomOf="@+id/imageBuyTopup"> app:layout_constraintTop_toBottomOf="@+id/frame_topup">
<com.google.android.exoplayer2.ui.PlayerView <com.google.android.exoplayer2.ui.PlayerView
...@@ -530,15 +581,51 @@ ...@@ -530,15 +581,51 @@
app:layout_constraintBottom_toBottomOf="@+id/view4" app:layout_constraintBottom_toBottomOf="@+id/view4"
app:layout_constraintStart_toEndOf="@+id/view4" /> app:layout_constraintStart_toEndOf="@+id/view4" />
<RelativeLayout
android:id="@+id/frame_buyNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view4">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="10dp"
app:cardBackgroundColor="@color/colorPrimary"
app:cardCornerRadius="10dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignParentEnd="true"
android:layout_marginTop="10dp"
android:layout_marginEnd="5dp"
android:background="@drawable/bg_box_white_stroke_primary"
android:padding="5dp"
android:text="Click Here"
android:textColor="@color/colorPrimary"
android:textSize="10sp" />
<ImageView <ImageView
android:id="@+id/image_buy_number" android:id="@+id/image_buy_number"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="100dp" android:layout_height="100dp"
android:padding="3dp" android:padding="3dp"
android:tag="BUYYESNUMBER" android:tag="BUYYESNUMBER"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent" />
app:layout_constraintTop_toBottomOf="@+id/view4" /> </RelativeLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
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"
tools:context=".ui.packages.fragment.PackageFragment"> >
<androidx.appcompat.widget.Toolbar <androidx.appcompat.widget.Toolbar
android:id="@+id/mToolbar" android:id="@+id/mToolbar"
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/mToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimaryDark"
app:layout_constraintTop_toTopOf="parent">
<com.seatel.mobilehall.util.customview.CustomTextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/product_and_service"
android:textColor="@color/white"
android:textSize="@dimen/large_text_size"
android:textStyle="bold" />
</androidx.appcompat.widget.Toolbar>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimaryDark"
android:padding="10dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbar">
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/find"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/find"
android:textColor="@color/white"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/the_best"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/one_for_you"
android:textColor="@color/white"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/find" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/yes_you_ll_love_it"
android:textColor="@color/white"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/the_best" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/mTabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_button_service"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/layout_header">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="45dp"
android:orientation="horizontal"
android:padding="@dimen/margin_1x_size">
<Button
android:id="@+id/btn_plan"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Price Plans"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp" />
<Button
android:id="@+id/btn_package"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Packages"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/mRecyclerCategory"
android:layout_width="70dp"
android:layout_height="0dp"
android:background="@color/colorBgWhiteGray"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/mTabLayout" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/mRecyclerDetail"
android:layout_width="0dp"
android:layout_height="0dp"
android:nestedScrollingEnabled="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintBottom_toTopOf="@+id/button_switch_plan"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/mRecyclerCategory"
app:layout_constraintTop_toBottomOf="@+id/mTabLayout"
app:layout_constraintVertical_bias="0.519" />
<Button
android:id="@+id/button_switch_plan"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginStart="70dp"
android:background="@color/colorPrimary"
android:text="Switch to this plan"
android:textColor="@color/white"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -24,9 +21,7 @@ ...@@ -24,9 +21,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_below="@+id/img_international_call_detail" android:layout_below="@+id/img_international_call_detail"
android:layout_marginStart="20dp"
android:layout_marginTop="@dimen/top_padding" android:layout_marginTop="@dimen/top_padding"
android:layout_marginEnd="20dp"
android:layout_marginBottom="30dp" android:layout_marginBottom="30dp"
android:orientation="vertical"> android:orientation="vertical">
...@@ -126,7 +121,7 @@ ...@@ -126,7 +121,7 @@
</RelativeLayout> </RelativeLayout>
</ScrollView>
<com.seatel.mobilehall.util.customview.ErrorHandleView <com.seatel.mobilehall.util.customview.ErrorHandleView
android:id="@+id/error_view" android:id="@+id/error_view"
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp">
<LinearLayout
android:id="@+id/mTabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_button_service"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="45dp"
android:orientation="horizontal"
android:padding="@dimen/margin_1x_size">
<Button
android:id="@+id/btn_plan"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Benefits"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp" />
<Button
android:id="@+id/btn_package"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Terms &amp; Conditions"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerTermCondition"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintTop_toBottomOf="@+id/mTabLayout" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/container_benefit"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintTop_toBottomOf="@+id/mTabLayout">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/tabHeader"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="45dp"
android:background="@color/button_behind"
android:orientation="horizontal"
android:padding="3dp"
app:layout_constraintTop_toTopOf="parent">
<com.seatel.mobilehall.util.customview.CustomButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginEnd="3dp"
android:layout_weight="1"
android:background="@color/colorPrimary"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:orientation="vertical"
android:text="Fee"
android:textColor="@color/white"
android:textSize="12sp"
android:textStyle="bold">
</com.seatel.mobilehall.util.customview.CustomButton>
<com.seatel.mobilehall.util.customview.CustomButton
android:id="@+id/btn_data"
android:layout_width="400dp"
android:layout_height="match_parent"
android:layout_marginEnd="3dp"
android:layout_weight="1"
android:background="@color/colorPrimary"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:orientation="vertical"
android:text="Benefit offer"
android:textColor="@color/white"
android:textSize="12sp"
android:textStyle="bold">
</com.seatel.mobilehall.util.customview.CustomButton>
<com.seatel.mobilehall.util.customview.CustomButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginEnd="3dp"
android:layout_weight="1"
android:background="@color/colorPrimary"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:orientation="vertical"
android:text="Validity"
android:textColor="@color/white"
android:textSize="12sp"
android:textStyle="bold">
</com.seatel.mobilehall.util.customview.CustomButton>
<com.seatel.mobilehall.util.customview.CustomButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/colorPrimary"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:orientation="vertical"
android:text="Activation"
android:textColor="@color/white"
android:textSize="12sp"
android:textStyle="bold">
</com.seatel.mobilehall.util.customview.CustomButton>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerItemLoyKob"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:nestedScrollingEnabled="true"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintTop_toBottomOf="@+id/tabHeader" />
<com.seatel.mobilehall.util.customview.CustomButton
android:id="@+id/btn_addon"
android:layout_width="200dp"
android:layout_height="40sp"
android:layout_marginTop="5dp"
android:background="@drawable/bg_button_round_service"
android:gravity="center"
android:padding="10dp"
android:text="Add-on Package"
android:textAllCaps="false"
android:textColor="@color/white"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/recyclerItemLoyKob" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerItemLoyKobAddon"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="5dp"
android:nestedScrollingEnabled="true"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintTop_toBottomOf="@+id/btn_addon" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/baseValidity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:textColor="@color/colorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/recyclerItemLoyKobAddon" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/loyKobTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello World"
android:textColor="@color/colorPink"
android:textSize="25sp"
android:textStyle="bold" />
<TextView
android:id="@+id/loyKobDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="5dp"
android:text="Hello World" />
</LinearLayout>
\ No newline at end of file
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<LinearLayout <LinearLayout
android:id="@+id/ln_table"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?actionBarSize" android:layout_height="?actionBarSize"
android:background="#5BE91E63" android:background="#5BE91E63"
...@@ -51,8 +52,8 @@ ...@@ -51,8 +52,8 @@
android:layout_weight="1" android:layout_weight="1"
android:background="@color/white" android:background="@color/white"
android:gravity="center" android:gravity="center"
android:visibility="gone" android:orientation="vertical"
android:orientation="vertical"> android:visibility="gone">
<com.seatel.mobilehall.util.customview.CustomButton <com.seatel.mobilehall.util.customview.CustomButton
android:id="@+id/btn_call_min" android:id="@+id/btn_call_min"
...@@ -135,4 +136,5 @@ ...@@ -135,4 +136,5 @@
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/button_behind"
android:orientation="horizontal"
android:padding="2dp"
app:layout_constraintTop_toTopOf="parent">
<com.seatel.mobilehall.util.customview.CustomButton
android:id="@+id/btnFee"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/white"
android:gravity="center"
android:orientation="vertical"
android:textColor="@color/colorPrimary"
android:textSize="10sp"
android:textStyle="bold">
</com.seatel.mobilehall.util.customview.CustomButton>
<com.seatel.mobilehall.util.customview.CustomButton
android:id="@+id/btnBenefit"
android:layout_width="400dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/white"
android:gravity="center"
android:orientation="vertical"
android:textColor="@color/colorPrimary"
android:textSize="10sp"
android:textStyle="bold">
</com.seatel.mobilehall.util.customview.CustomButton>
<com.seatel.mobilehall.util.customview.CustomButton
android:id="@+id/btnValidity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/white"
android:gravity="center"
android:orientation="vertical"
android:textColor="@color/colorPrimary"
android:textSize="10sp"
android:textStyle="bold">
</com.seatel.mobilehall.util.customview.CustomButton>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/white"
android:gravity="center"
android:orientation="vertical">
<com.seatel.mobilehall.util.customview.CustomButton
android:id="@+id/btn_click"
android:layout_width="match_parent"
android:layout_height="15dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:background="@drawable/bg_button_primary"
android:gravity="center"
android:text="Click"
android:textColor="@color/white"
android:textSize="10sp"
android:textStyle="bold"
android:visibility="gone" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/btnActivation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:gravity="center"
android:text="hello"
android:textColor="@color/colorPrimary"
android:textSize="10sp"
android:textStyle="bold">
</com.seatel.mobilehall.util.customview.CustomTextView>
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -4,9 +4,7 @@ ...@@ -4,9 +4,7 @@
android:id="@+id/frame_parent" android:id="@+id/frame_parent"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground" android:background="?android:attr/selectableItemBackground">
android:padding="@dimen/margin_1x_size">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -15,9 +13,10 @@ ...@@ -15,9 +13,10 @@
<ImageView <ImageView
android:id="@+id/ivIcon" android:id="@+id/ivIcon"
android:layout_width="40dp" android:layout_width="50dp"
android:layout_height="40dp" android:layout_height="50dp"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
...@@ -25,7 +24,7 @@ ...@@ -25,7 +24,7 @@
<com.seatel.mobilehall.util.customview.CustomTextView <com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tvTitle" android:id="@+id/tvTitle"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/ivIcon" android:layout_below="@+id/ivIcon"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
......
...@@ -3,24 +3,21 @@ ...@@ -3,24 +3,21 @@
xmlns:app="http://schemas.android.com/apk/res-auto" 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="wrap_content">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView <ImageView
android:scaleType="centerCrop"
android:id="@+id/iv_header_banner" android:id="@+id/iv_header_banner"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="200dp" /> android:layout_height="200dp"
android:scaleType="centerCrop" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -181,8 +178,7 @@ ...@@ -181,8 +178,7 @@
<WebView <WebView
android:id="@+id/last_sub_title" android:id="@+id/last_sub_title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content" />
/>
</LinearLayout> </LinearLayout>
...@@ -193,6 +189,4 @@ ...@@ -193,6 +189,4 @@
</LinearLayout> </LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -12,13 +12,13 @@ ...@@ -12,13 +12,13 @@
<fragment <fragment
android:id="@+id/navigation_package" android:id="@+id/navigation_package"
android:name="com.seatel.mobilehall.ui.packages.fragment.PackageFragment" android:name="com.seatel.mobilehall.ui.packages.fragment.TestFragment"
android:label="@string/nav_package" android:label="@string/nav_package"
tools:layout="@layout/fragment_package" /> tools:layout="@layout/fragment_package" />
<fragment <fragment
android:id="@+id/navigation_usage" android:id="@+id/navigation_usage"
android:name="com.seatel.mobilehall.ui.usage.UsageFragment" android:name="com.seatel.mobilehall.ui.usage.fragement.UsageFragment"
android:label="@string/nav_usage" android:label="@string/nav_usage"
tools:layout="@layout/fragment_usage" /> tools:layout="@layout/fragment_usage" />
......
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
<color name="colorValentineTransparent">#66000000</color> <color name="colorValentineTransparent">#66000000</color>
<color name="color_claim_gray">#BFBFBF</color> <color name="color_claim_gray">#BFBFBF</color>
<color name="color_ang_pao_bg">#FBC3E5</color> <color name="color_ang_pao_bg">#FBC3E5</color>
<color name="button_behind">#FACCE8</color>
</resources> </resources>
\ No newline at end of file
...@@ -10,7 +10,7 @@ buildscript { ...@@ -10,7 +10,7 @@ buildscript {
dependencies { dependencies {
classpath "io.realm:realm-gradle-plugin:10.11.1" classpath "io.realm:realm-gradle-plugin:10.11.1"
classpath 'com.google.gms:google-services:4.3.15' classpath 'com.google.gms:google-services:4.3.15'
classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version" // classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
} }
} }
......
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