diff --git a/build.sbt b/build.sbt
index a7231dfe..f4669e8e 100644
--- a/build.sbt
+++ b/build.sbt
@@ -31,17 +31,18 @@ resConfigs := Seq("ja", "ru", "zh-rCN", "zh-rTW")
resolvers += Resolver.jcenterRepo
libraryDependencies ++=
+ "com.android.support" % "cardview-v7" % "25.1.0" ::
"com.android.support" % "design" % "25.1.0" ::
"com.android.support" % "gridlayout-v7" % "25.1.0" ::
"com.android.support" % "preference-v14" % "25.1.0" ::
"com.evernote" % "android-job" % "1.1.3" ::
- "com.github.clans" % "fab" % "1.6.4" ::
"com.github.jorgecastilloprz" % "fabprogresscircle" % "1.01" ::
"com.github.kevinsawicki" % "http-request" % "6.0" ::
"com.google.android.gms" % "play-services-ads" % "10.0.1" ::
"com.google.android.gms" % "play-services-analytics" % "10.0.1" ::
"com.google.android.gms" % "play-services-gcm" % "10.0.1" ::
"com.j256.ormlite" % "ormlite-android" % "5.0" ::
+ "com.mikepenz" % "materialdrawer" % "5.8.1" ::
"com.twofortyfouram" % "android-plugin-api-for-locale" % "1.0.2" ::
"dnsjava" % "dnsjava" % "2.1.7" ::
"eu.chainfire" % "libsuperuser" % "1.0.0.201608240809" ::
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index 6ac582fd..7238022b 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -38,7 +38,7 @@
android:value="AEdPqrEAAAAI_zVxZthz2HDuz9toTvkYvL0L5GA-OjeUIfBeXg"/>
@@ -49,28 +49,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -82,18 +60,34 @@
+
+
+
+
+
diff --git a/src/main/java/com/github/shadowsocks/DialogFragment.java b/src/main/java/com/github/shadowsocks/DialogFragment.java
new file mode 100644
index 00000000..b05b2ade
--- /dev/null
+++ b/src/main/java/com/github/shadowsocks/DialogFragment.java
@@ -0,0 +1,15 @@
+package com.github.shadowsocks;
+
+import android.app.Activity;
+
+/**
+ * This helper class is used to solve Java-Scala interop problem. Use onAttach(Context) and remove this class
+ * when minSdkVersion >= 23.
+ *
+ * @author Mygod
+ */
+public class DialogFragment extends android.app.DialogFragment {
+ protected void superOnAttach(Activity activity) {
+ super.onAttach(activity);
+ }
+}
diff --git a/src/main/res/drawable/ic_action_delete.xml b/src/main/res/drawable/ic_action_delete.xml
new file mode 100644
index 00000000..89c372c3
--- /dev/null
+++ b/src/main/res/drawable/ic_action_delete.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/src/main/res/drawable/ic_action_done.xml b/src/main/res/drawable/ic_action_done.xml
new file mode 100644
index 00000000..33a117f6
--- /dev/null
+++ b/src/main/res/drawable/ic_action_done.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/src/main/res/drawable/ic_image_edit.xml b/src/main/res/drawable/ic_image_edit.xml
new file mode 100644
index 00000000..2ab2fb75
--- /dev/null
+++ b/src/main/res/drawable/ic_image_edit.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/src/main/res/drawable/ic_social_share.xml b/src/main/res/drawable/ic_social_share.xml
deleted file mode 100644
index e3fe874d..00000000
--- a/src/main/res/drawable/ic_social_share.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/src/main/res/layout/layout_global_settings.xml b/src/main/res/layout/layout_global_settings.xml
new file mode 100644
index 00000000..38261be2
--- /dev/null
+++ b/src/main/res/layout/layout_global_settings.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/src/main/res/layout/layout_main.xml b/src/main/res/layout/layout_main.xml
index 59b3a58b..957f7fde 100644
--- a/src/main/res/layout/layout_main.xml
+++ b/src/main/res/layout/layout_main.xml
@@ -3,83 +3,87 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_height="match_parent"
tools:ignore="UnknownIdInLayout" android:clipChildren="false">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+ android:layout_marginTop="@dimen/fab_margin_top">
+
+
+
+
diff --git a/src/main/res/layout/layout_profiles.xml b/src/main/res/layout/layout_profiles.xml
index ac543fe5..e8a868b6 100644
--- a/src/main/res/layout/layout_profiles.xml
+++ b/src/main/res/layout/layout_profiles.xml
@@ -1,68 +1,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+
diff --git a/src/main/res/layout/layout_profiles_item.xml b/src/main/res/layout/layout_profiles_item.xml
index d1f856b3..45447659 100644
--- a/src/main/res/layout/layout_profiles_item.xml
+++ b/src/main/res/layout/layout_profiles_item.xml
@@ -1,37 +1,47 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/res/menu/profile_config_menu.xml b/src/main/res/menu/profile_config_menu.xml
new file mode 100644
index 00000000..2b4a8dea
--- /dev/null
+++ b/src/main/res/menu/profile_config_menu.xml
@@ -0,0 +1,32 @@
+
+
diff --git a/src/main/res/menu/profile_manager_menu.xml b/src/main/res/menu/profile_manager_menu.xml
index e087585f..e5fae051 100644
--- a/src/main/res/menu/profile_manager_menu.xml
+++ b/src/main/res/menu/profile_manager_menu.xml
@@ -1,6 +1,26 @@
+ -
+
+
+
+
+
+
-
- -28dp
+ -28dp
diff --git a/src/main/res/values/colors.xml b/src/main/res/values/colors.xml
index afb029ba..d0374a8a 100644
--- a/src/main/res/values/colors.xml
+++ b/src/main/res/values/colors.xml
@@ -3,12 +3,13 @@
#388E3C
+ #00C853
#90A4AE
#607D8B
#455A64
@color/material_blue_grey_300
@color/material_blue_grey_500
@color/material_blue_grey_700
- @color/material_blue_grey_500
+ @color/material_green_a700
diff --git a/src/main/res/values/dimen.xml b/src/main/res/values/dimen.xml
index f8e782e7..c11d2a7a 100644
--- a/src/main/res/values/dimen.xml
+++ b/src/main/res/values/dimen.xml
@@ -1,5 +1,5 @@
- -44dp
+ -44dp
diff --git a/src/main/res/values/styles.xml b/src/main/res/values/styles.xml
index e9d26c2d..34c54e0a 100644
--- a/src/main/res/values/styles.xml
+++ b/src/main/res/values/styles.xml
@@ -6,11 +6,11 @@
- 24sp
-