Fixes tunnel listing in landscape mode bot not in portrait mode

This commit is contained in:
eyedeekay
2025-03-14 18:28:53 -04:00
parent bf2dea5e0a
commit ddb2482623
2 changed files with 18 additions and 3 deletions

View File

@ -64,6 +64,8 @@ public class TunnelListFragment extends Fragment implements
private TunnelEntryAdapter mAdapter; private TunnelEntryAdapter mAdapter;
private boolean mClientTunnels; private boolean mClientTunnels;
private static final String KEY_SELECTED_TUNNEL = "selected_tunnel";
// Container Activity must implement this interface // Container Activity must implement this interface
public interface OnTunnelSelectedListener { public interface OnTunnelSelectedListener {
void onTunnelSelected(int tunnelId, Pair<View, String>[] pairs); void onTunnelSelected(int tunnelId, Pair<View, String>[] pairs);
@ -107,6 +109,12 @@ public class TunnelListFragment extends Fragment implements
@Override @Override
public void onViewCreated(View view, Bundle savedInstanceState) { public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
if (savedInstanceState != null) {
int tunnelId = savedInstanceState.getInt(KEY_SELECTED_TUNNEL, -1);
if (tunnelId != -1) {
mCallback.onTunnelSelected(tunnelId, null);
}
}
} }
@Override @Override

View File

@ -18,6 +18,8 @@ import androidx.fragment.app.FragmentPagerAdapter;
import androidx.core.util.Pair; import androidx.core.util.Pair;
//import android.support.v4.view.ViewPager; //import android.support.v4.view.ViewPager;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
@ -293,9 +295,14 @@ public class TunnelsContainer extends Fragment implements
// In two-pane mode, show the detail view in this activity by // In two-pane mode, show the detail view in this activity by
// adding or replacing the detail fragment using a // adding or replacing the detail fragment using a
// fragment transaction. // fragment transaction.
try {
TunnelDetailFragment detailFrag = TunnelDetailFragment.newInstance(tunnelId); TunnelDetailFragment detailFrag = TunnelDetailFragment.newInstance(tunnelId);
getChildFragmentManager().beginTransaction() getChildFragmentManager().beginTransaction()
.replace(R.id.detail_fragment, detailFrag).commit(); .replace(R.id.detail_fragment, detailFrag)
.commitNow(); // Use commitNow() to execute synchronously
} catch (Exception e) {
Log.e("TunnelsContainer", "Failed to update detail fragment", e);
}
} else { } else {
// In single-pane mode, simply start the detail activity // In single-pane mode, simply start the detail activity
// for the selected item ID. // for the selected item ID.