Fix onboarding dialog
This commit is contained in:
@@ -12,19 +12,24 @@ import androidx.appcompat.view.ActionMode
|
|||||||
import androidx.core.app.ActivityOptionsCompat
|
import androidx.core.app.ActivityOptionsCompat
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.graphics.Insets
|
import androidx.core.graphics.Insets
|
||||||
import androidx.core.view.*
|
import androidx.core.view.ViewCompat
|
||||||
|
import androidx.core.view.isVisible
|
||||||
|
import androidx.core.view.updateLayoutParams
|
||||||
|
import androidx.core.view.updatePadding
|
||||||
import androidx.drawerlayout.widget.DrawerLayout
|
import androidx.drawerlayout.widget.DrawerLayout
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.FragmentTransaction
|
import androidx.fragment.app.FragmentTransaction
|
||||||
import androidx.fragment.app.commit
|
import androidx.fragment.app.commit
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.transition.TransitionManager
|
import androidx.transition.TransitionManager
|
||||||
|
import com.google.android.material.R as materialR
|
||||||
import com.google.android.material.appbar.AppBarLayout
|
import com.google.android.material.appbar.AppBarLayout
|
||||||
import com.google.android.material.appbar.AppBarLayout.LayoutParams.*
|
import com.google.android.material.appbar.AppBarLayout.LayoutParams.*
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.google.android.material.navigation.NavigationView
|
import com.google.android.material.navigation.NavigationView
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import org.koin.android.ext.android.get
|
import org.koin.android.ext.android.get
|
||||||
import org.koin.androidx.viewmodel.ext.android.viewModel
|
import org.koin.androidx.viewmodel.ext.android.viewModel
|
||||||
@@ -59,7 +64,6 @@ import org.koitharu.kotatsu.tracker.ui.FeedFragment
|
|||||||
import org.koitharu.kotatsu.tracker.work.TrackWorker
|
import org.koitharu.kotatsu.tracker.work.TrackWorker
|
||||||
import org.koitharu.kotatsu.utils.VoiceInputContract
|
import org.koitharu.kotatsu.utils.VoiceInputContract
|
||||||
import org.koitharu.kotatsu.utils.ext.*
|
import org.koitharu.kotatsu.utils.ext.*
|
||||||
import com.google.android.material.R as materialR
|
|
||||||
|
|
||||||
private const val TAG_PRIMARY = "primary"
|
private const val TAG_PRIMARY = "primary"
|
||||||
private const val TAG_SEARCH = "search"
|
private const val TAG_SEARCH = "search"
|
||||||
@@ -94,10 +98,10 @@ class MainActivity :
|
|||||||
it,
|
it,
|
||||||
binding.toolbar,
|
binding.toolbar,
|
||||||
R.string.open_menu,
|
R.string.open_menu,
|
||||||
R.string.close_menu
|
R.string.close_menu,
|
||||||
).apply {
|
).apply {
|
||||||
setHomeAsUpIndicator(
|
setHomeAsUpIndicator(
|
||||||
ContextCompat.getDrawable(this@MainActivity, materialR.drawable.abc_ic_ab_back_material)
|
ContextCompat.getDrawable(this@MainActivity, materialR.drawable.abc_ic_ab_back_material),
|
||||||
)
|
)
|
||||||
setToolbarNavigationClickListener {
|
setToolbarNavigationClickListener {
|
||||||
binding.searchView.hideKeyboard()
|
binding.searchView.hideKeyboard()
|
||||||
@@ -429,7 +433,12 @@ class MainActivity :
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun onFirstStart() {
|
private fun onFirstStart() {
|
||||||
lifecycleScope.launchWhenResumed {
|
lifecycleScope.launch(Dispatchers.Main) { // not a default `Main.immediate` dispatcher
|
||||||
|
val settings = get<AppSettings>()
|
||||||
|
when {
|
||||||
|
!settings.isSourcesSelected -> OnboardDialogFragment.showWelcome(supportFragmentManager)
|
||||||
|
settings.newSources.isNotEmpty() -> NewSourcesDialogFragment.show(supportFragmentManager)
|
||||||
|
}
|
||||||
val isUpdateSupported = withContext(Dispatchers.Default) {
|
val isUpdateSupported = withContext(Dispatchers.Default) {
|
||||||
TrackWorker.setup(applicationContext)
|
TrackWorker.setup(applicationContext)
|
||||||
SuggestionsWorker.setup(applicationContext)
|
SuggestionsWorker.setup(applicationContext)
|
||||||
@@ -438,11 +447,6 @@ class MainActivity :
|
|||||||
if (isUpdateSupported) {
|
if (isUpdateSupported) {
|
||||||
AppUpdateChecker(this@MainActivity).checkIfNeeded()
|
AppUpdateChecker(this@MainActivity).checkIfNeeded()
|
||||||
}
|
}
|
||||||
val settings = get<AppSettings>()
|
|
||||||
when {
|
|
||||||
!settings.isSourcesSelected -> OnboardDialogFragment.showWelcome(supportFragmentManager)
|
|
||||||
settings.newSources.isNotEmpty() -> NewSourcesDialogFragment.show(supportFragmentManager)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -469,7 +473,7 @@ class MainActivity :
|
|||||||
val drawer = drawer ?: return
|
val drawer = drawer ?: return
|
||||||
val isLocked = actionModeDelegate.isActionModeStarted || isSearchOpened
|
val isLocked = actionModeDelegate.isActionModeStarted || isSearchOpened
|
||||||
drawer.setDrawerLockMode(
|
drawer.setDrawerLockMode(
|
||||||
if (isLocked) DrawerLayout.LOCK_MODE_LOCKED_CLOSED else DrawerLayout.LOCK_MODE_UNLOCKED
|
if (isLocked) DrawerLayout.LOCK_MODE_LOCKED_CLOSED else DrawerLayout.LOCK_MODE_UNLOCKED,
|
||||||
)
|
)
|
||||||
drawerToggle?.isDrawerIndicatorEnabled = !isLocked
|
drawerToggle?.isDrawerIndicatorEnabled = !isLocked
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class OnboardDialogFragment :
|
|||||||
override fun onBuildDialog(builder: MaterialAlertDialogBuilder) {
|
override fun onBuildDialog(builder: MaterialAlertDialogBuilder) {
|
||||||
builder
|
builder
|
||||||
.setPositiveButton(R.string.done, this)
|
.setPositiveButton(R.string.done, this)
|
||||||
.setCancelable(true)
|
.setCancelable(false)
|
||||||
if (isWelcome) {
|
if (isWelcome) {
|
||||||
builder.setTitle(R.string.welcome)
|
builder.setTitle(R.string.welcome)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
|
android:scrollIndicators="top|bottom"
|
||||||
android:scrollbars="vertical"
|
android:scrollbars="vertical"
|
||||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||||
tools:listitem="@layout/item_source_locale" />
|
tools:listitem="@layout/item_source_locale" />
|
||||||
|
|||||||
Reference in New Issue
Block a user