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 {
id 'kotlin-android-extensions'
id 'org.jetbrains.kotlin.kapt'
id 'com.google.gms.google-services'
id 'dagger.hilt.android.plugin'
//id 'dagger.hilt.android.plugin'
}
apply plugin: "realm-android"
......@@ -157,22 +157,22 @@ dependencies {
// implementation 'io.realm.kotlin:library-sync:1.8.0'
// Hilt
implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
// implementation "com.google.dagger:hilt-android:$hilt_version"
// kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
// Coroutines
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-core:1.3.9'
// implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9'
// Coroutine Lifecycle Scopes
implementation "androidx.lifecycle:lifecycle-viewmodel-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-viewmodel-ktx:2.2.0"
// implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0"
// implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.1'
// Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation "com.squareup.okhttp3:logging-interceptor:4.7.2"
// implementation 'com.squareup.retrofit2:retrofit:2.9.0'
// implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
// 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-ktx:2.1.0")
......
......@@ -31,6 +31,11 @@
<uses-permission android:name="android.permission.VIBRATE" />
<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
android:name=".ui.application.MyApplication"
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
import androidx.multidex.MultiDex
import androidx.multidex.MultiDexApplication
import com.facebook.drawee.backends.pipeline.Fresco
import dagger.hilt.android.HiltAndroidApp
import io.realm.Realm
import io.realm.RealmConfiguration
@HiltAndroidApp
class MyApplication : MultiDexApplication() {
......@@ -61,7 +60,7 @@ class MyApplication : MultiDexApplication() {
var appRunning = false
lateinit var appContext: Context
lateinit var appContext: Context
}
override fun attachBaseContext(base: Context?) {
......
......@@ -11,22 +11,27 @@ import android.text.style.StyleSpan
import android.util.Log
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import com.android.volley.VolleyError
import com.google.gson.Gson
import com.seatel.mobilehall.R
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.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.presenter.BuyDataPackFreedomPresenter
import com.seatel.mobilehall.util.Constant
import com.seatel.mobilehall.util.SeatelAlertDialog
import com.seatel.mobilehall.util.SeatelUtils
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
class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor.View {
......@@ -56,6 +61,8 @@ class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor.
private var pricePlanCode: String = ""
private var requestTime: String? = null
// private var valuePackSectionModel: ValuePackSectionModel? = null
override fun onBuyDataSucceed() {
SuccessBuyDataPackActivity.launch(this, name, data, isAddON)/* if (isValuePack || isFortunePlan || isVipFortunePlan) mDataValuePack?.let {
......@@ -92,7 +99,12 @@ class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor.
} 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)
/*if (mAmountPost == 0.5 && !isValuePack && !isFortunePlan) {
......@@ -433,6 +445,12 @@ class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor.
else ctv_buy_data.text = SeatelUtils.translatForDialog(this, "Buy $name")
cv_data_buy.text = SeatelUtils.translatForDialog(this, "$fee")
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 = "${
SeatelUtils.translatForDialog(
this, getString(R.string.we_will_deduct)
......@@ -477,6 +495,12 @@ class ConfirmBuyDataPackActivity : BaseActivity(), BuyDataPackFreedomInteractor.
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(
context: Context,
name: String,
......
......@@ -3,32 +3,33 @@ package com.seatel.mobilehall.ui.home.activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import com.android.volley.NoConnectionError
import com.android.volley.TimeoutError
import com.android.volley.VolleyError
import com.seatel.mobilehall.R
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.ProductServiceDetailInteractor
import com.seatel.mobilehall.ui.home.model.ValuePackSectionModel
import com.seatel.mobilehall.ui.home.model.ValuePackTableModel
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 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 {
private var TAG = "LoyKobActivity::>>>"
private var mPlanCode: String? = null
private var canSubscribe: Boolean = false
private var valueData: String? = null
private var name: String? = null
private var planType: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
......@@ -42,62 +43,26 @@ class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View
private fun getDataIntent() {
canSubscribe = intent.getBooleanExtra("CAN_SUBSCRIBE", false)
mPlanCode = intent.getStringExtra("PLAN_CODE")
planType = intent.getStringExtra("planType")
}
private fun init() {
ProductServiceDetailPrsenter(this, this).onProServiceDetail(mPlanCode!!,getPhoneLogin())
btn_benefit.setOnClickListener(this)
btn_term_condition.setOnClickListener(this)
ProductServiceDetailPrsenter(this, this).onProServiceDetail(mPlanCode!!, getPhoneLogin())
}
override fun onProServiceDetailSucceed(valuePackSectionModel: ValuePackSectionModel) {
Log.d(TAG, "responseData:>>> $valuePackSectionModel")
error_view.visibility = View.GONE
if (valuePackSectionModel.valuePackSecTwoModel.addon.size > 0)
addon_frame.visibility = View.VISIBLE
else
addon_frame.visibility = View.GONE
valueData = valuePackSectionModel.type
name = valuePackSectionModel.name
tv_add_on_term_condition.text = "Add-on Terms & Conditions"
setupTitle(valuePackSectionModel)
setupDataList(valuePackSectionModel)
}
if (planType.equals(Constant.LoyKob)) {
recyclerItemLoyKob.adapter =
LoyKobsAdapter(this, Constant.LoyKob, canSubscribe, valuePackSectionModel)
} else
recyclerItemLoyKob.adapter =
LoyKobsAdapter(this, "Any", canSubscribe, 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> {
val data = ArrayList<String>()
......@@ -111,10 +76,12 @@ class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View
error_view.errorMessage = getString(R.string.connection_timeout)
error_view.setViewMode(ErrorHandleView.Mode.TIME_OUT)
}
is NoConnectionError -> {
error_view.errorMessage = getString(R.string.message_no_internet)
error_view.setViewMode(ErrorHandleView.Mode.NO_INTERNET)
}
else -> {
error_view.errorMessage = getString(R.string.no_data)
error_view.setViewMode(ErrorHandleView.Mode.NO_DATA)
......@@ -123,45 +90,23 @@ class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View
}
override fun getToolbarTitle(): String {
return "Loy Kob"
}
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))
}
mPlanCode = intent.getStringExtra("PLAN_CODE")
return when (mPlanCode) {
Constant.LoyKob -> "Loy Kob"
"internet-pack" -> "Data Pack"
else -> mPlanCode.toString()
}
}
companion object {
fun launch(
context: Context, canSubscribe: Boolean, planCode: String
context: Context, canSubscribe: Boolean, planCode: String, planType: String
) {
val intent = Intent(context, LoyKobActivity::class.java)
intent.putExtra("PLAN_CODE", planCode)
intent.putExtra("CAN_SUBSCRIBE", canSubscribe)
intent.putExtra("planType", planType)
context.startActivity(intent)
}
......@@ -196,6 +141,7 @@ class LoyKobActivity : BaseActivity(), ProductServiceDetailInteractor.View, View
pricePlanCode,
true
)
else -> ConfirmBuyDataPackActivity.launch(
this,
name!!,
......
......@@ -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.model.AppProductsResponseModel
import com.seatel.mobilehall.ui.home.presenter.AppProductsPresenter
import com.seatel.mobilehall.util.Constant
import com.seatel.mobilehall.util.customview.ErrorHandleView
import kotlinx.android.synthetic.main.activity_product_service.*
......@@ -46,15 +47,19 @@ class ProductServiceActivity : BaseActivity(), AppProductsInteractor.View {
"one-plan" -> {
OnePlanDetailActivity.lunch(this)
}
"international-call" -> {
error_view.setViewMode(ErrorHandleView.Mode.LOADING)
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 {
error_view.errorMessage = getString(R.string.connection_timeout)
error_view.setViewMode(ErrorHandleView.Mode.TIME_OUT)
}
is NoConnectionError -> {
error_view.errorMessage = getString(R.string.message_no_internet)
error_view.setViewMode(ErrorHandleView.Mode.NO_INTERNET)
}
else -> {
error_view.errorMessage = getString(R.string.no_data)
error_view.setViewMode(ErrorHandleView.Mode.NO_DATA)
......
......@@ -125,7 +125,7 @@ class ProductServiceDetailActivity : BaseActivity(), View.OnClickListener,
valueData = valuePackSectionModel.type
name = valuePackSectionModel.name
setupTitle(valuePackSectionModel)
setupDataList(valuePackSectionModel)
(valuePackSectionModel)
}
private fun setupTitle(valuePackSectionModel: ValuePackSectionModel) {
......
......@@ -9,10 +9,8 @@ import com.seatel.mobilehall.databinding.ItemHomeImageSliderBinding
import com.seatel.mobilehall.ui.home.model.BannersModel
import com.seatel.mobilehall.ui.login.activity.TermsAndConditionsActivity
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>() {
private var mSliderItems = mutableListOf<BannersModel>()
......
......@@ -56,7 +56,7 @@ class LoyKobAddOnAdapter(
callSmsData = it.toString()
}
holder.mData.text = mAddOnList.priceChange.toString() + callSmsData
holder.mValidity.text = mAddOnList.validityDate
// holder.mValidity.text = mAddOnList.validityDate
holder.mActivateCode.text = mAddOnList.activation
/*if (mAddOnList.callsmsList != null && mAddOnList.callsmsList.size > 0) {
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
import android.view.ViewGroup
import android.widget.RelativeLayout
import android.widget.Toast
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import coil.load
import coil.transform.CircleCropTransformation
......@@ -30,7 +29,6 @@ import com.seatel.mobilehall.R
import com.seatel.mobilehall.data.network.SeatelJSONArrayRequest
import com.seatel.mobilehall.data.network.SeatelJSONObjectRequest
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.databinding.FragmentHomeBinding
import com.seatel.mobilehall.ui.application.MyApplication
......@@ -72,26 +70,22 @@ import com.seatel.mobilehall.util.SeatelAlertDialog
import com.seatel.mobilehall.util.SeatelUtils
import com.seatel.mobilehall.util.lang.FirstLoginPreference
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.viewFragmentBinding
import com.smarteist.autoimageslider.IndicatorView.animation.type.IndicatorAnimationType
import com.smarteist.autoimageslider.SliderAnimations
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.JSONObject
import javax.inject.Inject
@AndroidEntryPoint
class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.View,
CategoryInteractor.View, BadgesCountInteractor.View {
private var TAG = javaClass.simpleName
private lateinit var viewModel: HomeViewModel
private val binding by viewFragmentBinding(
FragmentHomeBinding::inflate
)
private var cartCount = MyApplication.badgeCartCount
private var dataMainScreen: MainDataModel? = null
......@@ -106,11 +100,6 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
private var token: String = ""
private val binding by viewFragmentBinding(
FragmentHomeBinding::inflate
)
@Inject
lateinit var homeImageSliderAdapter: HomeImageSliderAdapter
lateinit var categoryAdapter: CategoryAdapter
......@@ -139,13 +128,6 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
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>>) {
when (resource) {
......@@ -494,14 +476,15 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
}
/* override fun onDestroy() {
// binding.homeImageSlider.stopAutoCycle()
}*/
/* override fun onDestroy() {
// binding.homeImageSlider.stopAutoCycle()
}*/
override fun onGetBannersSucceed(bannersList: ArrayList<BannersModel>) {
binding.run {
bannersList.let {
it.run {
homeImageSliderAdapter = HomeImageSliderAdapter(requireContext())
homeImageSliderAdapter.addItem(it)
homeImageSlider.setSliderAdapter(homeImageSliderAdapter)
homeImageSlider.setIndicatorAnimation(IndicatorAnimationType.WORM)
......@@ -515,7 +498,8 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
}
override fun onGetBannersFailed(error: VolleyError) {
SeatelAlertDialog.with(requireContext(), SeatelSuperRequest.getErrorMessageFrom(error))
.show()
}
......@@ -578,7 +562,7 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
}
override fun onGetCategoryFailed(error: VolleyError) {
// SeatelAlertDialog.with(requireContext(), SeatelSuperRequest.getErrorMessageFrom(error)).show()
}
......@@ -664,7 +648,8 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
}
override fun responseCountFail(error: VolleyError) {
SeatelAlertDialog.with(requireContext(), SeatelSuperRequest.getErrorMessageFrom(error))
.show()
}
private fun setBadgesCount(notificationCount: Int, cartCount: Int) {
......
......@@ -3,7 +3,9 @@ package com.seatel.mobilehall.ui.home.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class DataPackSecThreeModel {
import java.io.Serializable;
public class DataPackSecThreeModel implements Serializable {
@SerializedName("description")
@Expose
private String description;
......
package com.seatel.mobilehall.ui.home.model;
public class OnePlanDetailSecOneModel {
import java.io.Serializable;
public class OnePlanDetailSecOneModel implements Serializable {
private String mobileImageUrl;
private String desktopImageUrl;
private String imageUrl;
......
......@@ -3,9 +3,10 @@ package com.seatel.mobilehall.ui.home.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
import java.util.List;
public class ValuePackSecTwoModel {
public class ValuePackSecTwoModel implements Serializable {
@SerializedName("title")
@Expose
private String title;
......
......@@ -3,7 +3,9 @@ package com.seatel.mobilehall.ui.home.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class ValuePackSectionModel {
import java.io.Serializable;
public class ValuePackSectionModel implements Serializable {
@SerializedName("section1")
@Expose
private OnePlanDetailSecOneModel dataPackDetailSecOneModel;
......
......@@ -3,9 +3,10 @@ package com.seatel.mobilehall.ui.home.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
import java.util.List;
public class ValuePackTableModel {
public class ValuePackTableModel implements Serializable {
@SerializedName("valuePrice")
@Expose
......
......@@ -3,49 +3,30 @@ package com.seatel.mobilehall.ui.main
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.NavController
import androidx.navigation.findNavController
import androidx.navigation.ui.setupWithNavController
import com.google.android.material.bottomnavigation.BottomNavigationView
import com.seatel.mobilehall.R
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.viewBinding
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
class
MainActivity : AppCompatActivity() {
class MainActivity : BaseActivity() {
private val binding by viewBinding(
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
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
setupBottomNav()
/*try {
appUpdateManager = AppUpdateManagerFactory.create(this)
appUpdateManager.registerListener(updateListener)
checkForUpdate()
} catch (e: Exception) {
commonLog("update01:Update e1 ${e.message}")
}*/
}
private fun setupBottomNav() {
......@@ -63,50 +44,9 @@ MainActivity : AppCompatActivity() {
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() {
/* try {
appUpdateManager.unregisterListener(updateListener)
} catch (e: Exception) {
commonLog("update01:Update e2 ${e.message}")
}*/
when {
R.id.navigation_home == navController.currentDestination?.id -> {
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
import com.seatel.mobilehall.R
import com.seatel.mobilehall.ui.base.adapter.BaseAdapter
import com.seatel.mobilehall.ui.home.model.AppProductsResponseModel
import kotlinx.android.synthetic.main.item_package_product_service.view.frame_parent
class ProductServicePackageAdapter(
private var mContext: Context,
private var productsList: ArrayList<AppProductsResponseModel>,
private var rowClick: (index: AppProductsResponseModel) -> Unit,
private var rowClick: (index: AppProductsResponseModel) -> Unit
) : BaseAdapter<ProductServicePackageAdapter.ProductServiceViewHolder>() {
private var selectedItemPosition: Int = 0
......@@ -37,12 +38,12 @@ class ProductServicePackageAdapter(
}
override fun onBindViewHolder(holder: ProductServiceViewHolder, position: Int) {
// holder.itemView.visibility = View.INVISIBLE
// holder.itemView.visibility = View.INVISIBLE
setAnimations(holder.itemView, position)
val serviceModel = productsList[position]
holder.mTitle.text = serviceModel.name
Glide.with(mContext).load(serviceModel.icon).into(holder.mIcon)
holder.itemView.setOnClickListener {
holder.itemView.frame_parent.setOnClickListener {
serviceModel.let(rowClick)
selectedItemPosition = holder.adapterPosition
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
import com.seatel.mobilehall.util.customview.ErrorHandleView
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.base_validity
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_term_condition
......@@ -1719,6 +1720,8 @@ class PackageFragment : BaseFragment(), AppProductsInteractor.View,
adapter = when (valuePackSectionModel.type) {
"loy-kobs" -> {
base_validity.text = valuePackSectionModel.valuePackSecTwoModel.addon[0].validityDate
layoutManager =
LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
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
import com.seatel.mobilehall.util.SeatelUtils
import com.google.gson.Gson
import com.seatel.mobilehall.ui.home.activity.LoyKobActivity
import com.seatel.mobilehall.util.Constant
import com.seatel.mobilehall.util.customview.ErrorHandleView
import kotlinx.android.synthetic.main.activity_get_more_data.*
......@@ -39,7 +40,6 @@ class GetMoreDataActivity : BaseActivity(), AppProductsInteractor.View {
var canSubscribe: Boolean = false
override fun onGetAppProductsSucceed(appProductsList: ArrayList<AppProductsResponseModel>) {
Log.d("---appProductsList", "onGetAppProductsSucceed: ${Gson().toJson(appProductsList)}")
if (appProductsList.size == 0) {
isOnlyDisplay = true
productService.add(
......@@ -65,10 +65,12 @@ class GetMoreDataActivity : BaseActivity(), AppProductsInteractor.View {
error_view.errorMessage = getString(R.string.connection_timeout)
error_view.setViewMode(ErrorHandleView.Mode.TIME_OUT)
}
is NoConnectionError -> {
error_view.errorMessage = getString(R.string.message_no_internet)
error_view.setViewMode(ErrorHandleView.Mode.NO_INTERNET)
}
else -> {
error_view.errorMessage = getString(R.string.no_data)
error_view.setViewMode(ErrorHandleView.Mode.NO_DATA)
......@@ -89,24 +91,28 @@ class GetMoreDataActivity : BaseActivity(), AppProductsInteractor.View {
"one-plan" -> {
OnePlanDetailActivity.lunch(this)
}
"free-internet-promotion" -> {
/* FreePromotionDetailActivity.lunch(
this,
getString(R.string.free_internet_promotion)
)*/
}
"international-call" -> {
error_view.setViewMode(ErrorHandleView.Mode.LOADING)
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")
}
}
......
......@@ -14,7 +14,6 @@ import com.android.volley.TimeoutError
import com.android.volley.VolleyError
import com.seatel.mobilehall.R
import com.seatel.mobilehall.data.network.SeatelSuperRequest
import com.seatel.mobilehall.data.prefs.SeatelSharePreferences
import com.seatel.mobilehall.databinding.FragmentInternetBinding
import com.seatel.mobilehall.ui.base.fragment.BaseFragment
import com.seatel.mobilehall.ui.login.activity.LoginActivity
......@@ -27,11 +26,12 @@ import com.seatel.mobilehall.util.Constant
import com.seatel.mobilehall.util.SeatelUtils
import com.seatel.mobilehall.util.customview.ErrorHandleView
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_to
import java.text.SimpleDateFormat
import java.util.*
import java.util.Calendar
import java.util.Locale
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.os.Build
......@@ -9,14 +9,9 @@ import android.view.ViewGroup
import androidx.annotation.RequiresApi
import androidx.viewpager.widget.ViewPager
import com.seatel.mobilehall.R
import com.seatel.mobilehall.data.prefs.SeatelSharePreferences
import com.seatel.mobilehall.databinding.FragmentUsageBinding
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.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 kotlinx.android.synthetic.main.fragment_usage.*
import java.text.SimpleDateFormat
......
......@@ -101,7 +101,7 @@ class BilingDetailListPresenter(
if (data.optJSONObject(i).has("duration"))
notificationModel.duration = data.optJSONObject(i).optDouble("duration", 0.0)
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"))
notificationModel.used = data.optJSONObject(i).optDouble("used", 0.0)
......
......@@ -260,6 +260,15 @@ object Constant {
const val INTERNET = "internet"
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
*/
......
<?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 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="@string/buy_data_pack"
android:textColor="@android:color/white"
android:textSize="@dimen/large_text_size" />
......@@ -45,7 +44,6 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="5dp"
android:text="$5.00"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="@dimen/xxx_large_text_size" />
......@@ -77,7 +75,6 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="5dp"
android:text="018 902 0709"
android:textColor="@android:color/white"
android:textSize="@dimen/xxx_large_text_size" />
......@@ -89,7 +86,6 @@
android:layout_marginStart="25dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="25dp"
android:text="We'll deduct $10 USD from your main balance"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="@dimen/large_text_size" />
......
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<ScrollView
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerItemLoyKob"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="wrap_content"
android:nestedScrollingEnabled="true"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintTop_toTopOf="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
android:id="@+id/mRecyclerLoyKob"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:nestedScrollingEnabled="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintTop_toBottomOf="@+id/ln_tab" />
<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
android:id="@+id/error_view"
android:layout_width="match_parent"
......
......@@ -223,6 +223,18 @@
android:nestedScrollingEnabled="false"
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>
......
......@@ -374,13 +374,13 @@
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/view_balance_total"
app:layout_constraintStart_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<RelativeLayout
......@@ -423,6 +423,19 @@
</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>
......@@ -469,23 +482,61 @@
app:layout_constraintBottom_toBottomOf="@+id/view2"
app:layout_constraintStart_toEndOf="@+id/view2" />
<ImageView
android:id="@+id/imageBuyTopup"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:padding="3dp"
android:scaleType="fitCenter"
android:tag="BUYTOPUPCARD"
<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" />
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
android:id="@+id/imageBuyTopup"
android:layout_width="match_parent"
android:layout_height="100dp"
android:scaleType="fitCenter"
android:tag="BUYTOPUPCARD" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
<FrameLayout
android:id="@+id/frame_video_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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
......@@ -530,15 +581,51 @@
app:layout_constraintBottom_toBottomOf="@+id/view4"
app:layout_constraintStart_toEndOf="@+id/view4" />
<ImageView
android:id="@+id/image_buy_number"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:padding="3dp"
android:tag="BUYYESNUMBER"
<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" />
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
android:id="@+id/image_buy_number"
android:layout_width="match_parent"
android:layout_height="100dp"
android:padding="3dp"
android:tag="BUYYESNUMBER"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
......
......@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.packages.fragment.PackageFragment">
>
<androidx.appcompat.widget.Toolbar
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
......@@ -2,131 +2,126 @@
<RelativeLayout 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">
android:layout_height="wrap_content">
<ScrollView
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:background="@color/colorBgWhiteGray">
<RelativeLayout
<ImageView
android:id="@+id/img_international_call_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorBgWhiteGray">
android:adjustViewBounds="true"
android:scaleType="fitCenter" />
<ImageView
android:id="@+id/img_international_call_detail"
android:layout_width="match_parent"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/img_international_call_detail"
android:layout_marginTop="@dimen/top_padding"
android:layout_marginBottom="30dp"
android:orientation="vertical">
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/text_cents_min"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitCenter" />
android:text="@string/call_every_one_in_the_world"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/xxx_large_text_size"
android:textStyle="bold" />
<LinearLayout
<com.seatel.mobilehall.util.customview.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-8dp"
android:text="as low as 3cents/min"
android:textColor="@color/colorPrimary"
android:textSize="21sp"
android:visibility="gone" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:text="@string/international_call_detail_des"
android:textColor="@android:color/black" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_5x_size"
android:text="@string/ex_international_call_detail"
android:textColor="@color/colorTextBlack"
android:textSize="@dimen/default_text_size"
android:textStyle="bold"
android:visibility="gone" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="@string/please_select_country"
android:textColor="@color/colorTextBlack"
android:visibility="visible" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/img_international_call_detail"
android:layout_marginStart="20dp"
android:layout_marginTop="@dimen/top_padding"
android:layout_marginEnd="20dp"
android:layout_marginBottom="30dp"
android:orientation="vertical">
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/text_cents_min"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/call_every_one_in_the_world"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/xxx_large_text_size"
android:textStyle="bold" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-8dp"
android:text="as low as 3cents/min"
android:textColor="@color/colorPrimary"
android:textSize="21sp"
android:visibility="gone" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:text="@string/international_call_detail_des"
android:textColor="@android:color/black" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_5x_size"
android:text="@string/ex_international_call_detail"
android:textColor="@color/colorTextBlack"
android:textSize="@dimen/default_text_size"
android:textStyle="bold"
android:visibility="gone" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="@string/please_select_country"
android:textColor="@color/colorTextBlack"
android:visibility="visible" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:visibility="visible">
<Spinner
android:id="@+id/filter"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@android:color/white"
android:spinnerMode="dropdown" />
<ImageView
android:layout_width="20dp"
android:layout_height="21dp"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="9dp"
android:layout_marginEnd="19dp"
android:background="@android:color/transparent"
app:srcCompat="@drawable/ic_spinner" />
</RelativeLayout>
<!--<Spinner-->
<!--android:id="@+id/filter"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginTop="10dp"-->
<!--android:background="@android:drawable/btn_dropdown"-->
<!--android:spinnerMode="dropdown" />-->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view_product_service"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:visibility="visible">
<Spinner
android:id="@+id/filter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@color/colorBgWhiteGray"
android:minHeight="100dp"
android:nestedScrollingEnabled="true"
android:paddingBottom="2dp" />
android:layout_height="40dp"
android:background="@android:color/white"
android:spinnerMode="dropdown" />
<ImageView
android:layout_width="20dp"
android:layout_height="21dp"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="9dp"
android:layout_marginEnd="19dp"
android:background="@android:color/transparent"
app:srcCompat="@drawable/ic_spinner" />
</RelativeLayout>
<!--<Spinner-->
<!--android:id="@+id/filter"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginTop="10dp"-->
<!--android:background="@android:drawable/btn_dropdown"-->
<!--android:spinnerMode="dropdown" />-->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view_product_service"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@color/colorBgWhiteGray"
android:minHeight="100dp"
android:nestedScrollingEnabled="true"
android:paddingBottom="2dp" />
<!--<include layout="@layout/item_international_call_detail" />-->
<!--<include layout="@layout/item_international_call_detail" />-->
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
<com.seatel.mobilehall.util.customview.ErrorHandleView
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 @@
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/ln_table"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="#5BE91E63"
......@@ -51,8 +52,8 @@
android:layout_weight="1"
android:background="@color/white"
android:gravity="center"
android:visibility="gone"
android:orientation="vertical">
android:orientation="vertical"
android:visibility="gone">
<com.seatel.mobilehall.util.customview.CustomButton
android:id="@+id/btn_call_min"
......@@ -135,4 +136,5 @@
</LinearLayout>
</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 @@
android:id="@+id/frame_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:padding="@dimen/margin_1x_size">
android:background="?android:attr/selectableItemBackground">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
......@@ -15,9 +13,10 @@
<ImageView
android:id="@+id/ivIcon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
......@@ -25,7 +24,7 @@
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/ivIcon"
android:layout_centerHorizontal="true"
......
......@@ -3,196 +3,190 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="wrap_content">
<ScrollView
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv_header_banner"
android:layout_width="match_parent"
android:layout_height="200dp"
android:scaleType="centerCrop" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="@dimen/margin_1x_size">
<ImageView
android:scaleType="centerCrop"
android:id="@+id/iv_header_banner"
android:layout_width="match_parent"
android:layout_height="200dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="@dimen/margin_1x_size">
android:orientation="vertical">
<LinearLayout
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_header_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_header_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Why Using Rik Reay Plan?"
android:textColor="@color/colorPrimary"
android:textSize="20sp"
android:textStyle="bold" />
android:layout_height="wrap_content"
android:text="Why Using Rik Reay Plan?"
android:textColor="@color/colorPrimary"
android:textSize="20sp"
android:textStyle="bold" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_header_subTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_1x_size"
android:layout_marginBottom="@dimen/margin_1x_size"
android:text="Why Using Rik Reay Plan?"
android:textColor="@color/colorBlue"
android:textStyle="bold" />
<WebView
android:id="@+id/tv_header_description"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_header_subTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_1x_size"
android:layout_marginBottom="@dimen/margin_1x_size"
android:text="Why Using Rik Reay Plan?"
android:textColor="@color/colorBlue"
android:textStyle="bold" />
<WebView
android:id="@+id/tv_header_description"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
<ImageView
android:id="@+id/iv_sub_header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:layout_height="50dp" />
<ImageView
android:id="@+id/iv_sub_header"
android:layout_width="match_parent"
android:layout_height="50dp" />
<WebView
android:id="@+id/tv_sub_header_subTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<WebView
android:id="@+id/tv_sub_header_subTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_content_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Extra Benefit"
android:textColor="@color/colorBlue"
android:textStyle="bold" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_content_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Extra Benefit"
android:textColor="@color/colorBlue"
android:textStyle="bold" />
<!--<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_sub_content_title"
android:layout_width="match_parent"
android:layout_height="wrap_content" />-->
<!--<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_sub_content_title"
android:layout_width="match_parent"
android:layout_height="wrap_content" />-->
<WebView
android:id="@+id/mWebView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<WebView
android:id="@+id/mWebView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_table_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_2x_size"
android:layout_marginBottom="@dimen/margin_1x_size"
android:text="check out the table below for more service fees:"
android:textColor="@color/colorPrimary"
android:textStyle="bold" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_table_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_2x_size"
android:layout_marginBottom="@dimen/margin_1x_size"
android:text="check out the table below for more service fees:"
android:textColor="@color/colorPrimary"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_2x_size"
android:layout_marginEnd="@dimen/margin_2x_size"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_2x_size"
android:layout_marginEnd="@dimen/margin_2x_size"
android:orientation="vertical">
android:background="@drawable/bg_table_gradient"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_table_gradient"
android:orientation="horizontal">
android:layout_weight="1"
android:padding="@dimen/margin_2x_size">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="@dimen/margin_2x_size">
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_table_left"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:text="@string/service"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_table_left"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="@dimen/margin_2x_size">
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_table_right"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:text="@string/charging_rate"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
android:ellipsize="end"
android:maxLines="1"
android:text="@string/service"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/mRecyclerTable"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:nestedScrollingEnabled="false"
android:orientation="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="2"
tools:listitem="@layout/rik_reay_item" />
android:layout_weight="1"
android:padding="@dimen/margin_2x_size">
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_table_right"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:text="@string/charging_rate"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/last_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_2x_size"
android:text="How To Subscribe Rik Reay Plan"
android:textColor="@color/colorBlue"
android:textStyle="bold" />
</LinearLayout>
<WebView
android:id="@+id/last_sub_title"
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/mRecyclerTable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
android:nestedScrollingEnabled="false"
android:orientation="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="2"
tools:listitem="@layout/rik_reay_item" />
</LinearLayout>
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/last_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_2x_size"
android:text="How To Subscribe Rik Reay Plan"
android:textColor="@color/colorBlue"
android:textStyle="bold" />
<WebView
android:id="@+id/last_sub_title"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -12,13 +12,13 @@
<fragment
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"
tools:layout="@layout/fragment_package" />
<fragment
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"
tools:layout="@layout/fragment_usage" />
......
......@@ -43,6 +43,7 @@
<color name="colorValentineTransparent">#66000000</color>
<color name="color_claim_gray">#BFBFBF</color>
<color name="color_ang_pao_bg">#FBC3E5</color>
<color name="button_behind">#FACCE8</color>
</resources>
\ No newline at end of file
......@@ -10,7 +10,7 @@ buildscript {
dependencies {
classpath "io.realm:realm-gradle-plugin:10.11.1"
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