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
......@@ -51,6 +51,11 @@
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/activity_confirm_buy_data_pack.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/activity_confirmation.xml">
<config>
<theme>@style/AppBaseTheme</theme>
......@@ -66,11 +71,21 @@
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/activity_get_more_data.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/activity_home.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/activity_login.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml">
<config>
<theme>@style/AppBaseTheme</theme>
......@@ -91,6 +106,11 @@
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/activity_roaming.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/activity_setting.xml">
<config>
<theme>@style/AppBaseTheme</theme>
......@@ -116,6 +136,16 @@
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/dialog_custom.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/dialog_game.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/dialog_support.xml">
<config>
<theme>@style/AppBaseTheme</theme>
......@@ -171,6 +201,11 @@
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_profile.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_services.xml">
<config>
<theme>@style/AppBaseTheme</theme>
......@@ -226,6 +261,11 @@
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/item_layout_roaming_list.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/item_loy_kob_list.xml">
<config>
<theme>@style/AppBaseTheme</theme>
......@@ -241,6 +281,16 @@
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/item_my_subscription_data_pack.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/item_my_subscription_post_paid.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/item_order_view_holder.xml">
<config>
<theme>@style/AppBaseTheme</theme>
......@@ -286,6 +336,11 @@
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/layout_rik_reay.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/layout_selected_number.xml">
<config>
<theme>@style/AppBaseTheme</theme>
......@@ -296,6 +351,11 @@
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/layout_win_angpav.xml">
<config>
<theme>@style/AppBaseTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/term_service_privacy_policy.xml">
<config>
<theme>@style/AppBaseTheme</theme>
......@@ -343,275 +403,52 @@
</component>
<component name="ChangeListManager">
<list default="true" id="b947e2f9-b70e-404d-b6f9-40fd3f83c1e2" name="Changes" comment="fix pinfragment and update game">
<change afterPath="$PROJECT_DIR$/app/libs/circleprogressbar-debug.aar" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/ImageSliderAdapter.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/model/ContactService.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/ProfileFaceScanActivity.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/yes_member/YesMemberAdapter.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/yes_member/YesMemberFragment.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/yes_member/adapter/PartnerCategoryAdapter.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/yes_member/interactor/TopPartnerInteractor.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/yes_member/model/PartnerCategoryModelItem.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/yes_member/model/TopPartnerModelItem.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/yes_member/presenter/TopPartnerPresenter.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/CircularFrameLayout.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/RoundedPreviewView.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/BottomSheetFaceScanFragment.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/background_rewardldpi.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/bg_cholchoung.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/bg_yes_member.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/billing_selector.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/cholchoung.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/custom_thumb.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/custom_track.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/home_selector.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_billing_selected.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_camera_len_clean.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_choung.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_face.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_face_pf.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_home_selected.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_light.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_packages_selected.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_profile_face_scan.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_profile_selected.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_seatel_logo_selected.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_yes_memeber_selected.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/packages_selector.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/profile_selector.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/yes_member_selector.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_cholchoung.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_face_scan.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_yes_member.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_image_slider.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_layout_roaming.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_partner_category.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_yes_member.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/layout_bottom_sheet_face_scan_dialog.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/rounded_preview_view.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/raw/cholchoung.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/7.2/dependencies-accessors/dependencies-accessors.lock" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/7.2/dependencies-accessors/gc.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/7.2/executionHistory/executionHistory.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/7.2/executionHistory/executionHistory.lock" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/7.2/fileChanges/last-build.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/7.2/fileHashes/fileHashes.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/7.2/fileHashes/fileHashes.lock" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/7.2/fileHashes/resourceHashesCache.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/7.2/gc.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/cache.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/checksums/checksums.lock" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/checksums/md5-checksums.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/checksums/sha1-checksums.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/vcs-1/gc.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.gitignore" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.name" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/gradle.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/kotlinc.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/navEditor.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/android-yes.iml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/assetWizardSettings.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/RoamingActivity.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/Roaming1Adapter.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/RoamingAdapter.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/RoamingListAdapter.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/dialogannouncement/CustomDialog.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/bg_dialog_round.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/bg_frame_selector.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/bg_roaming_round_gray.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/bg_roaming_round_pink.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/bg_transparent_roaming_round_pink.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_confirmation.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_roaming_banner.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_roaming.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/dialog_custom.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_layout_roaming_list.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.9/checksums/checksums.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.9/checksums/checksums.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.9/executionHistory/executionHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.9/executionHistory/executionHistory.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.9/executionHistory/executionHistory.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.9/executionHistory/executionHistory.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.9/fileHashes/fileHashes.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.9/fileHashes/fileHashes.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.9/fileHashes/fileHashes.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.9/fileHashes/fileHashes.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.9/fileHashes/resourceHashesCache.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.9/fileHashes/resourceHashesCache.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/app/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/release/output-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/app/release/output-metadata.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/data/network/BaseApiResponse.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/data/network/repository/HomeRepository.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/data/network/repository/ViewModelProviderFactory.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/data/network/retrofit/API.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/data/network/retrofit/RetrofitInstance.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/data/network/viewmodel/HomeViewModel.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/base/activity/BaseActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/base/activity/BaseActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/base/fragment/BaseFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/base/fragment/BaseFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/game/GameActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/game/GameActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/game/GameModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/game/GameModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/game/GamePresenter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/game/GamePresenter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/game/GameRewardActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/game/GameRewardActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/game/GameRewardAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/game/GameRewardAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/AliPayMpayPaymentActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/AliPayMpayPaymentActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/AliPayPaymentActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/AliPayPaymentActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/BaseProductAndServiceActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/BaseProductAndServiceActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/BuyTopUpCardActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/BuyTopUpCardActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/BuyYesNumberPhasePlanSubscriptionActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/BuyYesNumberPhasePlanSubscriptionActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/BuyYesNumberPhaseSummaryActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/BuyYesNumberPhaseSummaryActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/BuyYesNumberPhaseTopUpActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/BuyYesNumberPhaseTopUpActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/BuyYesNumberPhaseTwoActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/BuyYesNumberPhaseTwoActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/data/prefs/SeatelSharePreferences.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/data/prefs/SeatelSharePreferences.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/ConfirmBuyDataPackActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/ConfirmBuyDataPackActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/ConfirmationActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/ConfirmationActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/ContactUsActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/ContactUsActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/DataPackActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/DataPackActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/DeviceDetailActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/DeviceDetailActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/EShopPhaseTwoActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/EShopPhaseTwoActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/FaqDetailActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/FaqDetailActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/HistoryActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/HistoryActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/InternationalCallDetailActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/InternationalCallDetailActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/LocationShopMapActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/LocationShopMapActivity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/LoyKobActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/LoyKobActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/MyCartActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/MyCartActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/MyOrderActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/MyOrderActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/MySubscriptionsActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/MySubscriptionsActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/NotificationListActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/NotificationListActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/OnePlanDetailActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/OnePlanDetailActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/OrderActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/OrderActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/OrderPaymentSuccessActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/OrderPaymentSuccessActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/PaymentActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/PaymentActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/ProductServiceActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/ProductServiceActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/ProductServiceDetailActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/ProductServiceDetailActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/PromotionActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/PromotionActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/SuccessBuyDataPackActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/SuccessBuyDataPackActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/SupportActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/SupportActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/SupportListActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/SupportListActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/TopUpActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/TopUpActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/TopUpSuccessActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/TopUpSuccessActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/WingPaymentActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/WingPaymentActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/YesHubNearestActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/activity/YesHubNearestActivity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/AdapterListParentOrder.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/AdapterListParentOrder.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/AdapterParentOrder.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/AdapterParentOrder.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/BuySimSummaryAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/BuySimSummaryAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/EshopPhaseTwoAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/EshopPhaseTwoAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/FAQsAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/FAQsAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/FullNumberAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/FullNumberAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/MyCartAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/MyCartAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/NearestYesHubLocationAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/NearestYesHubLocationAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/OrderSummaryAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/OrderSummaryAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/PromotionAdapter.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/PromotionAdapter.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/RelatedQuestionListAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/RelatedQuestionListAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/ShopLocationAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/ShopLocationAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/SupportAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/SupportAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/SupportListAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/SupportListAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/SupportedDeviceDetailAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/SupportedDeviceDetailAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/BaseBuySimFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/BaseBuySimFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/FullNumberFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/FullNumberFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/HomeFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/HomeFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/LastFourDigitFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/LastFourDigitFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/OrderPaymentFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/OrderPaymentFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/OrderPickUpDeliveryFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/OrderPickUpDeliveryFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/OrderReviewConfirmFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/OrderReviewConfirmFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/OrderSummaryFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/OrderSummaryFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/PinFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/PinFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/PinlessFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/PinlessFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/PrefixNumberOneFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/PrefixNumberOneFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/PrefixNumberTwoFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/PrefixNumberTwoFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/SupportBottomSheetFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/fragment/SupportBottomSheetFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/model/BannersModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/model/BannersModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/model/MainDataModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/model/MainDataModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/presenter/ProfilePresenter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/presenter/ProfilePresenter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/BuySimSummaryHolder.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/BuySimSummaryHolder.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/CartDeviceViewHolder.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/CartDeviceViewHolder.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/CartScratchViewHolder.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/CartScratchViewHolder.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/CartSimViewHolder.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/CartSimViewHolder.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/EhubViewHolder.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/MyOrderHeaderIdViewHolder.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/MyOrderMainRowViewHolder.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/MyOrderMainRowViewHolder.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/OrderViewHolder.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/PlanSubscriptionViewHolder.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/PlanSubscriptionViewHolder.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/PrefixBottomSheetViewHolder.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/PrefixBottomSheetViewHolder.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/SimPriceViewHolder.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/viewholder/SimPriceViewHolder.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/invite_friend/BottomInviteFriendAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/invite_friend/BottomInviteFriendAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/invite_friend/InviteFriendActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/invite_friend/InviteFriendActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/invite_friend/InviteFriendQrcodeActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/invite_friend/InviteFriendQrcodeActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/invite_friend/InviteFriendScanQrActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/invite_friend/InviteFriendScanQrActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/invite_friend/InviteFriendScanSuccessActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/invite_friend/InviteFriendScanSuccessActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/lang/adapter/LanguageAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/lang/adapter/LanguageAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/lang/fragment/LanguageFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/lang/fragment/LanguageFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/activity/LoginActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/activity/LoginActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/activity/TermsAndConditionsActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/activity/TermsAndConditionsActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/activity/UpdatedSimProfileActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/activity/UpdatedSimProfileActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/fragment/ConfirmationForgotPassFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/fragment/ConfirmationForgotPassFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/fragment/ConfirmationFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/fragment/ConfirmationFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/fragment/ForgotPasswordFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/fragment/ForgotPasswordFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/fragment/LoginFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/fragment/LoginFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/fragment/NewPasswordFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/fragment/NewPasswordFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/fragment/SignUpFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/fragment/SignUpFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/model/ProfileModel.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/login/model/ProfileModel.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/main/MainActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/main/MainActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/InternationalAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/InternationalAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/LoyKobListAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/LoyKobListAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/LoyKobsAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/LoyKobsAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/ProductServicePackageAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/ProductServicePackageAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/RikReayAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/adapter/RikReayAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/fragment/PackageFragment.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/fragment/TestFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/fragment/ServicesFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/ChangePasswordActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/ChangePasswordActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/ChangePasswordCompletedActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/ChangePasswordCompletedActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/EnableFingerprintActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/EnableFingerprintActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/FingerprintConfirmationActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/FingerprintConfirmationActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/GetMoreDataActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/GetMoreDataActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/ProfileActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/ProfileActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/ScanMRZActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/ScanMRZActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/SettingActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/SettingActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/SettingLanguageActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/activity/SettingLanguageActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/adapter/BottomAccountChooserAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/adapter/BottomAccountChooserAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/fragment/BottomSheetFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/fragment/BottomSheetFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/usage/fragement/InternetFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/usage/fragement/InternetFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/usage/fragement/UsageFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/usage/fragement/UsageFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/usage/fragement/VoiceFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/usage/fragement/VoiceFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/AngPavDialog.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/AngPavDialog.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/BottomAccountChooserDialog.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/BottomAccountChooserDialog.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/BottomInviteFriendDialog.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/BottomInviteFriendDialog.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/Constant.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/Constant.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/ActivateBuySimView.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/ActivateBuySimView.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/BottomChooserDialog.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/BottomChooserDialog.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/DialogAddCart.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/DialogAddCart.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/InternetPackDetailView.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/InternetPackDetailView.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/ListSubscriptionPostPaidCircleBalancesView.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/ListSubscriptionPostPaidCircleBalancesView.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/OrderSectionView.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/OrderSectionView.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/TermServicePrivacyPolicyView.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/TermServicePrivacyPolicyView.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/adapter/BottomChooserAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/customview/adapter/BottomChooserAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/dialogannouncement/CustomGameDialog.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/dialogannouncement/CustomGameDialog.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/model/OnePlanDetailSecOneModel.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/model/OnePlanDetailSecOneModel.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/model/ValuePackSecTwoModel.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/model/ValuePackSecTwoModel.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/model/ValuePackTableModel.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/model/ValuePackTableModel.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/presenter/ProductServiceDetailPrsenter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/presenter/ProductServiceDetailPrsenter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/fragment/ServicesFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/packages/fragment/ServicesFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/adapter/MySubscriptionAdapter.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/adapter/MySubscriptionAdapter.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/fragment/ProfilesFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/fragment/ProfilesFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/request/GetMainData.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/request/GetMainData.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/view/ActivateBuySimView.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/view/ActivateBuySimView.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/view/ItemDataPackView.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/view/ItemDataPackView.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/view/OrderBottomBarView.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/view/OrderBottomBarView.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/view/ViewDataPackTabFooter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/util/view/ViewDataPackTabFooter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/drawable/bg_dialog_game.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/drawable/bg_dialog_game.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/drawable/bg_radius_white.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/drawable/bg_radius_white.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/drawable/ic_billing.png" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_billing.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/drawable/ic_inactive_packages.png" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_packages.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_ang_pao_list.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_buy_number_plan_subscription.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_buy_number_plan_subscription.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_buy_number_sumarry.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_buy_number_sumarry.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_buy_top_up_card.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_buy_top_up_card.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_change_password.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_change_password.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_eshop_phase_two.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_eshop_phase_two.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_profile.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_profile.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_top_up_amount.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_top_up_amount.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_veaykaorm.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/dialog_ang_pao_claimed.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/dialog_game.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/dialog_game.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/dialog_support.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/dialog_support.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/dialog_valentine.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/drawable/custom_thumb.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/drawable/custom_thumb.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/drawable/custom_track.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/drawable/custom_track.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_full_number.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_full_number.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_home.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_home.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_last_four_digit.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_last_four_digit.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_package.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_pin.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_pin.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_pinless.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_pinless.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_prefix_number_two.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_prefix_number_two.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_test.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_services.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/item_game_reward.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_game_reward.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/item_layout_loy_kob_tab.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_layout_loy_kob_tab.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/item_loy_kob_list.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_loy_kob_list.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/item_my_subscription_data_pack.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_my_subscription_data_pack.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/item_order_view_holder.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_order_view_holder.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/layout_bottom_billing.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/layout_game_reward.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/layout_game_reward.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/valentine_reward_item.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/valentine_reward_layout.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/view_activate_buy_sim.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/view_activate_buy_sim.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/view_data_pack_tab_footer.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/view_data_pack_tab_footer.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/menu/bottom_nav_menu.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/menu/bottom_nav_menu.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/navigation/mobile_navigation.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/navigation/mobile_navigation.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/raw/mystery_box.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values/colors.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/colors.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_services.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_services.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/item_layout_roaming.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_layout_roaming.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values/themes.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/themes.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gradle.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/settings.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/settings.gradle" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
......@@ -621,7 +458,7 @@
<component name="ClangdSettings">
<option name="formatViaClangd" value="false" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[]" />
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[DeviceId(pluginId=PhysicalDevice, isTemplate=false, identifier=serial=RFCT414QYJF)]" />
<component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$">
<ProjectState />
......@@ -671,17 +508,17 @@
<option value="Kotlin File" />
<option value="Kotlin Interface" />
<option value="Kotlin Data Class" />
<option value="resourceFile" />
<option value="Kotlin Class" />
<option value="layoutResourceFile" />
<option value="resourceFile" />
</list>
</option>
</component>
<component name="GenerateSignedApkSettings">
<option name="EXPORT_PRIVATE_KEY" value="false" />
<option name="KEY_STORE_PATH" value="$PROJECT_DIR$/seashop.jks" />
<option name="KEY_ALIAS" value="seatel_Cambodia" />
<option name="REMEMBER_PASSWORDS" value="true" />
<option name="BUILD_TARGET_KEY" value="apk" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
......@@ -717,53 +554,54 @@
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;Android App.app.executor&quot;: &quot;Run&quot;,
&quot;ApkExportedModule&quot;: &quot;seatel.app&quot;,
&quot;BundleExportedModule&quot;: &quot;seatel.app&quot;,
&quot;ExportApk.ApkPathForseatel.app&quot;: &quot;/Users/seatel/seatel_project/android-yes/app&quot;,
&quot;ExportBundle.BundlePathForseatel.app&quot;: &quot;/Users/seatel/Documents/yes_apk&quot;,
&quot;Gradle.Upgrade Gradle wrapper.executor&quot;: &quot;Run&quot;,
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.cidr.known.project.marker&quot;: &quot;true&quot;,
&quot;RunOnceActivity.readMode.enableVisualFormatting&quot;: &quot;true&quot;,
&quot;android-custom-view/Users/seatel/.gradle/caches/modules-2/files-2.1/androidx.recyclerview/recyclerview/1.2.1/f0f93e67af3f7417bdd560d5142f6dec4fe629c3/recyclerview-1.2.1-sources.jar!/androidx/recyclerview/widget/RecyclerView.java_SELECTED&quot;: &quot;RecyclerView&quot;,
&quot;android-custom-view/Users/seatel/.gradle/caches/modules-2/files-2.1/com.airbnb.android/lottie/6.0.0/5aee39d6c9bb4328e5d6a48e37f39fbff6c80a92/lottie-6.0.0-sources.jar!/com/airbnb/lottie/LottieAnimationView.java_SELECTED&quot;: &quot;LottieAnimationView&quot;,
&quot;android-custom-view/Users/seatel/.gradle/caches/modules-2/files-2.1/com.google.android.material/material/1.6.1/d4d703885d24c61bc0ec39a9a705969e41d773ef/material-1.6.1-sources.jar!/com/google/android/material/navigation/NavigationBarView.java_SELECTED&quot;: &quot;NavigationBarView&quot;,
&quot;android-custom-view/Users/seatel/Library/Android/sdk/sources/android-33/android/view/View.java_SELECTED&quot;: &quot;View&quot;,
&quot;android-custom-view/Users/seatel/android-yes/app/src/main/java/com/seatel/mobilehall/util/circleprogress/ArcProgress.java_SELECTED&quot;: &quot;ArcProgress&quot;,
&quot;android-custom-view/Users/seatel/android-yes/app/src/main/java/com/seatel/mobilehall/util/customview/CustomButton.kt_SELECTED&quot;: &quot;CustomButton&quot;,
&quot;android-custom-view/Users/seatel/android-yes/app/src/main/java/com/seatel/mobilehall/util/customview/CustomTextView.kt_SELECTED&quot;: &quot;CustomTextView&quot;,
&quot;android-custom-view/Users/seatel/android-yes/app/src/main/java/com/seatel/mobilehall/util/customview/ErrorHandleView.java_SELECTED&quot;: &quot;ErrorHandleView&quot;,
&quot;android-custom-view/Users/seatel/android-yes/app/src/main/java/com/seatel/mobilehall/util/view/ViewDataPackTabFooter.kt_SELECTED&quot;: &quot;ViewDataPackTabFooter&quot;,
&quot;android-custom-view/Users/seatel/seatel_project/android-yes/app/src/main/java/com/seatel/mobilehall/util/CircularFrameLayout.java_SELECTED&quot;: &quot;CircularFrameLayout&quot;,
&quot;android-custom-view/Users/seatel/seatel_project/android-yes/app/src/main/java/com/seatel/mobilehall/util/RoundedPreviewView.java_SELECTED&quot;: &quot;RoundedPreviewView&quot;,
&quot;android-custom-view/Users/seatel/seatel_project/android-yes/app/src/main/java/com/seatel/mobilehall/util/customview/ActivateBuySimView.kt_SELECTED&quot;: &quot;ActivateBuySimView&quot;,
&quot;android-custom-view/Users/seatel/seatel_project/android-yes/app/src/main/java/com/seatel/mobilehall/util/view/ActivateBuySimView.kt_SELECTED&quot;: &quot;ActivateBuySimView&quot;,
&quot;cf.first.check.clang-format&quot;: &quot;false&quot;,
&quot;cidr.known.project.marker&quot;: &quot;true&quot;,
&quot;com.google.services.firebase.aqiPopupShown&quot;: &quot;true&quot;,
&quot;dart.analysis.tool.window.visible&quot;: &quot;false&quot;,
&quot;git-widget-placeholder&quot;: &quot;main&quot;,
&quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
&quot;last_directory_selection&quot;: &quot;/Users/seatel/seatel_project/android-yes/app/src/main/res/drawable&quot;,
&quot;last_opened_file_path&quot;: &quot;/Users/seatel/seatel_project/android-yes/app/src/main/res/drawable&quot;,
&quot;memory.settings.postsync.last.time.stamp&quot;: &quot;1725420718992&quot;,
&quot;project.structure.last.edited&quot;: &quot;SDK Location&quot;,
&quot;project.structure.proportion&quot;: &quot;0.17&quot;,
&quot;project.structure.side.proportion&quot;: &quot;0.2&quot;,
&quot;run.code.analysis.last.selected.profile&quot;: &quot;pProject Default&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;reference.settingsdialog.project.gradle&quot;,
&quot;show.migrate.to.gradle.popup&quot;: &quot;false&quot;
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"Android App.app.executor": "Run",
"ApkExportedModule": "seatel.app",
"BundleExportedModule": "seatel.app",
"ExportApk.ApkPathForseatel.app": "/Users/seatel/seatel_project/android-yes/app",
"ExportBundle.BundlePathForseatel.app": "/Users/seatel/Desktop/yes_apk",
"Gradle.Upgrade Gradle wrapper.executor": "Run",
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.cidr.known.project.marker": "true",
"RunOnceActivity.readMode.enableVisualFormatting": "true",
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
"android-custom-view/Users/seatel/.gradle/caches/modules-2/files-2.1/androidx.recyclerview/recyclerview/1.2.1/f0f93e67af3f7417bdd560d5142f6dec4fe629c3/recyclerview-1.2.1-sources.jar!/androidx/recyclerview/widget/RecyclerView.java_SELECTED": "RecyclerView",
"android-custom-view/Users/seatel/.gradle/caches/modules-2/files-2.1/com.airbnb.android/lottie/6.0.0/5aee39d6c9bb4328e5d6a48e37f39fbff6c80a92/lottie-6.0.0-sources.jar!/com/airbnb/lottie/LottieAnimationView.java_SELECTED": "LottieAnimationView",
"android-custom-view/Users/seatel/.gradle/caches/modules-2/files-2.1/com.google.android.material/material/1.6.1/d4d703885d24c61bc0ec39a9a705969e41d773ef/material-1.6.1-sources.jar!/com/google/android/material/navigation/NavigationBarView.java_SELECTED": "NavigationBarView",
"android-custom-view/Users/seatel/Library/Android/sdk/sources/android-33/android/view/View.java_SELECTED": "View",
"android-custom-view/Users/seatel/android-yes/app/src/main/java/com/seatel/mobilehall/util/circleprogress/ArcProgress.java_SELECTED": "ArcProgress",
"android-custom-view/Users/seatel/android-yes/app/src/main/java/com/seatel/mobilehall/util/customview/CustomButton.kt_SELECTED": "CustomButton",
"android-custom-view/Users/seatel/android-yes/app/src/main/java/com/seatel/mobilehall/util/customview/CustomTextView.kt_SELECTED": "CustomTextView",
"android-custom-view/Users/seatel/android-yes/app/src/main/java/com/seatel/mobilehall/util/customview/ErrorHandleView.java_SELECTED": "ErrorHandleView",
"android-custom-view/Users/seatel/android-yes/app/src/main/java/com/seatel/mobilehall/util/view/ViewDataPackTabFooter.kt_SELECTED": "ViewDataPackTabFooter",
"android-custom-view/Users/seatel/seatel_project/android-yes/app/src/main/java/com/seatel/mobilehall/util/CircularFrameLayout.java_SELECTED": "CircularFrameLayout",
"android-custom-view/Users/seatel/seatel_project/android-yes/app/src/main/java/com/seatel/mobilehall/util/RoundedPreviewView.java_SELECTED": "RoundedPreviewView",
"android-custom-view/Users/seatel/seatel_project/android-yes/app/src/main/java/com/seatel/mobilehall/util/customview/ActivateBuySimView.kt_SELECTED": "ActivateBuySimView",
"android-custom-view/Users/seatel/seatel_project/android-yes/app/src/main/java/com/seatel/mobilehall/util/view/ActivateBuySimView.kt_SELECTED": "ActivateBuySimView",
"cf.first.check.clang-format": "false",
"cidr.known.project.marker": "true",
"com.google.services.firebase.aqiPopupShown": "true",
"dart.analysis.tool.window.visible": "false",
"git-widget-placeholder": "main",
"kotlin-language-version-configured": "true",
"last_directory_selection": "/Users/seatel/seatel_project/android-yes/app/src/main/res/drawable",
"last_opened_file_path": "/Users/seatel/seatel_project/android-yes/app/src/main/res/drawable",
"memory.settings.postsync.last.time.stamp": "1725420718992",
"project.structure.last.edited": "SDK Location",
"project.structure.proportion": "0.17",
"project.structure.side.proportion": "0.2",
"run.code.analysis.last.selected.profile": "pProject Default",
"settings.editor.selected.configurable": "reference.settingsdialog.project.gradle",
"show.migrate.to.gradle.popup": "false"
},
&quot;keyToStringList&quot;: {
&quot;ExportApk.BuildVariants&quot;: [
&quot;release&quot;
"keyToStringList": {
"ExportApk.BuildVariants": [
"release"
]
}
}</component>
}]]></component>
<component name="PsdUISettings">
<option name="LAST_EDITED_BUILD_TYPE" value="release" />
</component>
......@@ -781,9 +619,10 @@
<recent name="com.seatel.mobilehall.ui.usage.fragement" />
</key>
<key name="CopyKotlinDeclarationDialog.RECENTS_KEY">
<recent name="com.seatel.mobilehall.ui.packages.adapter" />
<recent name="com.seatel.mobilehall.util.dialogannouncement" />
<recent name="com.seatel.mobilehall.util.customview" />
<recent name="com.seatel.mobilehall.ui.yes_member.adapter" />
<recent name="com.seatel.mobilehall.util.dialogannouncement" />
<recent name="com.seatel.mobilehall.ui.home.adapter" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
......@@ -973,6 +812,14 @@
<line>106</line>
<option name="timeStamp" value="5" />
</line-breakpoint>
<line-breakpoint enabled="true" type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/profile/fragment/ProfilesFragment.kt</url>
<line>141</line>
<properties>
<option name="lambda-ordinal" value="-1" />
</properties>
<option name="timeStamp" value="6" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
......
......@@ -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()
......
package com.seatel.mobilehall.ui.home.activity
import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.graphics.Typeface
import android.os.Build
import android.os.Bundle
import android.text.Html
import android.text.SpannableString
import android.text.style.StyleSpan
import android.util.Log
import android.view.View
import android.view.ViewGroup
......@@ -25,7 +21,6 @@ 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 java.text.DecimalFormat
class ConfirmBuyDataPackActivity : BaseActivity<ActivityConfirmBuyDataPackBinding>(),
BuyDataPackFreedomInteractor.View {
......@@ -55,31 +50,29 @@ class ConfirmBuyDataPackActivity : BaseActivity<ActivityConfirmBuyDataPackBindin
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 {
when {
isFortunePlan -> {
SuccessBuyDataPackActivity.lunchFromValuePack(this, it, isFortunePlan = true)
}
isVipFortunePlan -> {
SuccessBuyDataPackActivity.lunchFromValuePack(this, it, isVipFortunePlan = true)
}
else -> SuccessBuyDataPackActivity.lunchFromValuePack(this, it)
}
}
else SuccessBuyDataPackActivity.lunch(this, mDataSize, mAccountNumber, isDataFreedom)*/
SuccessBuyDataPackActivity.launch(this, name, data, isAddON)
finish()
}
override fun onBuyDataFailed(error: VolleyError) {
Log.d("---buyDataFailed", "onBuyDataFailed: $error")
Log.d("---buyDataFailed", "onBuyDataFailed: ${error.message}")
binding.errorView.visibility = View.GONE
if ( SeatelSuperRequest.getErrorMessageFrom(error).equals("Balance is not enough or no effective balance.")) {
SeatelAlertDialog.with(this, SeatelSuperRequest.getErrorMessageFrom(error))
.setPositiveButton("Top UP",
DialogInterface.OnClickListener { dialog, which ->
TopUpActivity.lunch(this)
}).show()
} else {
SeatelAlertDialog.with(this, SeatelSuperRequest.getErrorMessageFrom(error)).show()
}
binding.buttonOk.isEnabled = true
isAllowBackPressed = true
}
private fun startBuyData() {
......@@ -100,16 +93,6 @@ class ConfirmBuyDataPackActivity : BaseActivity<ActivityConfirmBuyDataPackBindin
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) {
mBuyDataPackFreedomPresenter.onBuyData(getPhoneLogin(), mTypeBuy, 0.1, isTypeAddon)
} else
mBuyDataPackFreedomPresenter.onBuyData(
getPhoneLogin(),
mTypeBuy,
mAmountPost,
isTypeAddon
)*/
}
override fun getViewBinding(): ActivityConfirmBuyDataPackBinding {
......@@ -119,7 +102,6 @@ class ConfirmBuyDataPackActivity : BaseActivity<ActivityConfirmBuyDataPackBindin
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activityEnterFadeInAnimation()
// setContentView(R.layout.activity_confirm_buy_data_pack)
val tsLong = System.currentTimeMillis() / 1000
requestTime = tsLong.toString()
......@@ -132,301 +114,6 @@ class ConfirmBuyDataPackActivity : BaseActivity<ActivityConfirmBuyDataPackBindin
}
private fun setupView() {
isDataFreedom = intent.getBooleanExtra(Constant.LAUNCH_FROM, false)
isValuePack = intent.getBooleanExtra("IS_VALUE_PACK", false)
isFortunePlan = intent.getBooleanExtra("IS_FORTUNE_PACK", false)
isVipFortunePlan = intent.getBooleanExtra("IS_VIP_FORTUNE_PACK", false)
isloykob = intent.getBooleanExtra("IS_LOY_KOB", false)
isTypeAddon = intent.getStringExtra("add-on").toString()
mAccountNumber =
if (intent.hasExtra(Constant.MPAY_ACCOUNT_TRANFER)) intent.getStringExtra(Constant.MPAY_ACCOUNT_TRANFER)
.toString()
else getPhoneLogin()
var datePlan = 0
if (intent.hasExtra(Constant.DURATION_PLAN_DATE_SELECT)) datePlan =
intent.getIntExtra(Constant.DURATION_PLAN_DATE_SELECT, 0)
val dayStr = if (datePlan > 1) SeatelUtils.translatForDialog(
this, "Days"
) else SeatelUtils.translatForDialog(this, "Day")
val dataMB: Double
val amountMB: String
Log.d("---isValuePack", "onCreate: $isValuePack")
when {
isDataFreedom -> {
mTypeBuy = Constant.FREEDOM_INTERNET //"freedom-data"
val amountTransfer: Long = intent.getLongExtra(Constant.MPAY_AMOUNT, 0)
mAmountPost = amountTransfer.toDouble()
dataMB = SeatelUtils.calcualateFreedomDataInput(amountTransfer)
val convertSucess = SeatelUtils.displayDataFreedomDataInput(dataMB)
val dataMBDisplay = convertSucess[0]
mDataSize = convertSucess[0].toString()
val str = "$dataMBDisplay${convertSucess[1]} = $"
val wordDataBuy = SpannableString("$str$amountTransfer")
wordDataBuy.setSpan(StyleSpan(Typeface.BOLD), 0, dataMBDisplay.length, 0)
binding.cvDataBuy.text = wordDataBuy
binding.ctvDeduct.text = "${
SeatelUtils.translatForDialog(
this, getString(R.string.we_will_deduct)
)
} $$amountTransfer ${
SeatelUtils.translatForDialog(
this, getString(R.string.from_ur_balance)
)
}"
}
isValuePack -> {
if (intent.hasExtra("VALUE_PACK_DATA")) {
mTypeBuy = Constant.VALUE_PACK
mDataValuePack = Gson().fromJson(
intent.getStringExtra("VALUE_PACK_DATA"), ValuePackTableModel::class.java
)
val price = mDataValuePack?.valuePrice?.replace("$", "")
if (price != null) {
mAmountPost = price.toDouble()
}
val formatterPrice = DecimalFormat("$#0")
val strValidity = "${mDataValuePack?.validityDate}"
val amount = mDataValuePack?.priceChange?.replace("$", "")
val strAmount = "${formatterPrice.format(amount?.toDouble())}"
val formatter = DecimalFormat("$#0.00")
// val priceChange = mDataValuePack?.valuePrice?.replace("$","")
val str = "${
SeatelUtils.translatForDialog(
this, "Value Pack"
)
} <b>${mDataValuePack?.valuePrice} = $strAmount</b> "
val strValid = "${
SeatelUtils.translatForDialog(
this, "Valid for"
)
} <b>${strValidity.toLowerCase()}</b> "
binding.cvDataValidValuePack.visibility = View.VISIBLE
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
binding.cvDataBuy.text = Html.fromHtml(str, Html.FROM_HTML_MODE_COMPACT)
binding.cvDataValidValuePack.text =
Html.fromHtml(strValid, Html.FROM_HTML_MODE_COMPACT)
} else {
binding.cvDataBuy.text = Html.fromHtml(str)
binding.cvDataValidValuePack.text = Html.fromHtml(strValid)
}
binding.ctvDeduct.text = "${
SeatelUtils.translatForDialog(
this, getString(R.string.we_will_deduct)
)
} ${formatter.format(mAmountPost)} ${
SeatelUtils.translatForDialog(
this, getString(R.string.from_ur_balance)
)
}"
}
}
isFortunePlan -> {
if (intent.hasExtra("VALUE_PACK_DATA")) {
binding.ctvBuyData.text = "Buy Fortune Pack"
mTypeBuy = Constant.FORTUNE_PACK
mDataValuePack = Gson().fromJson(
intent.getStringExtra("VALUE_PACK_DATA"), ValuePackTableModel::class.java
)
val price = mDataValuePack?.valuePrice?.replace("$", "")
if (price != null) {
mAmountPost = price.toDouble()
}
//val formatterPrice = DecimalFormat("$#0")
val strValidity = "${mDataValuePack?.validityDate}"
//val amount = mDataValuePack?.priceChange
val strAmount = mDataValuePack?.priceChange
val formatter = DecimalFormat("$#0.00")
// val priceChange = mDataValuePack?.valuePrice?.replace("$","")
val str = "${
SeatelUtils.translatForDialog(
this, "Fortune Pack"
)
} <b>${mDataValuePack?.valuePrice} = $strAmount</b> "
val strValid = "${
SeatelUtils.translatForDialog(
this, "Valid for"
)
} <b>${strValidity.toLowerCase()}</b> "
binding.cvDataValidValuePack.visibility = View.VISIBLE
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
binding.cvDataBuy.text = Html.fromHtml(str, Html.FROM_HTML_MODE_COMPACT)
binding.cvDataValidValuePack.text =
Html.fromHtml(strValid, Html.FROM_HTML_MODE_COMPACT)
} else {
binding.cvDataBuy.text = Html.fromHtml(str)
binding.cvDataValidValuePack.text = Html.fromHtml(strValid)
}
binding.ctvDeduct.text = "${
SeatelUtils.translatForDialog(
this, getString(R.string.we_will_deduct)
)
} ${formatter.format(mAmountPost)} ${
SeatelUtils.translatForDialog(
this, getString(R.string.from_ur_balance)
)
}"
}
}
isVipFortunePlan -> {
if (intent.hasExtra("VALUE_PACK_DATA")) {
binding.ctvBuyData.text = "Buy VIP Fortune Pack"
mTypeBuy = Constant.VIP_FORTUNE_PACK
mDataValuePack = Gson().fromJson(
intent.getStringExtra("VALUE_PACK_DATA"), ValuePackTableModel::class.java
)
val price = mDataValuePack?.valuePrice?.replace("$", "")
if (price != null) {
mAmountPost = price.toDouble()
}
//val formatterPrice = DecimalFormat("$#0")
val strValidity = "${mDataValuePack?.validityDate}"
//val amount = mDataValuePack?.priceChange
val strAmount = mDataValuePack?.priceChange
val formatter = DecimalFormat("$#0.00")
// val priceChange = mDataValuePack?.valuePrice?.replace("$","")
val str = "${
SeatelUtils.translatForDialog(
this, "VIP Fortune Pack"
)
} <b>${mDataValuePack?.valuePrice} = $strAmount</b> "
val strValid = "${
SeatelUtils.translatForDialog(
this, "Valid for"
)
} <b>${strValidity.toLowerCase()}</b> "
binding.cvDataValidValuePack.visibility = View.VISIBLE
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
binding.cvDataBuy.text = Html.fromHtml(str, Html.FROM_HTML_MODE_COMPACT)
binding.cvDataValidValuePack.text =
Html.fromHtml(strValid, Html.FROM_HTML_MODE_COMPACT)
} else {
binding.cvDataBuy.text = Html.fromHtml(str)
binding.cvDataValidValuePack.text = Html.fromHtml(strValid)
}
binding.ctvDeduct.text = "${
SeatelUtils.translatForDialog(
this, getString(R.string.we_will_deduct)
)
} ${formatter.format(mAmountPost)} ${
SeatelUtils.translatForDialog(
this, getString(R.string.from_ur_balance)
)
}"
}
}
isloykob -> {
if (intent.hasExtra("VALUE_PACK_DATA")) {
binding.ctvBuyData.text = Constant.IS_LOY_KOB
mTypeBuy = Constant.IS_LOY_KOB
mDataValuePack = Gson().fromJson(
intent.getStringExtra("VALUE_PACK_DATA"), ValuePackTableModel::class.java
)
val price = mDataValuePack?.valuePrice?.replace("$", "")
if (price != null) {
mAmountPost = price.toDouble()
}
//val formatterPrice = DecimalFormat("$#0")
val strValidity = "${mDataValuePack?.validityDate}"
//val amount = mDataValuePack?.priceChange
val strAmount = mDataValuePack?.priceChange
val formatter = DecimalFormat("$#0.00")
// val priceChange = mDataValuePack?.valuePrice?.replace("$","")
val str = "${
SeatelUtils.translatForDialog(
this, "VIP Fortune Pack"
)
} <b>${mDataValuePack?.valuePrice} = $strAmount</b> "
val strValid = "${
SeatelUtils.translatForDialog(
this, "Valid for"
)
} <b>${strValidity.toLowerCase()}</b> "
binding.cvDataValidValuePack.visibility = View.VISIBLE
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
binding.cvDataBuy.text = Html.fromHtml(str, Html.FROM_HTML_MODE_COMPACT)
binding.cvDataValidValuePack.text =
Html.fromHtml(strValid, Html.FROM_HTML_MODE_COMPACT)
} else {
binding.cvDataBuy.text = Html.fromHtml(str)
binding.cvDataValidValuePack.text = Html.fromHtml(strValid)
}
binding.ctvDeduct.text = "${
SeatelUtils.translatForDialog(
this, getString(R.string.we_will_deduct)
)
} ${formatter.format(mAmountPost)} ${
SeatelUtils.translatForDialog(
this, getString(R.string.from_ur_balance)
)
}"
}
}
else -> {
mTypeBuy = Constant.INTERNET_PACK //"datapack"
val price = intent.getStringExtra(Constant.PRICE_VALUE)
if (price!!.isNotEmpty()) mAmountPost = price.substring(1).toDouble()
amountMB = intent.getStringExtra(Constant.MPAY_AMOUNT).toString()
mDataSize = amountMB
// binding.cvDataBuy.text = "$datePlan$dayStr (\$$price = $amountMB)"
val str = "<font size=5>$datePlan$dayStr </font> <b>( ${
SeatelUtils.formatDecimalNumber(
mAmountPost, "$#.##"
)
} = $amountMB )</b> "
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
binding.cvDataBuy.text = Html.fromHtml(str, Html.FROM_HTML_MODE_COMPACT)
} else binding.cvDataBuy.text = Html.fromHtml(str)
binding.ctvDeduct.text = "${
SeatelUtils.translatForDialog(
this, getString(R.string.we_will_deduct)
)
} $price ${
SeatelUtils.translatForDialog(
this, getString(R.string.from_ur_balance)
)
}"
}
}
binding.tvPhoneNumber.text = SeatelUtils.phoneNumberFormat(mAccountNumber)
binding.buttonOk.setOnClickListener {
startBuyData()
binding.buttonOk.isEnabled = false
isAllowBackPressed = false
}
if (isDataFreedom) {
binding.ctvBuyData.text = getString(R.string.buy_freedom_internet)
} else if (isValuePack || isFortunePlan) binding.ctvBuyData.text = "Activate"
binding.imageViewBack.setOnClickListener {
onBackPressed()
}
}
private fun getData() {
name = intent.getStringExtra("NAME").toString()
......@@ -445,11 +132,6 @@ class ConfirmBuyDataPackActivity : BaseActivity<ActivityConfirmBuyDataPackBindin
binding.cvDataBuy.text = SeatelUtils.translatForDialog(this, "$fee")
binding.tvPhoneNumber.text = getPhoneLogin()
// valuePackSectionModel = intent.getSerializableExtra("valuePackSectionModel") as ValuePackSectionModel
// binding.ctvBuyData.text = SeatelUtils.translatForDialog(this,"Buy ${valuePackSectionModel!!.name}")
// binding.cvDataBuy.text = SeatelUtils.translatForDialog(this, "${valuePackSectionModel!!.valuePackSecTwoModel.table[0].valuePrice}")
// Log.d("TAG::>>>", "init: $valuePackSectionModel")
binding.ctvDeduct.text = "${
SeatelUtils.translatForDialog(
this, getString(R.string.we_will_deduct)
......
......@@ -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)
}
}
......
......@@ -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.content.DialogInterface
import android.content.Intent
import android.provider.Settings
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.animation.AccelerateDecelerateInterpolator
import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.android.volley.Request
import com.android.volley.VolleyError
import com.bumptech.glide.Glide
import com.facebook.internal.Utility.logd
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.ItemLayoutRoamingBinding
import com.seatel.mobilehall.ui.base.adapter.BaseAdapter
import com.seatel.mobilehall.ui.home.activity.ConfirmBuyDataPackActivity
import com.seatel.mobilehall.ui.home.model.ValuePackSectionModel
import com.seatel.mobilehall.ui.packages.RoamingActivity
import com.seatel.mobilehall.ui.packages.fragment.ServicesFragment
import com.seatel.mobilehall.util.dialogannouncement.CustomDialog
import org.json.JSONObject
class Roaming1Adapter(
private var mContext: Context,
private var phoneLogin: String,
private var type: String,
private var canSubscribe: Boolean,
private var appProductsDetail: ValuePackSectionModel
) : BaseAdapter<Roaming1Adapter.ViewHolder>() {
private var isSwitchChangingState = false
private var isRoaming = false
private var isSpecialSim = false
class ViewHolder(var binding: ItemLayoutRoamingBinding) : RecyclerView.ViewHolder(binding.root)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Roaming1Adapter.ViewHolder {
val binding = ItemLayoutRoamingBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
return ViewHolder(binding)
}
override fun getItemCount(): Int {
return 1
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val context = holder.binding.root.context
Glide.with(mContext)
.load(appProductsDetail.dataPackDetailSecOneModel.mobileImageUrl)
.into(holder.binding.ivBanner)
holder.binding.tvMainTitle.text = appProductsDetail.valuePackSecTwoModel.title
holder.binding.tvRemindTitle.apply {
settings.javaScriptEnabled = true
loadDataWithBaseURL(
null,
appProductsDetail.valuePackSecTwoModel.subTitle,
"text/html",
"UTF-8",
null
)
settings.defaultFontSize = 12
}
holder.binding.customTextView.apply {
settings.javaScriptEnabled = true
loadDataWithBaseURL(
null,
appProductsDetail.valuePackSecThreeModel.description,
"text/html",
"UTF-8",
null
)
settings.defaultFontSize = 12
}
holder.binding.swOnOff.isChecked =
SeatelSharePreferences.getInstance(mContext)?.isRoamingActivation()!!
holder.binding.swOnOff.setOnCheckedChangeListener { _, isChecked ->
if (isSwitchChangingState) return@setOnCheckedChangeListener
isRoaming = SeatelSharePreferences.getInstance(mContext)?.isRoamingActivation()!!
isSpecialSim = SeatelSharePreferences.getInstance(mContext)?.isSpecialSimcard()!!
holder.binding.swOnOff.isEnabled = false
if (isSpecialSim) {
handleSpecialSimToggle(context, isChecked, isRoaming, holder.binding)
} else {
isSwitchChangingState = true
holder.binding.swOnOff.isChecked = isRoaming
isSwitchChangingState = false
val dialog =
CustomDialog(
mContext,
"",
mContext.getString(R.string.not_special_sim_msg),
R.drawable.ic_warning, "OK", ""
).setPositiveButton(
"Ok",
DialogInterface.OnClickListener { dialog, which -> dialog.dismiss() })
dialog.show()
}
holder.binding.swOnOff.isEnabled = true
}
Glide.with(mContext)
.load(appProductsDetail.dataPackDetailSecOneModel.mobileImageUrl2)
.into(holder.binding.ivBannerTwo)
holder.binding.roamingRecycler.layoutManager =
LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)
holder.binding.roamingRecycler.adapter =
RoamingListAdapter(
mContext,
appProductsDetail.valuePackSecTwoModel.table
) { item ->
holder.binding.layoutDetail.postDelayed({
animateItem(holder.binding.layoutDetail)
}, 100)
if (context is RoamingActivity) {
context.scrollToLastPosition()
}
holder.binding.layoutDetail.visibility = ViewGroup.VISIBLE
holder.binding.tvData.text = item.priceChange
Glide.with(context).load(item.icon).into(holder.binding.icLogo)
holder.binding.btnSubscribe.setOnClickListener {
val checkIsRoaming =
SeatelSharePreferences.getInstance(mContext)?.isRoamingActivation()
if (!checkIsRoaming!!) {
val dialog =
CustomDialog(
mContext,
"Attention",
mContext.getString(R.string.inactive_roaming_service_msg),
R.drawable.ic_warning, "Ok", ""
).setPositiveButton(
"Ok",
DialogInterface.OnClickListener { dialog, which ->
dialog.dismiss()
holder.binding.layoutDetail.postDelayed({
animateItem(holder.binding.layoutDetail)
}, 100)
})
dialog.show()
} else
if (item.activateBtn) {
val name = item.title
val type = appProductsDetail.type
val validity = item.validityDate
val fee = item.valuePrice
val data = item.priceChange
val pricePlanCode = item.code
val isAddOn = false
ConfirmBuyDataPackActivity.launch(
mContext,
name,
type,
validity,
fee,
data,
pricePlanCode,
isAddOn
)
}
}
}
}
private fun animateItem(view: View) {
// Set the initial position below the screen
view.translationY = view.height.toFloat()
// Animate the view to its normal position
view.animate()
.translationY(0f)
.setDuration(300) // Duration for the animation
.setInterpolator(AccelerateDecelerateInterpolator()) // Interpolator for smoothness
.start()
}
private fun handleSpecialSimToggle(
context: Context,
isChecked: Boolean,
isRoaming: Boolean,
binding: ItemLayoutRoamingBinding
) {
if (!isRoaming) {
val dialog =
CustomDialog(
mContext,
"Confirmation",
mContext.getString(R.string.active_roaming_service_msg),
R.drawable.ic_confirmation, "Confirm", "NO"
).setPositiveButton("Confirm", DialogInterface.OnClickListener { dialog, which ->
requestRoamingService(
phoneNumber = phoneLogin,
type = appProductsDetail.type,
action = "activate",
onSuccess = {
updateSwitchState(binding, isChecked)
showActivationSuccessDialog(context)
},
onFailure = {
revertSwitchState(binding, isRoaming)
showToast(context, SeatelSuperRequest.getErrorMessageFrom(it))
}
)
dialog.dismiss()
}).setNegativeButton("NO", DialogInterface.OnClickListener { dialog, which ->
revertSwitchState(binding, isRoaming)
dialog.dismiss()
})
dialog.show()
} else {
val dialog =
CustomDialog(
mContext,
"Confirmation", mContext.getString(R.string.confirm_deactivate_roaming_msg),
R.drawable.ic_confirmation, "Confirm", "NO"
).setPositiveButton("Confirm", DialogInterface.OnClickListener { dialog, _ ->
requestRoamingService(
phoneNumber = phoneLogin,
type = appProductsDetail.type,
action = "activate",
onSuccess = {
updateSwitchState(binding, isChecked)
showDeactivationDialog(context)
},
onFailure = {
revertSwitchState(binding, isRoaming)
showToast(context, SeatelSuperRequest.getErrorMessageFrom(it))
}
)
dialog.dismiss()
}).setNegativeButton("NO", DialogInterface.OnClickListener { dialog, _ ->
revertSwitchState(binding, isRoaming)
dialog.dismiss()
})
dialog.show()
}
}
private fun updateSwitchState(binding: ItemLayoutRoamingBinding, isChecked: Boolean) {
SeatelSharePreferences.getInstance(mContext)
?.setRoamingActivation(isChecked)
isSwitchChangingState = true
binding.swOnOff.isChecked = isChecked
isSwitchChangingState = false
binding.swOnOff.isEnabled = true
}
private fun revertSwitchState(binding: ItemLayoutRoamingBinding, previousState: Boolean) {
isSwitchChangingState = true
binding.swOnOff.isChecked = previousState
isSwitchChangingState = false
binding.swOnOff.isEnabled = true
}
private fun showActivationSuccessDialog(context: Context) {
val dialog =
CustomDialog(
mContext,
"Attention",
mContext.getString(R.string.active_roaming_service_success_msg),
R.drawable.ic_warning, "OK", ""
).setPositiveButton(mContext.getString(R.string.enable_roaming_msg),
DialogInterface.OnClickListener { dialog, _ ->
val intent = Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)
context.startActivity(intent)
dialog.dismiss()
})
dialog.show()
}
private fun showDeactivationDialog(context: Context) {
val dialog =
CustomDialog(
mContext,
"Attention",
"You’ve successfully deactivated the Roaming Service. Please disable the 'Data Roaming' function in your device settings.",
R.drawable.ic_warning, "Confirm", ""
).setPositiveButton(
"Disable Data Roaming in Settings",
DialogInterface.OnClickListener { dialog, which ->
val intent = Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)
context.startActivity(intent)
dialog.dismiss()
})
dialog.show()
}
private fun showToast(context: Context, message: String) {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
}
private fun requestRoamingService(
phoneNumber: String,
type: String,
action: String,
onSuccess: () -> Unit,
onFailure: (VolleyError) -> Unit
) {
object : SeatelJSONObjectRequest(mContext) {
override fun getFunctionName(): String = "seatel/buy-service"
override fun getMethod(): Int = Request.Method.POST
override fun onGetBodyRequest(): String {
val obj = JSONObject()
obj.put("phoneNumber", phoneNumber)
obj.put("type", type)
obj.put("action", action)
return obj.toString()
}
}.setOnErrorListener {
onFailure(it)
}.execute {
logd("requestRoamingService", "Response: ${Gson().toJson(it)}")
onSuccess()
}
}
}
\ No newline at end of file
package com.seatel.mobilehall.ui.packages.adapter
import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.provider.Settings
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.animation.AccelerateDecelerateInterpolator
import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.android.volley.Request
import com.android.volley.VolleyError
import com.bumptech.glide.Glide
import com.facebook.internal.Utility.logd
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.ItemLayoutRoamingBinding
import com.seatel.mobilehall.ui.base.adapter.BaseAdapter
import com.seatel.mobilehall.ui.home.activity.ConfirmBuyDataPackActivity
import com.seatel.mobilehall.ui.home.model.ValuePackSectionModel
import com.seatel.mobilehall.ui.packages.fragment.ServicesFragment
import com.seatel.mobilehall.util.dialogannouncement.CustomDialog
import org.json.JSONObject
class RoamingAdapter(
private var serviceFragment: ServicesFragment,
private var mContext: Context,
private var phoneLogin: String,
private var type: String,
private var canSubscribe: Boolean,
private var appProductsDetail: ValuePackSectionModel
) : BaseAdapter<RoamingAdapter.ViewHolder>() {
private var isSwitchChangingState = false
private var isRoaming = false
private var isSpecialSim = false
class ViewHolder(var binding: ItemLayoutRoamingBinding) : RecyclerView.ViewHolder(binding.root)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RoamingAdapter.ViewHolder {
val binding = ItemLayoutRoamingBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
return ViewHolder(binding)
}
override fun getItemCount(): Int {
return 1
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val context = holder.binding.root.context
Glide.with(mContext)
.load(appProductsDetail.dataPackDetailSecOneModel.mobileImageUrl)
.into(holder.binding.ivBanner)
holder.binding.tvMainTitle.text = appProductsDetail.valuePackSecTwoModel.title
holder.binding.tvRemindTitle.apply {
settings.javaScriptEnabled = true
loadDataWithBaseURL(
null,
appProductsDetail.valuePackSecTwoModel.subTitle,
"text/html",
"UTF-8",
null
)
settings.defaultFontSize = 12
}
holder.binding.customTextView.apply {
settings.javaScriptEnabled = true
loadDataWithBaseURL(
null,
appProductsDetail.valuePackSecThreeModel.description,
"text/html",
"UTF-8",
null
)
settings.defaultFontSize = 12
}
holder.binding.swOnOff.isChecked =
SeatelSharePreferences.getInstance(mContext)?.isRoamingActivation()!!
holder.binding.swOnOff.setOnCheckedChangeListener { _, isChecked ->
if (isSwitchChangingState) return@setOnCheckedChangeListener
isRoaming = SeatelSharePreferences.getInstance(mContext)?.isRoamingActivation()!!
isSpecialSim = SeatelSharePreferences.getInstance(mContext)?.isSpecialSimcard()!!
holder.binding.swOnOff.isEnabled = false
if (isSpecialSim) {
handleSpecialSimToggle(context, isChecked, isRoaming, holder.binding)
} else {
isSwitchChangingState = true
holder.binding.swOnOff.isChecked = isRoaming
isSwitchChangingState = false
val dialog =
CustomDialog(
mContext,
"",
mContext.getString(R.string.not_special_sim_msg),
R.drawable.ic_warning, "OK", ""
).setPositiveButton(
"Ok",
DialogInterface.OnClickListener { dialog, which -> dialog.dismiss() })
dialog.show()
}
holder.binding.swOnOff.isEnabled = true
}
Glide.with(mContext)
.load(appProductsDetail.dataPackDetailSecOneModel.mobileImageUrl2)
.into(holder.binding.ivBannerTwo)
holder.binding.roamingRecycler.layoutManager =
LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)
holder.binding.roamingRecycler.adapter =
RoamingListAdapter(
mContext,
appProductsDetail.valuePackSecTwoModel.table
) { item ->
holder.binding.layoutDetail.postDelayed({
animateItem(holder.binding.layoutDetail)
}, 100)
serviceFragment.scrollToLastPosition()
holder.binding.layoutDetail.visibility = ViewGroup.VISIBLE
holder.binding.tvData.text = item.priceChange
Glide.with(context).load(item.icon).into(holder.binding.icLogo)
holder.binding.btnSubscribe.setOnClickListener {
val checkIsRoaming =
SeatelSharePreferences.getInstance(mContext)?.isRoamingActivation()
if (!checkIsRoaming!!) {
val dialog =
CustomDialog(
mContext,
"Attention",
mContext.getString(R.string.inactive_roaming_service_msg),
R.drawable.ic_warning, "Ok", ""
).setPositiveButton(
"Ok",
DialogInterface.OnClickListener { dialog, which ->
dialog.dismiss()
holder.binding.layoutDetail.postDelayed({
animateItem(holder.binding.layoutDetail)
}, 100)
})
dialog.show()
} else
if (item.activateBtn) {
val name = item.title
val type = appProductsDetail.type
val validity = item.validityDate
val fee = item.valuePrice
val data = item.priceChange
val pricePlanCode = item.code
val isAddOn = false
ConfirmBuyDataPackActivity.launch(
mContext,
name,
type,
validity,
fee,
data,
pricePlanCode,
isAddOn
)
}
}
}
}
private fun animateItem(view: View) {
// Set the initial position below the screen
view.translationY = view.height.toFloat()
// Animate the view to its normal position
view.animate()
.translationY(0f)
.setDuration(300) // Duration for the animation
.setInterpolator(AccelerateDecelerateInterpolator()) // Interpolator for smoothness
.start()
}
private fun handleSpecialSimToggle(
context: Context,
isChecked: Boolean,
isRoaming: Boolean,
binding: ItemLayoutRoamingBinding
) {
if (!isRoaming) {
val dialog =
CustomDialog(
mContext,
"Confirmation",
mContext.getString(R.string.active_roaming_service_msg),
R.drawable.ic_confirmation, "Confirm", "NO"
).setPositiveButton("Confirm", DialogInterface.OnClickListener { dialog, which ->
requestRoamingService(
phoneNumber = phoneLogin,
type = appProductsDetail.type,
action = "activate",
onSuccess = {
updateSwitchState(binding, isChecked)
showActivationSuccessDialog(context)
},
onFailure = {
revertSwitchState(binding, isRoaming)
showToast(context, SeatelSuperRequest.getErrorMessageFrom(it))
}
)
dialog.dismiss()
}).setNegativeButton("NO", DialogInterface.OnClickListener { dialog, which ->
revertSwitchState(binding, isRoaming)
dialog.dismiss()
})
dialog.show()
} else {
val dialog =
CustomDialog(
mContext,
"Confirmation", mContext.getString(R.string.confirm_deactivate_roaming_msg),
R.drawable.ic_confirmation, "Confirm", "NO"
).setPositiveButton("Confirm", DialogInterface.OnClickListener { dialog, _ ->
requestRoamingService(
phoneNumber = phoneLogin,
type = appProductsDetail.type,
action = "activate",
onSuccess = {
updateSwitchState(binding, isChecked)
showDeactivationDialog(context)
},
onFailure = {
revertSwitchState(binding, isRoaming)
showToast(context, SeatelSuperRequest.getErrorMessageFrom(it))
}
)
dialog.dismiss()
}).setNegativeButton("NO", DialogInterface.OnClickListener { dialog, _ ->
revertSwitchState(binding, isRoaming)
dialog.dismiss()
})
dialog.show()
}
}
private fun updateSwitchState(binding: ItemLayoutRoamingBinding, isChecked: Boolean) {
SeatelSharePreferences.getInstance(mContext)
?.setRoamingActivation(isChecked)
isSwitchChangingState = true
binding.swOnOff.isChecked = isChecked
isSwitchChangingState = false
binding.swOnOff.isEnabled = true
}
private fun revertSwitchState(binding: ItemLayoutRoamingBinding, previousState: Boolean) {
isSwitchChangingState = true
binding.swOnOff.isChecked = previousState
isSwitchChangingState = false
binding.swOnOff.isEnabled = true
}
private fun showActivationSuccessDialog(context: Context) {
val dialog =
CustomDialog(
mContext,
"Attention",
mContext.getString(R.string.active_roaming_service_success_msg),
R.drawable.ic_warning, "OK", ""
).setPositiveButton(mContext.getString(R.string.enable_roaming_msg),
DialogInterface.OnClickListener { dialog, _ ->
val intent = Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)
context.startActivity(intent)
dialog.dismiss()
})
dialog.show()
}
private fun showDeactivationDialog(context: Context) {
val dialog =
CustomDialog(
mContext,
"Attention",
"You’ve successfully deactivated the Roaming Service. Please disable the 'Data Roaming' function in your device settings.",
R.drawable.ic_warning, "Confirm", ""
).setPositiveButton(
"Disable Data Roaming in Settings",
DialogInterface.OnClickListener { dialog, which ->
val intent = Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)
context.startActivity(intent)
dialog.dismiss()
})
dialog.show()
}
private fun showToast(context: Context, message: String) {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
}
private fun requestRoamingService(
phoneNumber: String,
type: String,
action: String,
onSuccess: () -> Unit,
onFailure: (VolleyError) -> Unit
) {
object : SeatelJSONObjectRequest(mContext) {
override fun getFunctionName(): String = "seatel/buy-service"
override fun getMethod(): Int = Request.Method.POST
override fun onGetBodyRequest(): String {
val obj = JSONObject()
obj.put("phoneNumber", phoneNumber)
obj.put("type", type)
obj.put("action", action)
return obj.toString()
}
}.setOnErrorListener {
onFailure(it)
}.execute {
logd("requestRoamingService", "Response: ${Gson().toJson(it)}")
onSuccess()
}
}
}
\ 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,8 +95,8 @@ class GetMainData(
}
val contactService = response.optJSONArray("contactService")
val mContactService : ArrayList<ContactService> = ArrayList()
for (i in 0 until contactService.length()){
val mContactService: ArrayList<ContactService> = ArrayList()
for (i in 0 until contactService.length()) {
mContactService.add(
ContactService(
contactService.optJSONObject(i).optString("type"),
......@@ -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>
......
......@@ -3,94 +3,201 @@
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"
android:background="@color/colorBgWhiteGray">
<!-- Banner Image -->
<ImageView
android:adjustViewBounds="true"
android:id="@+id/iv_banner"
android:layout_width="match_parent"
android:layout_height="150dp"
android:scaleType="centerCrop"
android:src="@drawable/ic_invite_friend_banner"
android:layout_height="100dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_roaming_banner"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- Main Title -->
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_main_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_2x_size"
android:gravity="center"
android:text="Enjoying Roaming to Mainland China!"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/extra_large_text_size"
app:layout_constraintTop_toBottomOf="@+id/iv_banner"
tools:layout_editor_absoluteX="-16dp" />
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@+id/iv_banner" />
<!-- Reminder Title -->
<View
android:id="@+id/view_top"
<WebView
android:id="@+id/tv_remind_title"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="@dimen/margin_1x_size"
android:background="@color/colorGray"
app:layout_constraintTop_toBottomOf="@+id/tv_main_title" />
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_2x_size"
android:background="@color/white"
android:padding="@dimen/margin_4x_size"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_main_title"
tools:ignore="WebViewLayout" />
<WebView
android:id="@+id/custom_TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_2x_size"
android:background="@color/white"
android:padding="@dimen/margin_3x_size"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_remind_title"
tools:ignore="WebViewLayout" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/frame_check"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@color/white"
android:padding="@dimen/margin_2x_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/custom_TextView">
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_remind_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/roaming_service"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swOnOff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="10dp"
android:thumb="@drawable/custom_thumb"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:track="@drawable/custom_track" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/iv_banner_two"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginTop="@dimen/margin_2x_size"
android:scaleType="fitCenter"
android:src="@drawable/ic_roaming_banner"
app:layout_constraintTop_toBottomOf="@+id/frame_check" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/roaming_recycler"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_1x_size"
android:gravity="center"
android:text="* Your current SIM card must be switch to a new preferable special SIM card."
android:textSize="@dimen/large_text_size"
app:layout_constraintTop_toBottomOf="@+id/tv_main_title" />
android:padding="@dimen/margin_1x_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_banner_two" />
<View
android:id="@+id/view_bottom"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_detail"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="@dimen/margin_1x_size"
android:background="@color/colorGray"
app:layout_constraintTop_toBottomOf="@+id/tv_remind_title" />
android:layout_height="wrap_content"
android:padding="@dimen/margin_2x_size"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@+id/roaming_recycler">
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/customTextView2"
android:id="@+id/basic_benefit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_1x_size"
android:text="Basic Benefit"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Activate Roaming on your phone"
android:textColor="@color/black"
android:textSize="@dimen/extra_large_text_size"
app:layout_constraintTop_toBottomOf="@+id/view_bottom" />
android:background="@drawable/bg_tab_box_round_gray"
android:padding="@dimen/margin_1x_size"
app:layout_constraintTop_toBottomOf="@+id/basic_benefit">
<ImageView
android:id="@+id/ic_logo"
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/ic_one_plan"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/customTextView3"
android:id="@+id/customTextView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_2x_size"
android:text="How to enable roaming:"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/customTextView2" />
android:layout_marginStart="@dimen/margin_1x_size"
android:text="Data Internet"
android:textSize="@dimen/large_text_size"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/ic_logo"
app:layout_constraintTop_toTopOf="parent" />
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/customTextView4"
android:layout_width="match_parent"
android:id="@+id/tv_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=". To activate the Roaming Server by toggling the button below.
. You must also enable data roaming in your phone setting to use the internet in the country you're visiting."
app:layout_constraintTop_toBottomOf="@+id/customTextView3" />
android:layout_marginStart="@dimen/margin_1x_size"
android:text="5 GB"
android:textColor="@color/colorPrimary"
android:textSize="@dimen/large_text_size"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/ic_logo"
app:layout_constraintTop_toBottomOf="@+id/customTextView2" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swOnOff"
<com.seatel.mobilehall.util.customview.CustomTextView
android:id="@+id/tv_note"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:thumb="@drawable/custom_thumb"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="5dp"
android:text="@string/note_roaming_service"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/customTextView4"
app:showText="true"
app:track="@drawable/custom_track" />
app:layout_constraintTop_toBottomOf="@+id/constraintLayout3" />
<com.seatel.mobilehall.util.customview.CustomButton
android:id="@+id/btn_subscribe"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="@dimen/margin_1x_size"
android:background="@drawable/bg_round_button_primary"
android:gravity="center"
android:text="subscribe"
android:textColor="@color/white"
app:layout_constraintTop_toBottomOf="@+id/tv_note"
tools:layout_editor_absoluteX="0dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<?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