diff --git a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.kt b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.kt index c4a372920..0a4e5d679 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.kt @@ -36,6 +36,7 @@ import android.util.Log import android.view.View import android.widget.Toast import androidx.activity.OnBackPressedCallback +import androidx.activity.result.contract.ActivityResultContracts import androidx.annotation.RequiresApi import androidx.annotation.StringRes import androidx.core.content.getSystemService @@ -93,7 +94,9 @@ class MainActivity : EhActivity() { private fun saveImageToTempFile(uri: Uri): File? { val src = ImageDecoder.createSource(contentResolver, uri) - val bitmap = runCatching { ImageDecoder.decodeBitmap(src, Image.imageSearchDecoderSampleListener) }.getOrNull() ?: return null + val bitmap = runCatching { + ImageDecoder.decodeBitmap(src, Image.imageSearchDecoderSampleListener) + }.getOrNull() ?: return null val temp = AppConfig.createTempFile() ?: return null var os: OutputStream? = null return try { @@ -206,19 +209,7 @@ class MainActivity : EhActivity() { return false } - override fun onCreate(savedInstanceState: Bundle?) { - connectivityManager = getSystemService()!! - if (Settings.getDF() && Settings.getBypassVpn()) { - bypassVpn() - } - if (EhUtils.needSignedIn()) - startActivity(Intent(this, LoginActivity::class.java)) - super.onCreate(savedInstanceState) - binding = ActivityMainBinding.inflate(layoutInflater) - setContentView(binding.root) - val navHostFragment = - supportFragmentManager.findFragmentById(R.id.fragment_container) as NavHostFragment - navController = navHostFragment.navController + private fun setNavGraph() { navController.apply { graph = navInflater.inflate(R.navigation.nav_graph).apply { when (Settings.getLaunchPageGalleryListSceneAction()) { @@ -229,6 +220,26 @@ class MainActivity : EhActivity() { } } } + } + + override fun onCreate(savedInstanceState: Bundle?) { + connectivityManager = getSystemService()!! + if (Settings.getDF() && Settings.getBypassVpn()) { + bypassVpn() + } + super.onCreate(savedInstanceState) + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) + val navHostFragment = + supportFragmentManager.findFragmentById(R.id.fragment_container) as NavHostFragment + navController = navHostFragment.navController + if (EhUtils.needSignedIn()) { + registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + setNavGraph() + }.launch(Intent(this, LoginActivity::class.java)) + } else { + setNavGraph() + } binding.drawView.addDrawerListener(mDrawerOnBackPressedCallback) binding.navView.setupWithNavController(navController)