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)
})
}