diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c142a81..03d66d1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,10 +15,15 @@
android:supportsRtl="true"
android:theme="@style/Theme.Woka"
tools:targetApi="31">
+
+ android:screenOrientation="portrait" />
+ val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
+ insets
+ }
+
+ window.navigationBarColor = Color.BLACK
+
+ val webSettings: WebSettings = binding.webView.getSettings()
+ webSettings.javaScriptEnabled = true
+
+ webSettings.allowFileAccess = false;
+ webSettings.allowContentAccess = false;
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ webSettings.safeBrowsingEnabled = true
+ };
+
+ binding.webView.setWebViewClient(WebViewClient())
+
+ binding.webView.loadUrl(FM_URL)
+
+ binding.root.setOnClickListener {
+ onBackPressedDispatcher.onBackPressed()
+ }
+ }
+
+ override fun onPause() {
+ super.onPause()
+ binding.webView.onPause()
+ }
+
+ override fun onResume() {
+ super.onResume()
+ binding.webView.onResume()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ binding.webView.destroy()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/HomeActivity.kt b/app/src/main/java/com/woka/home/HomeActivity.kt
index 1ae3a29..cced787 100644
--- a/app/src/main/java/com/woka/home/HomeActivity.kt
+++ b/app/src/main/java/com/woka/home/HomeActivity.kt
@@ -199,8 +199,6 @@ class HomeActivity : WokaBaseActivity(),
}
}
}
-
- registerReceiver(minuteReceiver, IntentFilter(Intent.ACTION_TIME_TICK))
}
private fun initViews() {
@@ -452,16 +450,23 @@ class HomeActivity : WokaBaseActivity(),
override fun onBottomTabSelected(tab: Int) {
when (tab){
HOME -> {
+ binding.notifications.show()
+
if (userPrefs?.appTheme == Theme.THEME_TWO){
+ binding.root.backgroundTintList = ColorStateList.valueOf(getColor(R.color.color_primary))
+
supportFragmentManager.beginTransaction()
.replace(R.id.fc_home, Home2Fragment.newInstance())
.commit()
}else{
+ binding.root.backgroundTintList = null
+
supportFragmentManager.beginTransaction()
.replace(R.id.fc_home, Home1Fragment.newInstance())
.commit()
}
+ registerReceiver(minuteReceiver, IntentFilter(Intent.ACTION_TIME_TICK))
updateBackground()
viewModel.selectedBottomTab = tab
}
@@ -473,6 +478,9 @@ class HomeActivity : WokaBaseActivity(),
, ActivityOptions.makeSceneTransitionAnimation(this).toBundle())
}
MY_LIST -> {
+ binding.notifications.hide()
+ binding.root.backgroundTintList = ColorStateList.valueOf(getColor(R.color.orders_bg))
+
supportFragmentManager.beginTransaction()
.replace(R.id.fc_home, MyListFragment.newInstance())
.commit()
@@ -496,7 +504,6 @@ class HomeActivity : WokaBaseActivity(),
when(binding.bottomNav.getSelectedTab()){
HOME -> {
if (userPrefs?.appTheme == Theme.THEME_ONE){
- binding.root.backgroundTintList = null
val timePeriod = TimePeriod.getCurrentTimePeriod()
if (currentBackground != timePeriod){
@@ -518,8 +525,6 @@ class HomeActivity : WokaBaseActivity(),
currentBackground = timePeriod
}
- }else{
- binding.root.backgroundTintList = ColorStateList.valueOf(getColor(R.color.color_primary))
}
}
}
diff --git a/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt
index 55c1bad..791e96d 100644
--- a/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt
+++ b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt
@@ -19,6 +19,7 @@ import androidx.lifecycle.ViewModelProvider
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
import com.woka.databinding.FragmentHome1Binding
+import com.woka.home.FMActivity
import com.woka.home.HomeViewModel
import com.woka.home.MoreHomeActivity
import com.woka.home.TimePeriod
@@ -70,9 +71,9 @@ class Home1Fragment : Fragment() {
}
private fun initViews() {
- if (viewModel.isHomeBackgroundBlurred){
+ if (viewModel.isHomeBackgroundBlurred) {
binding.playerView.hide()
- }else{
+ } else {
binding.playerView.show()
}
}
@@ -80,7 +81,7 @@ class Home1Fragment : Fragment() {
override fun onResume() {
super.onResume()
handleAnimations()
- if (viewModel.player?.isPlaying == false){
+ if (viewModel.player?.isPlaying == false) {
viewModel.player?.play()
}
@@ -97,7 +98,7 @@ class Home1Fragment : Fragment() {
if (viewModel.player?.isPlaying == true) viewModel.player?.pause()
- if (viewModel.isHomeBackgroundBlurred){
+ if (viewModel.isHomeBackgroundBlurred) {
binding.playerView.hide()
}
}
@@ -151,9 +152,18 @@ class Home1Fragment : Fragment() {
more.setOnClickListener {
activity?.let {
- startActivity(Intent(it, MoreHomeActivity::class.java),
- ActivityOptions.makeSceneTransitionAnimation(it).toBundle())
- } }
+ startActivity(
+ Intent(it, MoreHomeActivity::class.java),
+ ActivityOptions.makeSceneTransitionAnimation(it).toBundle()
+ )
+ }
+ }
+
+ fmButton.setOnClickListener {
+ activity?.let {
+ startActivity(Intent(it, FMActivity::class.java))
+ }
+ }
}
}
@@ -203,7 +213,7 @@ class Home1Fragment : Fragment() {
}
private fun handleAnimations() {
- synchronized(this){
+ synchronized(this) {
if (tvAnimator == null) {
binding.tvView.post {
val endMargin: Float =
@@ -379,7 +389,7 @@ class Home1Fragment : Fragment() {
binding.moon.show()
currentBackground = timePeriod
- synchronized(this){
+ synchronized(this) {
handleNightAnimations()
}
diff --git a/app/src/main/java/com/woka/home/fragments/MyListFragment.kt b/app/src/main/java/com/woka/home/fragments/MyListFragment.kt
index b6599e7..b57437d 100644
--- a/app/src/main/java/com/woka/home/fragments/MyListFragment.kt
+++ b/app/src/main/java/com/woka/home/fragments/MyListFragment.kt
@@ -6,19 +6,79 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.woka.databinding.FragmentMyListBinding
+import com.woka.home.mylist.MyListRepository
+import com.woka.home.mylist.adapters.WebSeriesAdapter
+import com.woka.networking.ApiResult
+import com.woka.utils.hide
+import com.woka.utils.show
class MyListFragment : Fragment() {
private lateinit var binding: FragmentMyListBinding
+ private lateinit var webSeriesEAdapter: WebSeriesAdapter
+ private lateinit var webSeriesHAdapter: WebSeriesAdapter
+
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
- ): View? {
+ ): View {
binding = FragmentMyListBinding.inflate(inflater, container, false)
+
+ // adapters
+ webSeriesEAdapter = WebSeriesAdapter()
+ webSeriesHAdapter = WebSeriesAdapter()
+
+ initViews()
+
+ clickEvents()
+
+ setObservers()
+
+ MyListRepository.loadMyFavList()
+
return binding.root
}
+ private fun initViews() {
+ binding.apply {
+ rvWebSeriesEnglish.adapter = webSeriesEAdapter
+ rvWebSeriesHindi.adapter = webSeriesHAdapter
+ }
+ }
+
+ private fun clickEvents(){
+ binding.apply {
+ backBtn.setOnClickListener {
+ activity?.onBackPressed()
+ }
+ }
+ }
+
+ private fun setObservers(){
+ binding.apply {
+ MyListRepository.myFavListLiveData.observe(viewLifecycleOwner){
+ when (it){
+ is ApiResult.Error -> {
+ webSeriesEnglishView.hide()
+ webSeriesHindiView.hide()
+ }
+ is ApiResult.Loading -> {}
+ is ApiResult.Success -> {
+ it.data?.result?.let { result ->
+ result.show_data?.let {showData ->
+ if (showData.isNotEmpty()){
+ webSeriesEnglishView.show()
+ webSeriesEAdapter.submitList(ArrayList(showData))
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
companion object {
fun newInstance() = MyListFragment()
}
diff --git a/app/src/main/java/com/woka/home/mylist/MyListRepository.kt b/app/src/main/java/com/woka/home/mylist/MyListRepository.kt
new file mode 100644
index 0000000..18e45a0
--- /dev/null
+++ b/app/src/main/java/com/woka/home/mylist/MyListRepository.kt
@@ -0,0 +1,24 @@
+package com.woka.home.mylist
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import com.woka.home.mylist.models.MyListResponse
+import com.woka.networking.ApiResult
+import com.woka.userdata.UserRepository
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+
+object MyListRepository {
+
+ private val _myFavListLiveData = MutableLiveData>()
+ val myFavListLiveData: LiveData>
+ get() = _myFavListLiveData
+
+ fun loadMyFavList(){
+ CoroutineScope(Dispatchers.IO).launch {
+ _myFavListLiveData.postValue(ApiResult.Loading())
+ _myFavListLiveData.postValue(UserRepository.loadMyFavList())
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/mylist/adapters/FavoriteViewHolder.kt b/app/src/main/java/com/woka/home/mylist/adapters/FavoriteViewHolder.kt
new file mode 100644
index 0000000..b7b4a5e
--- /dev/null
+++ b/app/src/main/java/com/woka/home/mylist/adapters/FavoriteViewHolder.kt
@@ -0,0 +1,6 @@
+package com.woka.home.mylist.adapters
+
+import androidx.recyclerview.widget.RecyclerView.ViewHolder
+import com.woka.databinding.FavViewHolderBinding
+
+class FavoriteViewHolder(val binding: FavViewHolderBinding): ViewHolder(binding.root)
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/mylist/adapters/WebSeriesAdapter.kt b/app/src/main/java/com/woka/home/mylist/adapters/WebSeriesAdapter.kt
new file mode 100644
index 0000000..9f33e85
--- /dev/null
+++ b/app/src/main/java/com/woka/home/mylist/adapters/WebSeriesAdapter.kt
@@ -0,0 +1,53 @@
+package com.woka.home.mylist.adapters
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.recyclerview.widget.AsyncDifferConfig
+import androidx.recyclerview.widget.DiffUtil
+import androidx.recyclerview.widget.ListAdapter
+import com.bumptech.glide.Glide
+import com.woka.databinding.FavViewHolderBinding
+import com.woka.home.mylist.models.ShowData
+import java.util.concurrent.Executors
+
+class WebSeriesAdapter(config: AsyncDifferConfig): ListAdapter(config) {
+
+ companion object{
+ private val DIFF_UTIL = object : DiffUtil.ItemCallback(){
+ override fun areItemsTheSame(oldItem: ShowData, newItem: ShowData): Boolean = oldItem.id == newItem.id
+ override fun areContentsTheSame(oldItem: ShowData, newItem: ShowData): Boolean = oldItem == newItem
+ }
+
+ private val DIFF_CONFIG = AsyncDifferConfig.Builder(DIFF_UTIL)
+ .setBackgroundThreadExecutor(Executors.newSingleThreadExecutor())
+ .build()
+ }
+
+ constructor(): this(DIFF_CONFIG)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): FavoriteViewHolder {
+ return FavoriteViewHolder(
+ FavViewHolderBinding.inflate(
+ LayoutInflater.from(parent.context),
+ parent,
+ false
+ )
+ )
+ }
+
+ override fun onBindViewHolder(holder: FavoriteViewHolder, position: Int) {
+ val showData = getItem(position)
+
+ holder.binding.apply {
+ showData.thumbnail_path?.let {
+ Glide.with(root.context)
+ .load(it)
+ .into(image)
+ }
+
+ title.text = showData.title
+
+ fav.isSelected = true
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/mylist/models/AudioData.kt b/app/src/main/java/com/woka/home/mylist/models/AudioData.kt
new file mode 100644
index 0000000..7e3ef5e
--- /dev/null
+++ b/app/src/main/java/com/woka/home/mylist/models/AudioData.kt
@@ -0,0 +1,24 @@
+package com.woka.home.mylist.models
+
+data class AudioData(
+ val age_range_master_id: String?,
+ val audio_duration: String?,
+ val audio_url: String?,
+ val bookmark_category_ids: String?,
+ val bookmark_count: Int?,
+ val category_master_id: String?,
+ val content_more_details: List?,
+ val description: String?,
+ val gender_master_id: String?,
+ val id: Int?,
+ val is_liked: Boolean?,
+ val language_master_id: Int?,
+ val likes_count: Int?,
+ val mark_as_favourite: Boolean?,
+ val media_id: String?,
+ val release_date: String?,
+ val tags_keyword: String?,
+ val thumbnail_path: String?,
+ val title: String?,
+ val views_count: Int?
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/mylist/models/ContentMoreDetail.kt b/app/src/main/java/com/woka/home/mylist/models/ContentMoreDetail.kt
new file mode 100644
index 0000000..c34c59a
--- /dev/null
+++ b/app/src/main/java/com/woka/home/mylist/models/ContentMoreDetail.kt
@@ -0,0 +1,12 @@
+package com.woka.home.mylist.models
+
+data class ContentMoreDetail(
+ val content_id: Int?,
+ val description: String?,
+ val id: Int?,
+ val language_master_id: Int?,
+ val post_type: Int?,
+ val tags_keywords: String?,
+ val title: String?,
+ val url: String?
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/mylist/models/ContentMoreDetailXX.kt b/app/src/main/java/com/woka/home/mylist/models/ContentMoreDetailXX.kt
new file mode 100644
index 0000000..f7d10a9
--- /dev/null
+++ b/app/src/main/java/com/woka/home/mylist/models/ContentMoreDetailXX.kt
@@ -0,0 +1,11 @@
+package com.woka.home.mylist.models
+
+data class ContentMoreDetailXX(
+ val content_id: Int?,
+ val description: String?,
+ val id: Int?,
+ val language_master_id: Int?,
+ val post_type: Int?,
+ val tags_keywords: String?,
+ val title: String?
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/mylist/models/GameData.kt b/app/src/main/java/com/woka/home/mylist/models/GameData.kt
new file mode 100644
index 0000000..3eeff3f
--- /dev/null
+++ b/app/src/main/java/com/woka/home/mylist/models/GameData.kt
@@ -0,0 +1,22 @@
+package com.woka.home.mylist.models
+
+data class GameData(
+ val age_range_master_id: String?,
+ val bookmark_category_ids: String?,
+ val bookmark_count: Int?,
+ val category_master_id: String?,
+ val content_more_details: List?,
+ val description: String?,
+ val game_url: String?,
+ val gender_master_id: String?,
+ val id: Int?,
+ val is_liked: Boolean?,
+ val language_master_id: Int?,
+ val likes_count: Int?,
+ val mark_as_favourite: Boolean?,
+ val release_date: String?,
+ val screen_orientation: String?,
+ val thumbnail_path: String?,
+ val title: String?,
+ val views_count: Int?
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/mylist/models/MyListResponse.kt b/app/src/main/java/com/woka/home/mylist/models/MyListResponse.kt
new file mode 100644
index 0000000..433662d
--- /dev/null
+++ b/app/src/main/java/com/woka/home/mylist/models/MyListResponse.kt
@@ -0,0 +1,5 @@
+package com.woka.home.mylist.models
+
+data class MyListResponse(
+ val result: Result?
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/mylist/models/Result.kt b/app/src/main/java/com/woka/home/mylist/models/Result.kt
new file mode 100644
index 0000000..cff2e4e
--- /dev/null
+++ b/app/src/main/java/com/woka/home/mylist/models/Result.kt
@@ -0,0 +1,9 @@
+package com.woka.home.mylist.models
+
+data class Result(
+ val audio_data: List?,
+ val game_data: List?,
+ val show_data: List?,
+ val sing_karaoke_data: List?,
+ val video_data: List?
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/mylist/models/ShowData.kt b/app/src/main/java/com/woka/home/mylist/models/ShowData.kt
new file mode 100644
index 0000000..7b3bf72
--- /dev/null
+++ b/app/src/main/java/com/woka/home/mylist/models/ShowData.kt
@@ -0,0 +1,21 @@
+package com.woka.home.mylist.models
+
+data class ShowData(
+ val age_range_master_id: String?,
+ val bookmark_category_ids: String?,
+ val bookmark_count: Int?,
+ val category_master_id: String?,
+ val content_more_details: List?,
+ val description: String?,
+ val gender_master_id: String?,
+ val id: Int?,
+ val is_liked: Boolean?,
+ val likes_count: Int?,
+ val mark_as_favourite: Boolean?,
+ val show_type: String?,
+ val thumbnail_path: String?,
+ val title: String?,
+ val total_episodes: Int?,
+ val total_seasons: Int?,
+ val views_count: Int?
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/mylist/models/SingKaraokeData.kt b/app/src/main/java/com/woka/home/mylist/models/SingKaraokeData.kt
new file mode 100644
index 0000000..93d6822
--- /dev/null
+++ b/app/src/main/java/com/woka/home/mylist/models/SingKaraokeData.kt
@@ -0,0 +1,22 @@
+package com.woka.home.mylist.models
+
+data class SingKaraokeData(
+ val age_range_master_id: String?,
+ val bookmark_category_ids: String?,
+ val bookmark_count: Int?,
+ val category_master_id: String?,
+ val content_more_details: List?,
+ val description: String?,
+ val duration: String?,
+ val gender_master_id: String?,
+ val id: Int?,
+ val is_liked: Boolean?,
+ val language_master_id: Int?,
+ val likes_count: Int?,
+ val mark_as_favourite: Boolean?,
+ val release_date: String?,
+ val thumbnail_path: String?,
+ val title: String?,
+ val video_url: String?,
+ val views_count: Int?
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/notifications/NotificationAdapter.kt b/app/src/main/java/com/woka/home/notifications/NotificationAdapter.kt
index cbd5cf5..4109a0c 100644
--- a/app/src/main/java/com/woka/home/notifications/NotificationAdapter.kt
+++ b/app/src/main/java/com/woka/home/notifications/NotificationAdapter.kt
@@ -1,5 +1,6 @@
package com.woka.home.notifications
+import android.util.Log
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.AsyncDifferConfig
@@ -8,6 +9,7 @@ import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.woka.databinding.NotificationViewHolderBinding
import com.woka.home.notifications.models.NotificationData
+import com.woka.utils.TAG
import java.text.SimpleDateFormat
import java.time.LocalDate
import java.time.temporal.ChronoUnit
@@ -50,17 +52,21 @@ class NotificationAdapter(config: AsyncDifferConfig): ListAdap
override fun onBindViewHolder(holder: NotificationViewHolder, position: Int) {
val notification = getItem(position)
- notification.updated_at?.let {
+ notification.created_at?.let {
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'", Locale.getDefault())
.parse(it)?.let { notificationDate ->
- val today = Calendar.getInstance()
+ val today = Calendar.getInstance().apply {
+ set(Calendar.HOUR_OF_DAY, notificationDate.hours)
+ set(Calendar.MINUTE, notificationDate.minutes)
+ set(Calendar.SECOND, notificationDate.seconds)
+ }
val dayDiffs = (today.time.time - notificationDate.time)/(24 * 60 * 60 * 1000)
- val daysTxt = "$dayDiffs days ago"
+ val daysTxt = if (dayDiffs == 0L) "Today" else if (dayDiffs == 1L) "Yesterday" else "$dayDiffs days ago"
holder.binding.daysTxt.text = daysTxt
}
-
- holder.binding.bodyTxt.text = notification.title
}
+
+ holder.binding.bodyTxt.text = notification.title
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/notifications/NotificationRepository.kt b/app/src/main/java/com/woka/home/notifications/NotificationRepository.kt
new file mode 100644
index 0000000..ff56d4a
--- /dev/null
+++ b/app/src/main/java/com/woka/home/notifications/NotificationRepository.kt
@@ -0,0 +1,25 @@
+package com.woka.home.notifications
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import com.woka.home.notifications.models.NotificationData
+import com.woka.networking.ApiResult
+import com.woka.userdata.UserRepository
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+
+object NotificationRepository {
+
+ private val _notificationsLiveData = MutableLiveData>>()
+ val notificationLiveData: LiveData>>
+ get() = _notificationsLiveData
+
+ fun loadNotifications(){
+ CoroutineScope(Dispatchers.IO).launch {
+ _notificationsLiveData.postValue(ApiResult.Loading())
+ _notificationsLiveData.postValue(UserRepository.loadNotifications())
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt b/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt
index d59d5f8..43d44a8 100644
--- a/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt
+++ b/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt
@@ -1,13 +1,18 @@
package com.woka.home.notifications
import android.os.Bundle
+import android.util.Log
import androidx.activity.enableEdgeToEdge
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.woka.R
import com.woka.databinding.ActivityNotificationsBinding
-import com.woka.home.notifications.models.NotificationData
+import com.woka.networking.ApiResult
+import com.woka.utils.TAG
import com.woka.utils.WokaBaseActivity
+import com.woka.utils.hide
+import com.woka.utils.show
+import com.woka.utils.toast
class NotificationsActivity : WokaBaseActivity() {
@@ -30,34 +35,11 @@ class NotificationsActivity : WokaBaseActivity() {
initViews()
- adapter.submitList(listOf(
- NotificationData(
- created_at = "2024-05-31T10:44:09.000000Z",
- description = "2024-05-31T10:44:09.000000Z",
- id = 1,
- image = null,
- is_read = 1,
- link = null,
- post_type = 2,
- title = "New Episode has been added toBang Bang Bang",
- type = "type",
- updated_at = "2024-05-31T10:44:09.000000Z",
- user_id = 1
- ),
- NotificationData(
- created_at = "2024-05-31T10:44:09.000000Z",
- description = "2024-05-31T10:44:09.000000Z",
- id = 2,
- image = null,
- is_read = 1,
- link = null,
- post_type = 2,
- title = "New Episode has been added toBang Bang Bang",
- type = "type",
- updated_at = "2024-06-01T10:44:09.000000Z",
- user_id = 1
- )
- ))
+ clickEvents()
+
+ setObservers()
+
+ NotificationRepository.loadNotifications()
}
@@ -66,4 +48,52 @@ class NotificationsActivity : WokaBaseActivity() {
rvNotifications.adapter = adapter
}
}
+
+ private fun clickEvents() {
+ binding.apply {
+ retry.setOnClickListener {
+ NotificationRepository.loadNotifications()
+ }
+
+ backBtn.setOnClickListener {
+ onBackPressedDispatcher.onBackPressed()
+ }
+ }
+ }
+
+ private fun setObservers() {
+ NotificationRepository.notificationLiveData.observe(this){
+ binding.apply {
+ when (it){
+ is ApiResult.Error -> {
+ rvNotifications.hide()
+ progressBar.hide()
+ noData.hide()
+
+ errorView.show()
+ }
+ is ApiResult.Loading -> {
+ progressBar.show()
+ errorView.hide()
+ }
+ is ApiResult.Success -> {
+ it.data?.let { notifications ->
+ progressBar.hide()
+ errorView.hide()
+
+ if (notifications.isEmpty()){
+ noData.show()
+ rvNotifications.hide()
+ return@observe
+ }
+
+ rvNotifications.show()
+
+ adapter.submitList(notifications)
+ }?:noData.show()
+ }
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/shop/MyOrdersActivity.kt b/app/src/main/java/com/woka/shop/MyOrdersActivity.kt
index c78a99b..9184ab1 100644
--- a/app/src/main/java/com/woka/shop/MyOrdersActivity.kt
+++ b/app/src/main/java/com/woka/shop/MyOrdersActivity.kt
@@ -1,6 +1,5 @@
package com.woka.shop
-import android.graphics.Color
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.core.view.ViewCompat
diff --git a/app/src/main/java/com/woka/userdata/UserApiService.kt b/app/src/main/java/com/woka/userdata/UserApiService.kt
index 608fae6..66c24f4 100644
--- a/app/src/main/java/com/woka/userdata/UserApiService.kt
+++ b/app/src/main/java/com/woka/userdata/UserApiService.kt
@@ -1,5 +1,7 @@
package com.woka.userdata
+import com.woka.home.mylist.models.MyListResponse
+import com.woka.home.notifications.models.NotificationData
import com.woka.userdata.userDataModels.UserDataResponse
import com.woka.networking.ApiResponse
import okhttp3.FormBody
@@ -21,4 +23,10 @@ interface UserApiService {
@GET("user_deactivate_account")
suspend fun deActivateAccount(): Response>
+
+ @GET("get_user_notifications")
+ suspend fun getNotifications(): Response>>
+
+ @POST("favourite_listing")
+ suspend fun getMyFavList(): Response>
}
\ No newline at end of file
diff --git a/app/src/main/java/com/woka/userdata/UserRepository.kt b/app/src/main/java/com/woka/userdata/UserRepository.kt
index 380d33f..2097b25 100644
--- a/app/src/main/java/com/woka/userdata/UserRepository.kt
+++ b/app/src/main/java/com/woka/userdata/UserRepository.kt
@@ -1,5 +1,7 @@
package com.woka.userdata
+import com.woka.home.mylist.models.MyListResponse
+import com.woka.home.notifications.models.NotificationData
import com.woka.userdata.userDataModels.UserDataResponse
import com.woka.networking.ApiResult
import com.woka.networking.RetrofitHelper
@@ -39,4 +41,16 @@ object UserRepository {
userApiService.deActivateAccount()
}
}
+
+ suspend fun loadNotifications(): ApiResult>{
+ return handleApiCall {
+ userApiService.getNotifications()
+ }
+ }
+
+ suspend fun loadMyFavList(): ApiResult{
+ return handleApiCall {
+ userApiService.getMyFavList()
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_heart_not_filled.xml b/app/src/main/res/drawable/ic_heart_not_filled.xml
new file mode 100644
index 0000000..aed203b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_heart_not_filled.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_heart_select.xml b/app/src/main/res/drawable/ic_heart_select.xml
new file mode 100644
index 0000000..458f983
--- /dev/null
+++ b/app/src/main/res/drawable/ic_heart_select.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_fmactivity.xml b/app/src/main/res/layout/activity_fmactivity.xml
new file mode 100644
index 0000000..628d442
--- /dev/null
+++ b/app/src/main/res/layout/activity_fmactivity.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_notifications.xml b/app/src/main/res/layout/activity_notifications.xml
index ca4f56c..7b9a3d6 100644
--- a/app/src/main/res/layout/activity_notifications.xml
+++ b/app/src/main/res/layout/activity_notifications.xml
@@ -11,7 +11,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/blog_view_holder.xml b/app/src/main/res/layout/blog_view_holder.xml
index 7f2b23d..91e1747 100644
--- a/app/src/main/res/layout/blog_view_holder.xml
+++ b/app/src/main/res/layout/blog_view_holder.xml
@@ -27,8 +27,6 @@
android:layout_marginHorizontal="10dp"
android:layout_marginTop="10dp"
- app:cardElevation="3dp"
-
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="5dp">
diff --git a/app/src/main/res/layout/fav_view_holder.xml b/app/src/main/res/layout/fav_view_holder.xml
new file mode 100644
index 0000000..aec140c
--- /dev/null
+++ b/app/src/main/res/layout/fav_view_holder.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_my_list.xml b/app/src/main/res/layout/fragment_my_list.xml
index ec07299..8e94786 100644
--- a/app/src/main/res/layout/fragment_my_list.xml
+++ b/app/src/main/res/layout/fragment_my_list.xml
@@ -1,16 +1,249 @@
-
+ android:background="#D3EFF8"
+ tools:context=".shop.MyOrdersActivity">
+
+
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 6c8ebcf..20ba53f 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -19,4 +19,5 @@
#443682
#cbe16f
+ #D3EFF8
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index aaa44d5..68ee883 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -166,4 +166,9 @@
00:00
/
Notifications
+ Retry
+ No notifications found
+ Favorites
+ WEB SERIES (HINDI)
+ WEB SERIES (ENGLISH)
\ No newline at end of file