From 31dfd8ffcacc12b3e4b696ee07eb4a66fe8b83f7 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 4 Oct 2019 12:45:57 +0300 Subject: [PATCH] Fields should be restored even if savedInstanceState is not null --- .../NavigationContainerFragment.kt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/tabbar-navigation/src/main/java/ru/touchin/roboswag/components/tabbarnavigation/NavigationContainerFragment.kt b/tabbar-navigation/src/main/java/ru/touchin/roboswag/components/tabbarnavigation/NavigationContainerFragment.kt index 565f3e1..a948faf 100644 --- a/tabbar-navigation/src/main/java/ru/touchin/roboswag/components/tabbarnavigation/NavigationContainerFragment.kt +++ b/tabbar-navigation/src/main/java/ru/touchin/roboswag/components/tabbarnavigation/NavigationContainerFragment.kt @@ -60,15 +60,16 @@ class NavigationContainerFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - if (savedInstanceState == null) { - val args = arguments ?: throw ShouldNotHappenException("Fragment is not instantiable without arguments") - with(args) { - containerViewId = getInt(CONTAINER_VIEW_ID_ARG) - containerLayoutId = getInt(CONTAINER_LAYOUT_ID_ARG) - transition = getInt(TRANSITION_ARG) + + arguments?.let { args -> + transition = args.getInt(TRANSITION_ARG) + containerViewId = args.getInt(CONTAINER_VIEW_ID_ARG) + containerLayoutId = args.getInt(CONTAINER_LAYOUT_ID_ARG) + + if (savedInstanceState == null) { + navigation.setInitialViewController(getViewControllerClass(), args.getParcelable(VIEW_CONTROLLER_STATE_ARG)) } - navigation.setInitialViewController(getViewControllerClass(), args.getParcelable(VIEW_CONTROLLER_STATE_ARG)) - } + } ?: throw ShouldNotHappenException("Fragment is not instantiable without arguments") } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? =