From: Tobias Brunner Date: Mon, 12 Jul 2021 16:58:58 +0000 (+0200) Subject: android: Add a button to install user certificates X-Git-Tag: android-2.3.3^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2f1bf11dcae622fc759834ffa43db4e53041e780;p=thirdparty%2Fstrongswan.git android: Add a button to install user certificates Newer Android versions don't provide this option anymore on the selection dialog. --- diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java index 89e999ef72..852e09f7c5 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java @@ -43,6 +43,7 @@ import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; +import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; @@ -145,6 +146,16 @@ public class VpnProfileDetailActivity extends AppCompatActivity private EditText mDnsServers; private TextInputLayoutHelper mDnsServersWrap; + private final ActivityResultLauncher mInstallPKCS12 = registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + if (result.getResultCode() == RESULT_OK) + { + mSelectUserCert.performClick(); + } + } + ); + private final ActivityResultLauncher mSelectTrustedCertificate = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), result -> { @@ -309,6 +320,10 @@ public class VpnProfileDetailActivity extends AppCompatActivity }); mSelectUserCert.setOnClickListener(new SelectUserCertOnClickListener()); + ((Button)findViewById(R.id.install_user_certificate)).setOnClickListener(v -> { + Intent intent = KeyChain.createInstallIntent(); + mInstallPKCS12.launch(intent); + }); mSelectUserIdAdapter = new CertificateIdentitiesAdapter(this); mLocalId.setAdapter(mSelectUserIdAdapter); diff --git a/src/frontends/android/app/src/main/res/layout/profile_detail_view.xml b/src/frontends/android/app/src/main/res/layout/profile_detail_view.xml index 22847e001f..22fdfc2c7d 100644 --- a/src/frontends/android/app/src/main/res/layout/profile_detail_view.xml +++ b/src/frontends/android/app/src/main/res/layout/profile_detail_view.xml @@ -123,6 +123,14 @@ android:id="@+id/select_user_certificate" layout="@layout/two_line_button" /> +