override fun onActivityCreated()

in ClassyTaxiAppKotlin/app/src/main/java/com/example/subscriptions/ui/TvMainFragment.kt [106:169]


    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)

        // Creates default SubscriptionContent object
        createSubscriptionContent()

        authenticationViewModel =
            ViewModelProviders.of(requireActivity()).get(FirebaseUserViewModel::class.java)
        subscriptionsStatusViewModel =
            ViewModelProviders.of(requireActivity()).get(SubscriptionStatusViewModel::class.java)
        billingViewModel =
            ViewModelProviders.of(requireActivity()).get(BillingViewModel::class.java)
        spinnerFragment = SpinnerFragment()

        // Update the UI whenever a user signs in / out
        authenticationViewModel.firebaseUser.observe(requireActivity(), {
            Log.d(TAG, "firebaseUser onChange()")
            refreshUI()
        })

        // Show or hide a Spinner based on loading state
        subscriptionsStatusViewModel.loading.observe(requireActivity(), { isLoading: Boolean ->
            isLoading.let {
                if (isLoading) {
                    parentFragmentManager.beginTransaction()
                        .replace(R.id.main_frame, spinnerFragment).commit()
                    Log.i(TAG, "loading spinner shown")
                } else {
                    parentFragmentManager.beginTransaction().remove(spinnerFragment).commit()
                    Log.i(TAG, "loading spinner hidden")
                }
            }
        })

        // Updates subscription image for Basic plan
        subscriptionsStatusViewModel.basicContent.observe(requireActivity(), { it ->
            it?.let {
                Log.d(TAG, "basicContent onChange()")
                if (it.url != null) {
                    // If a premium subscription exists, don't update image with basic plan
                    if (premiumSubscription == null) {
                        updateSubscriptionImage(it.url)
                    }
                }
            }
        })

        // Updates subscription image for Premium plan
        subscriptionsStatusViewModel.premiumContent.observe(requireActivity(), { it ->
            it?.let {
                Log.d(TAG, "premiumContent onChange()")
                if (it.url != null) {
                    updateSubscriptionImage(it.url)
                }
            }
        })

        // Updates subscription details based on list of available subscriptions
        subscriptionsStatusViewModel.subscriptions.observe(requireActivity(), {
            Log.d(TAG, "subscriptions onChange()")
            updateSubscriptionDetails(it)
        })

    }