From 2d784dbef23b5ebb21d5a3e827ea5fbf6026dc92 Mon Sep 17 00:00:00 2001 From: eyedeekay Date: Mon, 10 Mar 2025 19:29:53 -0400 Subject: [PATCH] fix crashes in landscape mode --- .../android/i2ptunnel/TunnelsContainer.java | 54 +++++-------------- .../res/layout-land/activity_viewpager.xml | 6 +-- .../main/res/layout-land/fragment_main.xml | 4 +- 3 files changed, 18 insertions(+), 46 deletions(-) diff --git a/app/src/main/java/net/i2p/android/i2ptunnel/TunnelsContainer.java b/app/src/main/java/net/i2p/android/i2ptunnel/TunnelsContainer.java index 2647452d3..41a5c9c60 100644 --- a/app/src/main/java/net/i2p/android/i2ptunnel/TunnelsContainer.java +++ b/app/src/main/java/net/i2p/android/i2ptunnel/TunnelsContainer.java @@ -128,51 +128,14 @@ public class TunnelsContainer extends Fragment implements @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - // Add null check for safety - if (mPageIndicator == null) { - return; - } - + + // Initialize ViewPager and adapter mFragPagerAdapter = new TunnelsPagerAdapter(getChildFragmentManager()); mViewPager.setAdapter(mFragPagerAdapter); - // Replace old indicator setup with MagicIndicator initialization - CommonNavigator commonNavigator = new CommonNavigator(getContext()); - commonNavigator.setAdapter(new CommonNavigatorAdapter() { - @Override - public int getCount() { - return mFragPagerAdapter.getCount(); - } - - @Override - public IPagerTitleView getTitleView(Context context, final int index) { - SimplePagerTitleView simplePagerTitleView = new ColorTransitionPagerTitleView(context); - simplePagerTitleView.setText(mFragPagerAdapter.getPageTitle(index)); - simplePagerTitleView.setNormalColor(ContextCompat.getColor(context, - R.color.primary_text_disabled_material_dark)); - simplePagerTitleView.setSelectedColor(ContextCompat.getColor(context, - R.color.primary_text_default_material_dark)); - simplePagerTitleView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - mViewPager.setCurrentItem(index); - } - }); - return simplePagerTitleView; - } - - @Override - public IPagerIndicator getIndicator(Context context) { - LinePagerIndicator indicator = new LinePagerIndicator(context); - indicator.setColors(ContextCompat.getColor(context, R.color.primary)); - return indicator; - } - }); - - mPageIndicator.setNavigator(commonNavigator); - ViewPagerHelper.bind(mPageIndicator, mViewPager); - //mPageIndicator.setViewPager(mViewPager); + setupMagicIndicator(); + // Setup New Tunnel button mNewTunnel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -378,6 +341,7 @@ public class TunnelsContainer extends Fragment implements } CommonNavigator commonNavigator = new CommonNavigator(getContext()); + commonNavigator.setAdjustMode(true); // Add this line for better spacing commonNavigator.setAdapter(new CommonNavigatorAdapter() { @Override public int getCount() { @@ -388,6 +352,7 @@ public class TunnelsContainer extends Fragment implements public IPagerTitleView getTitleView(Context context, final int index) { SimplePagerTitleView simplePagerTitleView = new ColorTransitionPagerTitleView(context); simplePagerTitleView.setText(mFragPagerAdapter.getPageTitle(index)); + simplePagerTitleView.setTextSize(16); // Add this line to increase text size simplePagerTitleView.setNormalColor(ContextCompat.getColor(context, R.color.primary_text_disabled_material_dark)); simplePagerTitleView.setSelectedColor(ContextCompat.getColor(context, @@ -404,7 +369,9 @@ public class TunnelsContainer extends Fragment implements @Override public IPagerIndicator getIndicator(Context context) { LinePagerIndicator indicator = new LinePagerIndicator(context); + indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT); indicator.setColors(ContextCompat.getColor(context, R.color.primary)); + indicator.setLineHeight(dpToPx(context, 3)); return indicator; } }); @@ -412,4 +379,9 @@ public class TunnelsContainer extends Fragment implements mPageIndicator.setNavigator(commonNavigator); ViewPagerHelper.bind(mPageIndicator, mViewPager); } + + private int dpToPx(Context context, int dp) { + float density = context.getResources().getDisplayMetrics().density; + return Math.round(dp * density); + } } diff --git a/app/src/main/res/layout-land/activity_viewpager.xml b/app/src/main/res/layout-land/activity_viewpager.xml index 23fe719d1..115ea4a8b 100644 --- a/app/src/main/res/layout-land/activity_viewpager.xml +++ b/app/src/main/res/layout-land/activity_viewpager.xml @@ -5,7 +5,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - - + - diff --git a/app/src/main/res/layout-land/fragment_main.xml b/app/src/main/res/layout-land/fragment_main.xml index e172ca1ca..07c309b26 100644 --- a/app/src/main/res/layout-land/fragment_main.xml +++ b/app/src/main/res/layout-land/fragment_main.xml @@ -72,7 +72,7 @@ - - +