summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-03-13 12:10:33 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-03-15 19:18:52 +0000
commitb3a1686ec1f4d2eb63ba5cbbfdb57386aebfbc64 (patch)
tree2e74a729b712ba2f4b511e2d74989f66a9847987 /android
parentd8c4ed04242cdc07fbed1a6b6c0d242d86bcc8ec (diff)
downloadmullvadvpn-b3a1686ec1f4d2eb63ba5cbbfdb57386aebfbc64.tar.xz
mullvadvpn-b3a1686ec1f4d2eb63ba5cbbfdb57386aebfbc64.zip
Implement initial Connect screen
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt20
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt9
-rw-r--r--android/src/main/res/drawable/green_button_background.xml16
-rw-r--r--android/src/main/res/drawable/icon_chevron.xml14
-rw-r--r--android/src/main/res/drawable/white20_button_background.xml16
-rw-r--r--android/src/main/res/layout/connect.xml111
-rw-r--r--android/src/main/res/values/colors.xml2
-rw-r--r--android/src/main/res/values/strings.xml5
-rw-r--r--android/src/main/res/values/styles.xml17
9 files changed, 210 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
new file mode 100644
index 0000000000..ab3890a185
--- /dev/null
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
@@ -0,0 +1,20 @@
+package net.mullvad.mullvadvpn
+
+import android.os.Bundle
+import android.support.v4.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+
+class ConnectFragment : Fragment() {
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ val view = inflater.inflate(R.layout.connect, container, false)
+
+ return view
+ }
+}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt
index d5a06a9d75..9159c93079 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt
@@ -62,6 +62,15 @@ class LoginFragment : Fragment() {
loggedInStatus.visibility = View.VISIBLE
accountInput.state = LoginState.Success
+
+ Handler().postDelayed(Runnable { openConnectScreen() }, 1000)
+ }
+
+ private fun openConnectScreen() {
+ fragmentManager?.beginTransaction()?.apply {
+ replace(R.id.main_fragment, ConnectFragment())
+ commit()
+ }
}
private fun loginFailure() {
diff --git a/android/src/main/res/drawable/green_button_background.xml b/android/src/main/res/drawable/green_button_background.xml
new file mode 100644
index 0000000000..6b1252819d
--- /dev/null
+++ b/android/src/main/res/drawable/green_button_background.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="false">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp"/>
+ <solid android:color="@color/green"/>
+ </shape>
+ </item>
+
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp"/>
+ <solid android:color="@color/green90"/>
+ </shape>
+ </item>
+</selector>
diff --git a/android/src/main/res/drawable/icon_chevron.xml b/android/src/main/res/drawable/icon_chevron.xml
new file mode 100644
index 0000000000..f10c8d04c7
--- /dev/null
+++ b/android/src/main/res/drawable/icon_chevron.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ >
+ <group android:translateX="8.5" android:translateY="6.0">
+ <path android:fillColor="#FFFFFF"
+ android:pathData="M0.335204989,1.95371785 L4.23669259,6 L0.335204989,10.0462822 C-0.111734996,10.4932221 -0.111734996,11.217855 0.335204989,11.664795 C0.782144974,12.111735 1.49826561,12.111735 1.9452056,11.664795 L6.66818642,6.80553188 C6.88657769,6.58714061 6.99779844,6.29559541 6.99881099,6.00303766 C6.99779844,5.70440459 6.88657769,5.41285939 6.66818642,5.19446812 L1.9452056,0.335204989 C1.49826561,-0.111734996 0.782144974,-0.111734996 0.335204989,0.335204989 C-0.111734996,0.782144974 -0.111734996,1.50677786 0.335204989,1.95371785 Z"
+ />
+ </group>
+</vector>
diff --git a/android/src/main/res/drawable/white20_button_background.xml b/android/src/main/res/drawable/white20_button_background.xml
new file mode 100644
index 0000000000..ee5787d516
--- /dev/null
+++ b/android/src/main/res/drawable/white20_button_background.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="false">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp"/>
+ <solid android:color="@color/white20"/>
+ </shape>
+ </item>
+
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp"/>
+ <solid android:color="@color/white40"/>
+ </shape>
+ </item>
+</selector>
diff --git a/android/src/main/res/layout/connect.xml b/android/src/main/res/layout/connect.xml
new file mode 100644
index 0000000000..882b9f5c7e
--- /dev/null
+++ b/android/src/main/res/layout/connect.xml
@@ -0,0 +1,111 @@
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/main_fragment"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ >
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:orientation="horizontal"
+ android:gravity="center_vertical"
+ android:padding="12dp"
+ android:background="@color/red"
+ >
+ <ImageView
+ android:layout_width="49dp"
+ android:layout_height="50dp"
+ android:src="@drawable/logo_icon"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginHorizontal="8dp"
+ android:textColor="@color/white60"
+ android:textSize="24sp"
+ android:textStyle="bold"
+ android:text="@string/app_name"
+ android:textAllCaps="true"
+ />
+ </LinearLayout>
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="4"
+ />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:orientation="vertical"
+ android:padding="24dp"
+ android:gravity="start"
+ >
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="4dp"
+ android:textColor="@color/red"
+ android:textSize="16sp"
+ android:textStyle="bold"
+ android:text="@string/unsecured_connection"
+ android:textAllCaps="true"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="@color/white"
+ android:textSize="34sp"
+ android:textStyle="bold"
+ android:text="@string/country"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="@color/white"
+ android:textSize="34sp"
+ android:textStyle="bold"
+ android:text=""
+ android:visibility="invisible"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="@color/white"
+ android:textSize="16sp"
+ android:textStyle="bold"
+ android:text=""
+ android:visibility="invisible"
+ />
+ </LinearLayout>
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:orientation="vertical"
+ android:padding="24dp"
+ >
+ <Button
+ android:layout_marginVertical="16dp"
+ android:text="@string/switch_location"
+ android:drawableRight="@drawable/icon_chevron"
+ android:paddingRight="8dp"
+ style="@style/White20Button"
+ />
+ <Button
+ android:text="@string/connect"
+ style="@style/GreenButton"
+ />
+ </LinearLayout>
+</LinearLayout>
diff --git a/android/src/main/res/values/colors.xml b/android/src/main/res/values/colors.xml
index 22a7e4108d..430756720a 100644
--- a/android/src/main/res/values/colors.xml
+++ b/android/src/main/res/values/colors.xml
@@ -6,8 +6,10 @@
<color name="darkBlue">#192E45</color>
<color name="white">#FFFFFF</color>
<color name="white60">#99FFFFFF</color>
+ <color name="white40">#66FFFFFF</color>
<color name="white20">#33FFFFFF</color>
<color name="green">#44AD4D</color>
+ <color name="green90">#E644AD4D</color>
<color name="red">#D0021B</color>
<color name="textInputBorder">#234161</color>
diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml
index 59c207b71c..a643ef2150 100644
--- a/android/src/main/res/values/strings.xml
+++ b/android/src/main/res/values/strings.xml
@@ -9,4 +9,9 @@
<string name="logged_in_title">Login successful</string>
<string name="login_fail_title">Login failed</string>
<string name="login_fail_description">Invalid account number, try again</string>
+
+ <string name="unsecured_connection">Unsecured connection</string>
+ <string name="country">Country</string>
+ <string name="connect">Secure my connection</string>
+ <string name="switch_location">Switch location</string>
</resources>
diff --git a/android/src/main/res/values/styles.xml b/android/src/main/res/values/styles.xml
index 726847ab42..86401714f7 100644
--- a/android/src/main/res/values/styles.xml
+++ b/android/src/main/res/values/styles.xml
@@ -3,4 +3,21 @@
<item name="colorPrimary">@color/colorPrimary</item>
<item name="android:windowBackground">@color/blue</item>
</style>
+
+ <style name="Button" parent="Widget.AppCompat.Button.Borderless">
+ <item name="android:layout_height">44dp</item>
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:textAllCaps">false</item>
+ <item name="android:textColor">@color/white</item>
+ <item name="android:textSize">20sp</item>
+ <item name="android:textStyle">bold</item>
+ </style>
+
+ <style name="GreenButton" parent="Button">
+ <item name="android:background">@drawable/green_button_background</item>
+ </style>
+
+ <style name="White20Button" parent="Button">
+ <item name="android:background">@drawable/white20_button_background</item>
+ </style>
</resources>