diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b97d9e6e..b72b3304 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -234,7 +234,6 @@
-
+ if (it != null) {
+ if (it) {
+ val navbar = binding.includedNavbar.navbar
+ bottomBar = navbar
+ navbar.visibility = View.VISIBLE
+ binding.mainProgressBar.visibility = View.GONE
+ val mainViewPager = binding.viewpager
+ mainViewPager.isUserInputEnabled = false
+ mainViewPager.adapter = ViewPagerAdapter(supportFragmentManager, lifecycle)
+ mainViewPager.setPageTransformer(ZoomOutPageTransformer(uiSettings))
+ navbar.setOnTabSelectListener(object :
+ AnimatedBottomBar.OnTabSelectListener {
+ override fun onTabSelected(
+ lastIndex: Int,
+ lastTab: AnimatedBottomBar.Tab?,
+ newIndex: Int,
+ newTab: AnimatedBottomBar.Tab
+ ) {
+ navbar.animate().translationZ(12f).setDuration(200).start()
+ selectedOption = newIndex
+ mainViewPager.setCurrentItem(newIndex, false)
}
- }
+ })
+ navbar.selectTabAt(selectedOption)
+ mainViewPager.post { mainViewPager.setCurrentItem(selectedOption, false) }
+ } else {
+ binding.mainProgressBar.visibility = View.GONE
+ }
}
+ }
//Load Data
if (!load) {
scope.launch(Dispatchers.IO) {
@@ -236,32 +243,12 @@ class MainActivity : AppCompatActivity() {
.setData(Uri.parse("package:$packageName"))
)
}
- dismiss()
}
}.show(supportFragmentManager, "dialog")
}
}
}
- GlobalScope.launch(Dispatchers.IO) {
- val index = Helper.downloadManager(this@MainActivity).downloadIndex
- val downloadCursor = index.getDownloads()
- while (downloadCursor.moveToNext()) {
- val download = downloadCursor.download
- Log.e("Downloader", download.request.uri.toString())
- Log.e("Downloader", download.request.id.toString())
- Log.e("Downloader", download.request.mimeType.toString())
- Log.e("Downloader", download.request.data.size.toString())
- Log.e("Downloader", download.bytesDownloaded.toString())
- Log.e("Downloader", download.state.toString())
- Log.e("Downloader", download.failureReason.toString())
-
- if (download.state == Download.STATE_FAILED) { //simple cleanup
- Helper.downloadManager(this@MainActivity).removeDownload(download.request.id)
- }
- }
- }
-
}
diff --git a/app/src/main/java/ani/dantotsu/download/DownloadContainerActivity.kt b/app/src/main/java/ani/dantotsu/download/DownloadContainerActivity.kt
deleted file mode 100644
index 21f0a910..00000000
--- a/app/src/main/java/ani/dantotsu/download/DownloadContainerActivity.kt
+++ /dev/null
@@ -1,25 +0,0 @@
-package ani.dantotsu.download
-
-import android.os.Bundle
-import androidx.appcompat.app.AppCompatActivity
-import androidx.fragment.app.Fragment
-import ani.dantotsu.R
-import ani.dantotsu.others.LangSet
-import ani.dantotsu.themes.ThemeManager
-
-class DownloadContainerActivity : AppCompatActivity() {
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- LangSet.setLocale(this)
- ThemeManager(this).applyTheme()
- setContentView(R.layout.activity_container)
-
- val fragmentClassName = intent.getStringExtra("FRAGMENT_CLASS_NAME")
- val fragment = Class.forName(fragmentClassName).newInstance() as Fragment
-
- supportFragmentManager.beginTransaction()
- .replace(R.id.fragment_container, fragment)
- .commit()
- }
-}
\ No newline at end of file
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 ea1812dc..5bff0d2a 100644
--- a/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt
+++ b/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt
@@ -79,11 +79,8 @@ class OfflineMangaFragment : Fragment(), OfflineMangaSearchListener {
val animeUserAvatar = view.findViewById(R.id.offlineMangaUserAvatar)
animeUserAvatar.setSafeOnClickListener {
- animeUserAvatar.setSafeOnClickListener {
- val dialogFragment = SettingsDialogFragment.newInstance(SettingsDialogFragment.Companion.PageType.HOME)
- dialogFragment.show(
- (it.context as AppCompatActivity).supportFragmentManager,
- "dialog"
+ val dialogFragment = SettingsDialogFragment.newInstance2(SettingsDialogFragment.Companion.PageType2.OfflineMANGA)
+ dialogFragment.show((it.context as AppCompatActivity).supportFragmentManager, "dialog")
)
}
diff --git a/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt b/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt
index d843b2dc..c0dcefe4 100644
--- a/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt
+++ b/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt
@@ -93,6 +93,7 @@ class AnimePageAdapter : RecyclerView.Adapter("ui_settings") ?: UserInterfaceSettings()
-
+ setIncognito()
fun load() {
if (activity != null && _binding != null) lifecycleScope.launch(Dispatchers.Main) {
binding.homeUserName.text = Anilist.username
@@ -361,11 +358,9 @@ class HomeFragment : Fragment() {
}
}
}
-
- override fun onResume() {
- if (!model.loaded) Refresh.activity[1]!!.postValue(true)
+ private fun setIncognito() {
val incognito = currContext()?.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)
- ?.getBoolean("incognito", false) ?: false
+ ?.getBoolean("incognito", false) ?: false
if(incognito) {
val uiSettings = loadData("ui_settings") ?: UserInterfaceSettings()
binding.incognitoTextView.visibility = View.VISIBLE
@@ -381,6 +376,10 @@ class HomeFragment : Fragment() {
} else {
binding.incognitoTextView.visibility = View.GONE
}
+ }
+ override fun onResume() {
+ if (!model.loaded) Refresh.activity[1]!!.postValue(true)
+ setIncognito()
super.onResume()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt b/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt
index b04ebbd2..f882f8eb 100644
--- a/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt
+++ b/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt
@@ -98,6 +98,7 @@ class MangaPageAdapter : RecyclerView.Adapter
- getSharedPreferences("Dantotsu", Context.MODE_PRIVATE).edit()
- .putBoolean("incognito", isChecked).apply()
- }
-
var previousStart: View = when (uiSettings.defaultStartUpTab) {
0 -> binding.uiSettingsAnime
1 -> binding.uiSettingsHome
diff --git a/app/src/main/java/ani/dantotsu/settings/SettingsDialogFragment.kt b/app/src/main/java/ani/dantotsu/settings/SettingsDialogFragment.kt
index b94490ec..a52707d1 100644
--- a/app/src/main/java/ani/dantotsu/settings/SettingsDialogFragment.kt
+++ b/app/src/main/java/ani/dantotsu/settings/SettingsDialogFragment.kt
@@ -1,40 +1,42 @@
package ani.dantotsu.settings
-import android.app.DownloadManager
-import android.content.ActivityNotFoundException
import android.content.Intent
+import android.content.Context
import android.graphics.Color
-import android.net.Uri
import android.os.Bundle
import android.util.TypedValue
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import androidx.core.content.ContextCompat
import ani.dantotsu.BottomSheetDialogFragment
import ani.dantotsu.R
+import ani.dantotsu.MainActivity
import ani.dantotsu.connections.anilist.Anilist
import ani.dantotsu.databinding.BottomSheetSettingsBinding
-import ani.dantotsu.download.DownloadContainerActivity
import ani.dantotsu.download.manga.OfflineMangaFragment
-import ani.dantotsu.loadData
import ani.dantotsu.loadImage
import ani.dantotsu.openLinkInBrowser
import ani.dantotsu.others.imagesearch.ImageSearchActivity
import ani.dantotsu.setSafeOnClickListener
import ani.dantotsu.startMainActivity
-import ani.dantotsu.toast
+import ani.dantotsu.currContext
+import ani.dantotsu.home.AnimeFragment
+import ani.dantotsu.home.HomeFragment
+import ani.dantotsu.home.LoginFragment
+import ani.dantotsu.home.MangaFragment
+import ani.dantotsu.home.NoInternet
+import ani.dantotsu.offline.OfflineFragment
-
-class SettingsDialogFragment() : BottomSheetDialogFragment() {
+class SettingsDialogFragment() : BottomSheetDialogFragment() {
private var _binding: BottomSheetSettingsBinding? = null
private val binding get() = _binding!!
private lateinit var pageType: PageType
-
+ private lateinit var pageType2: PageType2
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
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(
inflater: LayoutInflater,
@@ -72,6 +74,16 @@ class SettingsDialogFragment() : BottomSheetDialogFragment() {
}
}
+ binding.settingsIncognito.isChecked =
+ context?.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)?.getBoolean(
+ "incognito",
+ false
+ ) ?: false
+
+ binding.settingsIncognito.setOnCheckedChangeListener { _, isChecked ->
+ context?.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)?.edit()
+ ?.putBoolean("incognito", isChecked)?.apply()
+ }
binding.settingsExtensionSettings.setSafeOnClickListener {
startActivity(Intent(activity, ExtensionsActivity::class.java))
dismiss()
@@ -88,40 +100,53 @@ class SettingsDialogFragment() : BottomSheetDialogFragment() {
startActivity(Intent(activity, ImageSearchActivity::class.java))
dismiss()
}
- binding.settingsDownloads.setSafeOnClickListener {
- when (pageType) {
- PageType.MANGA -> {
- val intent = Intent(activity, DownloadContainerActivity::class.java)
- intent.putExtra("FRAGMENT_CLASS_NAME", OfflineMangaFragment::class.java.name)
- startActivity(intent)
- }
- PageType.ANIME -> {
- try {
- val arrayOfFiles =
- ContextCompat.getExternalFilesDirs(requireContext(), null)
- startActivity(
- if (loadData("sd_dl") == true && arrayOfFiles.size > 1 && arrayOfFiles[0] != null && arrayOfFiles[1] != null) {
- val parentDirectory = arrayOfFiles[1].toString()
- val intent = Intent(Intent.ACTION_VIEW)
- intent.setDataAndType(Uri.parse(parentDirectory), "resource/folder")
- } else Intent(DownloadManager.ACTION_VIEW_DOWNLOADS)
- )
- } catch (e: ActivityNotFoundException) {
- toast(getString(R.string.file_manager_not_found))
+ binding.settingsDownloads.isChecked =
+ context?.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)?.getBoolean("offlineMode", false) ?: false
+ binding.settingsDownloads.setOnCheckedChangeListener { _, isChecked ->
+
+ if (!isChecked) {
+ when (pageType2) {
+ PageType2.OfflineMANGA -> {
+ val intent = Intent(activity, MainActivity::class.java)
+ intent.putExtra("FRAGMENT_CLASS_NAME", MangaFragment::class.java.name)
+ 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)
}
}
-
- PageType.HOME -> {
- val intent = Intent(activity, DownloadContainerActivity::class.java)
- intent.putExtra("FRAGMENT_CLASS_NAME", OfflineMangaFragment::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 -> {
+ val intent = Intent(activity, NoInternet::class.java)
+ intent.putExtra("FRAGMENT_CLASS_NAME", OfflineFragment::class.java.name)
+ startActivity(intent)
+ }
+ PageType.HOME -> {
+ val intent = Intent(activity, NoInternet::class.java)
+ intent.putExtra("FRAGMENT_CLASS_NAME", OfflineFragment::class.java.name)
+ startActivity(intent)
+ }
}
}
-
dismiss()
+ context?.getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)?.edit()
+ ?.putBoolean("offlineMode", isChecked)?.apply()
+ }
}
- }
override fun onDestroyView() {
super.onDestroyView()
@@ -132,7 +157,9 @@ class SettingsDialogFragment() : BottomSheetDialogFragment() {
enum class PageType {
MANGA, ANIME, HOME
}
-
+ enum class PageType2 {
+ OfflineMANGA, OfflineANIME, OfflineHOME
+ }
fun newInstance(pageType: PageType): SettingsDialogFragment {
val fragment = SettingsDialogFragment()
val args = Bundle()
@@ -140,5 +167,12 @@ class SettingsDialogFragment() : BottomSheetDialogFragment() {
fragment.arguments = args
return fragment
}
+ fun newInstance2(pageType: PageType2): SettingsDialogFragment {
+ val fragment = SettingsDialogFragment()
+ val args = Bundle()
+ args.putSerializable("pageType", pageType)
+ fragment.arguments = args
+ return fragment
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index adffeae9..52c95915 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -335,25 +335,6 @@
app:drawableEndCompat="@drawable/ic_round_arrow_drop_down_24"
tools:ignore="TextContrastCheck" />
-
-
+
+
+
+
-
-
Anilist Settings
Extensions
- Downloads
+ Offline Mode
Settings
Extensions
Player Settings