Fixed two-pane tunnel deletion

This commit is contained in:
str4d
2013-08-27 11:12:47 +00:00
parent 014fc9b79b
commit 5b7452ff90
3 changed files with 18 additions and 5 deletions

View File

@ -22,7 +22,7 @@ public class TunnelDetailActivity extends I2PActivityBase implements
// TunnelDetailFragment.OnTunnelDeletedListener
public void onTunnelDeleted() {
public void onTunnelDeleted(int tunnelId, int numTunnelsLeft) {
finish();
}
}

View File

@ -86,7 +86,19 @@ public class TunnelListActivity extends I2PActivityBase implements
// TunnelDetailFragment.OnTunnelDeletedListener
public void onTunnelDeleted() {
getSupportFragmentManager().popBackStack();
public void onTunnelDeleted(int tunnelId, int numTunnelsLeft) {
// Should only get here in two-pane mode, but just to be safe:
if (mTwoPane) {
if (numTunnelsLeft > 0) {
TunnelDetailFragment detailFrag = TunnelDetailFragment.newInstance(
(tunnelId > 0 ? tunnelId - 1 : 0));
getSupportFragmentManager().beginTransaction()
.replace(R.id.detail_fragment, detailFrag).commit();
} else {
TunnelDetailFragment detailFrag = (TunnelDetailFragment) getSupportFragmentManager().findFragmentById(R.id.detail_fragment);
getSupportFragmentManager().beginTransaction()
.remove(detailFrag).commit();
}
}
}
}

View File

@ -42,7 +42,7 @@ public class TunnelDetailFragment extends Fragment {
// Container Activity must implement this interface
public interface OnTunnelDeletedListener {
public void onTunnelDeleted();
public void onTunnelDeleted(int tunnelId, int numTunnelsLeft);
}
@Override
@ -133,7 +133,8 @@ public class TunnelDetailFragment extends Fragment {
dialog.dismiss();
Toast.makeText(getActivity().getApplicationContext(),
msgs.get(0), Toast.LENGTH_LONG).show();
mCallback.onTunnelDeleted();
mCallback.onTunnelDeleted(mTunnel.getId(),
mGroup.getControllers().size());
}
})
.setNegativeButton(android.R.string.cancel, null)