From cc3a3c10d6301a1f09ce4a99e54b572bd3b5d8ce Mon Sep 17 00:00:00 2001 From: Henrik Lepson Date: Fri, 5 Nov 2021 20:21:22 +0200 Subject: [PATCH] MOB-42 app can be launched with deep links --- .../app/src/main/AndroidManifest.xml | 7 +++++++ .../mobileauthapp/AuthFragment.kt | 3 ++- .../mobileauthapp/CanFragment.kt | 2 +- .../mobileauthapp/HomeFragment.kt | 16 ++++++++++------ .../mobileauthapp/PinFragment.kt | 2 +- .../mobileauthapp/ResultFragment.kt | 4 ++++ .../app/src/main/res/navigation/nav_graph.xml | 19 ++++++++++++++++++- 7 files changed, 43 insertions(+), 10 deletions(-) diff --git a/MobileAuthApp/app/src/main/AndroidManifest.xml b/MobileAuthApp/app/src/main/AndroidManifest.xml index f592e7e..d13134c 100644 --- a/MobileAuthApp/app/src/main/AndroidManifest.xml +++ b/MobileAuthApp/app/src/main/AndroidManifest.xml @@ -19,6 +19,13 @@ + + + + + + + diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/AuthFragment.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/AuthFragment.kt index 706aaca..7e6b4aa 100644 --- a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/AuthFragment.kt +++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/AuthFragment.kt @@ -109,7 +109,8 @@ class AuthFragment : Fragment() { private fun goToNextFragment() { timer.cancel() if (args.auth) { - findNavController().navigate(R.id.action_authFragment_to_resultFragment) + val action = AuthFragmentDirections.actionAuthFragmentToResultFragment(mobile = args.mobile) + findNavController().navigate(action) } else { findNavController().navigate(R.id.action_authFragment_to_userFragment) } diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/CanFragment.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/CanFragment.kt index f73b243..7ad1207 100644 --- a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/CanFragment.kt +++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/CanFragment.kt @@ -67,7 +67,7 @@ class CanFragment : Fragment() { * Takes user to the next fragment, which is PinFragment. */ private fun goToTheNextFragment() { - val action = CanFragmentDirections.actionCanFragmentToPinFragment(reading = args.reading, auth = args.auth) + val action = CanFragmentDirections.actionCanFragmentToPinFragment(reading = args.reading, auth = args.auth, mobile = args.mobile) findNavController().navigate(action) } diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/HomeFragment.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/HomeFragment.kt index dc94333..3466620 100644 --- a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/HomeFragment.kt +++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/HomeFragment.kt @@ -1,5 +1,6 @@ package com.tarkvaraprojekt.mobileauthapp +import android.content.Intent import android.os.Bundle import android.util.Log import android.view.LayoutInflater @@ -38,10 +39,13 @@ class HomeFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) initialChecks() - // TODO: If app launched with intent then go to the CanFragment immediately. + var mobile = false + if (requireActivity().intent.data?.getQueryParameter("arg1") != null) { + mobile = true + } val auth = requireActivity().intent.getBooleanExtra("auth", false) - if (auth){ - goToTheNextFragment(true) + if (auth || mobile){ + goToTheNextFragment(true, mobile) } binding!!.beginButton.setOnClickListener { goToTheNextFragment() } } @@ -58,17 +62,17 @@ class HomeFragment : Fragment() { /** * Starts the process of interacting with the ID card by sending user to the CAN fragment. */ - private fun goToTheNextFragment(auth: Boolean = false) { + private fun goToTheNextFragment(auth: Boolean = false, mobile: Boolean = false) { // Making settings menu inactive (activity as MainActivity).menuAvailable = false // Currently saving is true because the application is not yet integrated with // other applications or websites. // TODO: Check the navigation action default values. Not everything has to be declared implicitly. if (auth) { - val action = HomeFragmentDirections.actionHomeFragmentToCanFragment(reading = false, auth = true) + val action = HomeFragmentDirections.actionHomeFragmentToCanFragment(reading = false, auth = true, mobile = mobile) findNavController().navigate(action) } else { - val action = HomeFragmentDirections.actionHomeFragmentToCanFragment(reading = true, auth = false) + val action = HomeFragmentDirections.actionHomeFragmentToCanFragment(reading = true, auth = false, mobile = mobile) findNavController().navigate(action) } } diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/PinFragment.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/PinFragment.kt index 7bace11..3248ef0 100644 --- a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/PinFragment.kt +++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/PinFragment.kt @@ -70,7 +70,7 @@ class PinFragment : Fragment() { * Takes user to the next fragment, which is AuthFragment. */ private fun goToTheNextFragment() { - val action = PinFragmentDirections.actionPinFragmentToAuthFragment(reading = args.reading, auth = args.auth) + val action = PinFragmentDirections.actionPinFragmentToAuthFragment(reading = args.reading, auth = args.auth, mobile = args.mobile) findNavController().navigate(action) } diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/ResultFragment.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/ResultFragment.kt index 82c4d33..5c45db8 100644 --- a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/ResultFragment.kt +++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/ResultFragment.kt @@ -2,12 +2,14 @@ package com.tarkvaraprojekt.mobileauthapp import android.content.Intent import android.os.Bundle +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels +import androidx.navigation.fragment.navArgs import com.tarkvaraprojekt.mobileauthapp.databinding.FragmentResultBinding import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel @@ -22,6 +24,8 @@ class ResultFragment : Fragment() { private var binding: FragmentResultBinding? = null + private val args: CanFragmentArgs by navArgs() + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, diff --git a/MobileAuthApp/app/src/main/res/navigation/nav_graph.xml b/MobileAuthApp/app/src/main/res/navigation/nav_graph.xml index 7212cbc..e981297 100644 --- a/MobileAuthApp/app/src/main/res/navigation/nav_graph.xml +++ b/MobileAuthApp/app/src/main/res/navigation/nav_graph.xml @@ -50,6 +50,10 @@ android:name="auth" app:argType="boolean" android:defaultValue="false" /> + + + + tools:layout="@layout/fragment_result" > + + \ No newline at end of file