Commit 00f102af authored by satya's avatar satya

update roaming2china

parent 2447e684
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="WizardSettings">
<option name="children">
<map>
<entry key="vectorWizard">
<value>
<PersistentState>
<option name="children">
<map>
<entry key="vectorAssetStep">
<value>
<PersistentState>
<option name="children">
<map>
<entry key="clipartAsset">
<value>
<PersistentState>
<option name="values">
<map>
<entry key="url" value="file:$USER_HOME$/Library/Android/sdk/icons/material/materialicons/help/baseline_help_24.xml" />
</map>
</option>
</PersistentState>
</value>
</entry>
</map>
</option>
<option name="values">
<map>
<entry key="color" value="ec008c" />
<entry key="outputName" value="ic_confirmation" />
</map>
</option>
</PersistentState>
</value>
</entry>
</map>
</option>
</PersistentState>
</value>
</entry>
</map>
</option>
</component>
</project>
\ No newline at end of file
This diff is collapsed.
......@@ -26,8 +26,8 @@ android {
applicationId "com.seatel.mobilehall"
minSdk 23
targetSdk 34
versionCode 201907115
versionName "2.3.14"
versionCode 201907116
versionName "2.3.15"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
signingConfig signingConfigs.release
......@@ -41,7 +41,6 @@ android {
buildConfigField 'String', 'CLIENT_SECRET', '"MjExNzM0NWNiNTA3NDZmNzg4NmE0NTNlYjYyMWNkODk="'
minifyEnabled false
shrinkResources false
debuggable true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
proguardFile '/Users/ryan/Documents/Project/Seatel_android_project/sea-tel-android/app/proguard-rules.pro'
......
......@@ -11,8 +11,8 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 201907114,
"versionName": "2.3.13",
"versionCode": 201907116,
"versionName": "2.3.15",
"outputFile": "app-release.apk"
}
],
......
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
>
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
......@@ -90,8 +89,7 @@
<activity
android:name="com.canhub.cropper.CropImageActivity"
android:theme="@style/Base.Theme.AppCompat"
/>
android:theme="@style/Base.Theme.AppCompat" />
<!--- custom scan barcode orientation -->
<activity
......@@ -352,6 +350,10 @@
android:name=".ui.profile.activity.ProfileFaceScanActivity"
android:screenOrientation="locked" />
<activity
android:name=".ui.packages.RoamingActivity"
android:screenOrientation="locked" />
</application>
......
......@@ -155,6 +155,23 @@ class SeatelSharePreferences(context: Context) {
return sharedPref?.getBoolean("HAS_INSTALMENT_PLAN", false)
}
fun setRoamingActivation(value: Boolean?) {
sharedPref?.edit()?.putBoolean("roamingActivation", value!!)?.apply()
}
fun isRoamingActivation(): Boolean? {
return sharedPref?.getBoolean("roamingActivation", false)
}
fun setSpecialSimcard(value: Boolean?) {
sharedPref?.edit()?.putBoolean("roaming", value!!)?.apply()
}
fun isSpecialSimcard(): Boolean? {
return sharedPref?.getBoolean("roaming", false)
}
fun setMainScreenData(mainScreenData: String?) {
sharedPref?.edit()?.putString("MAIN_SCREEN_DATA", mainScreenData)
?.apply()
......
......@@ -47,7 +47,6 @@ import com.seatel.mobilehall.ui.home.activity.SupportActivity
import com.seatel.mobilehall.ui.home.activity.TopUpActivity
import com.seatel.mobilehall.ui.home.adapter.CategoryAdapter
import com.seatel.mobilehall.ui.home.adapter.HomeImageSliderAdapter
import com.seatel.mobilehall.ui.home.adapter.ImageSliderAdapter
import com.seatel.mobilehall.ui.home.interactor.BadgesCountInteractor
import com.seatel.mobilehall.ui.home.interactor.BannersInteractor
import com.seatel.mobilehall.ui.home.interactor.CategoryInteractor
......@@ -308,11 +307,16 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
Log.d(TAG, "getDataMainScreenToken: $token")
GetMainData(requireActivity(), getPhoneLogin(), token) { it ->
if (it) {
dataMainScreen = Gson().fromJson(
SeatelSharePreferences.getInstance(requireActivity())?.getMainScreenData(),
MainDataModel::class.java
)
dataMainScreen?.let { showDataMainScreen(it) }
dataMainScreen?.let {
showDataMainScreen(it)
}
}
......@@ -381,9 +385,9 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
}
dataMainScreen.getContactService().forEach {
contactService.add(it)
}
dataMainScreen.getContactService().forEach {
contactService.add(it)
}
// Show alert force update and complete info after buy sim
if (dataMainScreen.getIsNewUpdateAvailable()) {
......
......@@ -65,9 +65,29 @@ class MainDataModel {
private var eventGame: Boolean = false
private var roamingActivation: Boolean = false
private var specialSimcard: Boolean = false
private var bannerBuySim: String = ""
private var bannerBuyTopup: String = ""
fun setSpecialSimcard(value: Boolean) {
this.specialSimcard = value
}
fun getSpecialSimcard(): Boolean {
return specialSimcard
}
fun setRoamingActivation(value: Boolean) {
this.roamingActivation = value
}
fun getRoamingActivation(): Boolean {
return roamingActivation
}
fun setEventGame(eventGame: Boolean) {
this.eventGame = eventGame
}
......@@ -317,11 +337,11 @@ class MainDataModel {
return bannerBuyTopup
}
fun setContactService (contactService: ArrayList<ContactService>) {
fun setContactService(contactService: ArrayList<ContactService>) {
this.contactService = contactService
}
fun getContactService (): ArrayList<ContactService> {
fun getContactService(): ArrayList<ContactService> {
return contactService
}
}
\ No newline at end of file
......@@ -5,6 +5,7 @@ import java.io.Serializable;
public class OnePlanDetailSecOneModel implements Serializable {
private String mobileImageUrl;
private String desktopImageUrl;
private String mobileImageUrl2;
private String imageUrl;
public void setMobileImageUrl(String mobileImageUrl) {
......@@ -31,11 +32,20 @@ public class OnePlanDetailSecOneModel implements Serializable {
this.imageUrl = imageUrl;
}
public String getMobileImageUrl2() {
return mobileImageUrl2;
}
public void setMobileImageUrl2(String mobileImageUrl2) {
this.mobileImageUrl2 = mobileImageUrl2;
}
@Override
public String toString() {
return
"OnePlanDetailSecOneModel{" +
"mobileImageUrl = '" + mobileImageUrl + '\'' +
"mobileImageUrl2 = '" + mobileImageUrl2 + '\'' +
",desktopImageUrl = '" + desktopImageUrl + '\'' +
",imageUrl = '" + imageUrl + '\'' +
"}";
......
......@@ -27,6 +27,9 @@ public class ValuePackSecTwoModel implements Serializable {
@Expose
private List<String> featureList = null;
public String getTitle() {
return title;
}
......
......@@ -29,6 +29,15 @@ public class ValuePackTableModel implements Serializable {
@SerializedName("code")
@Expose
private String code;
@SerializedName("title")
@Expose
private String title;
@SerializedName("icon")
@Expose
private String icon;
@SerializedName("activateBtn")
@Expose
private Boolean activateBtn;
......@@ -38,6 +47,14 @@ public class ValuePackTableModel implements Serializable {
private String benefitOffer;
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public String getActivation() {
return activation;
}
......@@ -86,6 +103,14 @@ public class ValuePackTableModel implements Serializable {
return code;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Boolean getActivateBtn() {
return activateBtn;
}
......
......@@ -35,6 +35,9 @@ class ProductServiceDetailPrsenter(
val dataPackSectionOneModel = OnePlanDetailSecOneModel()
dataPackSectionOneModel.mobileImageUrl =
response.optJSONObject("section1").optString("mobileImageUrl")
dataPackSectionOneModel.mobileImageUrl2 = response.optJSONObject("section1").optString("mobileImageUrl2")
dataPackSectionOneModel.imageUrl = response.optJSONObject("section1").optString("imageUrl")
dataPackSection.dataPackDetailSecOneModel = dataPackSectionOneModel
......@@ -58,6 +61,7 @@ class ProductServiceDetailPrsenter(
val validate = table.optJSONObject(i).optJSONArray("validity")
val activation = table.optJSONObject(i).optJSONArray("activation")
val benefitOffer = table.optJSONObject(i).optString("benefitOffer")
val activateBtn = table.optJSONObject(i).optBoolean("activateBtn")
if (table.optJSONObject(i).optJSONArray("callsms") != null && !table.optJSONObject(i)
.optString("code").isNullOrBlank()
......@@ -66,14 +70,19 @@ class ProductServiceDetailPrsenter(
val callSmsList = ArrayList<String>()
(0 until callsms.length()).mapTo(callSmsList) { callsms.optString(it) }
val code = table.optJSONObject(i).optString("code")
val title = table.optJSONObject(i).optString("title")
val icon = table.optJSONObject(i).optString("icon")
dataPackTableModel.callsmsList = callSmsList
dataPackTableModel.code = code
dataPackTableModel.title = title
dataPackTableModel.icon = icon
}
dataPackTableModel.valuePrice = fee.optString(0)
dataPackTableModel.priceChange = data.optString(0)
dataPackTableModel.validityDate = validate.optString(0)
dataPackTableModel.activation = activation.optString(0)
dataPackTableModel.activateBtn = activateBtn
dataPackTableModel.benefitOffer = benefitOffer
......
package com.seatel.mobilehall.ui.packages
import android.content.Context
import android.content.Intent
import android.os.Bundle
import com.android.volley.VolleyError
import com.seatel.mobilehall.R
import com.seatel.mobilehall.data.network.SeatelSuperRequest
import com.seatel.mobilehall.databinding.ActivityRoamingBinding
import com.seatel.mobilehall.ui.base.activity.BaseActivity
import com.seatel.mobilehall.ui.home.interactor.ProductServiceDetailInteractor
import com.seatel.mobilehall.ui.home.model.ValuePackSectionModel
import com.seatel.mobilehall.ui.home.presenter.ProductServiceDetailPrsenter
import com.seatel.mobilehall.ui.packages.adapter.Roaming1Adapter
import com.seatel.mobilehall.util.SeatelAlertDialog
class RoamingActivity : BaseActivity<ActivityRoamingBinding>(),
ProductServiceDetailInteractor.View {
companion object {
fun lunch(context: Context) {
val intent = Intent(context, RoamingActivity::class.java)
context.startActivity(intent)
}
}
override fun getViewBinding(): ActivityRoamingBinding {
return ActivityRoamingBinding.inflate(layoutInflater)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activityEnterRightAnimation()
ProductServiceDetailPrsenter(this, this).onProServiceDetail(
"roaming-to-china",
getPhoneLogin()
)
}
fun scrollToLastPosition() {
val recyclerView = binding.recyclerRoaming
val lastPosition = recyclerView.adapter!!.itemCount + 1
recyclerView.smoothScrollToPosition(lastPosition)
}
override fun onProServiceDetailSucceed(valuePackSectionModel: ValuePackSectionModel) {
binding.recyclerRoaming.adapter =
Roaming1Adapter(this, this.getPhoneLogin(), "any", false, valuePackSectionModel)
}
override fun onProServiceDetailFailed(error: VolleyError) {
SeatelAlertDialog.with(this, SeatelSuperRequest.getErrorMessageFrom(error)).show()
}
override fun onBackPressed() {
super.onBackPressed()
activityExitLeftAnimation()
}
override fun getToolbarTitle(): String {
return resources.getString(R.string.roaming_service)
}
}
\ No newline at end of file
package com.seatel.mobilehall.ui.packages.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.seatel.mobilehall.R
import com.seatel.mobilehall.databinding.ItemLayoutRoamingListBinding
import com.seatel.mobilehall.ui.base.adapter.BaseAdapter
import com.seatel.mobilehall.ui.home.model.ValuePackTableModel
class RoamingListAdapter(
private val context: Context,
private val tableList: List<ValuePackTableModel>,
private val onItemClick: (item: ValuePackTableModel) -> Unit
) : BaseAdapter<RoamingListAdapter.ViewHolder>() {
private var selectedItemPosition: Int = -1 // Holds the position of the selected item
class ViewHolder(var binding: ItemLayoutRoamingListBinding) :
RecyclerView.ViewHolder(binding.root)
override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
): RoamingListAdapter.ViewHolder {
val binding = ItemLayoutRoamingListBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
return ViewHolder(binding)
}
override fun onBindViewHolder(holder: RoamingListAdapter.ViewHolder, position: Int) {
val item = tableList[position]
// Bind data to views
holder.binding.tvFee.text = item.valuePrice
holder.binding.tvValidity.text = item.validityDate
holder.binding.tvTitle.text = item.title
// Check if the item is selected and update the background accordingly
val isSelected = position == selectedItemPosition
val background = if (isSelected) {
ContextCompat.getDrawable(holder.itemView.context, R.drawable.bg_roaming_round_pink)
} else {
ContextCompat.getDrawable(holder.itemView.context, R.drawable.bg_roaming_round_gray)
}
holder.binding.bgFrame.background = background
// Handle item click to update selection state
holder.itemView.setOnClickListener {
if (selectedItemPosition != position) {
selectedItemPosition = position
notifyDataSetChanged() // Refresh the entire list to update backgrounds
}
onItemClick(item)
}
}
override fun getItemCount(): Int = tableList.size
}
......@@ -28,11 +28,13 @@ 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.adapter.RoamingAdapter
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 com.seatel.mobilehall.util.SeatelUtils
import com.seatel.mobilehall.util.viewFragmentBinding
import org.json.JSONObject
......@@ -169,8 +171,9 @@ class ServicesFragment : BaseFragment(), AppProductsInteractor.View,
}
else -> {
binding.mRecyclerDetail.adapter =
LoyKobsAdapter(requireContext(), "any", mCanSubscribe, valuePackSectionModel)
binding.mRecyclerDetail.adapter = RoamingAdapter(this,requireContext(),getPhoneLogin(),"any",mCanSubscribe,valuePackSectionModel)
/* binding.mRecyclerDetail.adapter =
LoyKobsAdapter(requireContext(), "any", mCanSubscribe, valuePackSectionModel)*/
}
}
}
......@@ -240,6 +243,11 @@ class ServicesFragment : BaseFragment(), AppProductsInteractor.View,
}
private fun updateButtonColors() {
binding.btnPackage.text = SeatelUtils.translatForDialog(getmContext(),"Packages")
binding.btnPricePlan.text = SeatelUtils.translatForDialog(getmContext(),"Price Plans")
val defaultColor = ContextCompat.getColor(requireContext(), R.color.white)
val selectedColor =
ContextCompat.getDrawable(requireContext(), R.drawable.bg_button_round_service)
......@@ -272,6 +280,12 @@ class ServicesFragment : BaseFragment(), AppProductsInteractor.View,
}
}
fun scrollToLastPosition() {
val recyclerView = binding.mRecyclerDetail
val lastPosition = recyclerView.adapter!!.itemCount + 1
recyclerView.smoothScrollToPosition(lastPosition)
}
override fun buttonActive(
dataValuePack: ValuePackTableModel,
amountMB: String,
......
......@@ -21,12 +21,15 @@ import android.widget.ScrollView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.seatel.mobilehall.R;
import com.seatel.mobilehall.ui.base.adapter.BaseAdapter;
import com.seatel.mobilehall.ui.home.activity.TopUpActivity;
import com.seatel.mobilehall.ui.packages.RoamingActivity;
import com.seatel.mobilehall.ui.profile.activity.GetMoreDataActivity;
import com.seatel.mobilehall.ui.profile.interactor.SubRowListValuePackInteractor;
import com.seatel.mobilehall.ui.profile.model.BalancesPostPaidModel;
......@@ -591,12 +594,6 @@ public class MySubscriptionAdapter extends BaseAdapter<RecyclerView.ViewHolder>
scrollViewKeepListInternetPack = itemView.findViewById(R.id.scroll_list_internet_pack);
viewListContent = itemView.findViewById(R.id.view_list_content_internet);
buttonBuy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
GetMoreDataActivity.Companion.lunch(mContext);
}
});
actionSubList = this;
}
......@@ -606,7 +603,17 @@ public class MySubscriptionAdapter extends BaseAdapter<RecyclerView.ViewHolder>
public void bind(final DataPlansModel dataPlansModel) {
boolean isValuePackRow = false;
if (!dataPlansModel.getBuyMore()){
buttonBuy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (dataPlansModel.getName().equals("China Mainland Pack")) {
RoamingActivity.Companion.lunch(mContext);
} else
GetMoreDataActivity.Companion.lunch(mContext);
}
});
if (!dataPlansModel.getBuyMore()) {
buttonBuy.setVisibility(View.GONE);
}
......@@ -626,6 +633,7 @@ public class MySubscriptionAdapter extends BaseAdapter<RecyclerView.ViewHolder>
buttonBuy.setVisibility(View.GONE);
}
Log.d("TAG::>>>", "bind: " + dataPlansModel.getName());
title.setText(dataPlansModel.getName());
subDate.setText(SeatelUtils
......
......@@ -16,6 +16,7 @@ import com.android.volley.VolleyError
import com.google.gson.Gson
import com.seatel.mobilehall.R
import com.seatel.mobilehall.data.network.SeatelJSONObjectRequest
import com.seatel.mobilehall.data.network.SeatelSuperRequest
import com.seatel.mobilehall.data.prefs.SeatelSharePreferences
import com.seatel.mobilehall.databinding.FragmentProfileBinding
import com.seatel.mobilehall.ui.application.MyApplication
......@@ -235,6 +236,8 @@ class ProfilesFragment : BaseFragment(), RequestSlideAccountUserNameInteractor.V
}
}.setOnErrorListener {
SeatelAlertDialog.with(requireContext(), SeatelSuperRequest.getErrorMessageFrom(it))
.show()
}.execute {
it as JSONObject
......
package com.seatel.mobilehall.util.dialogannouncement
import android.app.Dialog
import android.content.Context
import android.content.DialogInterface
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.view.View
import android.view.ViewGroup
import android.view.Window
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
import com.bumptech.glide.Glide
import com.seatel.mobilehall.R
import com.seatel.mobilehall.util.SeatelUtils.Companion.translatForDialog
class CustomDialog(
context: Context,
title: String,
subtitle: String = "",
image: Int,
positiveButtonText: String = "",
negativeButtonText: String = ""
) : Dialog(context) {
private var positiveClickListener: DialogInterface.OnClickListener? = null
private var negativeClickListener: DialogInterface.OnClickListener? = null
init {
initValentine(title, subtitle, image, positiveButtonText, negativeButtonText)
}
private fun initValentine(
title: String,
subtitle: String,
image: Int,
positiveButtonText: String,
negativeButtonText: String
) {
requestWindowFeature(Window.FEATURE_NO_TITLE)
setContentView(R.layout.dialog_custom)
setCancelable(false)
window?.apply {
setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
attributes.windowAnimations = R.style.DialogAnimationScaleInOut
setDimAmount(0.5f)
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
}
val mIcon = findViewById<ImageView>(R.id.logo)
val mTitle = findViewById<TextView>(R.id.title)
val mDescription = findViewById<TextView>(R.id.description)
val mBtnNegative = findViewById<Button>(R.id.btn_negative)
val mBtnPositive = findViewById<Button>(R.id.btn_positive)
mTitle?.text = translatForDialog(context, title)
mDescription?.text = translatForDialog(context, subtitle)
Glide.with(context)
.load(image)
.placeholder(R.drawable.ic_logo)
.into(mIcon)
mBtnPositive?.apply {
text = translatForDialog(context, positiveButtonText)
visibility = if (positiveButtonText.isNotEmpty()) View.VISIBLE else View.GONE
setOnClickListener {
positiveClickListener?.onClick(
this@CustomDialog,
DialogInterface.BUTTON_POSITIVE
)
}
}
mBtnNegative?.apply {
text = translatForDialog(context, negativeButtonText)
visibility = if (negativeButtonText.isNotEmpty()) View.VISIBLE else View.GONE
setOnClickListener {
negativeClickListener?.onClick(
this@CustomDialog,
DialogInterface.BUTTON_NEGATIVE
)
}
}
}
fun setPositiveButton(
text: String,
clickListener: DialogInterface.OnClickListener
): CustomDialog {
val mBtnPositive = findViewById<Button>(R.id.btn_positive)
mBtnPositive?.text = translatForDialog(context, text)
mBtnPositive?.visibility = View.VISIBLE
positiveClickListener = clickListener
return this
}
fun setNegativeButton(
text: String,
clickListener: DialogInterface.OnClickListener
): CustomDialog {
val mBtnNegative = findViewById<Button>(R.id.btn_negative)
mBtnNegative?.text = translatForDialog(context, text)
mBtnNegative?.visibility = View.VISIBLE
negativeClickListener = clickListener
return this
}
}
......@@ -2,6 +2,8 @@ package com.seatel.mobilehall.util.request
import android.content.Context
import android.text.TextUtils
import android.util.Log
import androidx.core.content.ContentProviderCompat.requireContext
import com.android.volley.VolleyError
import com.seatel.mobilehall.data.prefs.SeatelSharePreferences
import com.seatel.mobilehall.ui.home.model.MainDataModel
......@@ -65,6 +67,9 @@ class GetMainData(
model.setEventGame(response.optBoolean("eventGame", false))
model.setBannerBuySim(response.optString("bannerBuySim", ""))
model.setBannerBuyTopup(response.optString("bannerBuyTopup", ""))
model.setRoamingActivation(response.optBoolean("roamingActivation", false))
model.setSpecialSimcard(response.optBoolean("specialSimcard",false))
if (response.has("profilePicture")) model.setProfilePicture(response.optString("profilePicture"))
if (response.has("orderIds")) {
val dataId = response.optJSONArray("orderIds")
......@@ -90,17 +95,17 @@ class GetMainData(
}
val contactService = response.optJSONArray("contactService")
val mContactService : ArrayList<ContactService> = ArrayList()
for (i in 0 until contactService.length()){
mContactService.add(
ContactService(
contactService.optJSONObject(i).optString("type"),
contactService.optJSONObject(i).optString("value"),
contactService.optJSONObject(i).optString("label"),
contactService.optJSONObject(i).optString("icon")
)
val mContactService: ArrayList<ContactService> = ArrayList()
for (i in 0 until contactService.length()) {
mContactService.add(
ContactService(
contactService.optJSONObject(i).optString("type"),
contactService.optJSONObject(i).optString("value"),
contactService.optJSONObject(i).optString("label"),
contactService.optJSONObject(i).optString("icon")
)
}
)
}
model.setContactService(mContactService)
......@@ -109,6 +114,10 @@ class GetMainData(
response.optString("mrzKey")
SeatelSharePreferences.getInstance(context)?.setMainScreenData(Gson().toJson(model))
SeatelSharePreferences.getInstance(context)
?.setRoamingActivation(model.getRoamingActivation())
SeatelSharePreferences.getInstance(context)
?.setSpecialSimcard(model.getSpecialSimcard())
successRespond(true)
}
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1.5dp"
android:color="@color/colorGray" />
<corners
android:bottomLeftRadius="15dp"
android:bottomRightRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp" />
<solid android:color="@android:color/white" />
</shape>
\ No newline at end of file
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bg_roaming_round_pink" android:state_selected="true" />
<item android:drawable="@drawable/bg_roaming_round_gray" android:state_selected="false" />
</selector>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1.5dp"
android:color="@color/colorGray" />
<corners
android:bottomLeftRadius="15dp"
android:bottomRightRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp" />
<solid android:color="@android:color/white" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1.5dp"
android:color="@color/colorPrimary" />
<corners
android:bottomLeftRadius="15dp"
android:bottomRightRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp" />
<solid android:color="@android:color/white" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1.5dp"
android:color="@color/colorPrimary" />
<corners
android:bottomLeftRadius="15dp"
android:bottomRightRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp" />
<solid android:color="@android:color/transparent" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false">
<shape android:shape="oval">
<solid android:color="#2196F3"/>
<size android:width="50dp"
android:height="50dp"/>
<stroke android:width="3dp"
android:color="#8D727272"/>
<solid android:color="#2196F3" />
<size android:width="30dp" android:height="30dp" />
<stroke android:width="3dp" android:color="#8D727272" />
</shape>
</item>
<item android:state_checked="true">
<shape android:shape="oval">
<solid android:color="#2196F3"/>
<size android:width="40dp"
android:height="40dp"/>
<stroke android:width="3dp"
android:color="#34c759"/>
<solid android:color="#2196F3" />
<size android:width="30dp" android:height="30dp" />
<stroke android:width="3dp" android:color="#34c759" />
</shape>
</item>
</selector>
\ No newline at end of file
......@@ -2,17 +2,17 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false">
<shape android:shape="rectangle">
<corners android:radius="50dp" />
<solid android:color="#818C8C8C" />
<stroke android:color="#8D727272" android:width="1dp"/>
<corners android:radius="20dp" />
<solid android:color="@color/colorBgWhiteGray" />
<stroke android:width="1dp" android:color="#8D727272" />
<size android:height="20dp" />
</shape>
</item>
<item android:state_checked="true">
<shape android:shape="rectangle">
<corners android:radius="50dp" />
<corners android:radius="20dp" />
<solid android:color="#34c759" />
<stroke android:color="#8c8c8c" android:width="1dp"/>
<stroke android:width="1dp" android:color="#8c8c8c" />
<size android:height="20dp" />
</shape>
</item>
......
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#EC008C" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,19h-2v-2h2v2zM15.07,11.25l-0.9,0.92C13.45,12.9 13,13.5 13,15h-2v-0.5c0,-1.1 0.45,-2.1 1.17,-2.83l1.24,-1.26c0.37,-0.36 0.59,-0.86 0.59,-1.41 0,-1.1 -0.9,-2 -2,-2s-2,0.9 -2,2L8,9c0,-2.21 1.79,-4 4,-4s4,1.79 4,4c0,0.88 -0.36,1.68 -0.93,2.25z"/>
</vector>
<?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"
android:background="@color/white">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_roaming"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</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"
android:layout_gravity="center"
android:layout_marginStart="@dimen/margin_2x_size"
android:layout_marginEnd="@dimen/margin_2x_size"
android:background="@drawable/bg_dialog_round"
android:backgroundTint="@color/white"
android:padding="@dimen/margin_2x_size">
<ImageView
android:id="@+id/logo"
android:layout_width="50dp"
android:layout_height="50dp"
android:scaleType="centerCrop"
android:src="@drawable/ic_logo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/logo" />
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_1x_size"
android:gravity="center"
android:text=""
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title" />
<View
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="@dimen/margin_1x_size"
android:background="@color/bg_grey"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/description" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_1x_size"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view">
<Button
android:id="@+id/btn_negative"
android:layout_width="0dp"
android:layout_height="35dp"
android:layout_marginEnd="@dimen/margin_2x_size"
android:layout_weight="1"
android:background="@drawable/bg_box_white_stroke_primary"
android:padding="@dimen/margin_2x_size"
android:textColor="@color/black"
android:textSize="@dimen/small_text_size"
android:visibility="visible" />
<Button
android:id="@+id/btn_positive"
android:layout_width="0dp"
android:layout_height="35dp"
android:layout_weight="1"
android:background="@drawable/bg_button_primary"
android:padding="@dimen/margin_2x_size"
android:textColor="@color/white"
android:textSize="@dimen/small_text_size"
android:visibility="gone" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -132,6 +132,7 @@
</RelativeLayout>
<include
android:visibility="gone"
android:id="@+id/layout_bottom_sheet_buy_yes_number_next"
layout="@layout/layout_bottom_sheet_buy_yes_number_next" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
......
......@@ -82,7 +82,7 @@
<Button
android:id="@+id/btn_package"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_height="40dp"
android:layout_weight="1"
android:text="Packages"
android:textAllCaps="false"
......@@ -92,12 +92,13 @@
<Button
android:id="@+id/btn_price_plan"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_height="40dp"
android:layout_weight="1"
android:text="Price Plans"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
......
<?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:id="@+id/bg_frame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/margin_1x_size"
android:padding="@dimen/margin_2x_size">
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_2x_size"
app:layout_constraintBottom_toTopOf="@+id/view"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="@dimen/margin_2x_size"
android:layout_marginBottom="@dimen/margin_2x_size"
android:background="@color/colorGray"
app:layout_constraintBottom_toTopOf="@+id/tv_fee"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_title" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_fee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/xxl_large_text_size"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/tv_validity"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_validity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_2x_size"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/large_text_size"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -640,4 +640,15 @@
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
<!-- Roaming1China -->
<string name="not_special_sim_msg">Not Special Sim Message</string>
<string name="confirm_deactivate_roaming_msg">Confirm Deactivate Roaming Message</string>
<string name="active_roaming_service_msg">Are you sure want to activate the Roaming to China Mainland service?</string>
<string name="active_roaming_service_success_msg">You’ve successfully activated the Roaming Service. Please enable “Data Roaming” function in your device setting.</string>
<string name="inactive_roaming_service_msg">Not Yet Turn On Roaming</string>
<string name="enable_roaming_msg">Enable “Data Roaming” in setting</string>
<string name="roaming_service">Roaming Service</string>
<string name="note_roaming_service">Note: This Package does not automatically renew</string>
</resources>
\ No newline at end of file
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