summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/fragments/AlwaysOnDialog.java50
-rw-r--r--app/src/main/res/drawable/cust_button_secondary.xml8
-rw-r--r--app/src/main/res/layout/d_checkbox_confirm.xml65
-rw-r--r--app/src/main/res/values-de/strings.xml1
-rw-r--r--app/src/main/res/values/strings.xml1
5 files changed, 104 insertions, 21 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/fragments/AlwaysOnDialog.java b/app/src/main/java/se/leap/bitmaskclient/fragments/AlwaysOnDialog.java
index e3d004f5..34ad971e 100644
--- a/app/src/main/java/se/leap/bitmaskclient/fragments/AlwaysOnDialog.java
+++ b/app/src/main/java/se/leap/bitmaskclient/fragments/AlwaysOnDialog.java
@@ -1,23 +1,31 @@
package se.leap.bitmaskclient.fragments;
import android.app.Dialog;
+import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.v4.text.TextUtilsCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatDialogFragment;
+import android.support.v7.widget.AppCompatTextView;
+import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
+import android.widget.Button;
import android.widget.CheckBox;
import butterknife.ButterKnife;
import butterknife.InjectView;
+import butterknife.OnClick;
import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.views.IconTextView;
import static se.leap.bitmaskclient.utils.PreferenceHelper.saveShowAlwaysOnDialog;
+import static se.leap.bitmaskclient.utils.ViewHelper.convertDimensionToPx;
/**
@@ -36,6 +44,10 @@ public class AlwaysOnDialog extends AppCompatDialogFragment {
@InjectView(R.id.user_message)
IconTextView userMessage;
+ @InjectView(R.id.block_vpn_user_message)
+ AppCompatTextView blockVpnUserMessage;
+
+
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -51,22 +63,28 @@ public class AlwaysOnDialog extends AppCompatDialogFragment {
userMessage.setIcon(R.drawable.ic_settings);
userMessage.setText(getString(R.string.always_on_vpn_user_message));
- builder.setView(view)
- .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- if (doNotShowAgainCheckBox.isChecked()) {
- saveShowAlwaysOnDialog(getContext(), false);
- }
- Intent intent = new Intent("android.net.vpn.SETTINGS");
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- startActivity(intent);
- }
- })
- .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ blockVpnUserMessage.setVisibility(View.VISIBLE);
+ }
+
+ builder.setView(view);
return builder.create();
}
+
+ @OnClick(R.id.button_ok)
+ public void onOkClicked() {
+ if (doNotShowAgainCheckBox.isChecked()) {
+ saveShowAlwaysOnDialog(getContext(), false);
+ }
+ Intent intent = new Intent("android.net.vpn.SETTINGS");
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ dismiss();
+ }
+
+ @OnClick(R.id.button_cancel)
+ public void onCancelClicked() {
+ dismiss();
+ }
}
diff --git a/app/src/main/res/drawable/cust_button_secondary.xml b/app/src/main/res/drawable/cust_button_secondary.xml
index 553adca8..baed7b44 100644
--- a/app/src/main/res/drawable/cust_button_secondary.xml
+++ b/app/src/main/res/drawable/cust_button_secondary.xml
@@ -4,16 +4,16 @@
<shape android:shape="rectangle" >
<corners android:radius="50dp" />
<padding android:left="8dp" android:right="8dp"/>
- <solid android:color="@android:color/transparent"/>
- <stroke android:width="2dp" android:color="@color/colorPrimary"/>
+ <solid android:color="#20000000"/>
+ <stroke android:width="2dp" android:color="@color/colorPrimaryDark"/>
</shape>
</item>
<item android:state_focused="true">
<shape android:shape="rectangle" >
<corners android:radius="50dp" />
<padding android:left="8dp" android:right="8dp"/>
- <solid android:color="@android:color/transparent"/>
- <stroke android:width="2dp" android:color="@color/colorPrimary"/>
+ <solid android:color="#20000000"/>
+ <stroke android:width="2dp" android:color="@color/colorPrimaryDark"/>
</shape>
</item>
<item >
diff --git a/app/src/main/res/layout/d_checkbox_confirm.xml b/app/src/main/res/layout/d_checkbox_confirm.xml
index 6dd22417..5a7f3508 100644
--- a/app/src/main/res/layout/d_checkbox_confirm.xml
+++ b/app/src/main/res/layout/d_checkbox_confirm.xml
@@ -2,23 +2,86 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/tvTitle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="@dimen/standard_margin"
+ android:layout_marginTop="@dimen/add_button_margin"
+ android:gravity="center"
+ android:text="@string/always_on_vpn"
+ android:textAllCaps="true"
+ android:textColor="@color/colorPrimary"
+ android:textSize="28sp"
+ android:textStyle="bold" />
+
<se.leap.bitmaskclient.views.IconTextView
android:id="@+id/user_message"
+ android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_margin="@dimen/activity_horizontal_margin"
+ android:layout_marginLeft="@dimen/activity_horizontal_margin"
+ android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginBottom="0dp"
android:autoLink="web"
+ tools:text="@string/always_on_vpn_user_message"
+ />
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/block_vpn_user_message"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Small"
+ android:layout_marginLeft="@dimen/activity_horizontal_margin"
+ android:layout_marginRight="@dimen/activity_horizontal_margin"
+ android:layout_marginTop="@dimen/standard_margin"
+ android:layout_marginBottom="@dimen/standard_margin"
+ android:text="@string/always_on_blocking_vpn_user_message"
+ android:visibility="gone"
+ tools:visibility="visible"
/>
<CheckBox
android:id="@+id/do_not_show_again"
+ android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/stdpadding"
android:text="@string/do_not_show_again" />
+ <LinearLayout
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:gravity="end"
+ android:layout_gravity="end"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="@dimen/activity_horizontal_margin"
+ android:layout_marginRight="@dimen/activity_horizontal_margin"
+ android:layout_marginLeft="@dimen/activity_horizontal_margin"
+ >
+ <android.support.v7.widget.AppCompatButton
+ android:id="@+id/button_cancel"
+ android:layout_width="100dp"
+ android:layout_height="38dp"
+ android:layout_marginRight="@dimen/standard_margin"
+ android:background="@drawable/cust_button_secondary"
+ android:text="@android:string/cancel"
+ android:textColor="@android:color/tab_indicator_text"
+ android:textStyle="bold" />
+ <android.support.v7.widget.AppCompatButton
+ android:id="@+id/button_ok"
+ android:layout_width="100dp"
+ android:layout_height="38dp"
+ android:background="@drawable/cust_button_primary"
+ android:text="@android:string/ok"
+ android:textColor="@color/white"
+ android:textStyle="bold" />
+
+ </LinearLayout>
+
</LinearLayout> \ No newline at end of file
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 0fba388e..0b25a2a2 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -113,6 +113,7 @@
<string name="always_on_vpn">VPN immer anlassen</string>
<string name="do_not_show_again">Nicht erneut anzeigen</string>
<string name="always_on_vpn_user_message">Um durchgehend aktives VPN in den Android VPN Einstellungen einzuschalten, klicke auf das Zahnrad [img src] und aktiviere den Schalter.</string>
+ <string name="always_on_blocking_vpn_user_message">Aktiviere zusätzlich die Option \"Verbindungen nur über VPN zulassen\", um deine Privatsphäre optimal zu schützen.</string>
<string name="donate_title">Spenden</string>
<string name="donate_default_message">Spende noch heute, wenn du sichere Kommunikation wertschätzt, die sowohl für Endnutzer*innen als auch Menschen die den Service bereit stellen leicht nutzbar ist.</string>
<string name="donate_message">LEAP benötigt Spenden und Stipendien. Spende noch heute wenn du sichere Kommunikation wertschätzt, die sowohl für Enandwender*innen als auch Menschen die den Dienst anbieten leicht nutzbar ist.</string>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 551b7cb1..a827d172 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -104,6 +104,7 @@
<string name="always_on_vpn">Always-on VPN</string>
<string name="do_not_show_again">Do not show again</string>
<string name="always_on_vpn_user_message">To enable always-on VPN in Android VPN Settings click on the configure icon [img src] and turn the switch on.</string>
+ <string name="always_on_blocking_vpn_user_message">To protect your privacy optimally, you should also activate the option \"Allow connections only via VPN\".</string>
<string name="donate_title">Donate</string>
<string name="donate_default_message">Please donate today if you value secure communication that is easy for both the end-user and the service provider.</string>
<string name="donate_message">LEAP depends on donations and grants. Please donate today if you value secure communication that is easy for both the end-user and the service provider.</string>