mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-04 19:47:22 +00:00
Added basic onboarding activity
This commit is contained in:
1 parent
64357697bd
commit
58839c3714
16 files changed
+224
-35
No files matched your search
@@ -50,7 +50,10 @@ class SharedViewModel @ViewModelInject constructor(
|
||||
private var shouldTriggerCalculation = true
|
||||
|
||||
init {
|
||||
if (prefsManager.isFirstLaunch()) updateDefaultSourcesAndEntries()
|
||||
if (prefsManager.isFirstLaunch()) {
|
||||
updateDefaultSourcesAndEntries()
|
||||
prefsManager.setFirstLaunchDone()
|
||||
}
|
||||
startApplicationTimer()
|
||||
}
|
||||
|
||||
|
||||
@@ -12,11 +12,11 @@ import dagger.hilt.android.AndroidEntryPoint
|
||||
class MainActivity : AppCompatActivity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
setTheme(R.style.AppTheme)
|
||||
super.onCreate(savedInstanceState)
|
||||
val binding = ActivityMainBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
val navHost = supportFragmentManager.findFragmentById(R.id.nav_host) as NavHostFragment
|
||||
binding.navBottom.setupWithNavController(navHost.navController)
|
||||
ActivityMainBinding.inflate(layoutInflater).apply {
|
||||
setContentView(root)
|
||||
val navHost = supportFragmentManager.findFragmentById(R.id.nav_host) as NavHostFragment
|
||||
navBottom.setupWithNavController(navHost.navController)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.rtbishop.look4sat.ui.splash
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.rtbishop.look4sat.R
|
||||
|
||||
class FirstFragment : Fragment(R.layout.fragment_first)
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.rtbishop.look4sat.ui.splash
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.rtbishop.look4sat.R
|
||||
|
||||
class SecondFragment: Fragment(R.layout.fragment_second)
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.rtbishop.look4sat.ui.splash
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
import com.rtbishop.look4sat.R
|
||||
import com.rtbishop.look4sat.databinding.ActivitySplashBinding
|
||||
import com.rtbishop.look4sat.ui.activities.MainActivity
|
||||
import com.rtbishop.look4sat.utility.PrefsManager
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class SplashActivity : FragmentActivity() {
|
||||
|
||||
private val pagesCount = 3
|
||||
|
||||
@Inject
|
||||
lateinit var prefsManager: PrefsManager
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
if (prefsManager.isFirstLaunch()) showOnboarding()
|
||||
else startMainActivity()
|
||||
}
|
||||
|
||||
private fun showOnboarding() {
|
||||
setTheme(R.style.AppTheme)
|
||||
ActivitySplashBinding.inflate(layoutInflater).apply {
|
||||
setContentView(root)
|
||||
splashPager.apply {
|
||||
adapter = SplashPagerAdapter(this@SplashActivity)
|
||||
registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
|
||||
override fun onPageSelected(position: Int) {
|
||||
super.onPageSelected(position)
|
||||
if (position == pagesCount - 1) {
|
||||
splashNext.setImageResource(R.drawable.ic_check)
|
||||
}
|
||||
}
|
||||
})
|
||||
// isUserInputEnabled = false
|
||||
}
|
||||
splashNext.setOnClickListener {
|
||||
if (splashPager.currentItem < pagesCount - 1) splashPager.currentItem++
|
||||
else if (splashPager.currentItem == pagesCount - 1) startMainActivity()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun startMainActivity() {
|
||||
startActivity(Intent(this, MainActivity::class.java))
|
||||
}
|
||||
|
||||
private inner class SplashPagerAdapter(activity: FragmentActivity) :
|
||||
FragmentStateAdapter(activity) {
|
||||
|
||||
override fun getItemCount(): Int = pagesCount
|
||||
|
||||
override fun createFragment(position: Int): Fragment {
|
||||
return when (position) {
|
||||
0 -> FirstFragment()
|
||||
1 -> SecondFragment()
|
||||
2 -> ThirdFragment()
|
||||
else -> FirstFragment()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.rtbishop.look4sat.ui.splash
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.rtbishop.look4sat.R
|
||||
|
||||
class ThirdFragment : Fragment(R.layout.fragment_third)
|
||||
@@ -79,13 +79,13 @@ class PrefsManager @Inject constructor(val preferences: SharedPreferences) {
|
||||
}
|
||||
|
||||
fun isFirstLaunch(): Boolean {
|
||||
val isFirstLaunch = preferences.getBoolean(keyIsFirstLaunch, true)
|
||||
return if (isFirstLaunch) {
|
||||
preferences.edit {
|
||||
putBoolean(keyIsFirstLaunch, false)
|
||||
apply()
|
||||
}
|
||||
isFirstLaunch
|
||||
} else isFirstLaunch
|
||||
return preferences.getBoolean(keyIsFirstLaunch, true)
|
||||
}
|
||||
|
||||
fun setFirstLaunchDone() {
|
||||
preferences.edit {
|
||||
putBoolean(keyIsFirstLaunch, false)
|
||||
apply()
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user