Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b6c07756 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Refine Spinner style in Edit VPN profile" into main

parents 67c3b261 46061ed2
Loading
Loading
Loading
Loading
+22 −17
Original line number Diff line number Diff line
@@ -64,8 +64,9 @@
                <TextView style="@style/vpn_label"
                        android:text="@string/vpn_type"
                        android:labelFor="@+id/type"/>
                <Spinner style="@style/vpn_value"
                <Spinner
                    android:id="@+id/type"
                    style="@style/vpn_spinner"
                    android:prompt="@string/vpn_type"
                    android:entries="@array/vpn_types"/>

@@ -126,8 +127,9 @@
                    <TextView style="@style/vpn_label"
                            android:text="@string/vpn_ipsec_user_cert"
                            android:labelFor="@+id/ipsec_user_cert"/>
                    <Spinner style="@style/vpn_value"
                    <Spinner
                        android:id="@+id/ipsec_user_cert"
                        style="@style/vpn_spinner"
                        android:prompt="@string/vpn_ipsec_user_cert"/>
                </LinearLayout>

@@ -139,15 +141,17 @@
                    <TextView style="@style/vpn_label"
                            android:text="@string/vpn_ipsec_ca_cert"
                            android:labelFor="@+id/ipsec_ca_cert"/>
                    <Spinner style="@style/vpn_value"
                    <Spinner
                        android:id="@+id/ipsec_ca_cert"
                        style="@style/vpn_spinner"
                        android:prompt="@string/vpn_ipsec_ca_cert"/>

                    <TextView style="@style/vpn_label"
                            android:text="@string/vpn_ipsec_server_cert"
                            android:labelFor="@+id/ipsec_server_cert"/>
                    <Spinner style="@style/vpn_value"
                    <Spinner
                        android:id="@+id/ipsec_server_cert"
                        style="@style/vpn_spinner"
                        android:prompt="@string/vpn_ipsec_server_cert"/>
                </LinearLayout>

@@ -167,8 +171,9 @@
                          android:text="@string/proxy_settings_title"
                          android:labelFor="@+id/vpn_proxy_settings" />

                <Spinner android:id="@+id/vpn_proxy_settings"
                         style="@style/vpn_value"
                <Spinner
                    android:id="@+id/vpn_proxy_settings"
                    style="@style/vpn_spinner"
                    android:prompt="@string/proxy_settings_title"
                    android:entries="@array/vpn_proxy_settings"/>

+18 −0
Original line number Diff line number Diff line
@@ -69,6 +69,15 @@
        <item name="android:scrollbarStyle">outsideOverlay</item>
    </style>

    <style name="Dialog.Spinner" parent="@style/SettingslibSpinnerStyle.Expressive">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:minHeight">40dp</item>
        <item name="android:layout_marginTop">4dp</item>
        <item name="android:layout_marginBottom">4dp</item>
        <item name="android:dropDownVerticalOffset">@dimen/min_tap_target_size</item>
    </style>

    <style name="Theme.Network" parent="@style/Theme.Material3.DynamicColors.DayNight">
        <item name="textInputStyle">@style/Widget.Network.TextInputLayout</item>
    </style>
@@ -245,6 +254,10 @@
    <style name="vpn_label">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_marginStart">8dp</item>
        <item name="android:minHeight">@dimen/min_tap_target_size</item>
        <item name="android:paddingBottom">8dp</item>
        <item name="android:gravity">bottom</item>
        <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
    </style>

@@ -258,6 +271,11 @@
        <item name="android:textColorHint">?android:attr/textColorSecondary</item>
    </style>

    <style name="vpn_spinner" parent="@style/Dialog.Spinner">
        <item name="android:singleLine">true</item>
        <item name="android:textAlignment">viewStart</item>
    </style>

    <style name="vpn_input_label" parent="vpn_label">
        <item name="android:paddingBottom">8dp</item>
    </style>
+15 −9
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Spinner;
@@ -40,6 +39,7 @@ import com.android.internal.net.VpnProfile;
import com.android.net.module.util.ProxyUtils;
import com.android.settings.R;
import com.android.settings.utils.AndroidKeystoreAliasLoader;
import com.android.settings.widget.EnhancedSettingsSpinnerAdapter;
import com.android.settings.wifi.utils.TextInputGroup;

import java.util.Collection;
@@ -117,6 +117,7 @@ class ConfigDialog extends AlertDialog implements TextWatcher,
        mPasswordInput = new TextInputGroup(mView, R.id.password_layout, R.id.password,
                R.string.vpn_field_required);
        mProxySettings = (Spinner) mView.findViewById(R.id.vpn_proxy_settings);
        loadProxySettings(mProxySettings);
        mProxyHost = (TextView) mView.findViewById(R.id.vpn_proxy_host);
        mProxyPort = (TextView) mView.findViewById(R.id.vpn_proxy_port);
        mIpsecIdentifierInput = new TextInputGroup(mView, R.id.ipsec_identifier_layout,
@@ -149,8 +150,8 @@ class ConfigDialog extends AlertDialog implements TextWatcher,
        mIpsecSecretInput.setText(mProfile.ipsecSecret);
        final AndroidKeystoreAliasLoader androidKeystoreAliasLoader =
                new AndroidKeystoreAliasLoader(null);
        loadCertificates(mIpsecUserCert, androidKeystoreAliasLoader.getKeyCertAliases(), 0,
                mProfile.ipsecUserCert);
        loadCertificates(mIpsecUserCert, androidKeystoreAliasLoader.getKeyCertAliases(),
                R.string.vpn_not_used, mProfile.ipsecUserCert);
        loadCertificates(mIpsecCaCert, androidKeystoreAliasLoader.getCaCertAliases(),
                R.string.vpn_no_ca_cert, mProfile.ipsecCaCert);
        loadCertificates(mIpsecServerCert, androidKeystoreAliasLoader.getKeyCertAliases(),
@@ -450,9 +451,8 @@ class ConfigDialog extends AlertDialog implements TextWatcher,
            mProfile.type = VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS;
        }

        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                getContext(), android.R.layout.simple_spinner_item, types);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        EnhancedSettingsSpinnerAdapter<String> adapter =
                new EnhancedSettingsSpinnerAdapter<>(getContext(), types);
        typeSpinner.setAdapter(adapter);
    }

@@ -473,9 +473,8 @@ class ConfigDialog extends AlertDialog implements TextWatcher,
            }
        }

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                context, android.R.layout.simple_spinner_item, myChoices);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        EnhancedSettingsSpinnerAdapter<String> adapter =
                new EnhancedSettingsSpinnerAdapter<>(context, myChoices);
        spinner.setAdapter(adapter);

        for (int i = 1; i < myChoices.length; ++i) {
@@ -486,6 +485,13 @@ class ConfigDialog extends AlertDialog implements TextWatcher,
        }
    }

    private void loadProxySettings(Spinner spinner) {
        String[] types = getContext().getResources().getStringArray(R.array.vpn_proxy_settings);
        EnhancedSettingsSpinnerAdapter<String> adapter =
                new EnhancedSettingsSpinnerAdapter<>(getContext(), types);
        spinner.setAdapter(adapter);
    }

    private void setUsernamePasswordVisibility(int type) {
        mView.findViewById(R.id.userpass).setVisibility(
                requiresUsernamePassword(type) ? View.VISIBLE : View.GONE);