Migrate SplashActivity to fragment
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -84,10 +84,6 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name=".view.ui.splash.SplashActivity"
|
|
||||||
android:launchMode="singleTask" />
|
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
|
|||||||
@@ -188,11 +188,11 @@ class MainActivity : BaseActivity() {
|
|||||||
val alphaColor = ColorUtils.setAlphaComponent(this@MainActivity.accentColor(), 100)
|
val alphaColor = ColorUtils.setAlphaComponent(this@MainActivity.accentColor(), 100)
|
||||||
itemActiveIndicatorColor = ColorStateList.valueOf(alphaColor)
|
itemActiveIndicatorColor = ColorStateList.valueOf(alphaColor)
|
||||||
}
|
}
|
||||||
|
//
|
||||||
val defaultTab = Preferences.getInteger(this, Preferences.PREFERENCE_DEFAULT_SELECTED_TAB)
|
// val defaultTab = Preferences.getInteger(this, Preferences.PREFERENCE_DEFAULT_SELECTED_TAB)
|
||||||
val navigationList =
|
// val navigationList =
|
||||||
listOf(R.id.navigation_apps, R.id.navigation_games, R.id.navigation_updates)
|
// listOf(R.id.navigation_apps, R.id.navigation_games, R.id.navigation_updates)
|
||||||
bottomNavigationView.selectedItemId = navigationList[defaultTab]
|
// bottomNavigationView.selectedItemId = navigationList[defaultTab]
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun attachDrawer() {
|
private fun attachDrawer() {
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback
|
|||||||
import com.aurora.Constants
|
import com.aurora.Constants
|
||||||
import com.aurora.extensions.isSAndAbove
|
import com.aurora.extensions.isSAndAbove
|
||||||
import com.aurora.extensions.open
|
import com.aurora.extensions.open
|
||||||
|
import com.aurora.store.MainActivity
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.data.work.UpdateWorker
|
import com.aurora.store.data.work.UpdateWorker
|
||||||
import com.aurora.store.databinding.ActivityOnboardingBinding
|
import com.aurora.store.databinding.ActivityOnboardingBinding
|
||||||
@@ -52,7 +53,6 @@ import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_CHECK
|
|||||||
import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_EXTENDED
|
import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_EXTENDED
|
||||||
import com.aurora.store.util.save
|
import com.aurora.store.util.save
|
||||||
import com.aurora.store.view.ui.commons.BaseActivity
|
import com.aurora.store.view.ui.commons.BaseActivity
|
||||||
import com.aurora.store.view.ui.splash.SplashActivity
|
|
||||||
import com.google.android.material.tabs.TabLayoutMediator
|
import com.google.android.material.tabs.TabLayoutMediator
|
||||||
|
|
||||||
class OnboardingActivity : BaseActivity() {
|
class OnboardingActivity : BaseActivity() {
|
||||||
@@ -70,7 +70,7 @@ class OnboardingActivity : BaseActivity() {
|
|||||||
|
|
||||||
val isIntroDone = Preferences.getBoolean(this, PREFERENCE_INTRO)
|
val isIntroDone = Preferences.getBoolean(this, PREFERENCE_INTRO)
|
||||||
if (isIntroDone) {
|
if (isIntroDone) {
|
||||||
runOnUiThread { open(SplashActivity::class.java, true) }
|
runOnUiThread { open(MainActivity::class.java, true) }
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -154,7 +154,7 @@ class OnboardingActivity : BaseActivity() {
|
|||||||
B.btnForward.setOnClickListener {
|
B.btnForward.setOnClickListener {
|
||||||
save(PREFERENCE_INTRO, true)
|
save(PREFERENCE_INTRO, true)
|
||||||
UpdateWorker.scheduleAutomatedCheck(this)
|
UpdateWorker.scheduleAutomatedCheck(this)
|
||||||
open(SplashActivity::class.java, true)
|
open(MainActivity::class.java, true)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
B.btnForward.text = getString(R.string.action_next)
|
B.btnForward.text = getString(R.string.action_next)
|
||||||
|
|||||||
@@ -19,82 +19,72 @@
|
|||||||
|
|
||||||
package com.aurora.store.view.ui.splash
|
package com.aurora.store.view.ui.splash
|
||||||
|
|
||||||
|
import android.app.Activity.RESULT_CANCELED
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.Menu
|
import android.view.View
|
||||||
import android.view.MenuItem
|
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
import com.aurora.extensions.getEmptyActivityAnimation
|
import com.aurora.extensions.getEmptyActivityAnimation
|
||||||
import com.aurora.extensions.hide
|
import com.aurora.extensions.hide
|
||||||
import com.aurora.extensions.load
|
import com.aurora.extensions.load
|
||||||
import com.aurora.extensions.open
|
|
||||||
import com.aurora.extensions.show
|
import com.aurora.extensions.show
|
||||||
import com.aurora.store.MainActivity
|
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.data.AuthState
|
import com.aurora.store.data.AuthState
|
||||||
import com.aurora.store.data.event.BusEvent
|
import com.aurora.store.data.event.BusEvent
|
||||||
import com.aurora.store.databinding.ActivitySplashBinding
|
import com.aurora.store.databinding.FragmentSplashBinding
|
||||||
import com.aurora.store.view.ui.account.GoogleActivity
|
import com.aurora.store.view.ui.account.GoogleActivity
|
||||||
import com.aurora.store.view.ui.commons.BaseActivity
|
|
||||||
import com.aurora.store.viewmodel.auth.AuthViewModel
|
import com.aurora.store.viewmodel.auth.AuthViewModel
|
||||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
|
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.EventBus
|
||||||
import org.greenrobot.eventbus.Subscribe
|
import org.greenrobot.eventbus.Subscribe
|
||||||
|
|
||||||
class SplashActivity : BaseActivity() {
|
class SplashFragment : Fragment(R.layout.fragment_splash) {
|
||||||
|
|
||||||
|
private var _binding: FragmentSplashBinding? = null
|
||||||
|
private val binding: FragmentSplashBinding
|
||||||
|
get() = _binding!!
|
||||||
|
|
||||||
private lateinit var VM: AuthViewModel
|
private lateinit var VM: AuthViewModel
|
||||||
private lateinit var B: ActivitySplashBinding
|
|
||||||
|
|
||||||
private val startForResult =
|
private val startForResult =
|
||||||
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
|
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
|
||||||
if (it.resultCode == RESULT_CANCELED) {
|
if (it.resultCode == RESULT_CANCELED) {
|
||||||
resetActions()
|
resetActions()
|
||||||
} else {
|
} else {
|
||||||
B.btnGoogle.updateProgress(true)
|
binding.btnGoogle.updateProgress(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onConnected() {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
hideNetworkConnectivitySheet()
|
super.onViewCreated(view, savedInstanceState)
|
||||||
}
|
_binding = FragmentSplashBinding.bind(view)
|
||||||
|
|
||||||
override fun onDisconnected() {
|
|
||||||
showNetworkConnectivitySheet()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onReconnected() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
|
||||||
super.onCreate(savedInstanceState)
|
|
||||||
|
|
||||||
EventBus.getDefault().register(this);
|
|
||||||
|
|
||||||
B = ActivitySplashBinding.inflate(layoutInflater)
|
|
||||||
VM = ViewModelProvider(this)[AuthViewModel::class.java]
|
VM = ViewModelProvider(this)[AuthViewModel::class.java]
|
||||||
|
|
||||||
setContentView(B.root)
|
binding.imgIcon.load(R.drawable.ic_logo) {
|
||||||
|
|
||||||
B.imgIcon.load(R.drawable.ic_logo) {
|
|
||||||
transform(RoundedCorners(32))
|
transform(RoundedCorners(32))
|
||||||
}
|
}
|
||||||
|
|
||||||
attachToolbar()
|
// Toolbar
|
||||||
|
binding.layoutToolbarAction.toolbar.elevation = 0f
|
||||||
|
|
||||||
attachActions()
|
attachActions()
|
||||||
|
|
||||||
//Initial status
|
//Initial status
|
||||||
updateStatus(getString(R.string.session_init))
|
updateStatus(getString(R.string.session_init))
|
||||||
|
|
||||||
VM.liveData.observe(this) {
|
VM.liveData.observe(viewLifecycleOwner) {
|
||||||
when (it) {
|
when (it) {
|
||||||
AuthState.Fetching -> {
|
AuthState.Fetching -> {
|
||||||
updateStatus(getString(R.string.requesting_new_session))
|
updateStatus(getString(R.string.requesting_new_session))
|
||||||
}
|
}
|
||||||
|
|
||||||
AuthState.Valid -> {
|
AuthState.Valid -> {
|
||||||
moveToContent()
|
findNavController().navigate(
|
||||||
|
SplashFragmentDirections.actionSplashFragmentToNavigationApps()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
AuthState.Available -> {
|
AuthState.Available -> {
|
||||||
@@ -108,7 +98,9 @@ class SplashActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AuthState.SignedIn -> {
|
AuthState.SignedIn -> {
|
||||||
moveToContent()
|
findNavController().navigate(
|
||||||
|
SplashFragmentDirections.actionSplashFragmentToNavigationApps()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
AuthState.SignedOut -> {
|
AuthState.SignedOut -> {
|
||||||
@@ -125,24 +117,14 @@ class SplashActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
if (::VM.isInitialized) {
|
if (::VM.isInitialized) VM.observe()
|
||||||
VM.observe()
|
|
||||||
}
|
|
||||||
super.onResume()
|
super.onResume()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun attachToolbar() {
|
override fun onDestroyView() {
|
||||||
setSupportActionBar(B.layoutToolbarAction.toolbar)
|
super.onDestroyView()
|
||||||
val actionBar = supportActionBar
|
_binding = null
|
||||||
if (actionBar != null) {
|
|
||||||
actionBar.elevation = 0f
|
|
||||||
actionBar.title = ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onDestroy() {
|
|
||||||
EventBus.getDefault().unregister(this)
|
EventBus.getDefault().unregister(this)
|
||||||
super.onDestroy()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe()
|
@Subscribe()
|
||||||
@@ -156,6 +138,7 @@ class SplashActivity : BaseActivity() {
|
|||||||
updateStatus(getString(R.string.session_login_failed_google))
|
updateStatus(getString(R.string.session_login_failed_google))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> {
|
else -> {
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -163,8 +146,8 @@ class SplashActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun updateStatus(string: String?) {
|
private fun updateStatus(string: String?) {
|
||||||
runOnUiThread {
|
activity?.runOnUiThread {
|
||||||
B.txtStatus.apply {
|
binding.txtStatus.apply {
|
||||||
text = string
|
text = string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -172,54 +155,50 @@ class SplashActivity : BaseActivity() {
|
|||||||
|
|
||||||
private fun updateActionLayout(isVisible: Boolean) {
|
private fun updateActionLayout(isVisible: Boolean) {
|
||||||
if (isVisible) {
|
if (isVisible) {
|
||||||
B.layoutAction.show()
|
binding.layoutAction.show()
|
||||||
} else {
|
} else {
|
||||||
B.layoutAction.hide()
|
binding.layoutAction.hide()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun attachActions() {
|
private fun attachActions() {
|
||||||
B.btnAnonymous.addOnClickListener {
|
binding.btnAnonymous.addOnClickListener {
|
||||||
if (VM.liveData.value != AuthState.Fetching) {
|
if (VM.liveData.value != AuthState.Fetching) {
|
||||||
B.btnAnonymous.updateProgress(true)
|
binding.btnAnonymous.updateProgress(true)
|
||||||
VM.buildAnonymousAuthData()
|
VM.buildAnonymousAuthData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
B.btnAnonymousInsecure.addOnClickListener {
|
binding.btnAnonymousInsecure.addOnClickListener {
|
||||||
if (VM.liveData.value != AuthState.Fetching) {
|
if (VM.liveData.value != AuthState.Fetching) {
|
||||||
B.btnAnonymousInsecure.updateProgress(true)
|
binding.btnAnonymousInsecure.updateProgress(true)
|
||||||
VM.buildInSecureAnonymousAuthData()
|
VM.buildInSecureAnonymousAuthData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
B.btnGoogle.addOnClickListener {
|
binding.btnGoogle.addOnClickListener {
|
||||||
if (VM.liveData.value != AuthState.Fetching) {
|
if (VM.liveData.value != AuthState.Fetching) {
|
||||||
B.btnGoogle.updateProgress(true)
|
binding.btnGoogle.updateProgress(true)
|
||||||
val intent = Intent(this, GoogleActivity::class.java)
|
val intent = Intent(requireContext(), GoogleActivity::class.java)
|
||||||
startForResult.launch(intent, getEmptyActivityAnimation())
|
startForResult.launch(intent, activity?.getEmptyActivityAnimation())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun resetActions() {
|
private fun resetActions() {
|
||||||
B.btnGoogle.apply {
|
binding.btnGoogle.apply {
|
||||||
updateProgress(false)
|
updateProgress(false)
|
||||||
isEnabled = true
|
isEnabled = true
|
||||||
}
|
}
|
||||||
|
|
||||||
B.btnAnonymous.apply {
|
binding.btnAnonymous.apply {
|
||||||
updateProgress(false)
|
updateProgress(false)
|
||||||
isEnabled = true
|
isEnabled = true
|
||||||
}
|
}
|
||||||
|
|
||||||
B.btnAnonymousInsecure.apply {
|
binding.btnAnonymousInsecure.apply {
|
||||||
updateProgress(false)
|
updateProgress(false)
|
||||||
isEnabled = true
|
isEnabled = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun moveToContent() {
|
|
||||||
runOnUiThread { open(MainActivity::class.java, true) }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -25,7 +25,8 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:weightSum="2">
|
android:weightSum="2"
|
||||||
|
tools:context=".view.ui.splash.SplashFragment">
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/layout_toolbar_action"
|
android:id="@+id/layout_toolbar_action"
|
||||||
@@ -25,7 +25,8 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:weightSum="2">
|
android:weightSum="2"
|
||||||
|
tools:context=".view.ui.splash.SplashFragment">
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/layout_toolbar_action"
|
android:id="@+id/layout_toolbar_action"
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/mobile_navigation"
|
android:id="@+id/mobile_navigation"
|
||||||
app:startDestination="@+id/navigation_apps">
|
app:startDestination="@id/splashFragment">
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/navigation_apps"
|
android:id="@+id/navigation_apps"
|
||||||
@@ -230,6 +230,17 @@
|
|||||||
android:name="report"
|
android:name="report"
|
||||||
app:argType="com.aurora.store.data.model.Report" />
|
app:argType="com.aurora.store.data.model.Report" />
|
||||||
</fragment>
|
</fragment>
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/splashFragment"
|
||||||
|
android:name="com.aurora.store.view.ui.splash.SplashFragment"
|
||||||
|
android:label="fragment_splash"
|
||||||
|
tools:layout="@layout/fragment_splash" >
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_splashFragment_to_navigation_apps"
|
||||||
|
app:destination="@id/navigation_apps"
|
||||||
|
app:popUpTo="@id/splashFragment"
|
||||||
|
app:popUpToInclusive="true" />
|
||||||
|
</fragment>
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_global_appDetailsFragment"
|
android:id="@+id/action_global_appDetailsFragment"
|
||||||
app:destination="@id/appDetailsFragment" />
|
app:destination="@id/appDetailsFragment" />
|
||||||
|
|||||||
Reference in New Issue
Block a user