mirror of
https://github.com/overte-org/overte.git
synced 2025-04-14 07:27:04 +02:00
Fix flickering between login and signup screens
This commit is contained in:
parent
0d40d78343
commit
c0c95a1d33
1 changed files with 17 additions and 15 deletions
|
@ -146,45 +146,44 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
|
||||||
|
|
||||||
private void loadHomeFragment(boolean addToBackStack) {
|
private void loadHomeFragment(boolean addToBackStack) {
|
||||||
Fragment fragment = HomeFragment.newInstance();
|
Fragment fragment = HomeFragment.newInstance();
|
||||||
loadFragment(fragment, getString(R.string.home), getString(R.string.tagFragmentHome), addToBackStack);
|
loadFragment(fragment, getString(R.string.home), getString(R.string.tagFragmentHome), addToBackStack, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadLoginFragment() {
|
private void loadLoginFragment() {
|
||||||
Fragment fragment = LoginFragment.newInstance();
|
Fragment fragment = LoginFragment.newInstance();
|
||||||
loadFragment(fragment, getString(R.string.login), getString(R.string.tagFragmentLogin), true);
|
loadFragment(fragment, getString(R.string.login), getString(R.string.tagFragmentLogin), true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadSignedInFragment() {
|
private void loadSignedInFragment() {
|
||||||
Fragment fragment = SignedInFragment.newInstance();
|
Fragment fragment = SignedInFragment.newInstance();
|
||||||
loadFragment(fragment, getString(R.string.welcome), getString(R.string.tagFragmentSignedIn), true);
|
loadFragment(fragment, getString(R.string.welcome), getString(R.string.tagFragmentSignedIn), true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadSignupFragment() {
|
private void loadSignupFragment() {
|
||||||
Fragment fragment = SignupFragment.newInstance();
|
Fragment fragment = SignupFragment.newInstance();
|
||||||
|
loadFragment(fragment, getString(R.string.signup), getString(R.string.tagFragmentSignup), true, false);
|
||||||
loadFragment(fragment, getString(R.string.signup), getString(R.string.tagFragmentSignup), true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadPrivacyPolicyFragment() {
|
private void loadPrivacyPolicyFragment() {
|
||||||
Fragment fragment = PolicyFragment.newInstance();
|
Fragment fragment = PolicyFragment.newInstance();
|
||||||
|
|
||||||
loadFragment(fragment, getString(R.string.privacyPolicy), getString(R.string.tagFragmentPolicy), true);
|
loadFragment(fragment, getString(R.string.privacyPolicy), getString(R.string.tagFragmentPolicy), true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadPeopleFragment() {
|
private void loadPeopleFragment() {
|
||||||
Fragment fragment = FriendsFragment.newInstance();
|
Fragment fragment = FriendsFragment.newInstance();
|
||||||
|
|
||||||
loadFragment(fragment, getString(R.string.people), getString(R.string.tagFragmentPeople), true);
|
loadFragment(fragment, getString(R.string.people), getString(R.string.tagFragmentPeople), true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadSettingsFragment() {
|
private void loadSettingsFragment() {
|
||||||
SettingsFragment fragment = SettingsFragment.newInstance();
|
SettingsFragment fragment = SettingsFragment.newInstance();
|
||||||
|
|
||||||
loadFragment(fragment, getString(R.string.settings), getString(R.string.tagSettings), true);
|
loadFragment(fragment, getString(R.string.settings), getString(R.string.tagSettings), true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void loadFragment(Fragment fragment, String title, String tag, boolean addToBackStack) {
|
private void loadFragment(Fragment newFragment, String title, String tag, boolean addToBackStack, boolean goBackUntilHome) {
|
||||||
FragmentManager fragmentManager = getFragmentManager();
|
FragmentManager fragmentManager = getFragmentManager();
|
||||||
|
|
||||||
// check if it's the same fragment
|
// check if it's the same fragment
|
||||||
|
@ -196,17 +195,19 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
|
||||||
return; // cancel as we are already in that fragment
|
return; // cancel as we are already in that fragment
|
||||||
}
|
}
|
||||||
|
|
||||||
// go back until first transaction
|
if (goBackUntilHome) {
|
||||||
int backStackEntryCount = fragmentManager.getBackStackEntryCount();
|
// go back until first transaction
|
||||||
for (int i = 0; i < backStackEntryCount - 1; i++) {
|
int backStackEntryCount = fragmentManager.getBackStackEntryCount();
|
||||||
fragmentManager.popBackStackImmediate();
|
for (int i = 0; i < backStackEntryCount - 1; i++) {
|
||||||
|
fragmentManager.popBackStackImmediate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// this case is when we wanted to go home.. rollback already did that!
|
// this case is when we wanted to go home.. rollback already did that!
|
||||||
// But asking for a new Home fragment makes it easier to have an updated list so we let it to continue
|
// But asking for a new Home fragment makes it easier to have an updated list so we let it to continue
|
||||||
|
|
||||||
FragmentTransaction ft = fragmentManager.beginTransaction();
|
FragmentTransaction ft = fragmentManager.beginTransaction();
|
||||||
ft.replace(R.id.content_frame, fragment, tag);
|
ft.replace(R.id.content_frame, newFragment, tag);
|
||||||
|
|
||||||
if (addToBackStack) {
|
if (addToBackStack) {
|
||||||
ft.addToBackStack(title);
|
ft.addToBackStack(title);
|
||||||
|
@ -354,7 +355,8 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoginRequested() {
|
public void onLoginRequested() {
|
||||||
loadLoginFragment();
|
// go back from signup to login
|
||||||
|
onBackPressed();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue