-
Type:
Task
-
Resolution: Unresolved
-
Priority:
High
-
Affects Version/s: None
-
None
-
FLW Mobile App
-
Prod
Fix critical crashes reported in Firebase Crashlytics affecting production users in versions 2.8.x.
Crashes Fixed:
- NewChildBenViewModel.setUpPage - NullPointerException (103 events, 25 users)
- BenRegFormDataset.mapValues - NullPointerException (88 events, 23 users)
- HouseholdFormDataset.setupPage - NullPointerException (24 events, 7 users)
- NewBenRegFragment.getBinding - NullPointerException (11 events, 11 users)
- AshaProfileViewModel.saveForm - UninitializedPropertyAccessException (10 events, 2 users)
- HeaderScrollingViewBehavior.layoutChild - IllegalArgumentException (10 events, 7 users)
- AshaProfileFragment navigation - IllegalArgumentException (9 events, 3 users)
- SignInFragment - ActivityNotFoundException (5 events, 1 user)
- NewBenRegViewModel.setUpPage - NullPointerException (5 events, 4 users)
- AllHouseholdFragment navigation - IllegalArgumentException (4 events, 4 users)
- AbhaIdRepo.saveAbhaModelFromRequest - NullPointerException (3 events, 3 users)
- ImmunizationFormViewModel.setList - UninitializedPropertyAccessException (2 events, 1 user)
- NewBenRegFragment.showAddSpouseAlert - IllegalStateException (2 events, 2 users)
- HomeActivity.setUpActionBar - ActivityNotFoundException (2 events, 1 user)
- UWINDataset.handleListOnValueChanged - ClassCastException (1 event, 1 user)
- EligibleCoupleRegFragment.onActivityResult - NullPointerException (1 event, 1 user)
- Dataset.dateFormate - ParseException (runtime crash on empty date string)
- FormInputAdapter.validateInput - NullPointerException
- ApiAnalyticsInterceptor.intercept - crash due to BuildConfig.DEBUG check
Rapid-tap navigation crashes fixed across 38 list screens:
- Added navigation destination guards to prevent double-tap crashes in All Household, All Beneficiary, Household Members, Eligible Couple, ANC
Visits, PNC Mother, Pregnant Women Registration, Adolescent, Child Registration, Delivery Outcome, Infant Registration, Abortion, e-PMSMA, NCD
Eligible, NCD Referred, TB Screening, TB Suspected, TB Confirmed, Disease Control (Malaria, AES, Kala Azar, Filaria, Leprosy), Death Reports (CDR,
MDSR, GDR, NMDSR), High Risk Assessment, and Child Immunization screens.
- Added bottom sheet duplicate-show guards for ECT Tracking, Child Immunization, NCD Eligible, HRP Pregnant, and HRP Non-Pregnant screens.
Fix approach:
- Replaced force-unwrap (!!) operators with safe null handling (?: return with SAVE_FAILED state)
- Added _binding ?: return guards in fragment callbacks that fire after view destruction
- Added findNavController().currentDestination?.id checks before all list screen navigations
- Added isBottomSheetShowing flag with FragmentManager.FragmentLifecycleCallbacks for bottom sheet guards
- Wrapped Intent.ACTION_VIEW calls with try-catch for ActivityNotFoundException
- Replaced app:layout_behavior with paddingTop in activity_home.xml to eliminate Material library crash