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