android: Migrate from deprecated ViewPager to ViewPager2 for CA cert lists
This commit is contained in:
+26
-23
@@ -15,7 +15,6 @@
|
|||||||
|
|
||||||
package org.strongswan.android.ui;
|
package org.strongswan.android.ui;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -23,6 +22,7 @@ import android.view.Menu;
|
|||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import com.google.android.material.tabs.TabLayout;
|
import com.google.android.material.tabs.TabLayout;
|
||||||
|
import com.google.android.material.tabs.TabLayoutMediator;
|
||||||
|
|
||||||
import org.strongswan.android.R;
|
import org.strongswan.android.R;
|
||||||
import org.strongswan.android.data.VpnProfileDataSource;
|
import org.strongswan.android.data.VpnProfileDataSource;
|
||||||
@@ -35,19 +35,20 @@ import java.security.KeyStore;
|
|||||||
|
|
||||||
import androidx.activity.result.ActivityResultLauncher;
|
import androidx.activity.result.ActivityResultLauncher;
|
||||||
import androidx.activity.result.contract.ActivityResultContracts;
|
import androidx.activity.result.contract.ActivityResultContracts;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.fragment.app.FragmentPagerAdapter;
|
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||||
import androidx.viewpager.widget.ViewPager;
|
import androidx.viewpager2.widget.ViewPager2;
|
||||||
|
|
||||||
public class TrustedCertificatesActivity extends AppCompatActivity implements TrustedCertificateListFragment.OnTrustedCertificateSelectedListener, OnCertificateDeleteListener
|
public class TrustedCertificatesActivity extends AppCompatActivity implements TrustedCertificateListFragment.OnTrustedCertificateSelectedListener, OnCertificateDeleteListener
|
||||||
{
|
{
|
||||||
public static final String SELECT_CERTIFICATE = "org.strongswan.android.action.SELECT_CERTIFICATE";
|
public static final String SELECT_CERTIFICATE = "org.strongswan.android.action.SELECT_CERTIFICATE";
|
||||||
private static final String DIALOG_TAG = "Dialog";
|
private static final String DIALOG_TAG = "Dialog";
|
||||||
private TrustedCertificatesPagerAdapter mAdapter;
|
private TrustedCertificatesPagerAdapter mAdapter;
|
||||||
private ViewPager mPager;
|
private ViewPager2 mPager;
|
||||||
private boolean mSelect;
|
private boolean mSelect;
|
||||||
|
|
||||||
private final ActivityResultLauncher<Intent> mImportCertificate = registerForActivityResult(
|
private final ActivityResultLauncher<Intent> mImportCertificate = registerForActivityResult(
|
||||||
@@ -69,13 +70,15 @@ public class TrustedCertificatesActivity extends AppCompatActivity implements Tr
|
|||||||
ActionBar actionBar = getSupportActionBar();
|
ActionBar actionBar = getSupportActionBar();
|
||||||
actionBar.setDisplayHomeAsUpEnabled(true);
|
actionBar.setDisplayHomeAsUpEnabled(true);
|
||||||
|
|
||||||
mAdapter = new TrustedCertificatesPagerAdapter(getSupportFragmentManager(), this);
|
mAdapter = new TrustedCertificatesPagerAdapter(this);
|
||||||
|
|
||||||
mPager = (ViewPager)findViewById(R.id.viewpager);
|
mPager = (ViewPager2)findViewById(R.id.viewpager);
|
||||||
mPager.setAdapter(mAdapter);
|
mPager.setAdapter(mAdapter);
|
||||||
|
|
||||||
TabLayout tabs = (TabLayout)findViewById(R.id.tabs);
|
TabLayout tabs = (TabLayout)findViewById(R.id.tabs);
|
||||||
tabs.setupWithViewPager(mPager);
|
new TabLayoutMediator(tabs, mPager, (tab, position) -> {
|
||||||
|
tab.setText(mAdapter.getTitle(position));
|
||||||
|
}).attach();
|
||||||
|
|
||||||
mSelect = SELECT_CERTIFICATE.equals(getIntent().getAction());
|
mSelect = SELECT_CERTIFICATE.equals(getIntent().getAction());
|
||||||
}
|
}
|
||||||
@@ -158,28 +161,21 @@ public class TrustedCertificatesActivity extends AppCompatActivity implements Tr
|
|||||||
TrustedCertificateManager.getInstance().reset();
|
TrustedCertificateManager.getInstance().reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TrustedCertificatesPagerAdapter extends FragmentPagerAdapter
|
public static class TrustedCertificatesPagerAdapter extends FragmentStateAdapter
|
||||||
{
|
{
|
||||||
private TrustedCertificatesTab mTabs[];
|
private TrustedCertificatesTab mTabs[];
|
||||||
|
|
||||||
public TrustedCertificatesPagerAdapter(FragmentManager fm, Context context)
|
public TrustedCertificatesPagerAdapter(@NonNull FragmentActivity fragmentActivity)
|
||||||
{
|
{
|
||||||
super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
|
super(fragmentActivity);
|
||||||
mTabs = new TrustedCertificatesTab[]{
|
mTabs = new TrustedCertificatesTab[]{
|
||||||
new TrustedCertificatesTab(context.getString(R.string.system_tab), TrustedCertificateSource.SYSTEM),
|
new TrustedCertificatesTab(fragmentActivity.getString(R.string.system_tab), TrustedCertificateSource.SYSTEM),
|
||||||
new TrustedCertificatesTab(context.getString(R.string.user_tab), TrustedCertificateSource.USER),
|
new TrustedCertificatesTab(fragmentActivity.getString(R.string.user_tab), TrustedCertificateSource.USER),
|
||||||
new TrustedCertificatesTab(context.getString(R.string.local_tab), TrustedCertificateSource.LOCAL),
|
new TrustedCertificatesTab(fragmentActivity.getString(R.string.local_tab), TrustedCertificateSource.LOCAL),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public CharSequence getTitle(int position)
|
||||||
public int getCount()
|
|
||||||
{
|
|
||||||
return mTabs.length;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CharSequence getPageTitle(int position)
|
|
||||||
{
|
{
|
||||||
return mTabs[position].getTitle();
|
return mTabs[position].getTitle();
|
||||||
}
|
}
|
||||||
@@ -190,7 +186,14 @@ public class TrustedCertificatesActivity extends AppCompatActivity implements Tr
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Fragment getItem(int position)
|
public int getItemCount()
|
||||||
|
{
|
||||||
|
return mTabs.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Fragment createFragment(int position)
|
||||||
{
|
{
|
||||||
TrustedCertificateListFragment fragment = new TrustedCertificateListFragment();
|
TrustedCertificateListFragment fragment = new TrustedCertificateListFragment();
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
app:tabGravity="fill"
|
app:tabGravity="fill"
|
||||||
app:tabMode="fixed"/>
|
app:tabMode="fixed"/>
|
||||||
|
|
||||||
<androidx.viewpager.widget.ViewPager
|
<androidx.viewpager2.widget.ViewPager2
|
||||||
android:id="@+id/viewpager"
|
android:id="@+id/viewpager"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
|
|||||||
Reference in New Issue
Block a user