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 89e999ef7..852e09f7c 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 22847e001..22fdfc2c7 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" /> +