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
cc62565f
Commit
cc62565f
authored
Jul 10, 2025
by
Seatel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hide slide show
parent
a275fb3a
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
182 additions
and
139 deletions
+182
-139
deviceStreaming.xml
.idea/caches/deviceStreaming.xml
+24
-0
modules.xml
.idea/modules.xml
+0
-8
workspace.xml
.idea/workspace.xml
+40
-9
HomeImageSliderAdapter.kt
...atel/mobilehall/ui/home/adapter/HomeImageSliderAdapter.kt
+80
-80
HomeFragment.kt
...va/com/seatel/mobilehall/ui/home/fragment/HomeFragment.kt
+17
-21
fragment_home.xml
app/src/main/res/layout/fragment_home.xml
+21
-21
No files found.
.idea/caches/deviceStreaming.xml
View file @
cc62565f
...
...
@@ -147,6 +147,18 @@
<option
name=
"screenX"
value=
"1080"
/>
<option
name=
"screenY"
value=
"2400"
/>
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option
name=
"api"
value=
"35"
/>
<option
name=
"brand"
value=
"google"
/>
<option
name=
"codename"
value=
"akita"
/>
<option
name=
"id"
value=
"akita"
/>
<option
name=
"labId"
value=
"google"
/>
<option
name=
"manufacturer"
value=
"Google"
/>
<option
name=
"name"
value=
"Pixel 8a"
/>
<option
name=
"screenDensity"
value=
"420"
/>
<option
name=
"screenX"
value=
"1080"
/>
<option
name=
"screenY"
value=
"2400"
/>
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option
name=
"api"
value=
"34"
/>
<option
name=
"brand"
value=
"motorola"
/>
...
...
@@ -560,6 +572,18 @@
<option
name=
"screenX"
value=
"1008"
/>
<option
name=
"screenY"
value=
"2244"
/>
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option
name=
"api"
value=
"34"
/>
<option
name=
"brand"
value=
"motorola"
/>
<option
name=
"codename"
value=
"lion"
/>
<option
name=
"id"
value=
"lion"
/>
<option
name=
"labId"
value=
"google"
/>
<option
name=
"manufacturer"
value=
"Motorola"
/>
<option
name=
"name"
value=
"moto g04"
/>
<option
name=
"screenDensity"
value=
"280"
/>
<option
name=
"screenX"
value=
"720"
/>
<option
name=
"screenY"
value=
"1612"
/>
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option
name=
"api"
value=
"33"
/>
<option
name=
"brand"
value=
"google"
/>
...
...
.idea/modules.xml
deleted
100644 → 0
View file @
a275fb3a
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"ProjectModuleManager"
>
<modules>
<module
fileurl=
"file://$PROJECT_DIR$/.idea/android-yes.iml"
filepath=
"$PROJECT_DIR$/.idea/android-yes.iml"
/>
</modules>
</component>
</project>
\ No newline at end of file
.idea/workspace.xml
View file @
cc62565f
...
...
@@ -612,7 +612,18 @@
<option
name=
"autoReloadType"
value=
"NONE"
/>
</component>
<component
name=
"ChangeListManager"
>
<list
default=
"true"
id=
"b947e2f9-b70e-404d-b6f9-40fd3f83c1e2"
name=
"Changes"
comment=
"add header "model""
/>
<list
default=
"true"
id=
"b947e2f9-b70e-404d-b6f9-40fd3f83c1e2"
name=
"Changes"
comment=
"add header "model""
>
<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/buildOutputCleanup/buildOutputCleanup.lock"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock"
afterDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin"
afterDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/HomeImageSliderAdapter.kt"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/app/src/main/java/com/seatel/mobilehall/ui/home/adapter/HomeImageSliderAdapter.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/res/layout/fragment_home.xml"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/app/src/main/res/layout/fragment_home.xml"
afterDir=
"false"
/>
</list>
<option
name=
"SHOW_DIALOG"
value=
"false"
/>
<option
name=
"HIGHLIGHT_CONFLICTS"
value=
"true"
/>
<option
name=
"HIGHLIGHT_NON_ACTIVE_CHANGELIST"
value=
"false"
/>
...
...
@@ -621,7 +632,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=ce04171470f5c4e60c)
]"
/>
<component
name=
"ExternalProjectsData"
>
<projectState
path=
"$PROJECT_DIR$"
>
<ProjectState
/>
...
...
@@ -684,6 +695,11 @@
<option
name=
"BUILD_TARGET_KEY"
value=
"apk"
/>
</component>
<component
name=
"Git.Settings"
>
<option
name=
"RECENT_BRANCH_BY_REPOSITORY"
>
<map>
<entry
key=
"$PROJECT_DIR$"
value=
"main"
/>
</map>
</option>
<option
name=
"RECENT_GIT_ROOT_PATH"
value=
"$PROJECT_DIR$"
/>
<option
name=
"RESET_MODE"
value=
"SOFT"
/>
</component>
...
...
@@ -693,12 +709,12 @@
"
assignee
"
:
"
SatyaBou
"
}
}
</component>
<component
name=
"GithubPullRequestsUISettings"
>
{
"
selectedUrlAndAccountId
"
: {
"
url
"
:
"
git@github.com:seatel/android-yes.git
"
,
"
accountId
"
:
"
93031dcc-b6e6-4921-b812-00e4a4ea0dc0
"
<component
name=
"GithubPullRequestsUISettings"
>
<![CDATA[
{
"selectedUrlAndAccountId"
: {
"url": "https://github.com/seatel/android-yes.git"
,
"accountId": "9a61285e-f98e-4e0f-a75a-c303bd913187"
}
}
</component>
}
]]>
</component>
<component
name=
"MarkdownSettingsMigration"
>
<option
name=
"stateVersion"
value=
"1"
/>
</component>
...
...
@@ -745,12 +761,11 @@
"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",
"android.gradle.sync.needed": "true",
"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
",
"git-widget-placeholder": "
yes__enhance
",
"kotlin-language-version-configured": "true",
"last_directory_selection": "/Users/seatel/android_project/android-yes/app/src/main/res/drawable",
"last_opened_file_path": "/Users/seatel/android_project/android-yes/app/src/main/assets/fonts",
...
...
@@ -981,4 +996,20 @@
<MESSAGE
value=
"add header "model""
/>
<option
name=
"LAST_COMMIT_MESSAGE"
value=
"add header "model""
/>
</component>
<component
name=
"play_dynamic_filters_status"
>
<option
name=
"appIdToCheckInfo"
>
<map>
<entry
key=
"com.seatel.mobilehall"
>
<value>
<CheckInfo
lastCheckTimestamp=
"1752130483217"
/>
</value>
</entry>
<entry
key=
"com.seatel.mobilehall.test"
>
<value>
<CheckInfo
lastCheckTimestamp=
"1752130483217"
/>
</value>
</entry>
</map>
</option>
</component>
</project>
\ No newline at end of file
app/src/main/java/com/seatel/mobilehall/ui/home/adapter/HomeImageSliderAdapter.kt
View file @
cc62565f
package
com.seatel.mobilehall.ui.home.adapter
import
android.content.Context
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
coil.load
import
com.seatel.mobilehall.R
import
com.seatel.mobilehall.databinding.ItemHomeImageSliderBinding
import
com.seatel.mobilehall.ui.home.model.BannersModel
import
com.seatel.mobilehall.ui.login.activity.TermsAndConditionsActivity
import
com.smarteist.autoimageslider.SliderViewAdapter
class
HomeImageSliderAdapter
(
var
context
:
Context
,
private
var
onActionLink
:
(
String
)
->
Unit
,
)
:
SliderViewAdapter
<
HomeImageSliderAdapter
.
SliderAdapterVH
>()
{
private
var
mSliderItems
=
mutableListOf
<
BannersModel
>()
fun
renewItems
(
sliderItems
:
MutableList
<
BannersModel
>)
{
mSliderItems
=
sliderItems
notifyDataSetChanged
()
}
fun
deleteItem
(
position
:
Int
)
{
mSliderItems
.
removeAt
(
position
)
notifyDataSetChanged
()
}
fun
addItem
(
sliderItem
:
List
<
BannersModel
>)
{
mSliderItems
=
sliderItem
.
toMutableList
()
notifyDataSetChanged
()
}
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
):
SliderAdapterVH
{
val
binding
=
ItemHomeImageSliderBinding
.
inflate
(
LayoutInflater
.
from
(
parent
.
context
),
parent
,
false
)
return
SliderAdapterVH
(
binding
)
}
override
fun
onBindViewHolder
(
viewHolder
:
SliderAdapterVH
,
position
:
Int
)
{
val
sliderItem
=
mSliderItems
[
position
]
// Load image with Coil
viewHolder
.
view
.
ivAutoImageSlider
.
load
(
sliderItem
.
imageUrl
)
{
crossfade
(
true
)
placeholder
(
R
.
drawable
.
bg_round_gray_section
)
error
(
R
.
drawable
.
bg_round_gray_section
)
}
viewHolder
.
itemView
.
setOnClickListener
(
View
.
OnClickListener
{
when
(
sliderItem
.
actionType
)
{
"in-app"
->
{
TermsAndConditionsActivity
.
launch
(
context
,
sliderItem
.
imageUrl
!!
)
}
"out-app"
->
{
sliderItem
.
url
?.
let
{
url
->
onActionLink
.
invoke
(
url
)
}
}
}
})
}
override
fun
getCount
():
Int
{
//slider view count could be dynamic size
return
mSliderItems
.
size
}
class
SliderAdapterVH
(
val
view
:
ItemHomeImageSliderBinding
)
:
ViewHolder
(
view
.
root
)
}
\ No newline at end of file
//package com.seatel.mobilehall.ui.home.adapter
//
//import android.content.Context
//import android.view.LayoutInflater
//import android.view.View
//import android.view.ViewGroup
//import coil.load
//import com.seatel.mobilehall.R
//import com.seatel.mobilehall.databinding.ItemHomeImageSliderBinding
//import com.seatel.mobilehall.ui.home.model.BannersModel
//import com.seatel.mobilehall.ui.login.activity.TermsAndConditionsActivity
//import com.smarteist.autoimageslider.SliderViewAdapter
//
//class HomeImageSliderAdapter(
// var context: Context,
// private var onActionLink: (String) -> Unit,
//) : SliderViewAdapter<HomeImageSliderAdapter.SliderAdapterVH>() {
//
// private var mSliderItems = mutableListOf<BannersModel>()
//
// fun renewItems(sliderItems: MutableList<BannersModel>) {
// mSliderItems = sliderItems
// notifyDataSetChanged()
// }
//
// fun deleteItem(position: Int) {
// mSliderItems.removeAt(position)
// notifyDataSetChanged()
// }
//
// fun addItem(sliderItem: List<BannersModel>) {
// mSliderItems = sliderItem.toMutableList()
// notifyDataSetChanged()
// }
//
// override fun onCreateViewHolder(parent: ViewGroup): SliderAdapterVH {
//
// val binding =
// ItemHomeImageSliderBinding.inflate(LayoutInflater.from(parent.context), parent, false)
// return SliderAdapterVH(binding)
//
// }
//
// override fun onBindViewHolder(viewHolder: SliderAdapterVH, position: Int) {
// val sliderItem = mSliderItems[position]
//
// // Load image with Coil
// viewHolder.view.ivAutoImageSlider.load(sliderItem.imageUrl) {
// crossfade(true)
// placeholder(R.drawable.bg_round_gray_section)
// error(R.drawable.bg_round_gray_section)
// }
// viewHolder.itemView.setOnClickListener(View.OnClickListener {
//
// when (sliderItem.actionType) {
// "in-app" -> {
// TermsAndConditionsActivity.launch(
// context, sliderItem.imageUrl!!
// )
// }
//
// "out-app" -> {
// sliderItem.url?.let { url ->
// onActionLink.invoke(url)
// }
//
// }
// }
//
//
// })
// }
//
// override fun getCount(): Int {
// //slider view count could be dynamic size
// return mSliderItems.size
// }
//
// class SliderAdapterVH(val view: ItemHomeImageSliderBinding) : ViewHolder(view.root)
//}
\ No newline at end of file
app/src/main/java/com/seatel/mobilehall/ui/home/fragment/HomeFragment.kt
View file @
cc62565f
...
...
@@ -45,7 +45,6 @@ import com.seatel.mobilehall.ui.home.activity.PromotionActivity
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.interactor.BadgesCountInteractor
import
com.seatel.mobilehall.ui.home.interactor.BannersInteractor
import
com.seatel.mobilehall.ui.home.interactor.CategoryInteractor
...
...
@@ -70,9 +69,6 @@ import com.seatel.mobilehall.util.lang.FirstLoginPreference
import
com.seatel.mobilehall.util.manager.OrderingManager
import
com.seatel.mobilehall.util.request.GetMainData
import
com.seatel.mobilehall.util.viewFragmentBinding
import
com.smarteist.autoimageslider.IndicatorView.animation.type.IndicatorAnimationType
import
com.smarteist.autoimageslider.SliderAnimations
import
com.smarteist.autoimageslider.SliderView
import
org.json.JSONArray
import
org.json.JSONObject
...
...
@@ -101,7 +97,7 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
private
var
contactService
=
ArrayList
<
ContactService
>()
private
lateinit
var
homeImageSliderAdapter
:
HomeImageSliderAdapter
//
private lateinit var homeImageSliderAdapter: HomeImageSliderAdapter
private
lateinit
var
categoryAdapter
:
CategoryAdapter
...
...
@@ -472,22 +468,22 @@ class HomeFragment : BaseFragment(), View.OnClickListener, BannersInteractor.Vie
override
fun
onGetBannersSucceed
(
bannersList
:
ArrayList
<
BannersModel
>)
{
binding
.
run
{
bannersList
.
let
{
it
.
run
{
homeImageSliderAdapter
=
HomeImageSliderAdapter
(
requireContext
())
{
gotoPlayStore
(
packageName
=
"com.nacd.stopdrug"
)
}
homeImageSliderAdapter
.
addItem
(
it
)
homeImageSlider
.
setSliderAdapter
(
homeImageSliderAdapter
)
homeImageSlider
.
setIndicatorAnimation
(
IndicatorAnimationType
.
WORM
)
homeImageSlider
.
autoCycleDirection
=
SliderView
.
LAYOUT_DIRECTION_INHERIT
homeImageSlider
.
setSliderTransformAnimation
(
SliderAnimations
.
SIMPLETRANSFORMATION
)
homeImageSlider
.
scrollTimeInSec
=
3
homeImageSlider
.
startAutoCycle
()
}
}
}
//
binding.run {
//
bannersList.let {
//
it.run {
////
homeImageSliderAdapter = HomeImageSliderAdapter(requireContext()) {
////
gotoPlayStore(packageName = "com.nacd.stopdrug")
////
}
////
homeImageSliderAdapter.addItem(it)
////
homeImageSlider.setSliderAdapter(homeImageSliderAdapter)
////
homeImageSlider.setIndicatorAnimation(IndicatorAnimationType.WORM)
////
homeImageSlider.autoCycleDirection = SliderView.LAYOUT_DIRECTION_INHERIT
////
homeImageSlider.setSliderTransformAnimation(SliderAnimations.SIMPLETRANSFORMATION)
////
homeImageSlider.scrollTimeInSec = 3
////
homeImageSlider.startAutoCycle()
//
}
//
}
//
}
}
...
...
app/src/main/res/layout/fragment_home.xml
View file @
cc62565f
...
...
@@ -217,27 +217,27 @@
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<com.smarteist.autoimageslider.SliderView
android:id=
"@+id/homeImageSlider"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_marginStart=
"@dimen/margin_1x_size"
android:layout_marginEnd=
"@dimen/margin_1x_size"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:sliderAnimationDuration=
"600"
app:sliderAutoCycleDirection=
"back_and_forth"
app:sliderAutoCycleEnabled=
"true"
app:sliderIndicatorAnimationDuration=
"600"
app:sliderIndicatorGravity=
"center_horizontal|bottom"
app:sliderIndicatorMarginBottom=
"@dimen/margin_5x_size"
app:sliderIndicatorOrientation=
"horizontal"
app:sliderIndicatorSelectedColor=
"@color/colorPrimaryDark"
app:sliderIndicatorUnselectedColor=
"#FFF"
app:sliderScrollTimeInSec=
"1"
app:sliderStartAutoCycle=
"true"
/
>
<!-- <com.smarteist.autoimageslider.SliderView-->
<!-- android:id="@+id/homeImageSlider"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="0dp"-->
<!-- android:layout_marginStart="@dimen/margin_1x_size"-->
<!-- android:layout_marginEnd="@dimen/margin_1x_size"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- app:sliderAnimationDuration="600"-->
<!-- app:sliderAutoCycleDirection="back_and_forth"-->
<!-- app:sliderAutoCycleEnabled="true"-->
<!-- app:sliderIndicatorAnimationDuration="600"-->
<!-- app:sliderIndicatorGravity="center_horizontal|bottom"-->
<!-- app:sliderIndicatorMarginBottom="@dimen/margin_5x_size"-->
<!-- app:sliderIndicatorOrientation="horizontal"-->
<!-- app:sliderIndicatorSelectedColor="@color/colorPrimaryDark"-->
<!-- app:sliderIndicatorUnselectedColor="#FFF"-->
<!-- app:sliderScrollTimeInSec="1"-->
<!-- app:sliderStartAutoCycle="true" />--
>
</androidx.constraintlayout.widget.ConstraintLayout>
...
...
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