diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9a3a2d534..4e41dd302 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -84,10 +84,6 @@ - - diff --git a/app/src/main/java/com/aurora/store/MainActivity.kt b/app/src/main/java/com/aurora/store/MainActivity.kt index 5471ea213..74a8df1e6 100644 --- a/app/src/main/java/com/aurora/store/MainActivity.kt +++ b/app/src/main/java/com/aurora/store/MainActivity.kt @@ -188,11 +188,11 @@ class MainActivity : BaseActivity() { val alphaColor = ColorUtils.setAlphaComponent(this@MainActivity.accentColor(), 100) itemActiveIndicatorColor = ColorStateList.valueOf(alphaColor) } - - val defaultTab = Preferences.getInteger(this, Preferences.PREFERENCE_DEFAULT_SELECTED_TAB) - val navigationList = - listOf(R.id.navigation_apps, R.id.navigation_games, R.id.navigation_updates) - bottomNavigationView.selectedItemId = navigationList[defaultTab] +// +// val defaultTab = Preferences.getInteger(this, Preferences.PREFERENCE_DEFAULT_SELECTED_TAB) +// val navigationList = +// listOf(R.id.navigation_apps, R.id.navigation_games, R.id.navigation_updates) +// bottomNavigationView.selectedItemId = navigationList[defaultTab] } private fun attachDrawer() { diff --git a/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingActivity.kt b/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingActivity.kt index f88bca89c..510a8a01f 100644 --- a/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingActivity.kt +++ b/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingActivity.kt @@ -29,6 +29,7 @@ import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback import com.aurora.Constants import com.aurora.extensions.isSAndAbove import com.aurora.extensions.open +import com.aurora.store.MainActivity import com.aurora.store.R import com.aurora.store.data.work.UpdateWorker 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.save import com.aurora.store.view.ui.commons.BaseActivity -import com.aurora.store.view.ui.splash.SplashActivity import com.google.android.material.tabs.TabLayoutMediator class OnboardingActivity : BaseActivity() { @@ -70,7 +70,7 @@ class OnboardingActivity : BaseActivity() { val isIntroDone = Preferences.getBoolean(this, PREFERENCE_INTRO) if (isIntroDone) { - runOnUiThread { open(SplashActivity::class.java, true) } + runOnUiThread { open(MainActivity::class.java, true) } return } @@ -154,7 +154,7 @@ class OnboardingActivity : BaseActivity() { B.btnForward.setOnClickListener { save(PREFERENCE_INTRO, true) UpdateWorker.scheduleAutomatedCheck(this) - open(SplashActivity::class.java, true) + open(MainActivity::class.java, true) } } else { B.btnForward.text = getString(R.string.action_next) diff --git a/app/src/main/java/com/aurora/store/view/ui/splash/SplashActivity.kt b/app/src/main/java/com/aurora/store/view/ui/splash/SplashFragment.kt similarity index 67% rename from app/src/main/java/com/aurora/store/view/ui/splash/SplashActivity.kt rename to app/src/main/java/com/aurora/store/view/ui/splash/SplashFragment.kt index e6b251cad..e952dd1ae 100644 --- a/app/src/main/java/com/aurora/store/view/ui/splash/SplashActivity.kt +++ b/app/src/main/java/com/aurora/store/view/ui/splash/SplashFragment.kt @@ -19,82 +19,72 @@ package com.aurora.store.view.ui.splash +import android.app.Activity.RESULT_CANCELED import android.content.Intent import android.os.Bundle -import android.view.Menu -import android.view.MenuItem +import android.view.View import androidx.activity.result.contract.ActivityResultContracts +import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider +import androidx.navigation.fragment.findNavController import com.aurora.extensions.getEmptyActivityAnimation import com.aurora.extensions.hide import com.aurora.extensions.load -import com.aurora.extensions.open import com.aurora.extensions.show -import com.aurora.store.MainActivity import com.aurora.store.R import com.aurora.store.data.AuthState 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.commons.BaseActivity import com.aurora.store.viewmodel.auth.AuthViewModel import com.bumptech.glide.load.resource.bitmap.RoundedCorners import org.greenrobot.eventbus.EventBus 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 B: ActivitySplashBinding private val startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { if (it.resultCode == RESULT_CANCELED) { resetActions() } else { - B.btnGoogle.updateProgress(true) + binding.btnGoogle.updateProgress(true) } } - override fun onConnected() { - hideNetworkConnectivitySheet() - } - - override fun onDisconnected() { - showNetworkConnectivitySheet() - } - - override fun onReconnected() { - - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - EventBus.getDefault().register(this); - - B = ActivitySplashBinding.inflate(layoutInflater) + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + _binding = FragmentSplashBinding.bind(view) VM = ViewModelProvider(this)[AuthViewModel::class.java] - setContentView(B.root) - - B.imgIcon.load(R.drawable.ic_logo) { + binding.imgIcon.load(R.drawable.ic_logo) { transform(RoundedCorners(32)) } - attachToolbar() + // Toolbar + binding.layoutToolbarAction.toolbar.elevation = 0f + attachActions() //Initial status updateStatus(getString(R.string.session_init)) - VM.liveData.observe(this) { + VM.liveData.observe(viewLifecycleOwner) { when (it) { AuthState.Fetching -> { updateStatus(getString(R.string.requesting_new_session)) } + AuthState.Valid -> { - moveToContent() + findNavController().navigate( + SplashFragmentDirections.actionSplashFragmentToNavigationApps() + ) } AuthState.Available -> { @@ -108,7 +98,9 @@ class SplashActivity : BaseActivity() { } AuthState.SignedIn -> { - moveToContent() + findNavController().navigate( + SplashFragmentDirections.actionSplashFragmentToNavigationApps() + ) } AuthState.SignedOut -> { @@ -125,24 +117,14 @@ class SplashActivity : BaseActivity() { } override fun onResume() { - if (::VM.isInitialized) { - VM.observe() - } + if (::VM.isInitialized) VM.observe() super.onResume() } - private fun attachToolbar() { - setSupportActionBar(B.layoutToolbarAction.toolbar) - val actionBar = supportActionBar - if (actionBar != null) { - actionBar.elevation = 0f - actionBar.title = "" - } - } - - override fun onDestroy() { + override fun onDestroyView() { + super.onDestroyView() + _binding = null EventBus.getDefault().unregister(this) - super.onDestroy() } @Subscribe() @@ -156,6 +138,7 @@ class SplashActivity : BaseActivity() { updateStatus(getString(R.string.session_login_failed_google)) } } + else -> { } @@ -163,8 +146,8 @@ class SplashActivity : BaseActivity() { } private fun updateStatus(string: String?) { - runOnUiThread { - B.txtStatus.apply { + activity?.runOnUiThread { + binding.txtStatus.apply { text = string } } @@ -172,54 +155,50 @@ class SplashActivity : BaseActivity() { private fun updateActionLayout(isVisible: Boolean) { if (isVisible) { - B.layoutAction.show() + binding.layoutAction.show() } else { - B.layoutAction.hide() + binding.layoutAction.hide() } } private fun attachActions() { - B.btnAnonymous.addOnClickListener { + binding.btnAnonymous.addOnClickListener { if (VM.liveData.value != AuthState.Fetching) { - B.btnAnonymous.updateProgress(true) + binding.btnAnonymous.updateProgress(true) VM.buildAnonymousAuthData() } } - B.btnAnonymousInsecure.addOnClickListener { + binding.btnAnonymousInsecure.addOnClickListener { if (VM.liveData.value != AuthState.Fetching) { - B.btnAnonymousInsecure.updateProgress(true) + binding.btnAnonymousInsecure.updateProgress(true) VM.buildInSecureAnonymousAuthData() } } - B.btnGoogle.addOnClickListener { + binding.btnGoogle.addOnClickListener { if (VM.liveData.value != AuthState.Fetching) { - B.btnGoogle.updateProgress(true) - val intent = Intent(this, GoogleActivity::class.java) - startForResult.launch(intent, getEmptyActivityAnimation()) + binding.btnGoogle.updateProgress(true) + val intent = Intent(requireContext(), GoogleActivity::class.java) + startForResult.launch(intent, activity?.getEmptyActivityAnimation()) } } } private fun resetActions() { - B.btnGoogle.apply { + binding.btnGoogle.apply { updateProgress(false) isEnabled = true } - B.btnAnonymous.apply { + binding.btnAnonymous.apply { updateProgress(false) isEnabled = true } - B.btnAnonymousInsecure.apply { + binding.btnAnonymousInsecure.apply { updateProgress(false) isEnabled = true } } - - private fun moveToContent() { - runOnUiThread { open(MainActivity::class.java, true) } - } } diff --git a/app/src/main/res/layout-land/activity_splash.xml b/app/src/main/res/layout-land/fragment_splash.xml similarity index 98% rename from app/src/main/res/layout-land/activity_splash.xml rename to app/src/main/res/layout-land/fragment_splash.xml index 0f0a8ae6c..5676000a0 100644 --- a/app/src/main/res/layout-land/activity_splash.xml +++ b/app/src/main/res/layout-land/fragment_splash.xml @@ -25,7 +25,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - android:weightSum="2"> + android:weightSum="2" + tools:context=".view.ui.splash.SplashFragment"> + android:weightSum="2" + tools:context=".view.ui.splash.SplashFragment"> + app:startDestination="@id/splashFragment"> + + +