From b0dbd7a348d1cf96e151b684787ffbd081778a9c Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Wed, 20 Mar 2024 04:10:12 -0500 Subject: [PATCH 1/6] fix: add a check for minimum poll time --- app/build.gradle | 2 +- .../java/ani/dantotsu/notifications/AlarmManagerScheduler.kt | 4 ++++ .../java/ani/dantotsu/notifications/WorkManagerScheduler.kt | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 8886aa90..f7a04f77 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,7 +15,7 @@ android { targetSdk 34 versionCode((System.currentTimeMillis() / 60000).toInteger()) versionName "3.0.0" - versionCode 220000000 + versionCode 300000000 signingConfig signingConfigs.debug } diff --git a/app/src/main/java/ani/dantotsu/notifications/AlarmManagerScheduler.kt b/app/src/main/java/ani/dantotsu/notifications/AlarmManagerScheduler.kt index 9c89a582..2c729d0b 100644 --- a/app/src/main/java/ani/dantotsu/notifications/AlarmManagerScheduler.kt +++ b/app/src/main/java/ani/dantotsu/notifications/AlarmManagerScheduler.kt @@ -15,6 +15,10 @@ import java.util.concurrent.TimeUnit class AlarmManagerScheduler(private val context: Context) : TaskScheduler { override fun scheduleRepeatingTask(taskType: TaskType, interval: Long) { + if (interval < TimeUnit.MINUTES.toMillis(15)) { + cancelTask(taskType) + return + } val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager val intent = when (taskType) { TaskType.COMMENT_NOTIFICATION -> Intent( diff --git a/app/src/main/java/ani/dantotsu/notifications/WorkManagerScheduler.kt b/app/src/main/java/ani/dantotsu/notifications/WorkManagerScheduler.kt index 0a26213e..422f5586 100644 --- a/app/src/main/java/ani/dantotsu/notifications/WorkManagerScheduler.kt +++ b/app/src/main/java/ani/dantotsu/notifications/WorkManagerScheduler.kt @@ -10,6 +10,10 @@ import ani.dantotsu.notifications.subscription.SubscriptionNotificationWorker class WorkManagerScheduler(private val context: Context) : TaskScheduler { override fun scheduleRepeatingTask(taskType: TaskType, interval: Long) { + if (interval < PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS) { + cancelTask(taskType) + return + } val constraints = Constraints.Builder() .setRequiredNetworkType(androidx.work.NetworkType.CONNECTED) .build() From 23e6323f92d52dd1023936695d05727488975f04 Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Wed, 20 Mar 2024 04:29:14 -0500 Subject: [PATCH 2/6] fix: comment reply dead scrolling space --- app/src/main/res/layout/item_activity.xml | 1 + app/src/main/res/layout/item_comments.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/app/src/main/res/layout/item_activity.xml b/app/src/main/res/layout/item_activity.xml index 5823bdaa..be5c31b8 100644 --- a/app/src/main/res/layout/item_activity.xml +++ b/app/src/main/res/layout/item_activity.xml @@ -225,6 +225,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" + android:nestedScrollingEnabled="false" android:layout_marginStart="16dp"/> \ No newline at end of file diff --git a/app/src/main/res/layout/item_comments.xml b/app/src/main/res/layout/item_comments.xml index 2bc15c09..21111c9b 100644 --- a/app/src/main/res/layout/item_comments.xml +++ b/app/src/main/res/layout/item_comments.xml @@ -318,6 +318,7 @@ android:paddingStart="16dp" android:visibility="visible" tools:ignore="RtlSymmetry" + android:nestedScrollingEnabled="false" tools:visibility="visible" /> \ No newline at end of file From b454a2e3d9fa1fce092d5715740ccf493591cdc5 Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Wed, 20 Mar 2024 13:08:46 -0500 Subject: [PATCH 3/6] fix: comment notification at bottom --- .../java/ani/dantotsu/profile/activity/NotificationActivity.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/ani/dantotsu/profile/activity/NotificationActivity.kt b/app/src/main/java/ani/dantotsu/profile/activity/NotificationActivity.kt index fe01db58..9b68f377 100644 --- a/app/src/main/java/ani/dantotsu/profile/activity/NotificationActivity.kt +++ b/app/src/main/java/ani/dantotsu/profile/activity/NotificationActivity.kt @@ -129,6 +129,7 @@ class NotificationActivity : AppCompatActivity() { ) newNotifications += notification } + newNotifications.sortByDescending { it.createdAt } } notificationList += newNotifications From 3bbf9efe635167bb06564d7e820fc28a1bbd3c05 Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Wed, 20 Mar 2024 13:54:25 -0500 Subject: [PATCH 4/6] dix: comment scroll deadspace --- .../java/ani/dantotsu/media/comments/CommentsFragment.kt | 1 + app/src/main/res/layout/fragment_comments.xml | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/media/comments/CommentsFragment.kt b/app/src/main/java/ani/dantotsu/media/comments/CommentsFragment.kt index e0fe6203..5e699799 100644 --- a/app/src/main/java/ani/dantotsu/media/comments/CommentsFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/comments/CommentsFragment.kt @@ -66,6 +66,7 @@ class CommentsFragment : Fragment() { savedInstanceState: Bundle? ): View { binding = FragmentCommentsBinding.inflate(inflater, container, false) + binding.commentsLayout.isNestedScrollingEnabled = true return binding.root } diff --git a/app/src/main/res/layout/fragment_comments.xml b/app/src/main/res/layout/fragment_comments.xml index 580e7ed3..4004a427 100644 --- a/app/src/main/res/layout/fragment_comments.xml +++ b/app/src/main/res/layout/fragment_comments.xml @@ -1,11 +1,12 @@ - + android:background="?android:colorBackground" + android:fillViewport="true"> - + From adb304f1381b9189c46a7f595a3301f6c84dc14f Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Wed, 20 Mar 2024 14:29:52 -0500 Subject: [PATCH 5/6] fix: manga/anime page noti icon updating --- app/src/main/java/ani/dantotsu/home/AnimeFragment.kt | 3 +++ app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt | 8 ++++++++ app/src/main/java/ani/dantotsu/home/MangaFragment.kt | 3 +++ app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt | 8 ++++++++ 4 files changed, 22 insertions(+) diff --git a/app/src/main/java/ani/dantotsu/home/AnimeFragment.kt b/app/src/main/java/ani/dantotsu/home/AnimeFragment.kt index 2e110541..c7434c96 100644 --- a/app/src/main/java/ani/dantotsu/home/AnimeFragment.kt +++ b/app/src/main/java/ani/dantotsu/home/AnimeFragment.kt @@ -283,6 +283,9 @@ class AnimeFragment : Fragment() { binding.root.requestApplyInsets() binding.root.requestLayout() } + if (this::animePageAdapter.isInitialized && _binding != null) { + animePageAdapter.updateNotificationCount() + } super.onResume() } } \ No newline at end of file diff --git a/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt b/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt index 7665ace2..2c60b3ac 100644 --- a/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt +++ b/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt @@ -215,6 +215,14 @@ class AnimePageAdapter : RecyclerView.Adapter 0) View.VISIBLE else View.GONE + binding.animeNotificationCount.text = Anilist.unreadNotificationCount.toString() + } + } + inner class AnimePageViewHolder(val binding: ItemAnimePageBinding) : RecyclerView.ViewHolder(binding.root) } diff --git a/app/src/main/java/ani/dantotsu/home/MangaFragment.kt b/app/src/main/java/ani/dantotsu/home/MangaFragment.kt index efe39ed6..24eedc27 100644 --- a/app/src/main/java/ani/dantotsu/home/MangaFragment.kt +++ b/app/src/main/java/ani/dantotsu/home/MangaFragment.kt @@ -258,6 +258,9 @@ class MangaFragment : Fragment() { binding.root.requestApplyInsets() binding.root.requestLayout() } + if (this::mangaPageAdapter.isInitialized && _binding != null) { + mangaPageAdapter.updateNotificationCount() + } super.onResume() } diff --git a/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt b/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt index f4b34f7d..2aef3b6b 100644 --- a/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt +++ b/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt @@ -200,6 +200,14 @@ class MangaPageAdapter : RecyclerView.Adapter 0) View.VISIBLE else View.GONE + binding.mangaNotificationCount.text = Anilist.unreadNotificationCount.toString() + } + } + inner class MangaPageViewHolder(val binding: ItemMangaPageBinding) : RecyclerView.ViewHolder(binding.root) } From 42f23e4345450601a69e9450b2d6bdb8989126f6 Mon Sep 17 00:00:00 2001 From: aayush262 Date: Thu, 21 Mar 2024 01:18:36 +0530 Subject: [PATCH 6/6] dix: many small changes --- .../profile/activity/NotificationItem.kt | 16 +++++++- app/src/main/res/layout/item_activity.xml | 41 +++++++++++-------- app/src/main/res/layout/item_follower.xml | 2 +- app/src/main/res/layout/item_notification.xml | 27 +++++++----- app/src/main/res/values-night/colors.xml | 4 +- app/src/main/res/values/colors.xml | 6 +-- 6 files changed, 60 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/profile/activity/NotificationItem.kt b/app/src/main/java/ani/dantotsu/profile/activity/NotificationItem.kt index 961d4c1a..bf56db20 100644 --- a/app/src/main/java/ani/dantotsu/profile/activity/NotificationItem.kt +++ b/app/src/main/java/ani/dantotsu/profile/activity/NotificationItem.kt @@ -2,6 +2,8 @@ package ani.dantotsu.profile.activity import android.util.TypedValue import android.view.View +import android.view.ViewGroup +import androidx.core.view.updateLayoutParams import ani.dantotsu.R import ani.dantotsu.blurImage import ani.dantotsu.connections.anilist.api.Notification @@ -37,17 +39,25 @@ class NotificationItem( ?: notification.user?.avatar?.medium else notification.media?.bannerImage ?: notification.media?.coverImage?.large blurImage(binding.notificationBannerImage, cover) + val defaultHeight = TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, - 170f, + 153f, binding.root.context.resources.displayMetrics ).toInt() + val userHeight = TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 90f, binding.root.context.resources.displayMetrics ).toInt() + val textMarginStart = TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, + 125f, + binding.root.context.resources.displayMetrics + ).toInt() + if (user) { binding.notificationCover.visibility = View.GONE binding.notificationCoverUser.visibility = View.VISIBLE @@ -60,12 +70,16 @@ class NotificationItem( binding.notificationCoverUser.loadImage(notification.user?.avatar?.large) } binding.notificationBannerImage.layoutParams.height = userHeight + binding.notificationGradiant.layoutParams.height = userHeight + (binding.notificationTextContainer.layoutParams as ViewGroup.MarginLayoutParams).marginStart = userHeight } else { binding.notificationCover.visibility = View.VISIBLE binding.notificationCoverUser.visibility = View.VISIBLE binding.notificationCoverUserContainer.visibility = View.GONE binding.notificationCover.loadImage(notification.media?.coverImage?.large) binding.notificationBannerImage.layoutParams.height = defaultHeight + binding.notificationGradiant.layoutParams.height = defaultHeight + (binding.notificationTextContainer.layoutParams as ViewGroup.MarginLayoutParams).marginStart = textMarginStart } } diff --git a/app/src/main/res/layout/item_activity.xml b/app/src/main/res/layout/item_activity.xml index be5c31b8..03b96d30 100644 --- a/app/src/main/res/layout/item_activity.xml +++ b/app/src/main/res/layout/item_activity.xml @@ -94,14 +94,14 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="18dp" - android:layout_marginEnd="18dp" android:layout_marginTop="3dp" + android:layout_marginEnd="18dp" + android:background="?android:colorBackground" android:fontFamily="@font/poppins_semi_bold" android:text="@string/lorem_ipsum" android:textAlignment="center" - tools:visibility="gone" - android:background="?android:colorBackground" - android:textSize="12sp" /> + android:textSize="12sp" + tools:visibility="gone" /> + app:cardCornerRadius="24dp" + app:strokeColor="@color/transparent"> @@ -128,8 +128,8 @@ @@ -138,14 +138,16 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="start|center_vertical" + android:layout_margin="16dp" android:layout_marginStart="16dp" android:backgroundTint="@color/bg_white" - app:cardCornerRadius="16dp"> + app:cardCornerRadius="16dp" + app:strokeColor="@color/transparent"> + android:orientation="vertical" + android:padding="8dp"> @@ -224,8 +229,8 @@ android:id="@+id/activityReplies" android:layout_width="match_parent" android:layout_height="match_parent" - android:visibility="gone" + android:layout_marginStart="16dp" android:nestedScrollingEnabled="false" - android:layout_marginStart="16dp"/> + android:visibility="gone" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_follower.xml b/app/src/main/res/layout/item_follower.xml index 949d39ed..2908ff31 100644 --- a/app/src/main/res/layout/item_follower.xml +++ b/app/src/main/res/layout/item_follower.xml @@ -18,7 +18,7 @@ diff --git a/app/src/main/res/layout/item_notification.xml b/app/src/main/res/layout/item_notification.xml index de373fe1..77868138 100644 --- a/app/src/main/res/layout/item_notification.xml +++ b/app/src/main/res/layout/item_notification.xml @@ -19,14 +19,15 @@ @@ -35,18 +36,19 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="start|center_vertical" - android:layout_marginStart="16dp" + android:layout_margin="16dp" android:backgroundTint="@color/transparent" app:cardCornerRadius="16dp" app:strokeColor="@color/transparent"> @@ -74,11 +76,14 @@ + tools:ignore="HardcodedText,SmallSp" /> diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 981a2b94..8c8f32b9 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -6,8 +6,8 @@ #1C1C1C #001C1C1C #40ffffff - #AA1C1C1C - #20000000 + #AA1C1C1C + #434343 #40ffffff #00000000 #80000000 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 51a30a31..5a4dcc12 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -11,10 +11,10 @@ #80000000 #fff #00BFAEAE - #40000000 - #88989898 - #00FFFFFF + #ACACAC + #00BFAEAE #19000000 + #40000000 #00000000 #A9FFFFFF #80FFFFFF