@@ -10,6 +10,7 @@ import android.view.View
1010import android.widget.Toast
1111import androidx.activity.result.ActivityResultLauncher
1212import androidx.activity.result.contract.ActivityResultContracts
13+ import androidx.activity.OnBackPressedCallback
1314import androidx.appcompat.app.AppCompatActivity
1415import androidx.core.content.edit
1516import androidx.databinding.DataBindingUtil
@@ -24,6 +25,7 @@ import com.dscvit.vitty.util.Constants.TOKEN
2425import com.dscvit.vitty.util.Constants.UID
2526import com.dscvit.vitty.util.Constants.USER_INFO
2627import com.dscvit.vitty.util.NotificationPermissionHelper
28+ import com.dscvit.vitty.util.MaintenanceChecker
2729import com.google.android.gms.auth.api.signin.GoogleSignIn
2830import com.google.android.gms.auth.api.signin.GoogleSignInAccount
2931import com.google.android.gms.auth.api.signin.GoogleSignInClient
@@ -62,6 +64,22 @@ class AuthActivity : AppCompatActivity() {
6264
6365 configureGoogleSignIn()
6466 setupUI()
67+ setupBackPressedHandler()
68+ }
69+
70+ private fun setupBackPressedHandler () {
71+ val callback = object : OnBackPressedCallback (true ) {
72+ override fun handleOnBackPressed () {
73+ binding.apply {
74+ if (introPager.currentItem == 0 || loginClick) {
75+ finish()
76+ } else {
77+ introPager.currentItem--
78+ }
79+ }
80+ }
81+ }
82+ onBackPressedDispatcher.addCallback(this , callback)
6583 }
6684
6785 private fun setupNotificationPermissionLauncher () {
@@ -266,8 +284,9 @@ class AuthActivity : AppCompatActivity() {
266284 val email = firebaseAuth.currentUser?.email
267285 Timber .d(" Firebase authentication successful - uid: $uid , email: $email " )
268286 saveInfo(acct.idToken, uid)
269- authViewModel.signInAndGetTimeTable(" " , " " , uid ? : " " , " " )
270- leadToNextPage()
287+
288+ // Quick maintenance check for new login
289+ checkMaintenanceBeforeProceed()
271290 } else {
272291 Timber .e(" Firebase authentication failed: ${authResult.exception?.message} " )
273292 logoutFailed()
@@ -278,6 +297,20 @@ class AuthActivity : AppCompatActivity() {
278297 }
279298 }
280299
300+ private fun checkMaintenanceBeforeProceed () {
301+ MaintenanceChecker .checkMaintenanceStatusAsync(this ) { isUnderMaintenance ->
302+ if (isUnderMaintenance) {
303+ binding.loadingView.visibility = View .GONE
304+ val intent = Intent (this , MaintenanceActivity ::class .java)
305+ startActivity(intent)
306+ finish()
307+ } else {
308+ authViewModel.signInAndGetTimeTable(" " , " " , firebaseAuth.currentUser?.uid ? : " " , " " )
309+ leadToNextPage()
310+ }
311+ }
312+ }
313+
281314 private fun leadToNextPage () {
282315 authViewModel.signInResponse.observe(this ) {
283316 if (it != null ) {
@@ -323,14 +356,4 @@ class AuthActivity : AppCompatActivity() {
323356 }
324357 }
325358 }
326-
327- override fun onBackPressed () {
328- binding.apply {
329- if (introPager.currentItem == 0 || loginClick) {
330- super .onBackPressed()
331- } else {
332- introPager.currentItem--
333- }
334- }
335- }
336359}
0 commit comments