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 // TunnelDetailFragment.OnTunnelDeletedListener
public void onTunnelDeleted() { public void onTunnelDeleted(int tunnelId, int numTunnelsLeft) {
finish(); finish();
} }
} }

View File

@ -86,7 +86,19 @@ public class TunnelListActivity extends I2PActivityBase implements
// TunnelDetailFragment.OnTunnelDeletedListener // TunnelDetailFragment.OnTunnelDeletedListener
public void onTunnelDeleted() { public void onTunnelDeleted(int tunnelId, int numTunnelsLeft) {
getSupportFragmentManager().popBackStack(); // 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 // Container Activity must implement this interface
public interface OnTunnelDeletedListener { public interface OnTunnelDeletedListener {
public void onTunnelDeleted(); public void onTunnelDeleted(int tunnelId, int numTunnelsLeft);
} }
@Override @Override
@ -133,7 +133,8 @@ public class TunnelDetailFragment extends Fragment {
dialog.dismiss(); dialog.dismiss();
Toast.makeText(getActivity().getApplicationContext(), Toast.makeText(getActivity().getApplicationContext(),
msgs.get(0), Toast.LENGTH_LONG).show(); msgs.get(0), Toast.LENGTH_LONG).show();
mCallback.onTunnelDeleted(); mCallback.onTunnelDeleted(mTunnel.getId(),
mGroup.getControllers().size());
} }
}) })
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)