summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-06-14 11:57:19 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-06-14 11:57:19 -0300
commit0b416057aaab143963bfa68224f4dc611f3314c4 (patch)
tree1e6574f968ff082a4d0d269bb10379cbb17abe8c /android/src
parent1b1603d8e4cef3dcf76b22b9a21ee79ac3670bad (diff)
parent59c03a4cf5967c073a17346ddcd6a36687ce6f3d (diff)
downloadmullvadvpn-0b416057aaab143963bfa68224f4dc611f3314c4.tar.xz
mullvadvpn-0b416057aaab143963bfa68224f4dc611f3314c4.zip
Merge branch 'settings-screen'
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt5
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt14
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt30
-rw-r--r--android/src/main/res/drawable/icon_settings.xml13
-rw-r--r--android/src/main/res/drawable/red_button_background.xml16
-rw-r--r--android/src/main/res/layout/connect.xml14
-rw-r--r--android/src/main/res/layout/settings.xml38
-rw-r--r--android/src/main/res/values/colors.xml1
-rw-r--r--android/src/main/res/values/strings.xml3
-rw-r--r--android/src/main/res/values/styles.xml4
10 files changed, 138 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
index c4b5fdb5cd..9c1804ce68 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
@@ -19,6 +19,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
+import android.widget.ImageButton
import net.mullvad.mullvadvpn.model.GeoIpLocation
import net.mullvad.mullvadvpn.model.TunnelStateTransition
@@ -59,6 +60,10 @@ class ConnectFragment : Fragment() {
): View {
val view = inflater.inflate(R.layout.connect, container, false)
+ view.findViewById<ImageButton>(R.id.settings).setOnClickListener {
+ parentActivity.openSettings()
+ }
+
view.findViewById<Button>(R.id.switch_location).setOnClickListener {
openSwitchLocationScreen()
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
index 927a6ba05e..fb2a5d6d77 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt
@@ -90,6 +90,20 @@ class MainActivity : FragmentActivity() {
super.onDestroy()
}
+ fun openSettings() {
+ supportFragmentManager?.beginTransaction()?.apply {
+ setCustomAnimations(
+ R.anim.fragment_enter_from_bottom,
+ R.anim.do_nothing,
+ R.anim.do_nothing,
+ R.anim.fragment_exit_to_bottom
+ )
+ replace(R.id.main_fragment, SettingsFragment())
+ addToBackStack(null)
+ commit()
+ }
+ }
+
private fun addInitialFragment() {
supportFragmentManager?.beginTransaction()?.apply {
add(R.id.main_fragment, LaunchFragment())
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt
new file mode 100644
index 0000000000..a958978daa
--- /dev/null
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/SettingsFragment.kt
@@ -0,0 +1,30 @@
+package net.mullvad.mullvadvpn
+
+import android.content.Context
+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.Button
+import android.widget.ImageButton
+
+class SettingsFragment : Fragment() {
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ val view = inflater.inflate(R.layout.settings, container, false)
+
+ view.findViewById<ImageButton>(R.id.close).setOnClickListener {
+ activity?.onBackPressed()
+ }
+
+ view.findViewById<Button>(R.id.quit_button).setOnClickListener {
+ activity?.finishAndRemoveTask()
+ }
+
+ return view
+ }
+}
diff --git a/android/src/main/res/drawable/icon_settings.xml b/android/src/main/res/drawable/icon_settings.xml
new file mode 100644
index 0000000000..8c88a6d2b9
--- /dev/null
+++ b/android/src/main/res/drawable/icon_settings.xml
@@ -0,0 +1,13 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:pathData="M21.2552,12C21.2552,12.408 21.2182,12.792 21.1688,13.176L23.7719,15.156C24.0063,15.336 24.068,15.66 23.9199,15.924L21.4526,20.076C21.3045,20.34 20.9838,20.448 20.7001,20.34L17.6282,19.14C16.9867,19.608 16.2959,20.016 15.5433,20.316L15.0745,23.496C15.0375,23.784 14.7785,24 14.4701,24L9.5354,24C9.227,24 8.9679,23.784 8.9309,23.496L8.4621,20.316C7.7096,20.016 7.0187,19.62 6.3772,19.14L3.3054,20.34C3.034,20.436 2.7009,20.34 2.5529,20.076L0.0855,15.924C-0.0625,15.66 -0.0008,15.336 0.2336,15.156L2.8366,13.176C2.7873,12.792 2.7502,12.396 2.7502,12C2.7502,11.604 2.7873,11.208 2.8366,10.824L0.2336,8.844C-0.0008,8.664 -0.0748,8.34 0.0855,8.076L2.5529,3.924C2.7009,3.66 3.0217,3.552 3.3054,3.66L6.3772,4.86C7.0187,4.392 7.7096,3.984 8.4621,3.684L8.9309,0.504C8.9679,0.216 9.227,0 9.5354,0L14.4701,0C14.7785,0 15.0375,0.216 15.0745,0.504L15.5433,3.684C16.2959,3.984 16.9867,4.38 17.6282,4.86L20.7001,3.66C20.9715,3.564 21.3046,3.66 21.4526,3.924L23.9199,8.076C24.068,8.34 24.0063,8.664 23.7719,8.844L21.1688,10.824C21.2182,11.208 21.2552,11.592 21.2552,12ZM12,17C14.7571,17 17,14.7571 17,12C17,9.2429 14.7571,7 12,7C9.2429,7 7,9.2429 7,12C7,14.7571 9.2429,17 12,17Z"
+ android:strokeWidth="1"
+ android:fillColor="#FFFFFF"
+ android:fillAlpha="0.6"
+ android:fillType="evenOdd"
+ android:strokeColor="#00000000"/>
+</vector>
diff --git a/android/src/main/res/drawable/red_button_background.xml b/android/src/main/res/drawable/red_button_background.xml
new file mode 100644
index 0000000000..ebfefe776b
--- /dev/null
+++ b/android/src/main/res/drawable/red_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/red"/>
+ </shape>
+ </item>
+
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp"/>
+ <solid android:color="@color/red95"/>
+ </shape>
+ </item>
+</selector>
diff --git a/android/src/main/res/layout/connect.xml b/android/src/main/res/layout/connect.xml
index 19440b794f..5c2beb1e2e 100644
--- a/android/src/main/res/layout/connect.xml
+++ b/android/src/main/res/layout/connect.xml
@@ -19,6 +19,7 @@
android:layout_width="49dp"
android:layout_height="50dp"
android:src="@drawable/logo_icon"
+ android:layout_weight="0"
/>
<TextView
android:layout_width="wrap_content"
@@ -29,6 +30,19 @@
android:textStyle="bold"
android:text="@string/app_name"
android:textAllCaps="true"
+ android:layout_weight="0"
+ />
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ />
+ <ImageButton android:id="@+id/settings"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:background="?android:attr/selectableItemBackground"
+ android:src="@drawable/icon_settings"
+ android:layout_weight="0"
/>
</LinearLayout>
diff --git a/android/src/main/res/layout/settings.xml b/android/src/main/res/layout/settings.xml
new file mode 100644
index 0000000000..0c98ad539e
--- /dev/null
+++ b/android/src/main/res/layout/settings.xml
@@ -0,0 +1,38 @@
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/darkBlue"
+ android:orientation="vertical"
+ android:gravity="left"
+ android:elevation="1dp"
+ >
+ <ImageButton android:id="@+id/close"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_marginTop="12dp"
+ android:layout_marginLeft="12dp"
+ android:layout_marginBottom="12dp"
+ android:background="?android:attr/selectableItemBackground"
+ android:src="@drawable/icon_close"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="4dp"
+ android:layout_marginLeft="24dp"
+ android:layout_marginBottom="24dp"
+ android:textColor="@color/white"
+ android:textSize="32sp"
+ android:textStyle="bold"
+ android:text="@string/settings"
+ />
+ <Button android:id="@+id/quit_button"
+ android:layout_marginTop="24dp"
+ android:layout_marginLeft="24dp"
+ android:layout_marginRight="24dp"
+ android:layout_marginBottom="24dp"
+ android:text="@string/quit"
+ style="@style/RedButton"
+ />
+</LinearLayout>
diff --git a/android/src/main/res/values/colors.xml b/android/src/main/res/values/colors.xml
index 905f1e497c..7d2ef85101 100644
--- a/android/src/main/res/values/colors.xml
+++ b/android/src/main/res/values/colors.xml
@@ -11,6 +11,7 @@
<color name="green">#44AD4D</color>
<color name="green90">#E644AD4D</color>
<color name="red">#D0021B</color>
+ <color name="red95">#C6021A</color>
<color name="red45">#73021B</color>
<color name="red40">#66021B</color>
diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml
index fc8ec8d0c7..18dea4cd12 100644
--- a/android/src/main/res/values/strings.xml
+++ b/android/src/main/res/values/strings.xml
@@ -12,6 +12,9 @@
<string name="login_fail_title">Login failed</string>
<string name="login_fail_description">Invalid account number, try again</string>
+ <string name="settings">Settings</string>
+ <string name="quit">Quit</string>
+
<string name="unsecured_connection">Unsecured connection</string>
<string name="creating_secure_connection">Creating secure connection</string>
<string name="secure_connection">Secure connection</string>
diff --git a/android/src/main/res/values/styles.xml b/android/src/main/res/values/styles.xml
index 86401714f7..43c29dc1bb 100644
--- a/android/src/main/res/values/styles.xml
+++ b/android/src/main/res/values/styles.xml
@@ -17,6 +17,10 @@
<item name="android:background">@drawable/green_button_background</item>
</style>
+ <style name="RedButton" parent="Button">
+ <item name="android:background">@drawable/red_button_background</item>
+ </style>
+
<style name="White20Button" parent="Button">
<item name="android:background">@drawable/white20_button_background</item>
</style>