]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
android: Add a button to install user certificates
authorTobias Brunner <tobias@strongswan.org>
Mon, 12 Jul 2021 16:58:58 +0000 (18:58 +0200)
committerTobias Brunner <tobias@strongswan.org>
Wed, 14 Jul 2021 07:59:02 +0000 (09:59 +0200)
Newer Android versions don't provide this option anymore on the
selection dialog.

src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java
src/frontends/android/app/src/main/res/layout/profile_detail_view.xml
src/frontends/android/app/src/main/res/values-de/strings.xml
src/frontends/android/app/src/main/res/values-pl/strings.xml
src/frontends/android/app/src/main/res/values-ru/strings.xml
src/frontends/android/app/src/main/res/values-ua/strings.xml
src/frontends/android/app/src/main/res/values-zh-rCN/strings.xml
src/frontends/android/app/src/main/res/values-zh-rTW/strings.xml
src/frontends/android/app/src/main/res/values/strings.xml

index 89e999ef7204d21a0ca2af5bcc0f8a0b35ae42ea..852e09f7c596546ef15ec6d4a1ec9c546398876c 100644 (file)
@@ -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<Intent> mInstallPKCS12 = registerForActivityResult(
+               new ActivityResultContracts.StartActivityForResult(),
+               result -> {
+                       if (result.getResultCode() == RESULT_OK)
+                       {
+                               mSelectUserCert.performClick();
+                       }
+               }
+       );
+
        private final ActivityResultLauncher<Intent> 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);
 
index 22847e001fb27239eb2869a8803c996b7dbb9f21..22fdfc2c7d3b73d484b73df696234e305109e44a 100644 (file)
                 android:id="@+id/select_user_certificate"
                 layout="@layout/two_line_button" />
 
+            <Button
+                android:id="@+id/install_user_certificate"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:layout_marginRight="4dp"
+                android:text="@string/profile_user_certificate_install" />
+
         </LinearLayout>
 
         <TextView
index e833d25621e5cdad74674a2e25ae8550a8dbfd4c..78e849a3aba32305b9ad9c7d113160abece51e8a 100644 (file)
@@ -75,6 +75,7 @@
     <string name="profile_user_certificate_label">Benutzer-Zertifikat</string>
     <string name="profile_user_select_certificate_label">Benutzer-Zertifikat auswählen</string>
     <string name="profile_user_select_certificate">Wählen Sie ein bestimmtes Benutzer-Zertifikat</string>
+    <string name="profile_user_certificate_install">Benutzer-Zertifikat installieren</string>
     <string name="profile_ca_label">CA-Zertifikat</string>
     <string name="profile_ca_auto_label">Automatisch wählen</string>
     <string name="profile_ca_select_certificate_label">CA-Zertifikat auswählen</string>
index 791ee1380b7139a8e60caad595610ff1568e89f6..1061485468f10b0a3d5e85aaed89c8845f8ef1e9 100644 (file)
@@ -75,6 +75,7 @@
     <string name="profile_user_certificate_label">Certyfikat użytkownika</string>
     <string name="profile_user_select_certificate_label">Wybierz certyfikat użytkownika</string>
     <string name="profile_user_select_certificate">>Wybierz określony certyfikat użytkownika</string>
+    <string name="profile_user_certificate_install">Install user certificate</string>
     <string name="profile_ca_label">Certyfikat CA</string>
     <string name="profile_ca_auto_label">Wybierz automatycznie</string>
     <string name="profile_ca_select_certificate_label">Wybierz certyfikat CA</string>
index e4421bf162843b8e6bb4ca9d7672e648fe513316..dc0b39704ca8a99ca2d2e4510ab48ed53ad669fd 100644 (file)
@@ -72,6 +72,7 @@
     <string name="profile_user_certificate_label">Сертификат пользователя</string>
     <string name="profile_user_select_certificate_label">Выбрать сертификат пользователя</string>
     <string name="profile_user_select_certificate">Выбрать сертификат пользователя</string>
+    <string name="profile_user_certificate_install">Install user certificate</string>
     <string name="profile_ca_label">Сертификат CA</string>
     <string name="profile_ca_auto_label">Выбрать автоматически</string>
     <string name="profile_ca_select_certificate_label">Выбрать сертификат CA</string>
index 5a6e3aa61b5d237ee4eda181a35a84e911faf4a9..10bff37c8a8ed68f76c8a9b26e67d2fcc1bce50c 100644 (file)
@@ -73,6 +73,7 @@
     <string name="profile_user_certificate_label">Сертифікат користувача</string>
     <string name="profile_user_select_certificate_label">Виберіть сертифікат користувача</string>
     <string name="profile_user_select_certificate">Вибрати спеціальний сертифікат користувача</string>
+    <string name="profile_user_certificate_install">Install user certificate</string>
     <string name="profile_ca_label">Сертифікат CA</string>
     <string name="profile_ca_auto_label">Вибрати автоматично</string>
     <string name="profile_ca_select_certificate_label">Вибрати сертифікат CA</string>
index efb27552a536d12e25ce7a402d004324701f4fb9..698e757008d4934ebbb3c7839732e8dfa49a8e46 100644 (file)
@@ -72,6 +72,7 @@
     <string name="profile_user_certificate_label">用户证书</string>
     <string name="profile_user_select_certificate_label">选择用户证书</string>
     <string name="profile_user_select_certificate">选择指定的用户证书</string>
+    <string name="profile_user_certificate_install">Install user certificate</string>   
     <string name="profile_ca_label">CA证书</string>
     <string name="profile_ca_auto_label">自动选择</string>
     <string name="profile_ca_select_certificate_label">选择CA证书</string>
index ba04ad43ff5c66a2030a325a6434f8d48f5a1126..9f4a6958f8eef5b04e9f0fa3f58f9737abc16d1d 100644 (file)
@@ -72,6 +72,7 @@
     <string name="profile_user_certificate_label">用戶憑證</string>
     <string name="profile_user_select_certificate_label">選擇用戶憑證</string>
     <string name="profile_user_select_certificate">選擇指定的用戶憑證</string>
+    <string name="profile_user_certificate_install">Install user certificate</string>
     <string name="profile_ca_label">CA憑證</string>
     <string name="profile_ca_auto_label">自動選擇</string>
     <string name="profile_ca_select_certificate_label">選擇CA憑證</string>
index 3d01d4f7c7fc0a494e48baf4b5facf023a55242c..2f437aa330296caf79f9abecc5186387c245dc28 100644 (file)
@@ -75,6 +75,7 @@
     <string name="profile_user_certificate_label">User certificate</string>
     <string name="profile_user_select_certificate_label">Select user certificate</string>
     <string name="profile_user_select_certificate">Select a specific user certificate</string>
+    <string name="profile_user_certificate_install">Install user certificate</string>
     <string name="profile_ca_label">CA certificate</string>
     <string name="profile_ca_auto_label">Select automatically</string>
     <string name="profile_ca_select_certificate_label">Select CA certificate</string>