diff --git a/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeFragment.kt b/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeFragment.kt index 99888856..e52647e2 100644 --- a/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeFragment.kt +++ b/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeFragment.kt @@ -25,6 +25,10 @@ import android.widget.TextView import androidx.annotation.OptIn import androidx.appcompat.app.AppCompatActivity import androidx.cardview.widget.CardView +import androidx.core.app.ActivityOptionsCompat +import androidx.core.content.ContextCompat +import androidx.core.util.Pair +import androidx.core.view.ViewCompat import androidx.core.view.marginBottom import androidx.fragment.app.Fragment import androidx.media3.common.util.UnstableApi @@ -187,9 +191,17 @@ class OfflineAnimeFragment : Fragment(), OfflineAnimeSearchListener { return@let } MediaDetailsActivity.mediaSingleton = mediaModel - startActivity( + ContextCompat.startActivity( + requireActivity(), Intent(requireContext(), MediaDetailsActivity::class.java) - .putExtra("download", true) + .putExtra("download", true), + ActivityOptionsCompat.makeSceneTransitionAnimation( + requireActivity(), + Pair.create( + requireActivity().findViewById(R.id.itemCompactImage), + ViewCompat.getTransitionName(requireActivity().findViewById(R.id.itemCompactImage)) + ), + ).toBundle() ) } ?: run { snackString("no media found") diff --git a/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaAdapter.kt b/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaAdapter.kt index 3bacbcb2..4ec6ab43 100644 --- a/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaAdapter.kt +++ b/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaAdapter.kt @@ -51,8 +51,8 @@ class OfflineMangaAdapter( val itemScore = view.findViewById(R.id.itemCompactScore) val itemScoreBG = view.findViewById(R.id.itemCompactScoreBG) val ongoing = view.findViewById(R.id.itemCompactOngoing) - val totalchapter = view.findViewById(R.id.itemCompactTotal) - val typeimage = view.findViewById(R.id.itemCompactTypeImage) + val totalChapter = view.findViewById(R.id.itemCompactTotal) + val typeImage = view.findViewById(R.id.itemCompactTypeImage) val type = view.findViewById(R.id.itemCompactRelation) val typeView = view.findViewById(R.id.itemCompactType) @@ -61,16 +61,16 @@ class OfflineMangaAdapter( val chapters = view.findViewById(R.id.itemTotal) chapters.text = " Chapters" bannerView.setImageURI(item.banner) - totalchapter.text = item.totalChapter + totalChapter.text = item.totalChapter } else if (style == 1) { - val readchapter = + val readChapter = view.findViewById(R.id.itemCompactUserProgress) // for compact view - readchapter.text = item.readChapter - totalchapter.text = " | " + item.totalChapter + readChapter.text = item.readChapter + totalChapter.text = " | " + item.totalChapter } // Bind item data to the views - typeimage.setImageResource(if (item.type == "Novel") R.drawable.ic_round_book_24 else R.drawable.ic_round_import_contacts_24) + typeImage.setImageResource(if (item.type == "Novel") R.drawable.ic_round_book_24 else R.drawable.ic_round_import_contacts_24) type.text = item.type typeView.visibility = View.VISIBLE imageView.setImageURI(item.image) diff --git a/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt b/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt index 8f1d2b06..3c3b5e62 100644 --- a/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt +++ b/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt @@ -23,6 +23,10 @@ import android.widget.ImageView import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import androidx.cardview.widget.CardView +import androidx.core.app.ActivityOptionsCompat +import androidx.core.content.ContextCompat +import androidx.core.util.Pair +import androidx.core.view.ViewCompat import androidx.core.view.marginBottom import androidx.fragment.app.Fragment import ani.dantotsu.R @@ -62,7 +66,7 @@ class OfflineMangaFragment : Fragment(), OfflineMangaSearchListener { private var downloads: List = listOf() private lateinit var gridView: GridView private lateinit var adapter: OfflineMangaAdapter - private lateinit var total : TextView + private lateinit var total: TextView private var uiSettings: UserInterfaceSettings = loadData("ui_settings") ?: UserInterfaceSettings() @@ -132,7 +136,8 @@ class OfflineMangaFragment : Fragment(), OfflineMangaSearchListener { layoutList.setOnClickListener { selected(it as ImageView) style = 0 - requireContext().getSharedPreferences("Dantotsu", Context.MODE_PRIVATE).edit().putInt("offline_view", style!!).apply() + requireContext().getSharedPreferences("Dantotsu", Context.MODE_PRIVATE).edit() + .putInt("offline_view", style!!).apply() gridView.visibility = View.GONE gridView = view.findViewById(R.id.gridView) adapter.notifyNewGrid() @@ -143,13 +148,15 @@ class OfflineMangaFragment : Fragment(), OfflineMangaSearchListener { layoutcompact.setOnClickListener { selected(it as ImageView) style = 1 - requireContext().getSharedPreferences("Dantotsu", Context.MODE_PRIVATE).edit().putInt("offline_view", style!!).apply() + requireContext().getSharedPreferences("Dantotsu", Context.MODE_PRIVATE).edit() + .putInt("offline_view", style!!).apply() gridView.visibility = View.GONE gridView = view.findViewById(R.id.gridView1) adapter.notifyNewGrid() grid() } - gridView = if (style == 0) view.findViewById(R.id.gridView) else view.findViewById(R.id.gridView1) + gridView = + if (style == 0) view.findViewById(R.id.gridView) else view.findViewById(R.id.gridView1) total = view.findViewById(R.id.total) grid() return view @@ -164,7 +171,8 @@ class OfflineMangaFragment : Fragment(), OfflineMangaSearchListener { adapter = OfflineMangaAdapter(requireContext(), downloads, this) gridView.adapter = adapter gridView.scheduleLayoutAnimation() - total.text = if (gridView.count > 0) "Manga and Novels (${gridView.count})" else "Empty List" + total.text = + if (gridView.count > 0) "Manga and Novels (${gridView.count})" else "Empty List" gridView.setOnItemClickListener { _, _, position, _ -> // Get the OfflineMangaModel that was clicked val item = adapter.getItem(position) as OfflineMangaModel @@ -172,10 +180,19 @@ class OfflineMangaFragment : Fragment(), OfflineMangaSearchListener { downloadManager.mangaDownloadedTypes.firstOrNull { it.title == item.title } ?: downloadManager.novelDownloadedTypes.firstOrNull { it.title == item.title } media?.let { - startActivity( + ContextCompat.startActivity( + requireActivity(), Intent(requireContext(), MediaDetailsActivity::class.java) .putExtra("media", getMedia(it)) - .putExtra("download", true) + .putExtra("download", true), + ActivityOptionsCompat.makeSceneTransitionAnimation( + requireActivity(), + Pair.create( + gridView.getChildAt(position) + .findViewById(R.id.itemCompactImage), + ViewCompat.getTransitionName(requireActivity().findViewById(R.id.itemCompactImage)) + ) + ).toBundle() ) } ?: run { snackString("no media found") @@ -200,7 +217,8 @@ class OfflineMangaFragment : Fragment(), OfflineMangaSearchListener { downloadManager.removeMedia(item.title, type) getDownloads() adapter.setItems(downloads) - total.text = if (gridView.count > 0) "Manga and Novels (${gridView.count})" else "Empty List" + total.text = + if (gridView.count > 0) "Manga and Novels (${gridView.count})" else "Empty List" } builder.setNegativeButton("No") { _, _ -> // Do nothing diff --git a/app/src/main/java/ani/dantotsu/media/MediaAdaptor.kt b/app/src/main/java/ani/dantotsu/media/MediaAdaptor.kt index d4e37988..e3cd6618 100644 --- a/app/src/main/java/ani/dantotsu/media/MediaAdaptor.kt +++ b/app/src/main/java/ani/dantotsu/media/MediaAdaptor.kt @@ -392,7 +392,8 @@ class MediaAdaptor( Intent(activity, MediaDetailsActivity::class.java).putExtra( "media", media as Serializable - ), if (itemCompactImage != null) { + ), + if (itemCompactImage != null) { ActivityOptionsCompat.makeSceneTransitionAnimation( activity, Pair.create(