mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 06:17:57 +01:00 
			
		
		
		
	Minor cleanup
This commit is contained in:
		| @@ -5,7 +5,6 @@ import android.graphics.BitmapFactory | ||||
| import androidx.core.app.NotificationCompat | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.data.download.model.Download | ||||
| import eu.kanade.tachiyomi.data.download.model.DownloadQueue | ||||
| import eu.kanade.tachiyomi.data.notification.NotificationHandler | ||||
| import eu.kanade.tachiyomi.data.notification.NotificationReceiver | ||||
| import eu.kanade.tachiyomi.data.notification.Notifications | ||||
| @@ -96,6 +95,7 @@ internal class DownloadNotifier(private val context: Context) { | ||||
|                     .format(download.downloadedImages, download.pages!!.size)) | ||||
|             setProgress(download.pages!!.size, download.downloadedImages, false) | ||||
|         } | ||||
|  | ||||
|         // Displays the progress bar on notification | ||||
|         notificationBuilder.show() | ||||
|     } | ||||
|   | ||||
| @@ -12,7 +12,6 @@ import android.os.PowerManager | ||||
| import androidx.core.app.NotificationCompat | ||||
| import androidx.core.app.NotificationCompat.GROUP_ALERT_SUMMARY | ||||
| import androidx.core.app.NotificationManagerCompat | ||||
| import androidx.core.content.ContextCompat | ||||
| import com.bumptech.glide.Glide | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.data.database.DatabaseHelper | ||||
| @@ -281,7 +280,7 @@ class LibraryUpdateService( | ||||
|         val count = AtomicInteger(0) | ||||
|         // List containing new updates | ||||
|         val newUpdates = ArrayList<Pair<LibraryManga, Array<Chapter>>>() | ||||
|         // list containing failed updates | ||||
|         // List containing failed updates | ||||
|         val failedUpdates = ArrayList<Manga>() | ||||
|         // List containing categories that get included in downloads. | ||||
|         val categoriesToDownload = preferences.downloadNewCategories().getOrDefault().map(String::toInt) | ||||
| @@ -313,8 +312,12 @@ class LibraryUpdateService( | ||||
|                                 } | ||||
|                             } | ||||
|                             // Convert to the manga that contains new chapters. | ||||
|                             .map { Pair(manga, (it.first.sortedByDescending { ch -> ch | ||||
|                                 .source_order }.toTypedArray())) } | ||||
|                             .map { | ||||
|                                 Pair( | ||||
|                                     manga, | ||||
|                                     (it.first.sortedByDescending { ch -> ch.source_order }.toTypedArray()) | ||||
|                                 ) | ||||
|                             } | ||||
|                 } | ||||
|                 // Add manga with new chapters to the list. | ||||
|                 .doOnNext { manga -> | ||||
| @@ -491,7 +494,6 @@ class LibraryUpdateService( | ||||
|         } | ||||
|  | ||||
|         NotificationManagerCompat.from(this).apply { | ||||
|  | ||||
|             notify(Notifications.ID_NEW_CHAPTERS, notification(Notifications.CHANNEL_NEW_CHAPTERS) { | ||||
|                 setSmallIcon(R.drawable.ic_tachi) | ||||
|                 setLargeIcon(notificationBitmap) | ||||
| @@ -532,9 +534,10 @@ class LibraryUpdateService( | ||||
|      * Returns an intent to open the main activity. | ||||
|      */ | ||||
|     private fun getNotificationIntent(): PendingIntent { | ||||
|         val intent = Intent(this, MainActivity::class.java) | ||||
|         intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP | ||||
|         intent.action = MainActivity.SHORTCUT_RECENTLY_UPDATED | ||||
|         val intent = Intent(this, MainActivity::class.java).apply { | ||||
|             flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP | ||||
|             action = MainActivity.SHORTCUT_RECENTLY_UPDATED | ||||
|         } | ||||
|         return PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT) | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -34,9 +34,7 @@ import eu.kanade.tachiyomi.BuildConfig.APPLICATION_ID as ID | ||||
|  * NOTE: Use local broadcasts if possible. | ||||
|  */ | ||||
| class NotificationReceiver : BroadcastReceiver() { | ||||
|     /** | ||||
|      * Download manager. | ||||
|      */ | ||||
|  | ||||
|     private val downloadManager: DownloadManager by injectLazy() | ||||
|  | ||||
|     override fun onReceive(context: Context, intent: Intent) { | ||||
| @@ -67,14 +65,17 @@ class NotificationReceiver : BroadcastReceiver() { | ||||
|                 openChapter(context, intent.getLongExtra(EXTRA_MANGA_ID, -1), | ||||
|                         intent.getLongExtra(EXTRA_CHAPTER_ID, -1)) | ||||
|             } | ||||
|             // Mark updated manga chapters as read | ||||
|             ACTION_MARK_AS_READ -> { | ||||
|                 val notificationId = intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1) | ||||
|                 if (notificationId > -1) dismissNotification( | ||||
|                     context, notificationId, intent.getIntExtra(EXTRA_GROUP_ID, 0) | ||||
|                 ) | ||||
|                 if (notificationId > -1) { | ||||
|                     dismissNotification(context, notificationId, intent.getIntExtra(EXTRA_GROUP_ID, 0)) | ||||
|                 } | ||||
|                 val urls = intent.getStringArrayExtra(EXTRA_CHAPTER_URL) ?: return | ||||
|                 val mangaId = intent.getLongExtra(EXTRA_MANGA_ID, -1) | ||||
|                 markAsRead(urls, mangaId) | ||||
|                 if (mangaId > -1) { | ||||
|                     markAsRead(urls, mangaId) | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| @@ -159,10 +160,10 @@ class NotificationReceiver : BroadcastReceiver() { | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Method called when user wants to mark as read | ||||
|      * Method called when user wants to mark manga chapters as read | ||||
|      * | ||||
|      * @param context context of application | ||||
|      * @param notificationId id of notification | ||||
|      * @param chapterUrls URLs of chapter to mark as read | ||||
|      * @param mangaId id of manga | ||||
|      */ | ||||
|     private fun markAsRead(chapterUrls: Array<String>, mangaId: Long) { | ||||
|         val db: DatabaseHelper = Injekt.get() | ||||
| @@ -192,10 +193,10 @@ class NotificationReceiver : BroadcastReceiver() { | ||||
|         // Called to cancel library update. | ||||
|         private const val ACTION_CANCEL_LIBRARY_UPDATE = "$ID.$NAME.CANCEL_LIBRARY_UPDATE" | ||||
|  | ||||
|         // Called to mark as read | ||||
|         // Called to mark manga chapters as read. | ||||
|         private const val ACTION_MARK_AS_READ = "$ID.$NAME.MARK_AS_READ" | ||||
|  | ||||
|         // Called to open chapter | ||||
|         // Called to open chapter. | ||||
|         private const val ACTION_OPEN_CHAPTER = "$ID.$NAME.ACTION_OPEN_CHAPTER" | ||||
|  | ||||
|         // Value containing file location. | ||||
| @@ -299,22 +300,24 @@ class NotificationReceiver : BroadcastReceiver() { | ||||
|          * @param notificationId id of notification | ||||
|          * @return [PendingIntent] | ||||
|          */ | ||||
|         internal fun dismissNotification(context: Context, notificationId: Int, groupId: Int? = | ||||
|             null) { | ||||
|         internal fun dismissNotification(context: Context, notificationId: Int, groupId: Int? = null) { | ||||
|             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { | ||||
|                 val groupKey = context.notificationManager.activeNotifications.find { | ||||
|                     it.id == notificationId | ||||
|                 }?.groupKey | ||||
|  | ||||
|                 if (groupId != null && groupId != 0 && groupKey != null && groupKey.isNotEmpty()) { | ||||
|                     val notifications = context.notificationManager.activeNotifications.filter { | ||||
|                         it.groupKey == groupKey | ||||
|                     } | ||||
|  | ||||
|                     if (notifications.size == 2) { | ||||
|                         context.notificationManager.cancel(groupId) | ||||
|                         return | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             context.notificationManager.cancel(notificationId) | ||||
|         } | ||||
|  | ||||
| @@ -359,11 +362,9 @@ class NotificationReceiver : BroadcastReceiver() { | ||||
|          * @param manga manga of chapter | ||||
|          * @param chapter chapter that needs to be opened | ||||
|          */ | ||||
|         internal fun openChapterPendingActivity(context: Context, manga: Manga, chapter: | ||||
|         Chapter): PendingIntent { | ||||
|         internal fun openChapterPendingActivity(context: Context, manga: Manga, chapter: Chapter): PendingIntent { | ||||
|             val newIntent = ReaderActivity.newIntent(context, manga, chapter) | ||||
|             return PendingIntent.getActivity(context, manga.id.hashCode(), newIntent, PendingIntent | ||||
|                 .FLAG_UPDATE_CURRENT) | ||||
|             return PendingIntent.getActivity(context, manga.id.hashCode(), newIntent, PendingIntent.FLAG_UPDATE_CURRENT) | ||||
|         } | ||||
|  | ||||
|         /** | ||||
| @@ -372,17 +373,14 @@ class NotificationReceiver : BroadcastReceiver() { | ||||
|          * @param context context of application | ||||
|          * @param manga manga of chapter | ||||
|          */ | ||||
|         internal fun openChapterPendingActivity(context: Context, manga: Manga, groupId: Int): | ||||
|             PendingIntent { | ||||
|         internal fun openChapterPendingActivity(context: Context, manga: Manga, groupId: Int): PendingIntent { | ||||
|             val newIntent = | ||||
|                 Intent(context, MainActivity::class.java).setAction(MainActivity.SHORTCUT_MANGA) | ||||
|                     .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) | ||||
|                     .putExtra(MangaController.MANGA_EXTRA, manga.id) | ||||
|                     .putExtra("notificationId", manga.id.hashCode()) | ||||
|                     .putExtra("groupId", groupId) | ||||
|             return PendingIntent.getActivity( | ||||
|                 context, manga.id.hashCode(), newIntent, PendingIntent.FLAG_UPDATE_CURRENT | ||||
|             ) | ||||
|             return PendingIntent.getActivity(context, manga.id.hashCode(), newIntent, PendingIntent.FLAG_UPDATE_CURRENT) | ||||
|         } | ||||
|  | ||||
|         /** | ||||
|   | ||||
| @@ -138,9 +138,10 @@ class MainActivity : BaseActivity() { | ||||
|  | ||||
|     private fun handleIntentAction(intent: Intent): Boolean { | ||||
|         val notificationId = intent.getIntExtra("notificationId", -1) | ||||
|         if (notificationId > -1) NotificationReceiver.dismissNotification( | ||||
|             applicationContext, notificationId, intent.getIntExtra("groupId", 0) | ||||
|         ) | ||||
|         if (notificationId > -1) { | ||||
|             NotificationReceiver.dismissNotification(applicationContext, notificationId, intent.getIntExtra("groupId", 0)) | ||||
|         } | ||||
|  | ||||
|         when (intent.action) { | ||||
|             SHORTCUT_LIBRARY -> setSelectedDrawerItem(R.id.nav_drawer_library) | ||||
|             SHORTCUT_RECENTLY_UPDATED -> setSelectedDrawerItem(R.id.nav_drawer_recent_updates) | ||||
|   | ||||
| @@ -106,15 +106,14 @@ class ReaderActivity : BaseRxActivity<ReaderPresenter>() { | ||||
|         const val VERTICAL = 3 | ||||
|         const val WEBTOON = 4 | ||||
|  | ||||
|         fun newIntent(context: Context, manga: Manga, chapter: Chapter): | ||||
|             Intent { | ||||
|             val intent = Intent(context, ReaderActivity::class.java) | ||||
|             intent.putExtra("manga", manga.id) | ||||
|             intent.putExtra("chapter", chapter.id) | ||||
|             // chapters just added from library updates don't have an id yet | ||||
|             intent.putExtra("chapterUrl", chapter.url) | ||||
|             intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) | ||||
|             return intent | ||||
|         fun newIntent(context: Context, manga: Manga, chapter: Chapter): Intent { | ||||
|             return Intent(context, ReaderActivity::class.java).apply { | ||||
|                 putExtra("manga", manga.id) | ||||
|                 putExtra("chapter", chapter.id) | ||||
|                 // chapters just added from library updates don't have an id yet | ||||
|                 putExtra("chapterUrl", chapter.url) | ||||
|                 addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -191,11 +191,13 @@ class ReaderPresenter( | ||||
|      */ | ||||
|     fun init(mangaId: Long, chapterUrl: String) { | ||||
|         if (!needsInit()) return | ||||
|  | ||||
|         val context = Injekt.get<Application>() | ||||
|         val db = DatabaseHelper(context) | ||||
|         val chapterId = db.getChapter(chapterUrl, mangaId).executeAsBlocking()?.id | ||||
|         if (chapterId != null) | ||||
|         if (chapterId != null) { | ||||
|             init(mangaId, chapterId) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
		Reference in New Issue
	
	Block a user