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
You need to sign in or sign up before continuing.
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