diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 66cb09a..04991d8 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -4,18 +4,6 @@ - - - - - - - - - - - - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 816ffc5..c142a81 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -16,9 +16,13 @@ android:theme="@style/Theme.Woka" tools:targetApi="31"> + ): ListAdapter(config) { + + companion object{ + private val DIFF_UTIL = object : DiffUtil.ItemCallback(){ + override fun areItemsTheSame( + oldItem: NotificationData, + newItem: NotificationData + ): Boolean = oldItem.id == newItem.id + + override fun areContentsTheSame( + oldItem: NotificationData, + newItem: NotificationData + ): Boolean = oldItem == newItem + } + + private val DIFF_CONFIG = AsyncDifferConfig.Builder(DIFF_UTIL) + .setBackgroundThreadExecutor(Executors.newSingleThreadExecutor()) + .build() + } + + constructor(): this(DIFF_CONFIG) + + inner class NotificationViewHolder(val binding: NotificationViewHolderBinding): ViewHolder(binding.root) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): NotificationViewHolder { + return NotificationViewHolder( + NotificationViewHolderBinding.inflate( + LayoutInflater.from(parent.context), + parent, false + ) + ) + } + + override fun onBindViewHolder(holder: NotificationViewHolder, position: Int) { + val notification = getItem(position) + notification.updated_at?.let { + SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'", Locale.getDefault()) + .parse(it)?.let { notificationDate -> + val today = Calendar.getInstance() + + val dayDiffs = (today.time.time - notificationDate.time)/(24 * 60 * 60 * 1000) + val daysTxt = "$dayDiffs days ago" + holder.binding.daysTxt.text = daysTxt + } + + holder.binding.bodyTxt.text = notification.title + } + } +} \ 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 new file mode 100644 index 0000000..d59d5f8 --- /dev/null +++ b/app/src/main/java/com/woka/home/notifications/NotificationsActivity.kt @@ -0,0 +1,69 @@ +package com.woka.home.notifications + +import android.os.Bundle +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.utils.WokaBaseActivity + +class NotificationsActivity : WokaBaseActivity() { + + private lateinit var binding: ActivityNotificationsBinding + + private lateinit var adapter: NotificationAdapter + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + binding = ActivityNotificationsBinding.inflate(layoutInflater) + setContentView(binding.root) + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) + insets + } + + adapter = NotificationAdapter() + + 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 + ) + )) + + } + + private fun initViews() { + binding.apply { + rvNotifications.adapter = adapter + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/notifications/models/NotificationData.kt b/app/src/main/java/com/woka/home/notifications/models/NotificationData.kt new file mode 100644 index 0000000..eeda4e0 --- /dev/null +++ b/app/src/main/java/com/woka/home/notifications/models/NotificationData.kt @@ -0,0 +1,15 @@ +package com.woka.home.notifications.models + +data class NotificationData( + val created_at: String?, + val description: String?, + val id: Int?, + val image: String?, + val is_read: Int?, + val link: Any?, + val post_type: Int?, + val title: String?, + val type: String?, + val updated_at: String?, + val user_id: Int? +) \ No newline at end of file diff --git a/app/src/main/java/com/woka/modules/wokasongs/WokaSongsAdapter.kt b/app/src/main/java/com/woka/modules/wokasongs/WokaSongsAdapter.kt index a3a1467..9182494 100644 --- a/app/src/main/java/com/woka/modules/wokasongs/WokaSongsAdapter.kt +++ b/app/src/main/java/com/woka/modules/wokasongs/WokaSongsAdapter.kt @@ -76,7 +76,7 @@ class WokaSongsAdapter(context: Context): RecyclerView.Adapter super.onBindViewHolder(holder, position, payloads) + else -> { + playBtn.show() + playBtn.setImageResource(R.drawable.ic_play) + progressBar.hide() + } } } } diff --git a/app/src/main/res/layout/activity_more_home.xml b/app/src/main/res/layout/activity_more_home.xml index 655380d..b1f51d3 100644 --- a/app/src/main/res/layout/activity_more_home.xml +++ b/app/src/main/res/layout/activity_more_home.xml @@ -56,16 +56,18 @@ android:text="@string/coming_soonn_on_woka" android:fontFamily="@font/exo_2_bold" android:textColor="@color/white" - android:textSize="@dimen/_14ssp" + android:textSize="@dimen/_13ssp" - android:layout_marginTop="15dp" + android:layout_marginTop="10dp" android:layout_marginBottom="5dp" android:layout_marginHorizontal="15dp" + android:visibility="gone" /> + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/blog_view_holder.xml b/app/src/main/res/layout/blog_view_holder.xml index 6429966..7f2b23d 100644 --- a/app/src/main/res/layout/blog_view_holder.xml +++ b/app/src/main/res/layout/blog_view_holder.xml @@ -1,7 +1,7 @@ + + + + + + + + + + + \ 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 0a4ff84..aaa44d5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -165,4 +165,5 @@ Do you want to exit from the WOKA app? 00:00 / + Notifications \ No newline at end of file