Added NavController navigateSafe extension function

This commit is contained in:
Arty Bishop committed 2021-03-09 09:10:22 +00:00
1 parent 62026abd71
commit c37537bd67
1 file changed
+17
@@ -17,6 +17,11 @@
*/
package com.rtbishop.look4sat.utility
import android.os.Bundle
import androidx.annotation.IdRes
import androidx.navigation.NavController
import androidx.navigation.NavOptions
import androidx.navigation.Navigator
import com.github.amsacode.predict4java.GroundStationPosition
import com.github.amsacode.predict4java.Satellite
import java.util.concurrent.TimeUnit
@@ -38,3 +43,15 @@ fun Double.round(decimals: Int): Double {
fun Satellite.getPredictor(stationPosition: GroundStationPosition): PassPredictor {
return PassPredictor(this, stationPosition)
}
fun NavController.navigateSafe(
@IdRes resId: Int,
args: Bundle? = null,
navOptions: NavOptions? = null,
navExtras: Navigator.Extras? = null
) {
val action = currentDestination?.getAction(resId) ?: graph.getAction(resId)
if (action != null && currentDestination?.id != action.destinationId) {
navigate(resId, args, navOptions, navExtras)
}
}