From e9551be62d9b3bc50faf1e5ae181b7f6007b5ada Mon Sep 17 00:00:00 2001 From: aayush262 Date: Thu, 2 May 2024 14:34:49 +0530 Subject: [PATCH 1/2] feat(Media List view): switch between grid and list view --- .../java/ani/dantotsu/home/HomeFragment.kt | 4 +-- .../ani/dantotsu/home/MangaPageAdapter.kt | 11 +++++-- .../dantotsu/media/MediaListViewActivity.kt | 30 +++++++++++++++++-- .../res/layout/activity_media_list_view.xml | 29 ++++++++++++++++-- app/src/main/res/layout/item_anime_page.xml | 10 +++---- app/src/main/res/layout/item_manga_page.xml | 10 +++---- 6 files changed, 75 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/home/HomeFragment.kt b/app/src/main/java/ani/dantotsu/home/HomeFragment.kt index ab46b98d..9849d810 100644 --- a/app/src/main/java/ani/dantotsu/home/HomeFragment.kt +++ b/app/src/main/java/ani/dantotsu/home/HomeFragment.kt @@ -232,9 +232,9 @@ class HomeFragment : Fragment() { LinearLayoutManager.HORIZONTAL, false ) - more.setOnClickListener { _ -> + more.setOnClickListener { i -> ContextCompat.startActivity( - requireActivity(), Intent(requireActivity(), MediaListViewActivity::class.java) + i.context, Intent(i.context, MediaListViewActivity::class.java) .putExtra("title", string) .putExtra("media", it), null diff --git a/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt b/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt index 0ba08f7a..e26c7347 100644 --- a/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt +++ b/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt @@ -221,7 +221,6 @@ class MangaPageAdapter : RecyclerView.Adapter) { @@ -254,7 +253,15 @@ class MangaPageAdapter : RecyclerView.Adapter) { + fun init( + adaptor: MediaAdaptor, + recyclerView: RecyclerView, + progress: View, + title: View , + more: View , + string: String, + media : MutableList + ) { progress.visibility = View.GONE recyclerView.adapter = adaptor recyclerView.layoutManager = diff --git a/app/src/main/java/ani/dantotsu/media/MediaListViewActivity.kt b/app/src/main/java/ani/dantotsu/media/MediaListViewActivity.kt index 1189a4a1..d1c004ae 100644 --- a/app/src/main/java/ani/dantotsu/media/MediaListViewActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/MediaListViewActivity.kt @@ -1,6 +1,7 @@ package ani.dantotsu.media import android.os.Bundle +import android.view.View import android.view.ViewGroup import android.view.Window import androidx.appcompat.app.AppCompatActivity @@ -52,11 +53,36 @@ class MediaListViewActivity: AppCompatActivity() { binding.listTitle.setTextColor(primaryTextColor) val screenWidth = resources.displayMetrics.run { widthPixels / density } val mediaList = intent.getSerialized("media") as? ArrayList ?: ArrayList() + val view = PrefManager.getCustomVal("mediaView", 0) + var mediaView: View = when (view) { + 1 -> binding.mediaList + 0 -> binding.mediaGrid + else -> binding.mediaGrid + } + mediaView.alpha = 1f + fun changeView(mode: Int, current: View) { + mediaView.alpha = 0.33f + mediaView = current + current.alpha = 1f + PrefManager.setCustomVal("mediaView", mode) + binding.mediaRecyclerView.adapter = MediaAdaptor(mode, mediaList, this) + binding.mediaRecyclerView.layoutManager = GridLayoutManager( + this, + if (mode == 1) 1 else (screenWidth / 120f).toInt() + ) + } + binding.mediaList.setOnClickListener { + changeView(1, binding.mediaList) + } + binding.mediaGrid.setOnClickListener { + changeView(0, binding.mediaGrid) + } + binding.listTitle.text = intent.getStringExtra("title") - binding.mediaRecyclerView.adapter = MediaAdaptor(0, mediaList, this) + binding.mediaRecyclerView.adapter = MediaAdaptor(view, mediaList, this) binding.mediaRecyclerView.layoutManager = GridLayoutManager( this, - (screenWidth / 120f).toInt() + if (view == 1) 1 else (screenWidth / 120f).toInt() ) } } diff --git a/app/src/main/res/layout/activity_media_list_view.xml b/app/src/main/res/layout/activity_media_list_view.xml index 10a828fe..73c89ad2 100644 --- a/app/src/main/res/layout/activity_media_list_view.xml +++ b/app/src/main/res/layout/activity_media_list_view.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + xmlns:app="http://schemas.android.com/apk/res-auto"> + android:orientation="horizontal"> + + diff --git a/app/src/main/res/layout/item_anime_page.xml b/app/src/main/res/layout/item_anime_page.xml index 3bbe39d5..a6302aa7 100644 --- a/app/src/main/res/layout/item_anime_page.xml +++ b/app/src/main/res/layout/item_anime_page.xml @@ -207,12 +207,12 @@ android:id="@+id/animeRecentlyMore" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginEnd="24dp" + android:layout_marginEnd="12dp" android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" android:textSize="16sp" - android:visibility="invisible" + tools:ignore="ContentDescription" /> @@ -270,7 +270,7 @@ android:id="@+id/animeMoviesMore" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginEnd="24dp" + android:layout_marginEnd="12dp" android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" @@ -331,7 +331,7 @@ android:id="@+id/animeTopRatedMore" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginEnd="24dp" + android:layout_marginEnd="12dp" android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" @@ -391,7 +391,7 @@ android:id="@+id/animeMostFavMore" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginEnd="24dp" + android:layout_marginEnd="12dp" android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" diff --git a/app/src/main/res/layout/item_manga_page.xml b/app/src/main/res/layout/item_manga_page.xml index 172e240e..9368a41b 100644 --- a/app/src/main/res/layout/item_manga_page.xml +++ b/app/src/main/res/layout/item_manga_page.xml @@ -148,7 +148,7 @@ android:id="@+id/mangaTrendingMangaMore" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginEnd="24dp" + android:layout_marginEnd="12dp" android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" @@ -208,7 +208,7 @@ android:id="@+id/mangaTrendingManhwaMore" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginEnd="24dp" + android:layout_marginEnd="12dp" android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" @@ -267,7 +267,7 @@ android:id="@+id/mangaNovelMore" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginEnd="24dp" + android:layout_marginEnd="12dp" android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" @@ -326,7 +326,7 @@ android:id="@+id/mangaTopRatedMore" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginEnd="24dp" + android:layout_marginEnd="12dp" android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" @@ -383,7 +383,7 @@ android:id="@+id/mangaMostFavMore" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_marginEnd="24dp" + android:layout_marginEnd="12dp" android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" From d5be21882e67874310f8f2d5d6b09714068ad0f8 Mon Sep 17 00:00:00 2001 From: aayush262 Date: Thu, 2 May 2024 15:24:39 +0530 Subject: [PATCH 2/2] fix: use binding in CrashActivity.kt --- .../java/ani/dantotsu/others/CrashActivity.kt | 31 +++++++++++++------ app/src/main/res/layout/activity_crash.xml | 12 ++++--- .../res/layout/activity_media_list_view.xml | 5 +-- app/src/main/res/layout/item_anime_page.xml | 2 +- 4 files changed, 32 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/others/CrashActivity.kt b/app/src/main/java/ani/dantotsu/others/CrashActivity.kt index b479c931..d3b5e754 100644 --- a/app/src/main/java/ani/dantotsu/others/CrashActivity.kt +++ b/app/src/main/java/ani/dantotsu/others/CrashActivity.kt @@ -3,34 +3,45 @@ package ani.dantotsu.others import android.content.Intent import android.os.Bundle import android.view.View -import android.widget.Button -import android.widget.EditText +import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.core.content.FileProvider +import androidx.core.view.updateLayoutParams import ani.dantotsu.R +import ani.dantotsu.databinding.ActivityCrashBinding +import ani.dantotsu.initActivity +import ani.dantotsu.navBarHeight +import ani.dantotsu.statusBarHeight +import ani.dantotsu.themes.ThemeManager import eu.kanade.tachiyomi.util.system.copyToClipboard import java.io.File class CrashActivity : AppCompatActivity() { + private lateinit var binding: ActivityCrashBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_crash) + ThemeManager(this).applyTheme() + initActivity(this) + binding = ActivityCrashBinding.inflate(layoutInflater) + setContentView(binding.root) + binding.root.updateLayoutParams { + topMargin = statusBarHeight + bottomMargin = navBarHeight + } val stackTrace = intent.getStringExtra("stackTrace") ?: "No stack trace available" - val reportView = findViewById(R.id.crashReportView) - reportView.setText(stackTrace) - reportView.setOnKeyListener(View.OnKeyListener { _, _, _ -> + + binding.crashReportView.setText(stackTrace) + binding.crashReportView.setOnKeyListener(View.OnKeyListener { _, _, _ -> true // Blocks input from hardware keyboards. }) - val copyButton = findViewById