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 @@ + + + + + + + +