diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-03-13 12:10:33 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-03-15 19:18:52 +0000 |
| commit | b3a1686ec1f4d2eb63ba5cbbfdb57386aebfbc64 (patch) | |
| tree | 2e74a729b712ba2f4b511e2d74989f66a9847987 /android | |
| parent | d8c4ed04242cdc07fbed1a6b6c0d242d86bcc8ec (diff) | |
| download | mullvadvpn-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.kt | 20 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt | 9 | ||||
| -rw-r--r-- | android/src/main/res/drawable/green_button_background.xml | 16 | ||||
| -rw-r--r-- | android/src/main/res/drawable/icon_chevron.xml | 14 | ||||
| -rw-r--r-- | android/src/main/res/drawable/white20_button_background.xml | 16 | ||||
| -rw-r--r-- | android/src/main/res/layout/connect.xml | 111 | ||||
| -rw-r--r-- | android/src/main/res/values/colors.xml | 2 | ||||
| -rw-r--r-- | android/src/main/res/values/strings.xml | 5 | ||||
| -rw-r--r-- | android/src/main/res/values/styles.xml | 17 |
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> |
