Repull request of fixes #4081 App is crash when Backbutton is pressed from Favourites Fragment(#4104)

fixes NullPointerexception in Favorities when backButton is pressed
This commit is contained in:
Prince kushwaha 2021-01-11 18:33:02 +05:30 committed by GitHub
parent 8e9b39fa8d
commit 2d884b44ca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 9 deletions

View file

@ -172,18 +172,26 @@ public class BookmarkListRootFragment extends CommonsDaggerSupportFragment imple
}
public void backPressed() {
if (mediaDetails.isVisible()) {
// todo add get list fragment
((BookmarkFragment)getParentFragment()).tabLayout.setVisibility(View.VISIBLE);
removeFragment(mediaDetails);
setFragment(listFragment, mediaDetails);
((MainActivity)getActivity()).showTabs();
//check medaiDetailPage fragment is not null then we check medaiDetail.is Visible or not to avoid NullPointerException
if(mediaDetails!=null) {
if (mediaDetails.isVisible()) {
// todo add get list fragment
((BookmarkFragment) getParentFragment()).tabLayout.setVisibility(View.VISIBLE);
removeFragment(mediaDetails);
setFragment(listFragment, mediaDetails);
((MainActivity) getActivity()).showTabs();
} else {
moveToContributionsFragment();
}
} else {
((MainActivity) getActivity()).setSelectedItemId(NavTab.CONTRIBUTIONS.code());
((MainActivity)getActivity()).showTabs();
moveToContributionsFragment();
}
}
void moveToContributionsFragment(){
((MainActivity) getActivity()).setSelectedItemId(NavTab.CONTRIBUTIONS.code());
((MainActivity) getActivity()).showTabs();
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.d("deneme8","on media clicked");

View file

@ -631,5 +631,10 @@ public class ContributionsFragment
fetchCampaigns();
}
}
// Getter for mediaDetailPagerFragment
public MediaDetailPagerFragment getMediaDetailPagerFragment() {
return mediaDetailPagerFragment;
}
}

View file

@ -64,6 +64,7 @@ public class MainActivity extends BaseActivity
private ExploreFragment exploreFragment;
private BookmarkFragment bookmarkFragment;
public ActiveFragment activeFragment;
private MediaDetailPagerFragment mediaDetailPagerFragment;
@Inject
public LocationServiceManager locationManager;
@ -239,7 +240,16 @@ public class MainActivity extends BaseActivity
public void onBackPressed() {
if (contributionsFragment != null && activeFragment == ActiveFragment.CONTRIBUTIONS) {
// Meas that contribution fragment is visible
contributionsFragment.backButtonClicked();
mediaDetailPagerFragment=contributionsFragment.getMediaDetailPagerFragment();
if (mediaDetailPagerFragment ==null) { //means you open the app currently and not open mediaDetailPage fragment
super.onBackPressed();
} else if (mediaDetailPagerFragment!=null) {
if(!mediaDetailPagerFragment.isVisible()){ //means you are at contributions fragement
super.onBackPressed();
} else { //mean you are at mediaDetailPager Fragment
contributionsFragment.backButtonClicked();
}
}
} else if (nearbyParentFragment != null && activeFragment == ActiveFragment.NEARBY) {
// Means that nearby fragment is visible
/* If function nearbyParentFragment.backButtonClick() returns false, it means that the bottomsheet is