Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
android-yes
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kheang Chenda
android-yes
Commits
5df2c27c
Commit
5df2c27c
authored
Nov 24, 2025
by
Seatel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
implement acleda service
parent
8e495f6c
Pipeline
#97
failed with stages
Changes
4
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
487 additions
and
5 deletions
+487
-5
AcledaActivity.kt
.../com/seatel/mobilehall/ui/home/activity/AcledaActivity.kt
+229
-0
PaymentActivity.kt
...com/seatel/mobilehall/ui/home/activity/PaymentActivity.kt
+210
-5
Constant.kt
app/src/main/java/com/seatel/mobilehall/util/Constant.kt
+3
-0
activity_acleda.xml
app/src/main/res/layout/activity_acleda.xml
+45
-0
No files found.
app/src/main/java/com/seatel/mobilehall/ui/home/activity/AcledaActivity.kt
0 → 100644
View file @
5df2c27c
package
com.seatel.mobilehall.ui.home.activity
import
android.annotation.SuppressLint
import
android.app.Activity
import
android.content.Context
import
android.content.Intent
import
android.os.Bundle
import
android.util.Log
import
android.view.View
import
android.webkit.WebResourceError
import
android.webkit.WebResourceRequest
import
android.webkit.WebView
import
android.webkit.WebViewClient
import
com.seatel.mobilehall.R
import
com.seatel.mobilehall.ui.base.activity.BaseActivity
import
com.seatel.mobilehall.util.Constant
import
com.seatel.mobilehall.util.SeatelAlertDialog
import
com.seatel.mobilehall.util.customview.ErrorHandleView
import
androidx.core.net.toUri
import
com.seatel.mobilehall.databinding.ActivityAcledaBinding
class
AcledaActivity
:
BaseActivity
<
ActivityAcledaBinding
>()
{
private
lateinit
var
mUrlPay
:
String
private
var
mAmount
:
Double
=
0.0
private
var
mPhoneNumber
:
String
?
=
null
private
var
isAbleBack
:
Boolean
=
false
private
var
isShowValentineDayPromotion
=
false
private
val
mWebViewClient
=
object
:
WebViewClient
()
{
// override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
// println("===>>> WebView onPageStarted: $url")
// super.onPageStarted(view, url, favicon)
// }
override
fun
onPageFinished
(
view
:
WebView
,
url
:
String
)
{
super
.
onPageFinished
(
view
,
url
)
showHideLoading
(
false
)
}
override
fun
onReceivedError
(
view
:
WebView
,
request
:
WebResourceRequest
,
error
:
WebResourceError
)
{
super
.
onReceivedError
(
view
,
request
,
error
)
//closeWingPaymentWithError()
closeAcledaPaymentWithError
()
}
override
fun
shouldOverrideUrlLoading
(
view
:
WebView
?,
request
:
WebResourceRequest
?):
Boolean
{
val
url
=
request
?.
url
.
toString
()
val
uri
=
request
?.
url
.
toString
()
val
host
=
request
?.
url
?.
host
?:
""
Log
.
d
(
"TAG::>>>"
,
"shouldOverrideUrlLoading: url=$url host=$host"
)
println
(
"===> URI: $uri"
)
// SUCCESS
if
(
url
.
contains
(
"_paymentresult=SUCCESS"
))
{
TopUpSuccessActivity
.
lunch
(
this
@AcledaActivity
,
Constant
.
TOPUP_SUCCESS
,
mAmount
.
toString
(),
mPhoneNumber
?:
""
)
finish
()
return
true
}
// CANCEL / SESSION EXPIRED
if
(
url
.
contains
(
"cancel"
))
{
val
uri
=
url
.
toUri
()
val
resultMsg
=
uri
.
getQueryParameter
(
"_resultmsg"
)
?:
"Payment failed"
exitAcledaPayment
(
false
)
return
true
}
val
allowedHosts
=
listOf
(
"yes.com.kh"
,
"dev.yes.com.kh"
,
"api.yes.com.kh"
,
"acleda.com.kh"
,
"api-dev.yes.com.kh"
)
println
(
"===> allowedHosts: $allowedHosts"
)
if
(
allowedHosts
.
any
{
host
.
contains
(
it
)
})
return
false
println
(
"===> host return : $host"
)
startActivity
(
Intent
(
Intent
.
ACTION_VIEW
,
url
.
toUri
()))
return
true
}
}
private
fun
closeAcledaPaymentWithError
()
{
showHideLoading
(
false
)
/* SeatelAlertDialog.with(this, getString(R.string.message_wing_error)).setCancelable(true)
.setPositiveButton(getString(R.string.yes)) { _, _ ->
exitWingPayment(false)
}.show()*/
}
private
fun
closePaymentProcress
()
{
if
(
binding
.
webViewAcleda
.
canGoBack
())
{
binding
.
webViewAcleda
.
goBack
()
}
else
{
showHideLoading
(
false
)
SeatelAlertDialog
.
with
(
this
,
getString
(
R
.
string
.
cancel_process_payment
))
.
setCancelable
(
true
).
setPositiveButton
(
getString
(
R
.
string
.
yes
))
{
_
,
_
->
exitAcledaPayment
(
false
)
}.
setNegativeButton
(
getString
(
R
.
string
.
cancel
))
{
dailog
,
_
->
dailog
.
dismiss
()
}.
show
()
}
}
override
fun
isDisplayBackgroundBlur
():
Boolean
{
return
false
}
override
fun
isDisplayToolbar
():
Boolean
{
return
false
}
override
fun
isStatusBarColorDark
():
Boolean
{
return
true
}
override
fun
getViewBinding
():
ActivityAcledaBinding
{
return
ActivityAcledaBinding
.
inflate
(
layoutInflater
)
}
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
println
(
"===> OnCreateAcledaCalled"
)
activityEnterFadeInAnimation
()
showHideLoading
(
true
)
init
()
}
private
fun
showHideLoading
(
isShow
:
Boolean
)
{
if
(
isShow
)
{
binding
.
errorView
.
visibility
=
View
.
VISIBLE
binding
.
errorView
.
setViewMode
(
ErrorHandleView
.
Mode
.
LOADING
)
}
else
{
binding
.
errorView
.
visibility
=
View
.
GONE
}
}
@SuppressLint
(
"SetJavaScriptEnabled"
)
private
fun
init
()
{
mUrlPay
=
intent
.
getStringExtra
(
"payment_url"
)
?:
""
println
(
"===> Payment URL: $mUrlPay"
)
// Log.d("TAG::>>>", "acledaUrl: $mUrlPay")
// if (mUrlPay.isEmpty()) {
// closeAcledaPaymentWithError()
// return
// }
isShowValentineDayPromotion
=
intent
.
getBooleanExtra
(
"show_valentine_promotion"
,
false
)
isAbleBack
=
intent
.
getBooleanExtra
(
"is_able_back"
,
false
)
mAmount
=
intent
.
getDoubleExtra
(
"top_amount"
,
0.0
)
mPhoneNumber
=
intent
.
getStringExtra
(
Constant
.
PHONE_NUMBER
)
binding
.
webViewAcleda
.
settings
.
javaScriptEnabled
=
true
binding
.
webViewAcleda
.
webViewClient
=
mWebViewClient
binding
.
webViewAcleda
.
loadUrl
(
mUrlPay
)
}
private
fun
exitAcledaPayment
(
isSuccess
:
Boolean
)
{
showHideLoading
(
false
)
if
(
isSuccess
)
{
val
intent
=
Intent
(
this
,
PaymentActivity
::
class
.
java
)
intent
.
putExtra
(
"show_valentine_promotion"
,
isShowValentineDayPromotion
)
setResult
(
Activity
.
RESULT_OK
,
intent
)
}
activityExitLeftAnimation
()
finish
()
}
override
fun
onBackPressed
()
{
super
.
onBackPressed
()
closePaymentProcress
()
}
override
fun
onPause
()
{
super
.
onPause
()
binding
.
webViewAcleda
.
onPause
()
}
override
fun
onResume
()
{
super
.
onResume
()
binding
.
webViewAcleda
.
onResume
()
}
companion
object
{
fun
lunch
(
context
:
Context
,
url
:
String
,
amount
:
Double
,
isAbleBackPress
:
Boolean
=
false
,
showValentineDayPromotion
:
Boolean
=
false
,
phoneNumber
:
String
,
)
{
val
i
=
Intent
(
context
,
AcledaActivity
::
class
.
java
)
i
.
putExtra
(
"payment_url"
,
url
)
i
.
putExtra
(
"top_amount"
,
amount
)
i
.
putExtra
(
"is_able_back"
,
isAbleBackPress
)
// i.putExtra("show_valentine_promotion", showValentineDayPromotion)
i
.
putExtra
(
Constant
.
PHONE_NUMBER
,
phoneNumber
)
(
context
as
Activity
).
startActivityForResult
(
i
,
Constant
.
REQUEST_ACLEDA
)
}
}
}
\ No newline at end of file
app/src/main/java/com/seatel/mobilehall/ui/home/activity/PaymentActivity.kt
View file @
5df2c27c
This diff is collapsed.
Click to expand it.
app/src/main/java/com/seatel/mobilehall/util/Constant.kt
View file @
5df2c27c
...
...
@@ -85,6 +85,7 @@ object Constant {
const
val
SMS_PERMISSION_CODE
=
108
const
val
PHONE_PERMISSION
=
109
const
val
REQUEST_WING
=
99
const
val
REQUEST_ACLEDA
=
200
const
val
PICK_UP_YES_HUB_LOCATION
=
98
const
val
DEVICE_OPTION
=
96
const
val
CART_DEVICE_DETAIL
=
95
...
...
@@ -115,6 +116,8 @@ object Constant {
var
ALI_PAY
=
"alipay"
var
ABA
=
"aba"
var
ABA_CARD
=
"aba-card"
var
ACLEDA
=
"acleda"
var
ACLEDA_KHQR
:
String
=
"acleda-khqr"
/**
* Request
...
...
app/src/main/res/layout/activity_acleda.xml
0 → 100644
View file @
5df2c27c
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/colorBgWhiteGray"
android:fillViewport=
"true"
android:fitsSystemWindows=
"true"
android:scrollbars=
"vertical"
>
<View
android:id=
"@+id/viewSpace"
android:layout_width=
"match_parent"
android:layout_height=
"20dp"
android:background=
"@android:color/transparent"
/>
<ScrollView
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_below=
"@+id/viewSpace"
android:background=
"@color/colorBgWhiteGray"
android:fillViewport=
"true"
android:scrollbars=
"vertical"
>
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/colorBgWhiteGray"
>
<WebView
android:id=
"@+id/web_view_acleda"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:scrollbarStyle=
"insideOverlay"
android:scrollbars=
"vertical"
/>
<com.seatel.mobilehall.util.customview.ErrorHandleView
android:id=
"@+id/error_view"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:visibility=
"invisible"
/>
</RelativeLayout>
</ScrollView>
</RelativeLayout>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment