android: Show warning message for read-only profiles in detail view

Show a message explaining that a managed profile can't be edited in
its detail view.
This commit is contained in:
Markus Pfeiffer
2024-02-21 12:24:53 +01:00
committed by Tobias Brunner
parent c9c65a94c9
commit 5f9f279a33
9 changed files with 524 additions and 486 deletions
@@ -98,6 +98,7 @@ public class VpnProfileDetailActivity extends AppCompatActivity
private SelectedAppsHandling mSelectedAppsHandling = SelectedAppsHandling.SELECTED_APPS_DISABLE; private SelectedAppsHandling mSelectedAppsHandling = SelectedAppsHandling.SELECTED_APPS_DISABLE;
private SortedSet<String> mSelectedApps = new TreeSet<>(); private SortedSet<String> mSelectedApps = new TreeSet<>();
private VpnProfile mProfile; private VpnProfile mProfile;
private View mManagedProfile;
private MultiAutoCompleteTextView mName; private MultiAutoCompleteTextView mName;
private TextInputLayoutHelper mNameWrap; private TextInputLayoutHelper mNameWrap;
private EditText mGateway; private EditText mGateway;
@@ -195,6 +196,8 @@ public class VpnProfileDetailActivity extends AppCompatActivity
setContentView(R.layout.profile_detail_view); setContentView(R.layout.profile_detail_view);
mManagedProfile = findViewById(R.id.managed_profile);
mName = findViewById(R.id.name); mName = findViewById(R.id.name);
mNameWrap = findViewById(R.id.name_wrap); mNameWrap = findViewById(R.id.name_wrap);
mGateway = findViewById(R.id.gateway); mGateway = findViewById(R.id.gateway);
@@ -857,6 +860,8 @@ public class VpnProfileDetailActivity extends AppCompatActivity
private void setReadOnly(final boolean readOnly) private void setReadOnly(final boolean readOnly)
{ {
mManagedProfile.setVisibility(readOnly ? View.VISIBLE : View.GONE);
mName.setEnabled(!readOnly); mName.setEnabled(!readOnly);
mGateway.setEnabled(!readOnly); mGateway.setEnabled(!readOnly);
mUsername.setEnabled(!readOnly); mUsername.setEnabled(!readOnly);
@@ -16,17 +16,42 @@
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details. for more details.
--> -->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<TextView
android:id="@+id/managed_profile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/state_background"
android:drawableStart="@android:drawable/ic_dialog_alert"
android:drawablePadding="8dp"
android:padding="8dp"
android:text="@string/alert_text_vpn_profile_read_only"
android:textColor="?android:attr/textColorPrimary"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textStyle="bold"
android:visibility="gone"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" />
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/managed_profile">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:animateLayoutChanges="true"
android:orientation="vertical" android:orientation="vertical"
android:padding="10dp" android:padding="10dp">
android:animateLayoutChanges="true" >
<org.strongswan.android.ui.widget.TextInputLayoutHelper <org.strongswan.android.ui.widget.TextInputLayoutHelper
android:id="@+id/gateway_wrap" android:id="@+id/gateway_wrap"
@@ -40,8 +65,8 @@
android:id="@+id/gateway" android:id="@+id/gateway"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:inputType="textNoSuggestions"
android:inputType="textNoSuggestions" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -49,15 +74,15 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="4dp" android:layout_marginLeft="4dp"
android:textSize="12sp" android:text="@string/profile_vpn_type_label"
android:text="@string/profile_vpn_type_label" /> android:textSize="12sp" />
<Spinner <Spinner
android:id="@+id/vpn_type" android:id="@+id/vpn_type"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:spinnerMode="dropdown" android:entries="@array/vpn_types"
android:entries="@array/vpn_types" /> android:spinnerMode="dropdown" />
<include <include
android:id="@+id/tnc_notice" android:id="@+id/tnc_notice"
@@ -81,8 +106,8 @@
android:id="@+id/username" android:id="@+id/username"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:inputType="textNoSuggestions"
android:inputType="textNoSuggestions" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -98,8 +123,8 @@
android:id="@+id/password" android:id="@+id/password"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:inputType="textPassword|textNoSuggestions"
android:inputType="textPassword|textNoSuggestions" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -115,10 +140,10 @@
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginLeft="4dp" android:layout_marginLeft="4dp"
android:textSize="12sp" android:layout_marginTop="4dp"
android:text="@string/profile_user_certificate_label" /> android:text="@string/profile_user_certificate_label"
android:textSize="12sp" />
<include <include
android:id="@+id/select_user_certificate" android:id="@+id/select_user_certificate"
@@ -138,8 +163,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="4dp" android:layout_marginLeft="4dp"
android:textSize="12sp" android:text="@string/profile_ca_label"
android:text="@string/profile_ca_label" /> android:textSize="12sp" />
<CheckBox <CheckBox
android:id="@+id/ca_auto" android:id="@+id/ca_auto"
@@ -164,9 +189,9 @@
android:id="@+id/name" android:id="@+id/name"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:completionThreshold="1"
android:inputType="textNoSuggestions" android:inputType="textNoSuggestions"
android:completionThreshold="1" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -185,10 +210,10 @@
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="4dp" android:layout_marginLeft="4dp"
android:textSize="20sp" android:layout_marginTop="10dp"
android:text="@string/profile_advanced_label" /> android:text="@string/profile_advanced_label"
android:textSize="20sp" />
<org.strongswan.android.ui.widget.TextInputLayoutHelper <org.strongswan.android.ui.widget.TextInputLayoutHelper
android:id="@+id/remote_id_wrap" android:id="@+id/remote_id_wrap"
@@ -202,9 +227,9 @@
android:id="@+id/remote_id" android:id="@+id/remote_id"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:completionThreshold="1"
android:inputType="textNoSuggestions" android:inputType="textNoSuggestions"
android:completionThreshold="1" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -219,9 +244,9 @@
android:id="@+id/local_id" android:id="@+id/local_id"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:completionThreshold="0"
android:inputType="textNoSuggestions" android:inputType="textNoSuggestions"
android:completionThreshold="0" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -236,8 +261,8 @@
android:id="@+id/dns_servers" android:id="@+id/dns_servers"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:inputType="textNoSuggestions"
android:inputType="textNoSuggestions" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -252,8 +277,8 @@
android:id="@+id/mtu" android:id="@+id/mtu"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:inputType="number|textNoSuggestions"
android:inputType="number|textNoSuggestions" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -268,8 +293,8 @@
android:id="@+id/port" android:id="@+id/port"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:inputType="number|textNoSuggestions"
android:inputType="number|textNoSuggestions" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -284,8 +309,8 @@
android:id="@+id/nat_keepalive" android:id="@+id/nat_keepalive"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:inputType="number|textNoSuggestions"
android:inputType="number|textNoSuggestions" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -293,122 +318,122 @@
android:id="@+id/cert_req" android:id="@+id/cert_req"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginLeft="4dp"
android:text="@string/profile_cert_req_label" /> android:text="@string/profile_cert_req_label" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:textSize="12sp" android:layout_marginLeft="4dp"
android:text="@string/profile_cert_req_hint" /> android:layout_marginBottom="10dp"
android:text="@string/profile_cert_req_hint"
android:textSize="12sp" />
<androidx.appcompat.widget.SwitchCompat <androidx.appcompat.widget.SwitchCompat
android:id="@+id/use_ocsp" android:id="@+id/use_ocsp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginLeft="4dp"
android:text="@string/profile_use_ocsp_label" /> android:text="@string/profile_use_ocsp_label" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:textSize="12sp" android:layout_marginLeft="4dp"
android:text="@string/profile_use_ocsp_hint" /> android:layout_marginBottom="10dp"
android:text="@string/profile_use_ocsp_hint"
android:textSize="12sp" />
<androidx.appcompat.widget.SwitchCompat <androidx.appcompat.widget.SwitchCompat
android:id="@+id/use_crl" android:id="@+id/use_crl"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginLeft="4dp"
android:text="@string/profile_use_crl_label" /> android:text="@string/profile_use_crl_label" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:textSize="12sp" android:layout_marginLeft="4dp"
android:text="@string/profile_use_crl_hint" /> android:layout_marginBottom="10dp"
android:text="@string/profile_use_crl_hint"
android:textSize="12sp" />
<androidx.appcompat.widget.SwitchCompat <androidx.appcompat.widget.SwitchCompat
android:id="@+id/strict_revocation" android:id="@+id/strict_revocation"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginLeft="4dp"
android:text="@string/profile_strict_revocation_label" /> android:text="@string/profile_strict_revocation_label" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:textSize="12sp" android:layout_marginLeft="4dp"
android:text="@string/profile_strict_revocation_hint" /> android:layout_marginBottom="10dp"
android:text="@string/profile_strict_revocation_hint"
android:textSize="12sp" />
<androidx.appcompat.widget.SwitchCompat <androidx.appcompat.widget.SwitchCompat
android:id="@+id/rsa_pss" android:id="@+id/rsa_pss"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginLeft="4dp"
android:text="@string/profile_rsa_pss_label" /> android:text="@string/profile_rsa_pss_label" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:textSize="12sp" android:layout_marginLeft="4dp"
android:text="@string/profile_rsa_pss_hint" /> android:layout_marginBottom="10dp"
android:text="@string/profile_rsa_pss_hint"
android:textSize="12sp" />
<androidx.appcompat.widget.SwitchCompat <androidx.appcompat.widget.SwitchCompat
android:id="@+id/ipv6_transport" android:id="@+id/ipv6_transport"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginLeft="4dp"
android:text="@string/profile_ipv6_transport_label" /> android:text="@string/profile_ipv6_transport_label" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:textSize="12sp" android:layout_marginLeft="4dp"
android:text="@string/profile_ipv6_transport_hint" /> android:layout_marginBottom="10dp"
android:text="@string/profile_ipv6_transport_hint"
android:textSize="12sp" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginLeft="4dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp" android:text="@string/profile_split_tunneling_label"
android:layout_marginStart="4dp" android:textSize="20sp" />
android:textSize="20sp"
android:text="@string/profile_split_tunneling_label" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp" android:text="@string/profile_split_tunneling_intro"
android:textSize="12sp" android:textSize="12sp" />
android:text="@string/profile_split_tunneling_intro" />
<org.strongswan.android.ui.widget.TextInputLayoutHelper <org.strongswan.android.ui.widget.TextInputLayoutHelper
android:id="@+id/included_subnets_wrap" android:id="@+id/included_subnets_wrap"
@@ -421,8 +446,8 @@
android:id="@+id/included_subnets" android:id="@+id/included_subnets"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:inputType="textNoSuggestions"
android:inputType="textNoSuggestions" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -437,8 +462,8 @@
android:id="@+id/excluded_subnets" android:id="@+id/excluded_subnets"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:inputType="textNoSuggestions"
android:inputType="textNoSuggestions" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -458,19 +483,19 @@
android:id="@+id/apps" android:id="@+id/apps"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginLeft="4dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp" android:text="@string/profile_select_apps_label"
android:layout_marginStart="4dp" android:textSize="20sp" />
android:textSize="20sp"
android:text="@string/profile_select_apps_label" />
<Spinner <Spinner
android:id="@+id/apps_handling" android:id="@+id/apps_handling"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:spinnerMode="dropdown" android:entries="@array/apps_handling"
android:entries="@array/apps_handling" /> android:spinnerMode="dropdown" />
<include <include
android:id="@+id/select_applications" android:id="@+id/select_applications"
@@ -479,22 +504,22 @@
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginLeft="4dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp" android:text="@string/profile_proposals_label"
android:layout_marginStart="4dp" android:textSize="20sp" />
android:textSize="20sp"
android:text="@string/profile_proposals_label" />
<TextView <TextView
android:id="@+id/proposal_intro" android:id="@+id/proposal_intro"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp" android:text="@string/profile_proposals_intro"
android:textSize="12sp" android:textSize="12sp" />
android:text="@string/profile_proposals_intro" />
<org.strongswan.android.ui.widget.TextInputLayoutHelper <org.strongswan.android.ui.widget.TextInputLayoutHelper
android:id="@+id/ike_proposal_wrap" android:id="@+id/ike_proposal_wrap"
@@ -507,8 +532,8 @@
android:id="@+id/ike_proposal" android:id="@+id/ike_proposal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:inputType="textNoSuggestions"
android:inputType="textNoSuggestions" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -523,8 +548,8 @@
android:id="@+id/esp_proposal" android:id="@+id/esp_proposal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:singleLine="true" android:inputType="textNoSuggestions"
android:inputType="textNoSuggestions" /> android:singleLine="true" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper> </org.strongswan.android.ui.widget.TextInputLayoutHelper>
@@ -532,25 +557,26 @@
android:id="@+id/profile_id_label" android:id="@+id/profile_id_label"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginLeft="4dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp" android:text="@string/profile_profile_id"
android:layout_marginStart="4dp" android:textSize="16sp" />
android:textSize="16sp"
android:text="@string/profile_profile_id" />
<TextView <TextView
android:id="@+id/profile_id" android:id="@+id/profile_id"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:layout_marginLeft="4dp" android:textIsSelectable="true"
android:textSize="12sp" android:textSize="12sp" />
android:textIsSelectable="true" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -149,6 +149,7 @@
<string name="alert_text_no_subnets">Bitte geben Sie mit Leerzeichen getrennte, gültige Subnetzte und/oder IP-Adressen ein</string> <string name="alert_text_no_subnets">Bitte geben Sie mit Leerzeichen getrennte, gültige Subnetzte und/oder IP-Adressen ein</string>
<string name="alert_text_no_ips">Bitte geben Sie mit Leerzeichen getrennte, gültige IP-Adressen ein</string> <string name="alert_text_no_ips">Bitte geben Sie mit Leerzeichen getrennte, gültige IP-Adressen ein</string>
<string name="alert_text_no_proposal">Bitte geben Sie eine mit Bindestrichen getrennte, gültige Liste von Algorithmen ein</string> <string name="alert_text_no_proposal">Bitte geben Sie eine mit Bindestrichen getrennte, gültige Liste von Algorithmen ein</string>
<string name="alert_text_vpn_profile_read_only">Dieses Profil wird von Ihrem Administrator verwaltet und kann nicht bearbeitet werden. Nur das Passwort kann geändert werden</string>
<string name="tnc_notice_title">EAP-TNC kann Ihre Privatsphäre beeinträchtigen</string> <string name="tnc_notice_title">EAP-TNC kann Ihre Privatsphäre beeinträchtigen</string>
<string name="tnc_notice_subtitle">Gerätedaten werden an den Server-Betreiber gesendet</string> <string name="tnc_notice_subtitle">Gerätedaten werden an den Server-Betreiber gesendet</string>
<string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) erlaubt Server-Betreibern den Gesundheitszustand von Endgeräten zu prüfen.</p><p>Dazu kann der Betreiber Daten verlangen, wie etwa eine eindeutige Identifikationsnummer, eine Liste der installierten Pakete, Systemeinstellungen oder kryptografische Prüfsummen von Dateien.</p><b>Solche Daten werden nur übermittelt nachdem die Identität des Servers geprüft wurde.</b>]]></string> <string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) erlaubt Server-Betreibern den Gesundheitszustand von Endgeräten zu prüfen.</p><p>Dazu kann der Betreiber Daten verlangen, wie etwa eine eindeutige Identifikationsnummer, eine Liste der installierten Pakete, Systemeinstellungen oder kryptografische Prüfsummen von Dateien.</p><b>Solche Daten werden nur übermittelt nachdem die Identität des Servers geprüft wurde.</b>]]></string>
@@ -151,6 +151,7 @@
<string name="alert_text_no_subnets">Please enter valid subnets and/or IP addresses, separated by spaces</string> <string name="alert_text_no_subnets">Please enter valid subnets and/or IP addresses, separated by spaces</string>
<string name="alert_text_no_ips">Please enter valid IP addresses, separated by spaces</string> <string name="alert_text_no_ips">Please enter valid IP addresses, separated by spaces</string>
<string name="alert_text_no_proposal">Please enter a valid list of algorithms, separated by hyphens</string> <string name="alert_text_no_proposal">Please enter a valid list of algorithms, separated by hyphens</string>
<string name="alert_text_vpn_profile_read_only">This VPN profile is managed by your administrator and can\'t be modified. You can only change the password</string>
<string name="tnc_notice_title">EAP-TNC may affect your privacy</string> <string name="tnc_notice_title">EAP-TNC may affect your privacy</string>
<string name="tnc_notice_subtitle">Device data is sent to the server operator</string> <string name="tnc_notice_subtitle">Device data is sent to the server operator</string>
<string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) allows server operators to assess the health of a client device.</p><p>For that purpose the server operator may request data such as a unique identifier, a list of installed packages, system settings, or cryptographic checksums of files.</p><b>Any data will be sent only after verifying the server\'s identity.</b>]]></string> <string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) allows server operators to assess the health of a client device.</p><p>For that purpose the server operator may request data such as a unique identifier, a list of installed packages, system settings, or cryptographic checksums of files.</p><b>Any data will be sent only after verifying the server\'s identity.</b>]]></string>
@@ -145,6 +145,7 @@
<string name="alert_text_no_subnets">Please enter valid subnets and/or IP addresses, separated by spaces</string> <string name="alert_text_no_subnets">Please enter valid subnets and/or IP addresses, separated by spaces</string>
<string name="alert_text_no_ips">Please enter valid IP addresses, separated by spaces</string> <string name="alert_text_no_ips">Please enter valid IP addresses, separated by spaces</string>
<string name="alert_text_no_proposal">Please enter a valid list of algorithms, separated by hyphens</string> <string name="alert_text_no_proposal">Please enter a valid list of algorithms, separated by hyphens</string>
<string name="alert_text_vpn_profile_read_only">This VPN profile is managed by your administrator and can\'t be modified. You can only change the password</string>
<string name="tnc_notice_title">EAP-TNC may affect your privacy</string> <string name="tnc_notice_title">EAP-TNC may affect your privacy</string>
<string name="tnc_notice_subtitle">Device data is sent to the server operator</string> <string name="tnc_notice_subtitle">Device data is sent to the server operator</string>
<string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) allows server operators to assess the health of a client device.</p><p>For that purpose the server operator may request data such as a unique identifier, a list of installed packages, system settings, or cryptographic checksums of files.</p><b>Any data will be sent only after verifying the server\'s identity.</b>]]></string> <string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) allows server operators to assess the health of a client device.</p><p>For that purpose the server operator may request data such as a unique identifier, a list of installed packages, system settings, or cryptographic checksums of files.</p><b>Any data will be sent only after verifying the server\'s identity.</b>]]></string>
@@ -146,6 +146,7 @@
<string name="alert_text_no_subnets">Please enter valid subnets and/or IP addresses, separated by spaces</string> <string name="alert_text_no_subnets">Please enter valid subnets and/or IP addresses, separated by spaces</string>
<string name="alert_text_no_ips">Please enter valid IP addresses, separated by spaces</string> <string name="alert_text_no_ips">Please enter valid IP addresses, separated by spaces</string>
<string name="alert_text_no_proposal">Please enter a valid list of algorithms, separated by hyphens</string> <string name="alert_text_no_proposal">Please enter a valid list of algorithms, separated by hyphens</string>
<string name="alert_text_vpn_profile_read_only">This VPN profile is managed by your administrator and can\'t be modified. You can only change the password</string>
<string name="tnc_notice_title">EAP-TNC may affect your privacy</string> <string name="tnc_notice_title">EAP-TNC may affect your privacy</string>
<string name="tnc_notice_subtitle">Device data is sent to the server operator</string> <string name="tnc_notice_subtitle">Device data is sent to the server operator</string>
<string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) allows server operators to assess the health of a client device.</p><p>For that purpose the server operator may request data such as a unique identifier, a list of installed packages, system settings, or cryptographic checksums of files.</p><b>Any data will be sent only after verifying the server\'s identity.</b>]]></string> <string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) allows server operators to assess the health of a client device.</p><p>For that purpose the server operator may request data such as a unique identifier, a list of installed packages, system settings, or cryptographic checksums of files.</p><b>Any data will be sent only after verifying the server\'s identity.</b>]]></string>
@@ -145,6 +145,7 @@
<string name="alert_text_no_subnets">请输入有效的子网和/或IP地址,用空格分隔</string> <string name="alert_text_no_subnets">请输入有效的子网和/或IP地址,用空格分隔</string>
<string name="alert_text_no_ips">请输入有效的IP地址,以空格分隔</string> <string name="alert_text_no_ips">请输入有效的IP地址,以空格分隔</string>
<string name="alert_text_no_proposal">请输入用连字符分隔的有效算法列表</string> <string name="alert_text_no_proposal">请输入用连字符分隔的有效算法列表</string>
<string name="alert_text_vpn_profile_read_only">This VPN profile is managed by your administrator and can\'t be modified. You can only change the password</string>
<string name="tnc_notice_title">EAP-TNC可能会影响您的隐私</string> <string name="tnc_notice_title">EAP-TNC可能会影响您的隐私</string>
<string name="tnc_notice_subtitle">设备数据已被发送至服务器管理员</string> <string name="tnc_notice_subtitle">设备数据已被发送至服务器管理员</string>
<string name="tnc_notice_details"><![CDATA[<p>可信网络连接t (TNC) 允许服务器管理员评定一个用户设备的状况。</p><p>出于此目的,服务器管理员可能要求以下数据如独立ID、已安装软件列表、系统设置、或加密过的文件校验值。</p><b>任何数据都仅将在验证过服务器的身份ID之后被发出。</b>]]></string> <string name="tnc_notice_details"><![CDATA[<p>可信网络连接t (TNC) 允许服务器管理员评定一个用户设备的状况。</p><p>出于此目的,服务器管理员可能要求以下数据如独立ID、已安装软件列表、系统设置、或加密过的文件校验值。</p><b>任何数据都仅将在验证过服务器的身份ID之后被发出。</b>]]></string>
@@ -145,6 +145,7 @@
<string name="alert_text_no_subnets">Please enter valid subnets and/or IP addresses, separated by spaces</string> <string name="alert_text_no_subnets">Please enter valid subnets and/or IP addresses, separated by spaces</string>
<string name="alert_text_no_ips">Please enter valid IP addresses, separated by spaces</string> <string name="alert_text_no_ips">Please enter valid IP addresses, separated by spaces</string>
<string name="alert_text_no_proposal">Please enter a valid list of algorithms, separated by hyphens</string> <string name="alert_text_no_proposal">Please enter a valid list of algorithms, separated by hyphens</string>
<string name="alert_text_vpn_profile_read_only">This VPN profile is managed by your administrator and can\'t be modified. You can only change the password</string>
<string name="tnc_notice_title">EAP-TNC可能會影響您的隱私安全</string> <string name="tnc_notice_title">EAP-TNC可能會影響您的隱私安全</string>
<string name="tnc_notice_subtitle">裝置資料已經發送給伺服器管理者</string> <string name="tnc_notice_subtitle">裝置資料已經發送給伺服器管理者</string>
<string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) 可以讓伺服器管理者評估用戶裝置的狀況。</p><p>在這個目的下,伺服器管理者可能會要求以下資料,例如ID、已安裝的App項目、系統設定、或加密檔案驗證值。</p><b>任何資料都只有在驗證伺服器的身分ID之後才會被送出。</b>]]></string> <string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) 可以讓伺服器管理者評估用戶裝置的狀況。</p><p>在這個目的下,伺服器管理者可能會要求以下資料,例如ID、已安裝的App項目、系統設定、或加密檔案驗證值。</p><b>任何資料都只有在驗證伺服器的身分ID之後才會被送出。</b>]]></string>
@@ -149,6 +149,7 @@
<string name="alert_text_no_subnets">Please enter valid subnets and/or IP addresses, separated by spaces</string> <string name="alert_text_no_subnets">Please enter valid subnets and/or IP addresses, separated by spaces</string>
<string name="alert_text_no_ips">Please enter valid IP addresses, separated by spaces</string> <string name="alert_text_no_ips">Please enter valid IP addresses, separated by spaces</string>
<string name="alert_text_no_proposal">Please enter a valid list of algorithms, separated by hyphens</string> <string name="alert_text_no_proposal">Please enter a valid list of algorithms, separated by hyphens</string>
<string name="alert_text_vpn_profile_read_only">This VPN profile is managed by your administrator and can\'t be modified. You can only change the password</string>
<string name="tnc_notice_title">EAP-TNC may affect your privacy</string> <string name="tnc_notice_title">EAP-TNC may affect your privacy</string>
<string name="tnc_notice_subtitle">Device data is sent to the server operator</string> <string name="tnc_notice_subtitle">Device data is sent to the server operator</string>
<string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) allows server operators to assess the health of a client device.</p><p>For that purpose the server operator may request data such as a unique identifier, a list of installed packages, system settings, or cryptographic checksums of files.</p><b>Any data will be sent only after verifying the server\'s identity.</b>]]></string> <string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) allows server operators to assess the health of a client device.</p><p>For that purpose the server operator may request data such as a unique identifier, a list of installed packages, system settings, or cryptographic checksums of files.</p><b>Any data will be sent only after verifying the server\'s identity.</b>]]></string>