From 1a9573bb412a01b62a998946b2fc8c1ebd98d0c7 Mon Sep 17 00:00:00 2001 From: Maksim Karasev Date: Fri, 14 Jun 2024 16:57:47 +0300 Subject: [PATCH] Misc. cleanup and formatting --- .../AddServerDialogFragment.kt | 10 ++++----- .../DeleteServerDialogFragment.kt | 19 +++++++++++------- .../privatednstoggle/DnsTileService.kt | 2 +- .../karasevm/privatednstoggle/MainActivity.kt | 17 +++++++++++----- .../privatednstoggle/RecyclerAdapter.kt | 11 +++++----- .../privatednstoggle/utils/PrivateDNSUtils.kt | 1 + .../res/drawable-anydpi/ic_tile_default.xml | 15 -------------- .../res/drawable-hdpi/ic_tile_default.png | Bin 383 -> 0 bytes .../res/drawable-mdpi/ic_tile_default.png | Bin 296 -> 0 bytes .../res/drawable-xhdpi/ic_tile_default.png | Bin 507 -> 0 bytes .../res/drawable-xxhdpi/ic_tile_default.png | Bin 685 -> 0 bytes app/src/main/res/layout/activity_main.xml | 8 ++++---- app/src/main/res/layout/dialog_add.xml | 9 ++++----- app/src/main/res/layout/dialog_options.xml | 4 ++-- app/src/main/res/layout/recyclerview_row.xml | 9 +++------ .../main/res/layout/sheet_dns_selector.xml | 6 +++--- app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2190 -> 0 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1513 -> 0 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3059 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 4654 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 6327 -> 0 bytes .../ic_launcher.xml | 6 +++--- app/src/main/res/values/colors.xml | 4 ++-- app/src/main/res/values/strings.xml | 2 -- 24 files changed, 58 insertions(+), 65 deletions(-) delete mode 100644 app/src/main/res/drawable-anydpi/ic_tile_default.xml delete mode 100644 app/src/main/res/drawable-hdpi/ic_tile_default.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_tile_default.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_tile_default.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_tile_default.png delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename app/src/main/res/{mipmap-anydpi-v26 => mipmap}/ic_launcher.xml (91%) diff --git a/app/src/main/java/ru/karasevm/privatednstoggle/AddServerDialogFragment.kt b/app/src/main/java/ru/karasevm/privatednstoggle/AddServerDialogFragment.kt index 9ed5238..a4cdb34 100644 --- a/app/src/main/java/ru/karasevm/privatednstoggle/AddServerDialogFragment.kt +++ b/app/src/main/java/ru/karasevm/privatednstoggle/AddServerDialogFragment.kt @@ -28,7 +28,7 @@ class AddServerDialogFragment : DialogFragment() { * implement this interface in order to receive event callbacks. * Each method passes the DialogFragment in case the host needs to query it. */ interface NoticeDialogListener { - fun onDialogPositiveClick(dialog: DialogFragment, server: String) + fun onDialogPositiveClick(server: String) } // Override the Fragment.onAttach() method to instantiate the NoticeDialogListener @@ -62,14 +62,15 @@ class AddServerDialogFragment : DialogFragment() { builder.setTitle(R.string.add_server) .setView(view) // Add action buttons - .setPositiveButton(R.string.menu_add + .setPositiveButton( + R.string.menu_add ) { _, _ -> listener.onDialogPositiveClick( - this, binding.editTextServerAddr.text.toString().trim() ) } - .setNegativeButton(R.string.cancel + .setNegativeButton( + R.string.cancel ) { _, _ -> dialog?.cancel() } @@ -79,7 +80,6 @@ class AddServerDialogFragment : DialogFragment() { override fun onStart() { super.onStart() - val button = ((dialog) as AlertDialog).getButton(DialogInterface.BUTTON_POSITIVE) binding.editTextServerAddr.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} diff --git a/app/src/main/java/ru/karasevm/privatednstoggle/DeleteServerDialogFragment.kt b/app/src/main/java/ru/karasevm/privatednstoggle/DeleteServerDialogFragment.kt index 0488650..b69ce1d 100644 --- a/app/src/main/java/ru/karasevm/privatednstoggle/DeleteServerDialogFragment.kt +++ b/app/src/main/java/ru/karasevm/privatednstoggle/DeleteServerDialogFragment.kt @@ -7,7 +7,7 @@ import androidx.fragment.app.DialogFragment import com.google.android.material.dialog.MaterialAlertDialogBuilder -class DeleteServerDialogFragment(private val position: Int): DialogFragment() { +class DeleteServerDialogFragment(private val position: Int) : DialogFragment() { // Use this instance of the interface to deliver action events private lateinit var listener: NoticeDialogListener @@ -15,7 +15,7 @@ class DeleteServerDialogFragment(private val position: Int): DialogFragment() { * implement this interface in order to receive event callbacks. * Each method passes the DialogFragment in case the host needs to query it. */ interface NoticeDialogListener { - fun onDialogPositiveClick(dialog: DialogFragment, position: Int) + fun onDialogPositiveClick(position: Int) } // Override the Fragment.onAttach() method to instantiate the NoticeDialogListener @@ -27,21 +27,26 @@ class DeleteServerDialogFragment(private val position: Int): DialogFragment() { listener = context as NoticeDialogListener } catch (e: ClassCastException) { // The activity doesn't implement the interface, throw exception - throw ClassCastException((context.toString() + - " must implement NoticeDialogListener")) + throw ClassCastException( + (context.toString() + + " must implement NoticeDialogListener") + ) } } + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { return activity?.let { val builder = MaterialAlertDialogBuilder(it) builder.setTitle(R.string.delete_question) .setMessage(R.string.delete_message) - .setPositiveButton(R.string.delete + .setPositiveButton( + R.string.delete ) { _, _ -> - listener.onDialogPositiveClick(this, position) + listener.onDialogPositiveClick(position) } - .setNegativeButton(R.string.cancel + .setNegativeButton( + R.string.cancel ) { _, _ -> dialog?.cancel() } diff --git a/app/src/main/java/ru/karasevm/privatednstoggle/DnsTileService.kt b/app/src/main/java/ru/karasevm/privatednstoggle/DnsTileService.kt index 1ec6111..ad16ece 100644 --- a/app/src/main/java/ru/karasevm/privatednstoggle/DnsTileService.kt +++ b/app/src/main/java/ru/karasevm/privatednstoggle/DnsTileService.kt @@ -210,7 +210,7 @@ class DnsTileService : TileService() { val index = items.indexOf(currentAddress) if (index == -1 || currentAddress == null) { - return items[0] + return items[0] } if (index == items.size - 1) { return null diff --git a/app/src/main/java/ru/karasevm/privatednstoggle/MainActivity.kt b/app/src/main/java/ru/karasevm/privatednstoggle/MainActivity.kt index 3556302..84c3b63 100644 --- a/app/src/main/java/ru/karasevm/privatednstoggle/MainActivity.kt +++ b/app/src/main/java/ru/karasevm/privatednstoggle/MainActivity.kt @@ -14,7 +14,6 @@ import android.util.Log import android.view.Menu import android.widget.Toast import androidx.appcompat.app.AppCompatActivity -import androidx.fragment.app.DialogFragment import androidx.recyclerview.widget.LinearLayoutManager import org.lsposed.hiddenapibypass.HiddenApiBypass import rikka.shizuku.Shizuku @@ -67,7 +66,10 @@ class MainActivity : AppCompatActivity(), AddServerDialogFragment.NoticeDialogLi binding.topAppBar.setOnMenuItemClickListener { item -> when (item.itemId) { R.id.privacy_policy -> { - val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse("https://karasevm.github.io/PrivateDNSAndroid/privacy_policy")) + val browserIntent = Intent( + Intent.ACTION_VIEW, + Uri.parse("https://karasevm.github.io/PrivateDNSAndroid/privacy_policy") + ) startActivity(browserIntent) true } @@ -128,7 +130,7 @@ class MainActivity : AppCompatActivity(), AddServerDialogFragment.NoticeDialogLi Shizuku.removeRequestPermissionResultListener(this::onRequestPermissionResult) } - override fun onDialogPositiveClick(dialog: DialogFragment, server: String) { + override fun onDialogPositiveClick(server: String) { if (server.isEmpty()) { Toast.makeText(this, R.string.server_length_error, Toast.LENGTH_SHORT).show() return @@ -139,7 +141,7 @@ class MainActivity : AppCompatActivity(), AddServerDialogFragment.NoticeDialogLi sharedPrefs.dns_servers = items } - override fun onDialogPositiveClick(dialog: DialogFragment,position: Int) { + override fun onDialogPositiveClick(position: Int) { items.removeAt(position) adapter.setData(items.toMutableList()) adapter.notifyItemRemoved(position) @@ -194,7 +196,9 @@ class MainActivity : AppCompatActivity(), AddServerDialogFragment.NoticeDialogLi finish() } } + } + @SuppressLint("PrivateApi") override fun onRequestPermissionResult(requestCode: Int, grantResult: Int) { val isGranted = grantResult == PackageManager.PERMISSION_GRANTED @@ -202,7 +206,10 @@ class MainActivity : AppCompatActivity(), AddServerDialogFragment.NoticeDialogLi if (isGranted) { grantPermissionWithShizuku() } else if (checkSelfPermission(Manifest.permission.WRITE_SECURE_SETTINGS) != PackageManager.PERMISSION_GRANTED) { - val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse("https://karasevm.github.io/PrivateDNSAndroid/")) + val browserIntent = Intent( + Intent.ACTION_VIEW, + Uri.parse("https://karasevm.github.io/PrivateDNSAndroid/") + ) startActivity(browserIntent) finish() } diff --git a/app/src/main/java/ru/karasevm/privatednstoggle/RecyclerAdapter.kt b/app/src/main/java/ru/karasevm/privatednstoggle/RecyclerAdapter.kt index e0949a8..03bdda4 100644 --- a/app/src/main/java/ru/karasevm/privatednstoggle/RecyclerAdapter.kt +++ b/app/src/main/java/ru/karasevm/privatednstoggle/RecyclerAdapter.kt @@ -1,19 +1,19 @@ package ru.karasevm.privatednstoggle -import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView -import java.util.* -class RecyclerAdapter(val items: MutableList): RecyclerView.Adapter() { +class RecyclerAdapter(private val items: MutableList) : + RecyclerView.Adapter() { var onItemClick: ((Int) -> Unit)? = null override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerAdapter.ViewHolder { - val view = LayoutInflater.from(parent.context).inflate(R.layout.recyclerview_row, parent, false) + val view = + LayoutInflater.from(parent.context).inflate(R.layout.recyclerview_row, parent, false) val vh = ViewHolder(view) return vh } @@ -30,15 +30,16 @@ class RecyclerAdapter(val items: MutableList): RecyclerView.Adapter) { items.run { clear() diff --git a/app/src/main/java/ru/karasevm/privatednstoggle/utils/PrivateDNSUtils.kt b/app/src/main/java/ru/karasevm/privatednstoggle/utils/PrivateDNSUtils.kt index fccef98..5f9459d 100644 --- a/app/src/main/java/ru/karasevm/privatednstoggle/utils/PrivateDNSUtils.kt +++ b/app/src/main/java/ru/karasevm/privatednstoggle/utils/PrivateDNSUtils.kt @@ -9,6 +9,7 @@ import android.widget.Toast import androidx.core.content.ContextCompat.checkSelfPermission import ru.karasevm.privatednstoggle.R +@Suppress("unused") object PrivateDNSUtils { const val DNS_MODE_OFF = "off" const val DNS_MODE_AUTO = "opportunistic" diff --git a/app/src/main/res/drawable-anydpi/ic_tile_default.xml b/app/src/main/res/drawable-anydpi/ic_tile_default.xml deleted file mode 100644 index 2af57be..0000000 --- a/app/src/main/res/drawable-anydpi/ic_tile_default.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/app/src/main/res/drawable-hdpi/ic_tile_default.png b/app/src/main/res/drawable-hdpi/ic_tile_default.png deleted file mode 100644 index 9809f36c16c98312b50b42a942fb95755ba0cc54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmV-_0f7FAP)ROClZiN=LXj%Rid28n{o!5w zj^Jmr*;Fc(I{=QRcT%gKqF8_dDM39&SydowzB7#ys8iqKJP5*knU4D0B3PrncK?N- z&u7ING>G4R;?uO3dZ4<~&=Pq;9Px>(X{#Q`KJUpFw4M!LoEr67pRihsIDM{@*0Ujj zMm%^!#Xy`c=7JTR%qI!ujHb@?s{SHa<2TbcCn9_bJ1jX}b6CSI;-2zpo1@&}s34v{ z{?`0lQd;#F#RDMyIWOud&Mg$P%<+IYVIMcOT4y-TGw+{4dN7`~KH&k#2d!rVar5&2 zIGbLm?vr;wdI1l#M1GK7u+Q-DjjoX$#4F?~&6NQq!Z4T*))x=LU`>DWoizsXO&&17^gVl-uG|U>w*b5t5Oe}))PqEmaj7(EBil3sEM_hx!-jjs*m4>(3(o3l( uLrA8^g4*U}Bmewd1Mxo`jHt7*l`NiAH++7kA@|Gx0000Ls9FgZNiWoSsBjG5~WV8(|nUr2) z%i3bd%`ar=#F`W}n;8>XR}3U1kZeH9eQafW9mC@LCyI65ZJIELxeH&Atj^EMWSw znxp0MZh-Yhgf;nJ%jb%29fSN5YFJkUOm`OjCZ7FNl>eTtnv{-p#eh|TcNIlV zzFkA#yn1Eh1A*r)3hWs1&aM^`dA?PERpNkrHF9+Dcpic!qD^`k`~60L(;jGeoI8*| xnRcvmi<)Kks0kDV)(6_uX++jlDwRsb1z&4f0(pi7j}b3b2Lk$YYuUFOUshARD|uHh6*N$;2Nd z_7bOe<@o52#1DykK1P*fqR%*Al$1fD<6~AqCU%eIg<;Qp{GuT=gLge4x=I=iWT|&}*JWq~rV?NZ*gPoO|;So?a;(=jT9Z z7mhR0b8Zo$g0MxGSap!TXJ}v4#&;`=6k*4eiD;2J9@7+r8+EFGnG6ySJhmAy`WK=r zYLBoDa#4>|Jft7bmOoxSygTIQV1=9uB=};-x^HXDpCx2n`P>S$2J9FW$CK2^gOOPu-k;TSJ4Fa zN?LP%bMOUwO#cnSB{9rI&$*WfwU|}bwky*2j05Lhf)5tyIrpaN2j&@!w0BwbZ5=gT zVhZVoZ_&@jGVUiID6;1Kn+JPGagWTEqZ>nt4K}%{rQHOVvVos`=_@N z^UAtG#}Ixt{z?ZvXK|3eVP8wPOg^l9P+f;h TRs~$V00000NkvXXu0mjfygoz7 diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 2a4e3e9..3b78639 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -10,17 +10,17 @@ android:id="@+id/topAppBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toRightOf="parent" - app:layout_constraintRight_toLeftOf="parent"> + app:layout_constraintRight_toLeftOf="parent" + app:layout_constraintTop_toTopOf="parent"> + app:menu="@menu/menu_main" + app:title="@string/app_name" /> diff --git a/app/src/main/res/layout/dialog_add.xml b/app/src/main/res/layout/dialog_add.xml index 1cec0bd..9b34d93 100644 --- a/app/src/main/res/layout/dialog_add.xml +++ b/app/src/main/res/layout/dialog_add.xml @@ -8,21 +8,20 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" + android:hint="@string/add_edittext_hint" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - android:hint="@string/add_edittext_hint"> + app:layout_constraintTop_toTopOf="parent"> + android:inputType="textNoSuggestions" + android:maxLines="1" /> \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_options.xml b/app/src/main/res/layout/dialog_options.xml index 7971dd4..efe0048 100644 --- a/app/src/main/res/layout/dialog_options.xml +++ b/app/src/main/res/layout/dialog_options.xml @@ -4,8 +4,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingStart="17dp" - android:paddingEnd="17dp" - android:paddingTop="10dp"> + android:paddingTop="10dp" + android:paddingEnd="17dp"> + android:focusable="true" + android:foreground="?android:attr/selectableItemBackground"> + app:layout_constraintTop_toTopOf="parent" /> \ No newline at end of file diff --git a/app/src/main/res/layout/sheet_dns_selector.xml b/app/src/main/res/layout/sheet_dns_selector.xml index 2c1eb13..bbe5b42 100644 --- a/app/src/main/res/layout/sheet_dns_selector.xml +++ b/app/src/main/res/layout/sheet_dns_selector.xml @@ -7,10 +7,10 @@ + android:layout_height="wrap_content" + android:orientation="vertical" + app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"> >-WCte*L<;R-;jiTGXNzwfK7> z+PaGqL4gGLB=^$0a*^oduL7nl*f)`an!Yz%Yx>^|tmvP-PXAuBotygFp8%U@Y#)Fx zj(qg2%rvz2PbAj#PfgVHPZEZ{3I7N4Wop9O|2$Fbs|RIne%kupOxlSVpAINcpR7GE zr>KiF_Lo@(>vBUM~;Ip;m_!woUZPDMJ(;3d&EAwRc3^>Ri|HG30#6Erfp|m z6HC{?hOgcb6jXWg*-b$i-+`Zlji7N-+A%T$ zU%eyf)U#W5g#k=Z=g3|7>K#ERpWe1B3|xXrI)+E#t4fd@DnTxw6669ZK`!7A1eJB& zC%M}$kW||Nl2A}jVlt~pRBADOt|KYc`$$g1r&Q)AQbQe)w_PxnDnYh0uZg+&Dv8fq zM}i~ciB=axXkQMY)#*uaL@bHRSwjkTd`YTL|IO+18cUHNOXnzw&#xu=kVuXUSI`BA zkvK|fY5Opz*DEX~f?!Bq<3$o0ZQ>jkpw;RqaS=ox9M08=5fYWebU~-QACIt92*Q-g z*>avauaP;c4~-;-^fHpZ`Vh%$`kWN)9U_G-gCu|Z07+Z%J~5<~G8wKN)diiA1`F z>lPN9pz71FNP@Xu;*gHU7jyGh(8pw~C!dq(WfiP0JU)Xi_xl;}jCau)R#J89j~Sig ztSxkibz*d(FM0niu^0s5OJho<*0j-_#>%FWMsS9XitNoFOQuBjrjO`*EhVX(ktMvh z6IagaAT!$sZJWL6L#9j6i`A`Q*A>ndm+&P)$WOBBdq{Xf7SZWLBwtuSZ1zfS-nLIF-JtQ_^>6w2^K}R@0oS zi&$v3?J{sHNlO;7K;?j3E2=f{z`J2oeJqfaOOXuuUw|3Bfi2VR7kn>i;5brxZch zCWsTYxa?J^=Zu~YjtQcBwx$8LTmyI(>vTns7)VyLHk_5D0UC{#nCQYFkyVNy?6NhY zuajAOiZjv~91(GUZy=I2mtBgGz6<`-nNT#GD;DIh@$uf_uwW#%5&bawts@!8YmS){Z0Nnv( z(FSeh`kVpRNrIg~`s%}T^-2*0rMSP+h&sk7a+JR~0`9>i=R|G-ZO~S(Z$4n(78aK_ z+a8&J0XwXlkx_~u03AtgALu3(!5inxazi;#qi~dgLp2lKfVu<7vLg`>rn0eorz8|0 zS*$$%WKKp&f{=`1wb6*bGBqY9tA>;uyzP-A?;2IzFW9ZDc$9*uWowT~WtAids5tr? zF{D|zsem&eoB|@_#zqlWIlchSt3g6UaxS}(729M;w@62iF9-s#2g6y7Mn;kV97nLr zKp$YfqYq3iN2i%SAqYVFo>;g+a{RF*K;t4#Ba8Qc5BoX0eMS&~;GEZViA_2CO{kVP z*hj$h3Na+nEV`Xk9DB^!x+nzA64g7#&Z#qMPm;uAq7 zK0f4ZqkZ@;eD#VTYaoxHKKsw1 zEDIVz$Da%a`VZ=g58k*9U%euzxb4y)LJ$=gn6wAzwmWaBkLh+_J@`>CD=iN}P;6}O%G%P7k+(RA!lo38 z{Tr{@omt7jTmQx6*w({GI%V9SUXqek7e@b0r6|v=?>S%4eD&wT*1_M+E#EvUY8`qk zhI#Lx07*qoM6N<$f;UqQ(*OVf diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index b0a456cf32593bbf90abdd5e7339f6d6ad4388e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1513 zcmV1Am4Eu{^((S^%MO%_#v z;4Iwfn?`38bH`<5Sge9I5{6d_>y0ZnGp*uo$7Bkz_-xdtWjc*-05KB?x%@B9@I z@Gx{Hk`2az1iY|#zsmb&t(0p}5(;hIAJ$;URk3q~L6eCf0sGH6q+ElNR6x3}KxOAy zr<7|@+7yr=q)dQk{5J4oKL9_v$Z~oPZL<+1U4Uy~1}skuf!_K!sPj#r(iK6ru>$g| zc3}B1xQDKX^;ru^6TpqkK}nMrK{60@&ruWfr6S=|I8x_YT6i~rc>X8!L}Q+a*Qabn&rmY z4p#0O_=>d?`WS4x*f?QhCrkhuYdn4ptQ{|d(a`}iMJAh3oy9FWXyv}Mpv*1+Ti4s* z9{!Hy^i1VcPwn!`n*2V2K4bTu4I5hTO3);W7LvMkm zzyg^X9fMlGMTAgB_0*2qn|BV1tC*F8QLBtYr=LW!^YIlx2IWdMGqhIZDBboP=*%u~ zJaZu`sGizUd)oUnW+*89HV%9lKLND-8MM@@oS?lP3L;ie-5ORd1=R}z_|XM+YMWa6 zSTxF1=ZYe9rUu|n&c-gF5yPHJSIh>@uWUiX(L-L40Nh$tov(q$P{wj$t4Rd}fubAQ zqC<~t(N?vz4#zIQ*?ST9ZXO$yB2bv&C<4f-X;!J9v33tW|Gc(<0BGxw&rm-)6uHq` zu?cYWe1uD@V*{FZo(MA-O#p$!7uI*OTqs*l0HLVyAhV~`8o+t?78Nu0iH8ug1S72`_RVnfjwwC0Aj*gejD4Ytb1I56}T8z6{YVb?cKz`d0h|5GYR5S&$JBkti4)d)cas z9O5N_0iDc#_&gLg8~|;xjlJ`#a$^U*H`8s^-t`W<>t!*k?089SQH|mDtU(9$W@cN4#Nr*pB1^l+@YL3^G8^}!)^%E0I{z^rTrNQCo zy)^3{nO#NYe{-ki?^B*k2sYg#bE}S?={c>bj<%0tZ2^@04K#>~JS)Gu$nn&EqoX4w zAlt~HowzVg>yj4|HFS8h@Rt^$OEI*J%ZABI5;+Sucu|>3M0eQDlpg6H3bKgcTP**w P00000NkvXXu0mjf$-vL9 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 4f1fa217cfe8403728307025bbf1f099dd4a731c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3059 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 LMj|Q|t;7BY1Cq$b diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 1cd6644b13c4bb36d8e15464221e5076a3986806..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6327 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 diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap/ic_launcher.xml similarity index 91% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to app/src/main/res/mipmap/ic_launcher.xml index 7005cb8..5c84730 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app/src/main/res/mipmap/ic_launcher.xml @@ -1,6 +1,6 @@ - - + + - \ No newline at end of file + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 6b40555..3643757 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,8 +1,8 @@ - + #498EE8 - #6750A4 + #6750A4 #6750A4 #625B71 #7D5260 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e0987b3..5fe367e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,9 +8,7 @@ Add Server Add Privacy Policy - Enable auto Select Server - Automatic (opportunistic) DNS mode will now be available in the tile Done Cancel Delete