diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f40c1a46c..712b6ea98 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -23,7 +23,7 @@
android:roundIcon="@drawable/ic_launcher"
android:supportsRtl="true"
android:name=".RethinkDnsApplication"
- android:theme="@style/AppTheme">
+ android:theme="@style/AppThemeInitial">
@@ -47,6 +47,7 @@
android:launchMode="singleTask" />
- internal val layout: IntArray = intArrayOf(R.layout.welcome_slide1, R.layout.welcome_slide2)
+ internal val layout: IntArray = intArrayOf(R.layout.welcome_slide2, R.layout.welcome_slide1)
private lateinit var myPagerAdapter: PagerAdapter
-
private val persistentState by inject()
override fun onCreate(savedInstanceState: Bundle?) {
@@ -72,28 +71,37 @@ class WelcomeActivity : AppCompatActivity(R.layout.activity_welcome) {
}
b.btnNext.setOnClickListener {
- val currentItem = getItem(1)
- if (currentItem < layout.size) b.viewPager.currentItem = currentItem
- else launchHomeScreen()
+ val currentItem = getItem()
+ if (currentItem+1 >= layout.size) {
+ launchHomeScreen()
+ }else {
+ b.viewPager.currentItem = currentItem+1
+ }
}
b.viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) {
- if (ViewPager.SCROLLBAR_POSITION_RIGHT == state + 1) {
- if (getItem(1) == layout.size) launchHomeScreen()
- }
}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
-
}
override fun onPageSelected(position: Int) {
addBottomDots(position)
+ if (position >= layout.size - 1) {
+ b.btnNext.text = getString(R.string.finish)
+ b.btnNext.visibility = View.VISIBLE
+ b.btnSkip.visibility = View.INVISIBLE
+ }else{
+ b.btnSkip.visibility = View.VISIBLE
+ b.btnNext.visibility = View.INVISIBLE
+ }
}
-
})
+ }
+ override fun onBackPressed() {
+ return
}
private fun Context.isDarkThemeOn(): Boolean {
@@ -127,8 +135,8 @@ class WelcomeActivity : AppCompatActivity(R.layout.activity_welcome) {
}
}
- private fun getItem(i: Int): Int {
- return b.viewPager.currentItem + i
+ private fun getItem(): Int {
+ return b.viewPager.currentItem
}
private fun launchHomeScreen() {
diff --git a/app/src/main/res/drawable/bs_dns_home_screen.xml b/app/src/main/res/drawable/bs_dns_home_screen.xml
new file mode 100644
index 000000000..e1784f3f2
--- /dev/null
+++ b/app/src/main/res/drawable/bs_dns_home_screen.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/bs_firewall_home_screen.xml b/app/src/main/res/drawable/bs_firewall_home_screen.xml
new file mode 100644
index 000000000..766fba9f0
--- /dev/null
+++ b/app/src/main/res/drawable/bs_firewall_home_screen.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_app_update.xml b/app/src/main/res/drawable/ic_app_update.xml
index 69d350622..0d787c906 100644
--- a/app/src/main/res/drawable/ic_app_update.xml
+++ b/app/src/main/res/drawable/ic_app_update.xml
@@ -8,12 +8,14 @@
android:pathData="M12,3L12,16"
android:strokeWidth="2"
android:strokeColor="?attr/svgStrokeColor"
+ android:strokeAlpha="0.5"
android:strokeLineCap="square"
android:strokeLineJoin="miter" />
@@ -21,6 +23,7 @@
android:fillColor="?attr/svgFillColor"
android:pathData="M20,21L4,21"
android:strokeWidth="2"
+ android:strokeAlpha="0.5"
android:strokeColor="?attr/svgStrokeColor"
android:strokeLineCap="square"
android:strokeLineJoin="miter" />
diff --git a/app/src/main/res/drawable/ic_blog.xml b/app/src/main/res/drawable/ic_blog.xml
index 7a249a85a..47b484d0f 100644
--- a/app/src/main/res/drawable/ic_blog.xml
+++ b/app/src/main/res/drawable/ic_blog.xml
@@ -3,18 +3,20 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
-
-
+
+
diff --git a/app/src/main/res/drawable/ic_dns_firewall.xml b/app/src/main/res/drawable/ic_dns_firewall.xml
new file mode 100644
index 000000000..633e1f160
--- /dev/null
+++ b/app/src/main/res/drawable/ic_dns_firewall.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_fab_appinfo.xml b/app/src/main/res/drawable/ic_fab_appinfo.xml
index 9e209bea7..52dc60f51 100644
--- a/app/src/main/res/drawable/ic_fab_appinfo.xml
+++ b/app/src/main/res/drawable/ic_fab_appinfo.xml
@@ -8,20 +8,20 @@
android:strokeLineJoin="miter"
android:strokeWidth="1"
android:fillColor="#00000000"
- android:strokeColor="?attr/colorCheckSelected"
+ android:strokeColor="?attr/accentGood"
android:strokeLineCap="square"/>
diff --git a/app/src/main/res/drawable/ic_fab_uninstall.xml b/app/src/main/res/drawable/ic_fab_uninstall.xml
index c0bbcff32..21c0275f8 100644
--- a/app/src/main/res/drawable/ic_fab_uninstall.xml
+++ b/app/src/main/res/drawable/ic_fab_uninstall.xml
@@ -8,6 +8,6 @@
android:strokeLineJoin="miter"
android:strokeWidth="1"
android:fillColor="#00000000"
- android:strokeColor="?attr/colorCheckSelected"
+ android:strokeColor="?attr/accentGood"
android:strokeLineCap="square"/>
diff --git a/app/src/main/res/drawable/ic_fab_without_border.xml b/app/src/main/res/drawable/ic_fab_without_border.xml
index 4b96a1368..f05864961 100644
--- a/app/src/main/res/drawable/ic_fab_without_border.xml
+++ b/app/src/main/res/drawable/ic_fab_without_border.xml
@@ -8,6 +8,6 @@
android:strokeLineJoin="miter"
android:strokeWidth="1"
android:fillColor="?attr/svgFillColor"
- android:strokeColor="?attr/primaryTextColor"
+ android:strokeColor="@color/white"
android:strokeLineCap="square"/>
diff --git a/app/src/main/res/drawable/ic_faq.xml b/app/src/main/res/drawable/ic_faq.xml
index 826ee4a84..75a606163 100644
--- a/app/src/main/res/drawable/ic_faq.xml
+++ b/app/src/main/res/drawable/ic_faq.xml
@@ -3,25 +3,28 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
-
-
-
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_github.xml b/app/src/main/res/drawable/ic_github.xml
index a5be10437..45846d787 100644
--- a/app/src/main/res/drawable/ic_github.xml
+++ b/app/src/main/res/drawable/ic_github.xml
@@ -9,5 +9,6 @@
android:strokeWidth="2"
android:fillColor="?attr/svgFillColor"
android:strokeColor="?attr/svgStrokeColor"
+ android:strokeAlpha="0.5"
android:strokeLineCap="round"/>
diff --git a/app/src/main/res/drawable/ic_mail.xml b/app/src/main/res/drawable/ic_mail.xml
index d20ab595d..15f40f1b5 100644
--- a/app/src/main/res/drawable/ic_mail.xml
+++ b/app/src/main/res/drawable/ic_mail.xml
@@ -3,18 +3,20 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
-
-
+
+
diff --git a/app/src/main/res/drawable/ic_twitter.xml b/app/src/main/res/drawable/ic_twitter.xml
index 1982adfd3..97bb67c52 100644
--- a/app/src/main/res/drawable/ic_twitter.xml
+++ b/app/src/main/res/drawable/ic_twitter.xml
@@ -3,11 +3,12 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
-
+
diff --git a/app/src/main/res/drawable/ic_website.xml b/app/src/main/res/drawable/ic_website.xml
index 0bdb731ba..01a438746 100644
--- a/app/src/main/res/drawable/ic_website.xml
+++ b/app/src/main/res/drawable/ic_website.xml
@@ -8,6 +8,7 @@
android:pathData="M12,12m-10,0a10,10 0,1 1,20 0a10,10 0,1 1,-20 0"
android:strokeWidth="2"
android:strokeColor="?attr/svgStrokeColor"
+ android:strokeAlpha="0.5"
android:strokeLineCap="round"
android:strokeLineJoin="round" />
diff --git a/app/src/main/res/drawable/ic_whats_new.xml b/app/src/main/res/drawable/ic_whats_new.xml
index b9d13b7f3..f5d65e5cb 100644
--- a/app/src/main/res/drawable/ic_whats_new.xml
+++ b/app/src/main/res/drawable/ic_whats_new.xml
@@ -7,6 +7,7 @@
android:pathData="M12,17.844l-5.817,3.058l1.111,-6.477l-4.706,-4.587l6.504,-0.945l2.908,-5.893l2.908,5.893l6.504,0.945l-4.706,4.587l1.111,6.477z"
android:strokeLineJoin="miter"
android:strokeWidth="2"
+ android:strokeAlpha="0.5"
android:fillColor="?attr/svgFillColor"
android:strokeColor="?attr/svgStrokeColor"
android:strokeLineCap="square"/>
diff --git a/app/src/main/res/drawable/rounded_corners_button_primary.xml b/app/src/main/res/drawable/rounded_corners_button_primary.xml
index 2cbfb83fa..d2dc82250 100644
--- a/app/src/main/res/drawable/rounded_corners_button_primary.xml
+++ b/app/src/main/res/drawable/rounded_corners_button_primary.xml
@@ -3,7 +3,7 @@
android:shape="rectangle">
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_faq_webview_layout.xml b/app/src/main/res/layout/activity_faq_webview_layout.xml
index a861734e7..d1d1380d2 100644
--- a/app/src/main/res/layout/activity_faq_webview_layout.xml
+++ b/app/src/main/res/layout/activity_faq_webview_layout.xml
@@ -1,6 +1,7 @@
+ android:textColor="?attr/primaryTextColor"
+ android:textSize="@dimen/large_font_text_view" />
+ android:textColor="?attr/primaryTextColor"
+ android:textSize="@dimen/large_font_text_view" />
-
-
diff --git a/app/src/main/res/layout/activity_settings_screen.xml b/app/src/main/res/layout/activity_settings_screen.xml
index 201b4bec2..d1b25985b 100644
--- a/app/src/main/res/layout/activity_settings_screen.xml
+++ b/app/src/main/res/layout/activity_settings_screen.xml
@@ -12,6 +12,65 @@
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -125,6 +185,7 @@
android:layout_height="wrap_content"
android:fontFamily="sans-serif-smallcaps"
android:padding="10dp"
+ android:layout_marginStart="10dp"
android:text="@string/settings_dns_header"
android:textColor="?attr/accentGood"
android:textSize="@dimen/large_font_text_view" />
@@ -186,12 +247,13 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/settings_activity_on_device_ll"
+ android:background="@drawable/rounded_corners_button_primary"
android:layout_alignParentEnd="true"
android:layout_marginTop="3dp"
android:layout_marginEnd="3dp"
android:padding="13dp"
android:text="@string/settings_local_blocklist_configure"
- android:textColor="?attr/accentGood"
+ android:textColor="@color/white"
android:textSize="@dimen/default_font_text_view"
android:visibility="visible" />
@@ -230,6 +292,7 @@
android:layout_height="wrap_content"
android:fontFamily="sans-serif-smallcaps"
android:padding="10dp"
+ android:layout_marginStart="10dp"
android:text="@string/settings_vpn_header"
android:textColor="?attr/accentGood"
android:textSize="@dimen/large_font_text_view" />
@@ -365,6 +428,7 @@
android:layout_height="wrap_content"
android:fontFamily="sans-serif-smallcaps"
android:padding="10dp"
+ android:layout_marginStart="10dp"
android:text="@string/settings_proxy_header"
android:textColor="?attr/accentGood"
android:textSize="@dimen/large_font_text_view" />
@@ -489,6 +553,7 @@
android:layout_height="wrap_content"
android:fontFamily="sans-serif-smallcaps"
android:padding="10dp"
+ android:layout_marginStart="10dp"
android:text="@string/settings_general_header"
android:textColor="?attr/accentGood"
android:textSize="@dimen/large_font_text_view" />
diff --git a/app/src/main/res/layout/activity_welcome.xml b/app/src/main/res/layout/activity_welcome.xml
index 579efea7e..43dc5b42b 100644
--- a/app/src/main/res/layout/activity_welcome.xml
+++ b/app/src/main/res/layout/activity_welcome.xml
@@ -26,30 +26,27 @@
android:layout_above="@id/layoutDots"
android:background="@color/lightColorPrimary" />
-
+ android:textColor="?attr/accentGood" />
-
+ android:textColor="?attr/accentGood" />
diff --git a/app/src/main/res/layout/apk_list_item.xml b/app/src/main/res/layout/apk_list_item.xml
index 94af6ae62..e69e6a60f 100644
--- a/app/src/main/res/layout/apk_list_item.xml
+++ b/app/src/main/res/layout/apk_list_item.xml
@@ -3,13 +3,12 @@
android:id="@+id/apk_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:backgroundTint="?attr/backgroundDark">
+ android:backgroundTint="?attr/backgroundDark"
+ android:layout_margin="1dp">
-
+ android:layout_height="wrap_content">
+ android:orientation="vertical">
@@ -116,5 +113,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/bottom_sheet_conn_track.xml b/app/src/main/res/layout/bottom_sheet_conn_track.xml
index bd06ae1d7..c637746f7 100644
--- a/app/src/main/res/layout/bottom_sheet_conn_track.xml
+++ b/app/src/main/res/layout/bottom_sheet_conn_track.xml
@@ -5,9 +5,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
+ android:focusable="true"
android:orientation="vertical"
- android:paddingBottom="40dp"
- android:focusable="true">
+ android:paddingBottom="40dp">
@@ -58,11 +58,11 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_margin="2dp"
- android:textColor="?attr/primaryTextColor"
android:layout_marginTop="8dp"
android:layout_toEndOf="@id/bs_conn_track_app_icon"
android:gravity="center"
android:text="@string/action_automatic"
+ android:textColor="?attr/primaryTextColor"
android:textSize="@dimen/extra_large_font_text_view" />
@@ -80,8 +80,9 @@
android:ellipsize="none"
android:gravity="center"
android:minWidth="35dp"
+ android:fontFamily="sans-serif-condensed-medium"
android:singleLine="true"
- android:textAppearance="@style/TextAppearance.AppCompat.Headline"
+ android:textAppearance="@android:style/TextAppearance.Material.Subhead"
android:textSize="26sp" />
@@ -119,9 +120,9 @@
android:id="@+id/bs_conn_blocked_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_gravity="fill_horizontal"
android:ellipsize="end"
android:gravity="end"
- android:layout_gravity="fill_horizontal"
android:text="@string/bsct_conn_block_desc"
android:textColor="?attr/primaryLightColorText"
android:textSize="@dimen/default_font_text_view"
@@ -153,18 +154,6 @@
android:textSize="@dimen/default_font_text_view"
android:visibility="gone" />
-
-
+ android:orientation="vertical">
+
+
+
+
+
@@ -205,44 +213,51 @@
android:textSize="@dimen/default_font_text_view"
android:visibility="gone" />
-
-
+ android:orientation="vertical">
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/bottom_sheet_home_screen.xml b/app/src/main/res/layout/bottom_sheet_home_screen.xml
index 0b777d4ed..fd46ac734 100644
--- a/app/src/main/res/layout/bottom_sheet_home_screen.xml
+++ b/app/src/main/res/layout/bottom_sheet_home_screen.xml
@@ -4,9 +4,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
+ android:focusable="true"
android:orientation="vertical"
- android:paddingBottom="40dp"
- android:focusable="true">
+ android:paddingBottom="40dp">
+ android:textSize="@dimen/extra_large_font_text_view"
+ android:textStyle="bold" />
+ android:background="@color/recycler_selected"
+ android:visibility="gone" />
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_marginBottom="1dp"
+ android:background="?attr/background"
+ android:paddingTop="5dp"
+ android:paddingBottom="5dp">
+
-
+
+
+
+
+
+
+
+
+
+
+
+ android:background="?attr/background"
+ android:paddingTop="5dp"
+ android:paddingBottom="5dp">
+
+
+
+
+
+
+
+
+
+ android:background="@color/recycler_selected"
+ android:visibility="gone" />
+
+ android:textIsSelectable="true"
+ android:textSize="@dimen/default_font_text_view"
+ android:visibility="gone" />
diff --git a/app/src/main/res/layout/connection_list_scroll_list.xml b/app/src/main/res/layout/connection_list_scroll_list.xml
index 3a66388bd..39ddbd970 100644
--- a/app/src/main/res/layout/connection_list_scroll_list.xml
+++ b/app/src/main/res/layout/connection_list_scroll_list.xml
@@ -83,6 +83,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:nestedScrollingEnabled="false"
+ android:background="?attr/border"
android:clickable="true"
android:focusable="true"
android:orientation="vertical" />
diff --git a/app/src/main/res/layout/connection_transaction_row.xml b/app/src/main/res/layout/connection_transaction_row.xml
index 82007c0d0..479bf6f58 100644
--- a/app/src/main/res/layout/connection_transaction_row.xml
+++ b/app/src/main/res/layout/connection_transaction_row.xml
@@ -1,13 +1,12 @@
-
@@ -19,7 +18,7 @@
@@ -103,7 +102,7 @@
android:id="@+id/connection_flag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center"
+ android:layout_gravity="end"
android:ellipsize="none"
android:gravity="center"
android:minWidth="35dp"
@@ -123,7 +122,7 @@
android:weightSum="1">
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/custom_dialog_layout.xml b/app/src/main/res/layout/custom_dialog_layout.xml
index 416c55958..0fb4f949f 100644
--- a/app/src/main/res/layout/custom_dialog_layout.xml
+++ b/app/src/main/res/layout/custom_dialog_layout.xml
@@ -31,7 +31,7 @@
android:layout_gravity="start"
android:fontFamily="sans-serif"
android:isScrollContainer="true"
- app:queryHint="Search by app name">
+ app:queryHint="@string/search_hint">
+ android:text="@string/hs_download_positive_default"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_set_custom_url.xml b/app/src/main/res/layout/dialog_set_custom_url.xml
index 3ffd183b0..97a1e82b6 100644
--- a/app/src/main/res/layout/dialog_set_custom_url.xml
+++ b/app/src/main/res/layout/dialog_set_custom_url.xml
@@ -21,7 +21,7 @@
android:layout_marginTop="10dp"
android:layout_height="wrap_content"
android:hint="@string/cd_doh_dialog_resolver_name"
- app:hintTextColor="@color/secondaryText"
+ app:hintTextColor="?attr/accentGood"
app:layout_constraintTop_toBottomOf="@id/dialog_custom_url_top">
@@ -46,7 +46,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/cd_doh_dialog_resolver_url"
- app:hintTextColor="@color/secondaryText"
+ app:hintTextColor="?attr/accentGood"
app:layout_constraintTop_toBottomOf="@id/text_input_layout_name">
@@ -94,6 +94,7 @@
android:layout_marginBottom="10dp"
android:text="@string/cd_dialog_positive_btn"
android:textSize="@dimen/large_font_text_view"
+ android:textColor="?attr/accentBad"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/dialog_custom_url_failure_text" />
@@ -108,6 +109,7 @@
android:gravity="center"
android:text="@string/cd_dialog_negative_btn"
android:textSize="@dimen/large_font_text_view"
+ android:textColor="?attr/accentBad"
app:layout_constraintEnd_toStartOf="@id/dialog_custom_url_ok_btn"
app:layout_constraintTop_toBottomOf="@id/dialog_custom_url_failure_text" />
diff --git a/app/src/main/res/layout/dialog_set_dns_crypt.xml b/app/src/main/res/layout/dialog_set_dns_crypt.xml
index 7abb70c62..1a3f7d53c 100644
--- a/app/src/main/res/layout/dialog_set_dns_crypt.xml
+++ b/app/src/main/res/layout/dialog_set_dns_crypt.xml
@@ -59,6 +59,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/cd_dns_crypt_dialog_name"
+ app:hintTextColor="?attr/accentGood"
app:layout_constraintTop_toBottomOf="@id/dialog_dns_proxy_radio_group">
@@ -114,6 +118,7 @@
+ android:textColor="@color/colorRed_A400"/>
+ android:textColor="?attr/accentBad" />
+ android:textColor="?attr/accentBad" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_set_http_proxy.xml b/app/src/main/res/layout/dialog_set_http_proxy.xml
index baf3b9e36..88444b28b 100644
--- a/app/src/main/res/layout/dialog_set_http_proxy.xml
+++ b/app/src/main/res/layout/dialog_set_http_proxy.xml
@@ -21,7 +21,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/settings_http_proxy_hostname"
- app:hintTextColor="@color/secondaryText"
+ app:hintTextColor="?attr/accentGood"
app:layout_constraintTop_toBottomOf="@id/dialog_http_proxy_top">
@@ -119,6 +120,7 @@
android:layout_marginBottom="10dp"
android:gravity="center"
android:textSize="@dimen/large_font_text_view"
+ android:textColor="?attr/accentBad"
android:text="@string/settings_dns_proxy_dialog_negative_btn"
app:layout_constraintEnd_toStartOf="@id/dialog_http_proxy_ok_btn"
app:layout_constraintTop_toBottomOf="@id/dialog_http_proxy_failure_text" />
diff --git a/app/src/main/res/layout/dialog_set_proxy.xml b/app/src/main/res/layout/dialog_set_proxy.xml
index 73119a382..f8d135662 100644
--- a/app/src/main/res/layout/dialog_set_proxy.xml
+++ b/app/src/main/res/layout/dialog_set_proxy.xml
@@ -66,7 +66,7 @@
android:textSize="@dimen/large_font_text_view"
android:maxLines="1"
android:layout_weight="0.7"
- android:hint="IP Address" />
+ android:hint="@string/settings_socks5_dialog_hint_ip" />
@@ -92,7 +92,7 @@
android:layout_gravity="center"
android:layout_weight="0.7"
android:maxLines="1"
- android:hint="Port"
+ android:hint="@string/settings_socks5_dialog_hint_port"
android:textSize="@dimen/large_font_text_view"
android:inputType="number" />
@@ -121,7 +121,7 @@
android:layout_weight="0.7"
android:maxLines="1"
android:textSize="@dimen/large_font_text_view"
- android:hint="Username (optional)" />
+ android:hint="@string/settings_socks5_dialog_hint_username" />
@@ -147,7 +147,7 @@
android:layout_gravity="center"
android:layout_weight="0.7"
android:textSize="@dimen/large_font_text_view"
- android:hint="Password (optional)"
+ android:hint="@string/settings_socks5_dialog_hint_password"
android:maxLines="1"
android:inputType="textPassword" />
@@ -169,6 +169,8 @@
android:text="@string/univ_firewall_rule_4" />
+ android:textColor="?attr/accentBad" />
+ android:textColor="?attr/accentBad" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/dns_crypt_endpoint_list_item.xml b/app/src/main/res/layout/dns_crypt_endpoint_list_item.xml
index 3b23ecb50..66bbca8c4 100644
--- a/app/src/main/res/layout/dns_crypt_endpoint_list_item.xml
+++ b/app/src/main/res/layout/dns_crypt_endpoint_list_item.xml
@@ -3,7 +3,7 @@
android:id="@+id/doh_endpoint_list_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginBottom="1dp"
+ android:layout_margin="0.5dp"
android:background="?android:attr/selectableItemBackground"
android:elevation="@dimen/activity_horizontal_margin">
@@ -12,7 +12,6 @@
android:id="@+id/dns_crypt_endpoint_list_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="5dp"
android:padding="5dp">
@@ -63,8 +62,8 @@
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:gravity="center"
- android:buttonTint="?attr/colorCheckSelected"
- android:foregroundTint="?attr/colorCheckSelected"
+ android:buttonTint="?attr/accentGood"
+ android:foregroundTint="?attr/accentGood"
android:text="@null"
android:padding="10dp" />
@@ -72,8 +71,8 @@
+ android:background="?attr/backgroundDark" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/dns_proxy_list_item.xml b/app/src/main/res/layout/dns_proxy_list_item.xml
index 2d355b3fb..aa362406f 100644
--- a/app/src/main/res/layout/dns_proxy_list_item.xml
+++ b/app/src/main/res/layout/dns_proxy_list_item.xml
@@ -3,16 +3,14 @@
android:id="@+id/dns_proxy_list_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginBottom="1dp"
- android:background="?android:attr/selectableItemBackground"
- android:elevation="@dimen/activity_horizontal_margin">
+ android:layout_margin="0.5dp"
+ android:background="?android:attr/selectableItemBackground">
@@ -61,18 +59,18 @@
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
+ android:buttonTint="?attr/accentGood"
+ android:foregroundTint="?attr/accentGood"
android:gravity="center"
android:padding="10dp"
- android:buttonTint="?attr/colorCheckSelected"
- android:foregroundTint="?attr/colorCheckSelected"
android:text="@null" />
+ android:background="?attr/backgroundDark" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/doh_endpoint_list_item.xml b/app/src/main/res/layout/doh_endpoint_list_item.xml
index 9c9381322..b3923e323 100644
--- a/app/src/main/res/layout/doh_endpoint_list_item.xml
+++ b/app/src/main/res/layout/doh_endpoint_list_item.xml
@@ -3,9 +3,8 @@
android:id="@+id/doh_endpoint_list_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginBottom="1dp"
- android:background="?android:attr/selectableItemBackground"
- android:elevation="@dimen/activity_horizontal_margin">
+ android:layout_margin="0.5dp"
+ android:background="?android:attr/selectableItemBackground">
@@ -75,19 +74,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/doh_endpoint_list_container"
+ android:background="@drawable/rounded_corners_button_primary"
android:layout_alignParentStart="true"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="10dp"
- android:padding="5dp"
+ android:padding="0dp"
android:text="@string/dns_connected_rethink_configure"
android:textSize="@dimen/large_font_text_view"
- android:textColor="?attr/accentGood" />
+ android:textColor="@color/white" />
+ android:background="?attr/backgroundDark" />
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/exclude_app_dialog_layout.xml b/app/src/main/res/layout/exclude_app_dialog_layout.xml
index f02cca0cd..a5fa8b90f 100644
--- a/app/src/main/res/layout/exclude_app_dialog_layout.xml
+++ b/app/src/main/res/layout/exclude_app_dialog_layout.xml
@@ -31,7 +31,7 @@
android:layout_gravity="start"
android:fontFamily="sans-serif"
android:isScrollContainer="true"
- app:queryHint="Search by app name">
+ app:queryHint="@string/search_hint">
-
-
diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml
index 413f96bb8..167786017 100644
--- a/app/src/main/res/layout/fragment_about.xml
+++ b/app/src/main/res/layout/fragment_about.xml
@@ -18,39 +18,56 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="15dp"
- android:visibility="gone"
+ android:visibility="visible"
android:weightSum="1">
+
+ android:orientation="vertical"
+ android:padding="10dp">
-
-
-
+
+
+
+
+
@@ -144,20 +161,21 @@
style="@style/TextAppearance.AppCompat.Subhead"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="20dp"
+ android:layout_marginStart="54dp"
android:gravity="center_vertical"
+ android:fontFamily="sans-serif-smallcaps"
android:lineSpacingExtra="5dp"
android:padding="5dp"
android:text="@string/about_app"
android:textColor="?attr/accentGood"
- android:textSize="@dimen/large_font_text_view" />
+ android:textSize="@dimen/extra_large_font_text_view" />
+ android:textSize="@dimen/extra_large_font_text_view" />
+ android:textSize="@dimen/extra_large_font_text_view" />
@@ -94,8 +97,8 @@
android:id="@+id/recycler_dns_crypt_connections"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_below="@id/recycler_dns_crypt_servers_title"
- android:clickable="true"
+ android:layout_below="@id/recycler_dns_crypt_servers_title" android:clickable="true"
+ android:background="?attr/background"
android:focusable="true"
android:nestedScrollingEnabled="true"
android:visibility="visible" />
@@ -107,12 +110,13 @@
android:layout_below="@id/recycler_dns_crypt_connections"
android:layout_marginTop="10dp"
android:fontFamily="sans-serif-smallcaps"
+ android:layout_marginStart="15dp"
android:paddingStart="5dp"
- android:paddingTop="30dp"
+ android:paddingTop="15dp"
android:paddingEnd="5dp"
android:paddingBottom="10dp"
android:text="@string/cd_dns_crypt_relay_title"
- android:textColor="@color/secondaryText"
+ android:textColor="?attr/accentGood"
android:textSize="@dimen/heading_font_text_view"
android:visibility="visible" />
@@ -122,6 +126,7 @@
android:layout_height="wrap_content"
android:layout_below="@id/recycler_dns_crypt_relays_title"
android:clickable="true"
+ android:background="?attr/background"
android:focusable="true"
android:nestedScrollingEnabled="true"
android:visibility="visible" />
@@ -132,6 +137,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/configure_screen_spinner_layout"
+ android:layout_marginTop="10dp"
android:visibility="gone">
@@ -163,14 +170,15 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
- android:layout_centerHorizontal="true"
- android:layout_margin="20dp"
+ android:layout_alignParentEnd="true"
+ android:layout_margin="30dp"
+ android:textAllCaps="false"
android:drawablePadding="10dp"
android:text="@string/cd_fab_add_button"
- android:textColor="?attr/primaryTextColor"
+ android:textColor="@color/white"
android:textSize="@dimen/default_font_text_view"
- android:backgroundTint="?attr/backgroundDark"
- app:fabSize="normal"
+ android:backgroundTint="?attr/mainButtonBackground"
+ app:fabSize="mini"
app:icon="@drawable/ic_fab_without_border"
- app:iconTint="?attr/primaryTextColor" />
+ app:iconTint="@color/white" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_firewall.xml b/app/src/main/res/layout/fragment_firewall.xml
index 3e7118841..ff7e9d0b2 100644
--- a/app/src/main/res/layout/fragment_firewall.xml
+++ b/app/src/main/res/layout/fragment_firewall.xml
@@ -246,7 +246,6 @@
android:id="@+id/firewall_search_view_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="?attr/backgroundDark"
android:orientation="vertical"
android:visibility="visible">
diff --git a/app/src/main/res/layout/fragment_firewall_all_apps.xml b/app/src/main/res/layout/fragment_firewall_all_apps.xml
index c174ba4c8..8a032304c 100644
--- a/app/src/main/res/layout/fragment_firewall_all_apps.xml
+++ b/app/src/main/res/layout/fragment_firewall_all_apps.xml
@@ -77,9 +77,9 @@
android:layout_below="@id/firewall_app_search_view_top"
android:layout_marginStart="2dp"
android:layout_marginEnd="2dp"
- android:childDivider="?attr/background"
+ android:childDivider="?attr/backgroundDark"
android:divider="?attr/border"
- android:dividerHeight="2dp"
+ android:dividerHeight="1dp"
android:groupIndicator="@null"
android:nestedScrollingEnabled="true"
android:scrollbars="none" />
diff --git a/app/src/main/res/layout/fragment_home_screen.xml b/app/src/main/res/layout/fragment_home_screen.xml
index 82812ae88..2c20218a1 100644
--- a/app/src/main/res/layout/fragment_home_screen.xml
+++ b/app/src/main/res/layout/fragment_home_screen.xml
@@ -140,6 +140,7 @@
android:layout_marginTop="10dp"
android:background="@color/dividerColor" />-->
+ android:orientation="vertical" />
diff --git a/app/src/main/res/layout/transaction_row.xml b/app/src/main/res/layout/transaction_row.xml
index e8fafc640..fa16faefe 100644
--- a/app/src/main/res/layout/transaction_row.xml
+++ b/app/src/main/res/layout/transaction_row.xml
@@ -1,21 +1,18 @@
-
+ android:animateLayoutChanges="true"
+ android:orientation="vertical">
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/univ_whitelist_list_item.xml b/app/src/main/res/layout/univ_whitelist_list_item.xml
index e4f62743d..456b75cde 100644
--- a/app/src/main/res/layout/univ_whitelist_list_item.xml
+++ b/app/src/main/res/layout/univ_whitelist_list_item.xml
@@ -4,7 +4,6 @@
android:id="@+id/am_apk_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="?attr/background"
android:layout_marginBottom="1dp"
android:paddingEnd="10dp">
diff --git a/app/src/main/res/layout/univ_whitelist_rules_item.xml b/app/src/main/res/layout/univ_whitelist_rules_item.xml
index 17dc81c8d..61c58928c 100644
--- a/app/src/main/res/layout/univ_whitelist_rules_item.xml
+++ b/app/src/main/res/layout/univ_whitelist_rules_item.xml
@@ -3,10 +3,10 @@
android:id="@+id/am_apk_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@color/colorPrimaryDark"
android:layout_marginBottom="1dp"
- android:layout_marginStart="5dp"
- android:layout_marginEnd="5dp">
+ android:layout_marginStart="3dp"
+ android:background="?attr/background"
+ android:layout_marginEnd="3dp">
+ android:layout_height="match_parent">
+ android:layout_height="match_parent">
#005cb2
#FFFFFF
#005cb2
- #c60055
+ #ff1744
#fafafa
#1B1B1E
#000000
@@ -95,6 +95,6 @@
#757575
#eeeeee
#424242
- #00e676
+ #9cff57
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 3695d8c5f..ebda5b689 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -5,6 +5,8 @@
Settings
Internet Manager
Part of Mozilla Builders MVP Program
+ A highly customizable DNS and Firewall
+ Detect and block network security threats
Tip : Firewall prevents apps from accessing the Internet over Wifi or Mobile data. Since most forms of surveillance require the data to be sent over to a central repository, firewalling them effectively mitigates the threat. \n\nThere\'s a class of apps that require Internet connection all day, and those are usually communication apps like Gmail and messenger apps like WhatsApp. Firewalling them might not be an option, and that\'s why we built content blockers.
@@ -27,12 +29,13 @@
Next
Skip
+ Finish
Welcome
- RethinkDNS is the easiest way to monitor app activity, circumvent Internet censorship, and firewall apps on your Android device.
+ RethinkDNS is the easiest way to monitor network activity, bypass Internet censorship, and firewall apps on your Android device.
- Welcome
- Say hello to a safer, transparent, and secure Android.
+ Free and Open Source
+ RethinkDNS is an open source software backed by Mozilla Builders MVP program.
- Cloudflare
@@ -47,7 +50,7 @@
- https://cloudflare-dns.com/dns-query
- https://family.cloudflare-dns.com/dns-query
- https://security.cloudflare-dns.com/dns-query
- - https://basic.bravedns.com/1:YBcgAIAQIAAIAABgIAA=
+ - https://basic.bravedns.com/1:YASAAQBwIAA=
- https://cloudflare-dns.com/
- https://basic.bravedns.com/
@@ -226,11 +229,15 @@
DNS + Firewall
+ Block malware and other security threats with configurable, encrypted DNS.
+ Monitor network activity and firewall any app or IP address.
+ All of the above + bypass Internet censorship.
+
Permission - Accessibility
Action Required
- RethinkDNS uses accessibility service to track which apps are in-use (foreground) versus those that are not in-use (background).
+ RethinkDNS uses accessibility service to track which apps are in-use (foreground) versus those that are not in-use (background).\n\nRethinkDNS does not collect any information or spy on you in any way.
RethinkDNS accessibility service has stopped or crashed. Goto Settings and Force Stop RethinkDNS and start it again to use "Block any app not in use" feature.\n\n
@@ -311,9 +318,11 @@
Block System Apps
Block System Components
+ Block Non-App System
Some system apps are critical to proper functioning of a device. Block them only if you know what you are doing.
Some system components are critical to proper functioning of a device. Block them only if you know what you are doing.
+ Some non-app system components are critical to proper functioning of a device. Block them only if you know what you are doing.
Block anyway
Cancel
@@ -467,29 +476,28 @@
(disabled)
Cannot block the app
- What\'s new in v053a
- 🎁 Data Privacy Day (Jan 28) 🎁
+ What\'s new in v053b
+ 🎁 International Women\'s Day (Mar 08) 🎁
Incremental update:\n\n
- \u00091. Better support for the "Always-on VPN" feature.\n\n
- \u00092. Home screen UI refreshed.\n\n
- \u00093. Improvements in "Block apps not in use" behavior.\n\n
- \u00094. Enable / disable auto-check for app updates.\n\n
- \u00095. Major performance and stability bug fixes.\n
+ 1. Themes: Dark and Light themes. More flavors coming soon.\n\n
+ 2. Fixed a Battery drain issue.\n\n
+ 3. Home and Welcome screen UI changes.\n\n
+ 4. Improvements to the underlying Firewall and DNS network engine.\n\n
- Firewall
+ firewall
Kill app when firewalled (experimental)
Some stubborn apps persistently try to connect to the internet even when firewalled. Enable this setting to kill such apps.
- DNS
+ dns
Enable on-device blocklists
Choose from 170+ blocklists.
configure
Update
last check for update: 10 mins ago
- VPN
+ vpn
Exclude apps from Firewall and DNS
Connections from excluded apps will not monitored or blocked.
@@ -498,13 +506,13 @@
"Disabled. Settings->VPN->Block connections without VPN" is enabled for RethinkDNS, enabling the feature will block the internet connection of the apps which are trying to bypass the VPN.
Cannot exclude apps or allow bypass because VPN is running in lockdown mode.
- Proxy (experimental)
+ proxy (experimental)
Setup SOCKS5 (TCP) Proxy
Forward connections to SOCKS5 endpoint.
Setup HTTP(S) Proxy
This setting is only a recommendation and it is possible that apps will ignore it.
- General
+ general
Refresh Data
Re-sync application list.
Auto-start on power up (experimental)
@@ -529,7 +537,7 @@
Check for app updates
Check for apps updates once a week.
- Enable Dark Theme
+ Appearance
Dark/light theme
Forwarding to %1$s:%2$s
@@ -546,7 +554,7 @@
Set SOCKS5 (TCP) Proxy
- Set SOCKS5(TCP) Proxy
+ Set SOCKS5 (TCP) Proxy
App
Hostname
Port Number
@@ -560,11 +568,19 @@
Forwarding to %1$s:%2$s, %3$s
Forward connections to SOCKS5 endpoint.
- Select theme
- Default system
+ IP Address
+ Port
+ Username (optional)
+ Password (optional)
+
+
+ Appearance
+ Set by System
Light
Dark
+ Current theme: %1$s
+
Application Icon
@@ -592,13 +608,13 @@
(%1$s)
- VPN activation request
- Set up VPN connection for the first time message
+ Attention!
+ RethinkDNS needs permission to set up a local VPN to encrypt the device\'s DNS requests, implement a network monitor, and enforce firewall rules. \n\nRethinkDNS does not collect any information or spy on you in any way.
Proceed
Cancel
- Start VPN
- Start VPN to enable the %1$s
+ Start %1$s
+ You are one step away from safe and secure Android: Instantly see network activity, block websites, IPs, and badly behaving apps.
Start
Dismiss
@@ -617,15 +633,15 @@
RethinkDNS is a free and open-source project, led by ex-engineers from Amazon, IBM, and Scientific Games.
to report bugs and suggest features.
Join the RethinkDNS group on Telegram
- Links
+ links
Visit rethinkdns.com
Contribute on GitHub
View FAQs
Read our blog
- Contact
- App
+ contact
+ app
Email us
- What\'s new
+ What\'s new in %1$s
Follow us on Twitter
RethinkDNS is part of Mozilla Builders MVP program.
Check for app updates
@@ -640,13 +656,14 @@
https://www.bravedns.com/
https://builders.mozilla.community/alumni.html
v%1$s
+ v%1$s (%2$s)
Suggest features
Select DNS
resolvers
relays
- Add
+ Custom DNS
Custom Server URL
DoH %1$s
Custom DNS Proxy
@@ -717,6 +734,8 @@
Go back
select all
+ Search by app name
+
ok
Complete Update
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 7bb300cc6..69252c1a7 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,5 +1,8 @@
+