1 /*
2  * Copyright 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  *
17  */
18 
19 package com.android.healthconnect.controller.utils
20 
21 import android.content.Intent
22 import android.os.Bundle
23 import androidx.annotation.IdRes
24 import androidx.fragment.app.Fragment
25 import androidx.navigation.fragment.findNavController
26 import javax.inject.Inject
27 import javax.inject.Singleton
28 
29 /** Wrapper for navigation controller to allow testing navigation. */
30 @Singleton
31 class NavigationUtils @Inject constructor() {
32 
navigatenull33     fun navigate(fragment: Fragment, @IdRes action: Int) {
34         fragment.findNavController().navigate(action)
35     }
36 
navigatenull37     fun navigate(fragment: Fragment, @IdRes action: Int, bundle: Bundle) {
38         fragment.findNavController().navigate(action, bundle)
39     }
40 
startActivitynull41     fun startActivity(fragment: Fragment, intent: Intent) {
42         fragment.startActivity(intent)
43     }
44 
popBackStacknull45     fun popBackStack(fragment: Fragment) {
46         fragment.findNavController().popBackStack()
47     }
48 }
49