Clean up main activity code
No need to catch IllegalStateException as we display the fragment from onCreate() without delay.
This commit is contained in:
parent
4dbacd79ae
commit
e81bc4f044
@ -10,7 +10,6 @@ import android.os.Build;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.support.annotation.IdRes;
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.design.widget.NavigationView;
|
import android.support.design.widget.NavigationView;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
@ -44,7 +43,6 @@ public class MainActivity extends AppCompatActivity
|
|||||||
@BindView(R.id.drawer_layout) DrawerLayout drawer;
|
@BindView(R.id.drawer_layout) DrawerLayout drawer;
|
||||||
@BindView(R.id.nav_view) public NavigationView navigationView;
|
@BindView(R.id.nav_view) public NavigationView navigationView;
|
||||||
|
|
||||||
@IdRes
|
|
||||||
private int mSelectedId = R.id.status;
|
private int mSelectedId = R.id.status;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -82,13 +80,11 @@ public class MainActivity extends AppCompatActivity
|
|||||||
drawer.addDrawerListener(toggle);
|
drawer.addDrawerListener(toggle);
|
||||||
toggle.syncState();
|
toggle.syncState();
|
||||||
|
|
||||||
//noinspection ResourceType
|
|
||||||
mSelectedId = savedInstanceState == null ? mSelectedId : savedInstanceState.getInt(SELECTED_ITEM_ID);
|
|
||||||
navigationView.setCheckedItem(mSelectedId);
|
|
||||||
|
|
||||||
if (savedInstanceState == null) {
|
if (savedInstanceState == null) {
|
||||||
mDrawerHandler.removeCallbacksAndMessages(null);
|
navigate(mSelectedId, true);
|
||||||
mDrawerHandler.postDelayed(() -> navigate(mSelectedId), 250);
|
navigationView.setCheckedItem(mSelectedId);
|
||||||
|
} else {
|
||||||
|
mSelectedId = savedInstanceState.getInt(SELECTED_ITEM_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
navigationView.setNavigationItemSelectedListener(this);
|
navigationView.setNavigationItemSelectedListener(this);
|
||||||
@ -136,7 +132,7 @@ public class MainActivity extends AppCompatActivity
|
|||||||
public boolean onNavigationItemSelected(@NonNull final MenuItem menuItem) {
|
public boolean onNavigationItemSelected(@NonNull final MenuItem menuItem) {
|
||||||
mSelectedId = menuItem.getItemId();
|
mSelectedId = menuItem.getItemId();
|
||||||
mDrawerHandler.removeCallbacksAndMessages(null);
|
mDrawerHandler.removeCallbacksAndMessages(null);
|
||||||
mDrawerHandler.postDelayed(() -> navigate(menuItem.getItemId()), 250);
|
mDrawerHandler.postDelayed(() -> navigate(menuItem.getItemId(), false), 250);
|
||||||
drawer.closeDrawer(GravityCompat.START);
|
drawer.closeDrawer(GravityCompat.START);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -164,48 +160,40 @@ public class MainActivity extends AppCompatActivity
|
|||||||
menu.findItem(R.id.install).setVisible(Shell.rootAccess());
|
menu.findItem(R.id.install).setVisible(Shell.rootAccess());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void navigate(final int itemId) {
|
public void navigate(int itemId, boolean now) {
|
||||||
Fragment navFragment = null;
|
|
||||||
String tag = "";
|
|
||||||
switch (itemId) {
|
switch (itemId) {
|
||||||
case R.id.status:
|
case R.id.status:
|
||||||
tag = "status";
|
displayFragment(new StatusFragment(), "status", now);
|
||||||
navFragment = new StatusFragment();
|
|
||||||
break;
|
break;
|
||||||
case R.id.install:
|
case R.id.install:
|
||||||
tag = "install";
|
displayFragment(new InstallFragment(), "install", now);
|
||||||
navFragment = new InstallFragment();
|
|
||||||
break;
|
break;
|
||||||
case R.id.modules:
|
case R.id.modules:
|
||||||
tag = "modules";
|
displayFragment(new ModulesFragment(), "modules", now);
|
||||||
navFragment = new ModulesFragment();
|
|
||||||
break;
|
break;
|
||||||
case R.id.downloads:
|
case R.id.downloads:
|
||||||
tag = "downloads";
|
displayFragment(new ReposFragment(), "downloads", now);
|
||||||
navFragment = new ReposFragment();
|
|
||||||
break;
|
break;
|
||||||
case R.id.magiskhide:
|
case R.id.magiskhide:
|
||||||
tag = "magiskhide";
|
displayFragment(new MagiskHideFragment(), "magiskhide", now);
|
||||||
navFragment = new MagiskHideFragment();
|
|
||||||
break;
|
break;
|
||||||
case R.id.log:
|
case R.id.log:
|
||||||
tag = "log";
|
displayFragment(new LogFragment(), "log", now);
|
||||||
navFragment = new LogFragment();
|
|
||||||
break;
|
break;
|
||||||
case R.id.settings:
|
case R.id.settings:
|
||||||
startActivity(new Intent(this, SettingsActivity.class));
|
startActivity(new Intent(this, SettingsActivity.class));
|
||||||
break;
|
break;
|
||||||
case R.id.app_about:
|
case R.id.app_about:
|
||||||
startActivity(new Intent(this, AboutActivity.class));
|
startActivity(new Intent(this, AboutActivity.class));
|
||||||
return;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
if (navFragment != null) {
|
|
||||||
FragmentTransaction transaction = getFragmentManager().beginTransaction();
|
|
||||||
transaction.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
|
|
||||||
try {
|
|
||||||
transaction.replace(R.id.content_frame, navFragment, tag).commit();
|
|
||||||
} catch (IllegalStateException ignored) {}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
private void displayFragment(@NonNull Fragment navFragment, String tag, boolean now) {
|
||||||
|
FragmentTransaction transaction = getFragmentManager().beginTransaction();
|
||||||
|
if (!now) {
|
||||||
|
transaction.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
|
||||||
|
}
|
||||||
|
transaction.replace(R.id.content_frame, navFragment, tag).commit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user