mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-28 21:33:53 +01:00
MainActivity: Extend loadFragment() to support passing fragment arguments
This commit is contained in:
parent
42efa9b782
commit
e5c5ca87d7
1 changed files with 17 additions and 14 deletions
|
|
@ -147,10 +147,10 @@ public class MainActivity extends BaseActivity
|
||||||
if (applicationKvStore.getBoolean("last_opened_nearby")) {
|
if (applicationKvStore.getBoolean("last_opened_nearby")) {
|
||||||
setTitle(getString(R.string.nearby_fragment));
|
setTitle(getString(R.string.nearby_fragment));
|
||||||
showNearby();
|
showNearby();
|
||||||
loadFragment(NearbyParentFragment.newInstance(), false);
|
loadFragment(NearbyParentFragment.newInstance(), false, null);
|
||||||
} else {
|
} else {
|
||||||
setTitle(getString(R.string.contributions_fragment));
|
setTitle(getString(R.string.contributions_fragment));
|
||||||
loadFragment(ContributionsFragment.newInstance(), false);
|
loadFragment(ContributionsFragment.newInstance(), false, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setUpPager();
|
setUpPager();
|
||||||
|
|
@ -188,25 +188,30 @@ public class MainActivity extends BaseActivity
|
||||||
applicationKvStore.putBoolean("last_opened_nearby",
|
applicationKvStore.putBoolean("last_opened_nearby",
|
||||||
item.getTitle().equals(getString(R.string.nearby_fragment)));
|
item.getTitle().equals(getString(R.string.nearby_fragment)));
|
||||||
final Fragment fragment = NavTab.of(item.getOrder()).newInstance();
|
final Fragment fragment = NavTab.of(item.getOrder()).newInstance();
|
||||||
return loadFragment(fragment, true);
|
return loadFragment(fragment, true, null);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setUpLoggedOutPager() {
|
private void setUpLoggedOutPager() {
|
||||||
loadFragment(ExploreFragment.newInstance(), false);
|
loadFragment(ExploreFragment.newInstance(), false, null);
|
||||||
binding.fragmentMainNavTabLayout.setOnNavigationItemSelectedListener(item -> {
|
binding.fragmentMainNavTabLayout.setOnNavigationItemSelectedListener(item -> {
|
||||||
if (!item.getTitle().equals(getString(R.string.more))) {
|
if (!item.getTitle().equals(getString(R.string.more))) {
|
||||||
// do not change title for more fragment
|
// do not change title for more fragment
|
||||||
setTitle(item.getTitle());
|
setTitle(item.getTitle());
|
||||||
}
|
}
|
||||||
Fragment fragment = NavTabLoggedOut.of(item.getOrder()).newInstance();
|
Fragment fragment = NavTabLoggedOut.of(item.getOrder()).newInstance();
|
||||||
return loadFragment(fragment, true);
|
return loadFragment(fragment, true, null);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean loadFragment(Fragment fragment, boolean showBottom) {
|
private boolean loadFragment(Fragment fragment, boolean showBottom, Bundle args) {
|
||||||
//showBottom so that we do not show the bottom tray again when constructing
|
//showBottom so that we do not show the bottom tray again when constructing
|
||||||
//from the saved instance state.
|
//from the saved instance state.
|
||||||
|
|
||||||
|
if (fragment != null && args != null) {
|
||||||
|
fragment.setArguments(args);
|
||||||
|
}
|
||||||
|
|
||||||
if (fragment instanceof ContributionsFragment) {
|
if (fragment instanceof ContributionsFragment) {
|
||||||
if (activeFragment == ActiveFragment.CONTRIBUTIONS) {
|
if (activeFragment == ActiveFragment.CONTRIBUTIONS) {
|
||||||
// scroll to top if already on the Contributions tab
|
// scroll to top if already on the Contributions tab
|
||||||
|
|
@ -335,16 +340,16 @@ public class MainActivity extends BaseActivity
|
||||||
private void restoreActiveFragment(@NonNull String fragmentName) {
|
private void restoreActiveFragment(@NonNull String fragmentName) {
|
||||||
if (fragmentName.equals(ActiveFragment.CONTRIBUTIONS.name())) {
|
if (fragmentName.equals(ActiveFragment.CONTRIBUTIONS.name())) {
|
||||||
setTitle(getString(R.string.contributions_fragment));
|
setTitle(getString(R.string.contributions_fragment));
|
||||||
loadFragment(ContributionsFragment.newInstance(), false);
|
loadFragment(ContributionsFragment.newInstance(), false, null);
|
||||||
} else if (fragmentName.equals(ActiveFragment.NEARBY.name())) {
|
} else if (fragmentName.equals(ActiveFragment.NEARBY.name())) {
|
||||||
setTitle(getString(R.string.nearby_fragment));
|
setTitle(getString(R.string.nearby_fragment));
|
||||||
loadFragment(NearbyParentFragment.newInstance(), false);
|
loadFragment(NearbyParentFragment.newInstance(), false, null);
|
||||||
} else if (fragmentName.equals(ActiveFragment.EXPLORE.name())) {
|
} else if (fragmentName.equals(ActiveFragment.EXPLORE.name())) {
|
||||||
setTitle(getString(R.string.navigation_item_explore));
|
setTitle(getString(R.string.navigation_item_explore));
|
||||||
loadFragment(ExploreFragment.newInstance(), false);
|
loadFragment(ExploreFragment.newInstance(), false, null);
|
||||||
} else if (fragmentName.equals(ActiveFragment.BOOKMARK.name())) {
|
} else if (fragmentName.equals(ActiveFragment.BOOKMARK.name())) {
|
||||||
setTitle(getString(R.string.bookmarks));
|
setTitle(getString(R.string.bookmarks));
|
||||||
loadFragment(BookmarkFragment.newInstance(), false);
|
loadFragment(BookmarkFragment.newInstance(), false, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -446,8 +451,7 @@ public class MainActivity extends BaseActivity
|
||||||
bundle.putDouble("prev_latitude", latitude);
|
bundle.putDouble("prev_latitude", latitude);
|
||||||
bundle.putDouble("prev_longitude", longitude);
|
bundle.putDouble("prev_longitude", longitude);
|
||||||
|
|
||||||
loadFragment(ExploreFragment.newInstance(), false);
|
loadFragment(ExploreFragment.newInstance(), false, bundle);
|
||||||
exploreFragment.setArguments(bundle);
|
|
||||||
setSelectedItemId(NavTab.EXPLORE.code());
|
setSelectedItemId(NavTab.EXPLORE.code());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -465,8 +469,7 @@ public class MainActivity extends BaseActivity
|
||||||
bundle.putDouble("prev_latitude", latitude);
|
bundle.putDouble("prev_latitude", latitude);
|
||||||
bundle.putDouble("prev_longitude", longitude);
|
bundle.putDouble("prev_longitude", longitude);
|
||||||
|
|
||||||
loadFragment(NearbyParentFragment.newInstance(), false);
|
loadFragment(NearbyParentFragment.newInstance(), false, bundle);
|
||||||
nearbyParentFragment.setArguments(bundle);
|
|
||||||
setSelectedItemId(NavTab.NEARBY.code());
|
setSelectedItemId(NavTab.NEARBY.code());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue