fixed offline mode (#124)
This commit is contained in:
parent
e65fa8d565
commit
e7631e021e
2 changed files with 88 additions and 81 deletions
|
@ -154,96 +154,104 @@ class MainActivity : AppCompatActivity() {
|
||||||
bottomMargin = navBarHeight
|
bottomMargin = navBarHeight
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
val offline = getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)
|
||||||
|
.getBoolean("offlineMode", false)
|
||||||
if (!isOnline(this)) {
|
if (!isOnline(this)) {
|
||||||
snackString(this@MainActivity.getString(R.string.no_internet_connection))
|
snackString(this@MainActivity.getString(R.string.no_internet_connection))
|
||||||
startActivity(Intent(this, NoInternet::class.java))
|
startActivity(Intent(this, NoInternet::class.java))
|
||||||
} else {
|
} else {
|
||||||
val model: AnilistHomeViewModel by viewModels()
|
if (offline){
|
||||||
model.genres.observe(this) { it ->
|
snackString(this@MainActivity.getString(R.string.no_internet_connection))
|
||||||
if (it != null) {
|
startActivity(Intent(this, NoInternet::class.java))
|
||||||
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
|
else {
|
||||||
if (!load) {
|
val model: AnilistHomeViewModel by viewModels()
|
||||||
scope.launch(Dispatchers.IO) {
|
model.genres.observe(this) { it ->
|
||||||
model.loadMain(this@MainActivity)
|
if (it != null) {
|
||||||
val id = intent.extras?.getInt("mediaId", 0)
|
if (it) {
|
||||||
val isMAL = intent.extras?.getBoolean("mal") ?: false
|
val navbar = binding.includedNavbar.navbar
|
||||||
val cont = intent.extras?.getBoolean("continue") ?: false
|
bottomBar = navbar
|
||||||
if (id != null && id != 0) {
|
navbar.visibility = View.VISIBLE
|
||||||
val media = withContext(Dispatchers.IO) {
|
binding.mainProgressBar.visibility = View.GONE
|
||||||
Anilist.query.getMedia(id, isMAL)
|
val mainViewPager = binding.viewpager
|
||||||
}
|
mainViewPager.isUserInputEnabled = false
|
||||||
if (media != null) {
|
mainViewPager.adapter = ViewPagerAdapter(supportFragmentManager, lifecycle)
|
||||||
media.cameFromContinue = cont
|
mainViewPager.setPageTransformer(ZoomOutPageTransformer(uiSettings))
|
||||||
startActivity(
|
navbar.setOnTabSelectListener(object :
|
||||||
Intent(this@MainActivity, MediaDetailsActivity::class.java)
|
AnimatedBottomBar.OnTabSelectListener {
|
||||||
.putExtra("media", media as Serializable)
|
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 {
|
} else {
|
||||||
snackString(this@MainActivity.getString(R.string.anilist_not_found))
|
binding.mainProgressBar.visibility = View.GONE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delay(500)
|
|
||||||
startSubscription()
|
|
||||||
}
|
}
|
||||||
load = true
|
//Load Data
|
||||||
}
|
if (!load) {
|
||||||
|
scope.launch(Dispatchers.IO) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
model.loadMain(this@MainActivity)
|
||||||
if (loadData<Boolean>("allow_opening_links", this) != true) {
|
val id = intent.extras?.getInt("mediaId", 0)
|
||||||
CustomBottomDialog.newInstance().apply {
|
val isMAL = intent.extras?.getBoolean("mal") ?: false
|
||||||
title = "Allow Dantotsu to automatically open Anilist & MAL Links?"
|
val cont = intent.extras?.getBoolean("continue") ?: false
|
||||||
val md = "Open settings & click +Add Links & select Anilist & Mal urls"
|
if (id != null && id != 0) {
|
||||||
addView(TextView(this@MainActivity).apply {
|
val media = withContext(Dispatchers.IO) {
|
||||||
val markWon =
|
Anilist.query.getMedia(id, isMAL)
|
||||||
Markwon.builder(this@MainActivity)
|
}
|
||||||
.usePlugin(SoftBreakAddsNewLinePlugin.create()).build()
|
if (media != null) {
|
||||||
markWon.setMarkdown(this, md)
|
media.cameFromContinue = cont
|
||||||
})
|
|
||||||
|
|
||||||
setNegativeButton(this@MainActivity.getString(R.string.no)) {
|
|
||||||
saveData("allow_opening_links", true, this@MainActivity)
|
|
||||||
dismiss()
|
|
||||||
}
|
|
||||||
|
|
||||||
setPositiveButton(this@MainActivity.getString(R.string.yes)) {
|
|
||||||
saveData("allow_opening_links", true, this@MainActivity)
|
|
||||||
tryWith(true) {
|
|
||||||
startActivity(
|
startActivity(
|
||||||
Intent(Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS)
|
Intent(this@MainActivity, MediaDetailsActivity::class.java)
|
||||||
.setData(Uri.parse("package:$packageName"))
|
.putExtra("media", media as Serializable)
|
||||||
)
|
)
|
||||||
|
} else {
|
||||||
|
snackString(this@MainActivity.getString(R.string.anilist_not_found))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.show(supportFragmentManager, "dialog")
|
delay(500)
|
||||||
|
startSubscription()
|
||||||
|
}
|
||||||
|
load = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||||
|
if (loadData<Boolean>("allow_opening_links", this) != true) {
|
||||||
|
CustomBottomDialog.newInstance().apply {
|
||||||
|
title = "Allow Dantotsu to automatically open Anilist & MAL Links?"
|
||||||
|
val md = "Open settings & click +Add Links & select Anilist & Mal urls"
|
||||||
|
addView(TextView(this@MainActivity).apply {
|
||||||
|
val markWon =
|
||||||
|
Markwon.builder(this@MainActivity)
|
||||||
|
.usePlugin(SoftBreakAddsNewLinePlugin.create()).build()
|
||||||
|
markWon.setMarkdown(this, md)
|
||||||
|
})
|
||||||
|
|
||||||
|
setNegativeButton(this@MainActivity.getString(R.string.no)) {
|
||||||
|
saveData("allow_opening_links", true, this@MainActivity)
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
|
||||||
|
setPositiveButton(this@MainActivity.getString(R.string.yes)) {
|
||||||
|
saveData("allow_opening_links", true, this@MainActivity)
|
||||||
|
tryWith(true) {
|
||||||
|
startActivity(
|
||||||
|
Intent(Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS)
|
||||||
|
.setData(Uri.parse("package:$packageName"))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.show(supportFragmentManager, "dialog")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,11 +31,10 @@ class OfflineFragment : Fragment() {
|
||||||
offline = requireContext().getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)
|
offline = requireContext().getSharedPreferences("Dantotsu", Context.MODE_PRIVATE)
|
||||||
?.getBoolean("offlineMode", false) ?: false
|
?.getBoolean("offlineMode", false) ?: false
|
||||||
binding.noInternet.text =
|
binding.noInternet.text =
|
||||||
if (!isOnline(requireContext())) getString(R.string.no_internet) else "OFFLINE MODE"
|
if (offline) "Offline Mode" else getString(R.string.no_internet)
|
||||||
|
binding.refreshButton.visibility = if (offline) View.GONE else View.VISIBLE
|
||||||
binding.refreshButton.setOnClickListener {
|
binding.refreshButton.setOnClickListener {
|
||||||
println("Offline: $offline")
|
if (isOnline(requireContext())) {
|
||||||
println("Online: ${isOnline(requireContext())}")
|
|
||||||
if (isOnline(requireContext()) && !offline) {
|
|
||||||
startMainActivity(requireActivity())
|
startMainActivity(requireActivity())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue