diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt b/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt index 52cc6a40c0558e9c16599b89bff1a6e7f39450ca..5bb2bdd4ea39878ea84d2be31ae222d5efc2b61b 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt @@ -46,13 +46,14 @@ class DashboardFragment : NavToolbarFragment(R.layout.fragment_dashboard) { private val viewModel: DashboardViewModel by viewModel() private val numberFormatter: BigNumberFormatter by lazy { BigNumberFormatter(requireContext()) } - private lateinit var binding: FragmentDashboardBinding + private var _binding: FragmentDashboardBinding? = null + private val binding get() = _binding!! private lateinit var tabAdapter: ShameListsTabPagerAdapter override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - binding = FragmentDashboardBinding.bind(view) + _binding = FragmentDashboardBinding.bind(view) setInsetAsBottomPadding(binding.container) @@ -243,6 +244,11 @@ class DashboardFragment : NavToolbarFragment(R.layout.fragment_dashboard) { tabAdapter.updateDataSet(state) } + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } + private fun getStateColor(isActive: Boolean): Int { return getColor( requireContext(), diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/debug/DebugWeeklyReportFragment.kt b/app/src/main/java/foundation/e/advancedprivacy/features/debug/DebugWeeklyReportFragment.kt index c1105a27dab1f40074303070497979bf8a9dcbad..b38b166922816845bc3796f6f7306b66908e6b56 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/features/debug/DebugWeeklyReportFragment.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/features/debug/DebugWeeklyReportFragment.kt @@ -58,7 +58,8 @@ class DebugWeeklyReportFragment : Fragment(R.layout.debug_weekly_report_fragment private val reportsFactory: WeeklyReportViewFactory by inject() private val weeklyReportRepository: WeeklyReportLocalRepository by inject() - private lateinit var binding: DebugWeeklyReportFragmentBinding + private var _binding: DebugWeeklyReportFragmentBinding? = null + private val binding get() = _binding!! private val weeklyReportsAdapter = object : BindingListAdapter< DebugWeeklyReportItemBinding, @@ -135,7 +136,7 @@ class DebugWeeklyReportFragment : Fragment(R.layout.debug_weekly_report_fragment override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - binding = DebugWeeklyReportFragmentBinding.bind(view) + _binding = DebugWeeklyReportFragmentBinding.bind(view) setupRecyclerView(binding.reports) @@ -170,6 +171,11 @@ class DebugWeeklyReportFragment : Fragment(R.layout.debug_weekly_report_fragment } } + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } + private fun setupRecyclerView(recyclerView: RecyclerView) { recyclerView.apply { layoutManager = LinearLayoutManager(context) diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersFragment.kt b/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersFragment.kt index 43cf4c919486ed87d4a1d7b2fc027b5491da32d4..9cf3b406a749513a5f3d323c3562f89bed746527 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersFragment.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersFragment.kt @@ -55,14 +55,16 @@ import org.koin.androidx.viewmodel.ext.android.viewModel class TrackersFragment : NavToolbarFragment(R.layout.fragment_trackers) { private val viewModel: TrackersViewModel by viewModel() private val weeklyReportViewFactory: WeeklyReportViewFactory by inject() - private lateinit var binding: FragmentTrackersBinding + + private var _binding: FragmentTrackersBinding? = null + private val binding get() = _binding!! private lateinit var pagerAdapter: TrackersPeriodAdapter override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - binding = FragmentTrackersBinding.bind(view) + _binding = FragmentTrackersBinding.bind(view) val trackersTabs = binding.trackersPeriodsTabs val trackersPager = binding.trackersPeriodsPager @@ -111,6 +113,11 @@ class TrackersFragment : NavToolbarFragment(R.layout.fragment_trackers) { return viewModel.refreshUiHeight } + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } + private fun listenViewModel() { with(viewLifecycleOwner) { lifecycleScope.launch { diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodFragment.kt b/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodFragment.kt index 2a3aafed29147b140eb5cedc3ed49e11ac5ba58f..543f92b8052d56f18eb7fd704fcbb86001931e11 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodFragment.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodFragment.kt @@ -68,7 +68,8 @@ class TrackersPeriodFragment : Fragment(R.layout.trackers_period_fragment) { private val trackersFragment: TrackersFragment? get() = parentFragment as? TrackersFragment? - private lateinit var binding: TrackersPeriodFragmentBinding + private var _binding: TrackersPeriodFragmentBinding? = null + private val binding get() = _binding!! private lateinit var tabAdapter: ListsTabPagerAdapter private lateinit var graphHolder: GraphHolder @@ -76,7 +77,7 @@ class TrackersPeriodFragment : Fragment(R.layout.trackers_period_fragment) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - binding = TrackersPeriodFragmentBinding.bind(view) + _binding = TrackersPeriodFragmentBinding.bind(view) graphHolder = GraphHolder(binding.graphContainer) @@ -117,6 +118,11 @@ class TrackersPeriodFragment : Fragment(R.layout.trackers_period_fragment) { } } + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } + @OptIn(FlowPreview::class) private fun listenViewModel() { with(viewLifecycleOwner) { diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersFragment.kt b/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersFragment.kt index 988987c070285b7edfcb53741fef3978d04b3c45..1d1c3ab92caca1eb8aa5c877b0c3eed455196103 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersFragment.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersFragment.kt @@ -49,7 +49,8 @@ class AppTrackersFragment : NavToolbarFragment(R.layout.apptrackers_fragment) { private val numberFormatter: BigNumberFormatter by lazy { BigNumberFormatter(requireContext()) } - private lateinit var binding: ApptrackersFragmentBinding + private var _binding: ApptrackersFragmentBinding? = null + private val binding get() = _binding!! override fun getTitle(): CharSequence { return "" @@ -62,7 +63,7 @@ class AppTrackersFragment : NavToolbarFragment(R.layout.apptrackers_fragment) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - binding = ApptrackersFragmentBinding.bind(view) + _binding = ApptrackersFragmentBinding.bind(view) setInsetAsBottomPadding(binding.container) @@ -87,6 +88,11 @@ class AppTrackersFragment : NavToolbarFragment(R.layout.apptrackers_fragment) { setupDisclaimerBlock(binding.disclaimerBlockTrackers.root, viewModel::onClickLearnMore) } + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } + private fun listenViewModel() { with(viewLifecycleOwner) { lifecycleScope.launch { diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsFragment.kt b/app/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsFragment.kt index 1ec49194397970d563fca7cc6e6c3aec543dc3d5..daa9a610b074ed11af506d35fbdcf0241880c578 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsFragment.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsFragment.kt @@ -47,7 +47,8 @@ class TrackerDetailsFragment : NavToolbarFragment(R.layout.trackerdetails_fragme private val viewModel: TrackerDetailsViewModel by viewModel { parametersOf(args.trackerId) } private val numberFormatter: BigNumberFormatter by lazy { BigNumberFormatter(requireContext()) } - private lateinit var binding: TrackerdetailsFragmentBinding + private var _binding: TrackerdetailsFragmentBinding? = null + private val binding get() = _binding!! override fun getTitle(): CharSequence { return "" @@ -60,7 +61,7 @@ class TrackerDetailsFragment : NavToolbarFragment(R.layout.trackerdetails_fragme override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - binding = TrackerdetailsFragmentBinding.bind(view) + _binding = TrackerdetailsFragmentBinding.bind(view) setInsetAsBottomPadding(binding.container) @@ -84,6 +85,11 @@ class TrackerDetailsFragment : NavToolbarFragment(R.layout.trackerdetails_fragme listenViewModel() } + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } + private fun listenViewModel() { with(viewLifecycleOwner) { lifecycleScope.launch {