send offline mode to correct page
This commit is contained in:
parent
ddde08c61b
commit
4e6842862e
6 changed files with 68 additions and 70 deletions
|
@ -66,7 +66,7 @@ dependencies {
|
||||||
implementation 'com.google.code.gson:gson:2.10'
|
implementation 'com.google.code.gson:gson:2.10'
|
||||||
implementation 'com.github.Blatzar:NiceHttp:0.4.4'
|
implementation 'com.github.Blatzar:NiceHttp:0.4.4'
|
||||||
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2'
|
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2'
|
||||||
implementation 'androidx.preference:preference:1.2.1'
|
implementation 'androidx.preference:preference-ktx:1.2.1'
|
||||||
implementation 'androidx.webkit:webkit:1.9.0'
|
implementation 'androidx.webkit:webkit:1.9.0'
|
||||||
|
|
||||||
// Glide
|
// Glide
|
||||||
|
@ -115,8 +115,8 @@ dependencies {
|
||||||
implementation 'ca.gosyer:voyager-navigator:1.0.0-rc07'
|
implementation 'ca.gosyer:voyager-navigator:1.0.0-rc07'
|
||||||
implementation 'com.squareup.logcat:logcat:0.1'
|
implementation 'com.squareup.logcat:logcat:0.1'
|
||||||
implementation 'com.github.inorichi.injekt:injekt-core:65b0440'
|
implementation 'com.github.inorichi.injekt:injekt-core:65b0440'
|
||||||
implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.12'
|
implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.11'
|
||||||
implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.12'
|
implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.11'
|
||||||
implementation 'com.squareup.okhttp3:okhttp-dnsoverhttps'
|
implementation 'com.squareup.okhttp3:okhttp-dnsoverhttps'
|
||||||
implementation 'com.squareup.okio:okio:3.7.0'
|
implementation 'com.squareup.okio:okio:3.7.0'
|
||||||
implementation 'ch.acra:acra-http:5.11.3'
|
implementation 'ch.acra:acra-http:5.11.3'
|
||||||
|
|
|
@ -73,6 +73,9 @@ class MainActivity : AppCompatActivity() {
|
||||||
LangSet.setLocale(this)
|
LangSet.setLocale(this)
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
//get FRAGMENT_CLASS_NAME from intent
|
||||||
|
val FRAGMENT_CLASS_NAME = intent.getStringExtra("FRAGMENT_CLASS_NAME")
|
||||||
|
|
||||||
binding = ActivityMainBinding.inflate(layoutInflater)
|
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||||
setContentView(binding.root)
|
setContentView(binding.root)
|
||||||
|
|
||||||
|
@ -151,7 +154,16 @@ class MainActivity : AppCompatActivity() {
|
||||||
binding.root.doOnAttach {
|
binding.root.doOnAttach {
|
||||||
initActivity(this)
|
initActivity(this)
|
||||||
uiSettings = loadData("ui_settings") ?: uiSettings
|
uiSettings = loadData("ui_settings") ?: uiSettings
|
||||||
selectedOption = uiSettings.defaultStartUpTab
|
selectedOption = if (FRAGMENT_CLASS_NAME != null) {
|
||||||
|
when (FRAGMENT_CLASS_NAME) {
|
||||||
|
AnimeFragment::class.java.name -> 0
|
||||||
|
HomeFragment::class.java.name -> 1
|
||||||
|
MangaFragment::class.java.name -> 2
|
||||||
|
else -> 1
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
uiSettings.defaultStartUpTab
|
||||||
|
}
|
||||||
if (!uiSettings.immersiveMode) {
|
if (!uiSettings.immersiveMode) {
|
||||||
binding.includedNavbar.navbarContainer.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
binding.includedNavbar.navbarContainer.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||||
bottomMargin = navBarHeight
|
bottomMargin = navBarHeight
|
||||||
|
|
|
@ -93,7 +93,7 @@ class OfflineAnimeFragment : Fragment(), OfflineAnimeSearchListener {
|
||||||
val animeUserAvatar = view.findViewById<ShapeableImageView>(R.id.offlineMangaUserAvatar)
|
val animeUserAvatar = view.findViewById<ShapeableImageView>(R.id.offlineMangaUserAvatar)
|
||||||
animeUserAvatar.setSafeOnClickListener {
|
animeUserAvatar.setSafeOnClickListener {
|
||||||
val dialogFragment =
|
val dialogFragment =
|
||||||
SettingsDialogFragment.newInstance2(SettingsDialogFragment.Companion.PageType2.OfflineANIME)
|
SettingsDialogFragment.newInstance(SettingsDialogFragment.Companion.PageType.OfflineANIME)
|
||||||
dialogFragment.show((it.context as AppCompatActivity).supportFragmentManager, "dialog")
|
dialogFragment.show((it.context as AppCompatActivity).supportFragmentManager, "dialog")
|
||||||
}
|
}
|
||||||
if (!uiSettings.immersiveMode) {
|
if (!uiSettings.immersiveMode) {
|
||||||
|
@ -187,9 +187,9 @@ class OfflineAnimeFragment : Fragment(), OfflineAnimeSearchListener {
|
||||||
val media =
|
val media =
|
||||||
downloadManager.animeDownloadedTypes.firstOrNull { it.title == item.title }
|
downloadManager.animeDownloadedTypes.firstOrNull { it.title == item.title }
|
||||||
media?.let {
|
media?.let {
|
||||||
|
MediaDetailsActivity.mediaSingleton = getMedia(it)
|
||||||
startActivity(
|
startActivity(
|
||||||
Intent(requireContext(), MediaDetailsActivity::class.java)
|
Intent(requireContext(), MediaDetailsActivity::class.java)
|
||||||
.putExtra("media", getMedia(it))
|
|
||||||
.putExtra("download", true)
|
.putExtra("download", true)
|
||||||
)
|
)
|
||||||
} ?: run {
|
} ?: run {
|
||||||
|
|
|
@ -86,7 +86,7 @@ class OfflineMangaFragment : Fragment(), OfflineMangaSearchListener {
|
||||||
val animeUserAvatar = view.findViewById<ShapeableImageView>(R.id.offlineMangaUserAvatar)
|
val animeUserAvatar = view.findViewById<ShapeableImageView>(R.id.offlineMangaUserAvatar)
|
||||||
animeUserAvatar.setSafeOnClickListener {
|
animeUserAvatar.setSafeOnClickListener {
|
||||||
val dialogFragment =
|
val dialogFragment =
|
||||||
SettingsDialogFragment.newInstance2(SettingsDialogFragment.Companion.PageType2.OfflineMANGA)
|
SettingsDialogFragment.newInstance(SettingsDialogFragment.Companion.PageType.OfflineMANGA)
|
||||||
dialogFragment.show((it.context as AppCompatActivity).supportFragmentManager, "dialog")
|
dialogFragment.show((it.context as AppCompatActivity).supportFragmentManager, "dialog")
|
||||||
}
|
}
|
||||||
if (!uiSettings.immersiveMode) {
|
if (!uiSettings.immersiveMode) {
|
||||||
|
|
|
@ -74,7 +74,8 @@ class MediaDetailsActivity : AppCompatActivity(), AppBarLayout.OnOffsetChangedLi
|
||||||
@SuppressLint("SetTextI18n", "ClickableViewAccessibility")
|
@SuppressLint("SetTextI18n", "ClickableViewAccessibility")
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
LangSet.setLocale(this)
|
LangSet.setLocale(this)
|
||||||
var media: Media = intent.getSerialized("media") ?: return
|
var media: Media = intent.getSerialized("media") ?: mediaSingleton ?: return
|
||||||
|
mediaSingleton = null
|
||||||
ThemeManager(this).applyTheme(MediaSingleton.bitmap)
|
ThemeManager(this).applyTheme(MediaSingleton.bitmap)
|
||||||
MediaSingleton.bitmap = null
|
MediaSingleton.bitmap = null
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
@ -533,5 +534,9 @@ class MediaDetailsActivity : AppCompatActivity(), AppBarLayout.OnOffsetChangedLi
|
||||||
image.alpha = if (disabled) 0.33f else 1f
|
image.alpha = if (disabled) 0.33f else 1f
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
var mediaSingleton: Media? = null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,12 +33,9 @@ class SettingsDialogFragment : BottomSheetDialogFragment() {
|
||||||
private val binding get() = _binding!!
|
private val binding get() = _binding!!
|
||||||
|
|
||||||
private lateinit var pageType: PageType
|
private lateinit var pageType: PageType
|
||||||
private lateinit var pageType2: PageType2
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
pageType = arguments?.getSerializable("pageType") as? PageType ?: PageType.HOME
|
pageType = arguments?.getSerializable("pageType") as? PageType ?: PageType.HOME
|
||||||
pageType2 = arguments?.getSerializable("pageType2") as? PageType2
|
|
||||||
?: PageType2.OfflineMANGA // changed when offline home page comes
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
|
@ -109,57 +106,53 @@ class SettingsDialogFragment : BottomSheetDialogFragment() {
|
||||||
context?.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)
|
context?.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)
|
||||||
?.getBoolean("offlineMode", false) ?: false
|
?.getBoolean("offlineMode", false) ?: false
|
||||||
binding.settingsDownloads.setOnCheckedChangeListener { _, isChecked ->
|
binding.settingsDownloads.setOnCheckedChangeListener { _, isChecked ->
|
||||||
|
when (pageType) {
|
||||||
if (!isChecked) {
|
PageType.MANGA -> {
|
||||||
when (pageType2) {
|
val intent = Intent(activity, NoInternet::class.java)
|
||||||
PageType2.OfflineMANGA -> {
|
intent.putExtra(
|
||||||
val intent = Intent(activity, MainActivity::class.java)
|
"FRAGMENT_CLASS_NAME",
|
||||||
intent.putExtra("FRAGMENT_CLASS_NAME", MangaFragment::class.java.name)
|
OfflineMangaFragment::class.java.name
|
||||||
startActivity(intent)
|
)
|
||||||
}
|
startActivity(intent)
|
||||||
|
|
||||||
PageType2.OfflineHOME -> { //no offline home for now
|
|
||||||
val intent = Intent(activity, MainActivity::class.java)
|
|
||||||
intent.putExtra(
|
|
||||||
"FRAGMENT_CLASS_NAME",
|
|
||||||
if (Anilist.token != null) HomeFragment::class.java.name else LoginFragment::class.java.name
|
|
||||||
)
|
|
||||||
startActivity(intent)
|
|
||||||
}
|
|
||||||
|
|
||||||
PageType2.OfflineANIME -> { //no offline anime for now
|
|
||||||
val intent = Intent(activity, MainActivity::class.java)
|
|
||||||
intent.putExtra("FRAGMENT_CLASS_NAME", AnimeFragment::class.java.name)
|
|
||||||
startActivity(intent)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
when (pageType) {
|
|
||||||
PageType.MANGA -> {
|
|
||||||
val intent = Intent(activity, NoInternet::class.java)
|
|
||||||
intent.putExtra(
|
|
||||||
"FRAGMENT_CLASS_NAME",
|
|
||||||
OfflineMangaFragment::class.java.name
|
|
||||||
)
|
|
||||||
startActivity(intent)
|
|
||||||
}
|
|
||||||
|
|
||||||
PageType.ANIME -> {
|
PageType.ANIME -> {
|
||||||
val intent = Intent(activity, NoInternet::class.java)
|
val intent = Intent(activity, NoInternet::class.java)
|
||||||
intent.putExtra(
|
intent.putExtra(
|
||||||
"FRAGMENT_CLASS_NAME",
|
"FRAGMENT_CLASS_NAME",
|
||||||
OfflineAnimeFragment::class.java.name
|
OfflineAnimeFragment::class.java.name
|
||||||
)
|
)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
PageType.HOME -> {
|
PageType.HOME -> {
|
||||||
val intent = Intent(activity, NoInternet::class.java)
|
val intent = Intent(activity, NoInternet::class.java)
|
||||||
intent.putExtra("FRAGMENT_CLASS_NAME", OfflineFragment::class.java.name)
|
intent.putExtra("FRAGMENT_CLASS_NAME", OfflineFragment::class.java.name)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PageType.OfflineMANGA -> {
|
||||||
|
val intent = Intent(activity, MainActivity::class.java)
|
||||||
|
intent.putExtra("FRAGMENT_CLASS_NAME", MangaFragment::class.java.name)
|
||||||
|
startActivity(intent)
|
||||||
|
}
|
||||||
|
|
||||||
|
PageType.OfflineHOME -> {
|
||||||
|
val intent = Intent(activity, MainActivity::class.java)
|
||||||
|
intent.putExtra(
|
||||||
|
"FRAGMENT_CLASS_NAME",
|
||||||
|
if (Anilist.token != null) HomeFragment::class.java.name else LoginFragment::class.java.name
|
||||||
|
)
|
||||||
|
startActivity(intent)
|
||||||
|
}
|
||||||
|
|
||||||
|
PageType.OfflineANIME -> {
|
||||||
|
val intent = Intent(activity, MainActivity::class.java)
|
||||||
|
intent.putExtra("FRAGMENT_CLASS_NAME", AnimeFragment::class.java.name)
|
||||||
|
startActivity(intent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dismiss()
|
dismiss()
|
||||||
context?.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)?.edit()
|
context?.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)?.edit()
|
||||||
?.putBoolean("offlineMode", isChecked)?.apply()
|
?.putBoolean("offlineMode", isChecked)?.apply()
|
||||||
|
@ -173,11 +166,7 @@ class SettingsDialogFragment : BottomSheetDialogFragment() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
enum class PageType {
|
enum class PageType {
|
||||||
MANGA, ANIME, HOME
|
MANGA, ANIME, HOME, OfflineMANGA, OfflineANIME, OfflineHOME
|
||||||
}
|
|
||||||
|
|
||||||
enum class PageType2 {
|
|
||||||
OfflineMANGA, OfflineANIME, OfflineHOME
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun newInstance(pageType: PageType): SettingsDialogFragment {
|
fun newInstance(pageType: PageType): SettingsDialogFragment {
|
||||||
|
@ -187,13 +176,5 @@ class SettingsDialogFragment : BottomSheetDialogFragment() {
|
||||||
fragment.arguments = args
|
fragment.arguments = args
|
||||||
return fragment
|
return fragment
|
||||||
}
|
}
|
||||||
|
|
||||||
fun newInstance2(pageType: PageType2): SettingsDialogFragment {
|
|
||||||
val fragment = SettingsDialogFragment()
|
|
||||||
val args = Bundle()
|
|
||||||
args.putSerializable("pageType", pageType)
|
|
||||||
fragment.arguments = args
|
|
||||||
return fragment
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue