settings draft

This commit is contained in:
Kr328 committed 2019-12-01 23:41:39 +08:00
1 parent afbebb4c8b
commit e8a48c0f0d
22 files changed
+403 -148

No files matched your search

+1
View File
@@ -45,6 +45,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta3'
implementation "androidx.room:room-runtime:$room_version"
implementation "androidx.preference:preference-ktx:1.1.0"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.14.0"
implementation "com.charleskorn.kaml:kaml:0.14.0"
implementation "com.google.android.material:material:1.2.0-alpha02"
+12
View File
@@ -47,5 +47,17 @@
android:label="@string/clash_proxy_manage"
android:exported="false"
android:screenOrientation="portrait"/>
<activity android:name=".SettingMainActivity"
android:label="@string/application_setting_title"
android:exported="false"
android:screenOrientation="portrait"/>
<activity android:name=".SettingProxyActivity"
android:label="@string/application_setting_proxy"
android:exported="false"
android:screenOrientation="portrait"/>
<activity android:name=".SettingAccessActivity"
android:label="@string/proxy_setting_vpn_setting_access_control"
android:exported="false"
android:screenOrientation="portrait"/>
</application>
</manifest>
@@ -36,6 +36,10 @@ class MainActivity : BaseActivity() {
startActivity(Intent(this, ProfilesActivity::class.java))
}
activity_main_clash_settings.setOnClickListener {
startActivity(Intent(this, SettingMainActivity::class.java))
}
activity_main_clash_status_icon.setImageResource(R.drawable.ic_clash_stopped)
activity_main_clash_status_title.text = getString(R.string.clash_status_stopped)
activity_main_clash_status_summary.text = getString(R.string.clash_status_click_to_start)
@@ -0,0 +1,41 @@
package com.github.kr328.clash
import android.os.Bundle
import android.view.View
import kotlinx.android.synthetic.main.activity_setting_access.*
class SettingAccessActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_setting_access)
setSupportActionBar(activity_setting_access_toolbar)
activity_setting_access_allow_all.setOnClickListener {
activity_setting_access_allow_all.isChecked = true
activity_setting_access_allow.isChecked = false
activity_setting_access_disallow.isChecked = false
activity_setting_access_divider.visibility = View.GONE
activity_setting_access_app_list.visibility = View.GONE
}
activity_setting_access_allow.setOnClickListener {
activity_setting_access_allow_all.isChecked = false
activity_setting_access_allow.isChecked = true
activity_setting_access_disallow.isChecked = false
activity_setting_access_divider.visibility = View.VISIBLE
activity_setting_access_app_list.visibility = View.VISIBLE
}
activity_setting_access_disallow.setOnClickListener {
activity_setting_access_allow_all.isChecked = false
activity_setting_access_allow.isChecked = false
activity_setting_access_disallow.isChecked = true
activity_setting_access_divider.visibility = View.VISIBLE
activity_setting_access_app_list.visibility = View.VISIBLE
}
}
}
@@ -0,0 +1,20 @@
package com.github.kr328.clash
import android.os.Bundle
import androidx.preference.PreferenceFragmentCompat
import kotlinx.android.synthetic.main.activity_setting_main.*
class SettingMainActivity : BaseActivity() {
class Fragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.setting_main, rootKey)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_setting_main)
setSupportActionBar(activity_setting_main_toolbar)
}
}
@@ -0,0 +1,37 @@
package com.github.kr328.clash
import android.os.Bundle
import android.view.View
import androidx.preference.PreferenceFragmentCompat
import kotlinx.android.synthetic.main.activity_setting_proxy.*
class SettingProxyActivity : BaseActivity() {
class Fragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.setting_proxy, rootKey)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_setting_proxy)
setSupportActionBar(activity_setting_proxy_toolbar)
activity_setting_proxy_vpn_mode.setOnClickListener {
activity_setting_proxy_vpn_mode.isChecked = true
activity_setting_proxy_proxy_only_mode.isChecked = false
activity_setting_proxy_divider.visibility = View.VISIBLE
activity_setting_proxy_content.visibility = View.VISIBLE
}
activity_setting_proxy_proxy_only_mode.setOnClickListener {
activity_setting_proxy_vpn_mode.isChecked = false
activity_setting_proxy_proxy_only_mode.isChecked = true
activity_setting_proxy_divider.visibility = View.GONE
activity_setting_proxy_content.visibility = View.GONE
}
}
}
@@ -79,7 +79,7 @@ class RadioFatItem @JvmOverloads constructor(
operationClickable = findViewById(R.id.view_radio_fat_item_operation_clickable)
}
context.theme.obtainStyledAttributes(attributeSet, R.styleable.FatItem, 0, 0).apply {
context.theme.obtainStyledAttributes(attributeSet, R.styleable.RadioFatItem, 0, 0).apply {
try {
title = getString(R.styleable.FatItem_title)
summary = getString(R.styleable.FatItem_summary)
+9
View File
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/colorAccent"
android:pathData="M19.35,10.04C18.67,6.59 15.64,4 12,4 9.11,4 6.6,5.64 5.35,8.04 2.34,8.36 0,10.91 0,14c0,3.31 2.69,6 6,6h13c2.76,0 5,-2.24 5,-5 0,-2.64 -2.05,-4.78 -4.65,-4.96z"/>
</vector>
+5 -5
View File
@@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM19,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.11,0 2,-0.9 2,-2L21,5c0,-1.1 -0.89,-2 -2,-2zM17.25,12c0,0.23 -0.02,0.46 -0.05,0.68l1.48,1.16c0.13,0.11 0.17,0.3 0.08,0.45l-1.4,2.42c-0.09,0.15 -0.27,0.21 -0.43,0.15l-1.74,-0.7c-0.36,0.28 -0.76,0.51 -1.18,0.69l-0.26,1.85c-0.03,0.17 -0.18,0.3 -0.35,0.3h-2.8c-0.17,0 -0.32,-0.13 -0.35,-0.29l-0.26,-1.85c-0.43,-0.18 -0.82,-0.41 -1.18,-0.69l-1.74,0.7c-0.16,0.06 -0.34,0 -0.43,-0.15l-1.4,-2.42c-0.09,-0.15 -0.05,-0.34 0.08,-0.45l1.48,-1.16c-0.03,-0.23 -0.05,-0.46 -0.05,-0.69 0,-0.23 0.02,-0.46 0.05,-0.68l-1.48,-1.16c-0.13,-0.11 -0.17,-0.3 -0.08,-0.45l1.4,-2.42c0.09,-0.15 0.27,-0.21 0.43,-0.15l1.74,0.7c0.36,-0.28 0.76,-0.51 1.18,-0.69l0.26,-1.85c0.03,-0.17 0.18,-0.3 0.35,-0.3h2.8c0.17,0 0.32,0.13 0.35,0.29l0.26,1.85c0.43,0.18 0.82,0.41 1.18,0.69l1.74,-0.7c0.16,-0.06 0.34,0 0.43,0.15l1.4,2.42c0.09,0.15 0.05,0.34 -0.08,0.45l-1.48,1.16c0.03,0.23 0.05,0.46 0.05,0.69z" />
android:pathData="M19.1,12.9a2.8,2.8 0,0 0,0.1 -0.9,2.8 2.8,0 0,0 -0.1,-0.9l2.1,-1.6a0.7,0.7 0,0 0,0.1 -0.6L19.4,5.5a0.7,0.7 0,0 0,-0.6 -0.2l-2.4,1a6.5,6.5 0,0 0,-1.6 -0.9l-0.4,-2.6a0.5,0.5 0,0 0,-0.5 -0.4H10.1a0.5,0.5 0,0 0,-0.5 0.4L9.3,5.4a5.6,5.6 0,0 0,-1.7 0.9l-2.4,-1a0.4,0.4 0,0 0,-0.5 0.2l-2,3.4c-0.1,0.2 0,0.4 0.2,0.6l2,1.6a2.8,2.8 0,0 0,-0.1 0.9,2.8 2.8,0 0,0 0.1,0.9L2.8,14.5a0.7,0.7 0,0 0,-0.1 0.6l1.9,3.4a0.7,0.7 0,0 0,0.6 0.2l2.4,-1a6.5,6.5 0,0 0,1.6 0.9l0.4,2.6a0.5,0.5 0,0 0,0.5 0.4h3.8a0.5,0.5 0,0 0,0.5 -0.4l0.3,-2.6a5.6,5.6 0,0 0,1.7 -0.9l2.4,1a0.4,0.4 0,0 0,0.5 -0.2l2,-3.4c0.1,-0.2 0,-0.4 -0.2,-0.6ZM12,15.6A3.6,3.6 0,1 1,15.6 12,3.6 3.6,0 0,1 12,15.6Z"/>
</vector>
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/colorAccent"
android:pathData="M19.1,12.9a2.8,2.8 0,0 0,0.1 -0.9,2.8 2.8,0 0,0 -0.1,-0.9l2.1,-1.6a0.7,0.7 0,0 0,0.1 -0.6L19.4,5.5a0.7,0.7 0,0 0,-0.6 -0.2l-2.4,1a6.5,6.5 0,0 0,-1.6 -0.9l-0.4,-2.6a0.5,0.5 0,0 0,-0.5 -0.4H10.1a0.5,0.5 0,0 0,-0.5 0.4L9.3,5.4a5.6,5.6 0,0 0,-1.7 0.9l-2.4,-1a0.4,0.4 0,0 0,-0.5 0.2l-2,3.4c-0.1,0.2 0,0.4 0.2,0.6l2,1.6a2.8,2.8 0,0 0,-0.1 0.9,2.8 2.8,0 0,0 0.1,0.9L2.8,14.5a0.7,0.7 0,0 0,-0.1 0.6l1.9,3.4a0.7,0.7 0,0 0,0.6 0.2l2.4,-1a6.5,6.5 0,0 0,1.6 0.9l0.4,2.6a0.5,0.5 0,0 0,0.5 0.4h3.8a0.5,0.5 0,0 0,0.5 -0.4l0.3,-2.6a5.6,5.6 0,0 0,1.7 -0.9l2.4,1a0.4,0.4 0,0 0,0.5 -0.2l2,-3.4c0.1,-0.2 0,-0.4 -0.2,-0.6ZM12,15.6A3.6,3.6 0,1 1,15.6 12,3.6 3.6,0 0,1 12,15.6Z"/>
</vector>
@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/activity_setting_access_toolbar"
android:elevation="4dp"
android:layout_width="match_parent"
android:layout_height="60dp" />
</com.google.android.material.appbar.AppBarLayout>
<com.github.kr328.clash.view.RadioFatItem
app:title="@string/access_setting_allow_all"
app:summary="@string/access_setting_allow_all_summary"
android:id="@+id/activity_setting_access_allow_all"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<com.github.kr328.clash.view.RadioFatItem
app:title="@string/access_setting_allow"
app:summary="@string/access_setting_allow_summary"
android:id="@+id/activity_setting_access_allow"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<com.github.kr328.clash.view.RadioFatItem
app:title="@string/access_setting_disallow"
app:summary="@string/access_setting_disallow_summary"
android:id="@+id/activity_setting_access_disallow"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<View
android:id="@+id/activity_setting_access_divider"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/lightGray"/>
<ListView
android:id="@+id/activity_setting_access_app_list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/activity_setting_main_toolbar"
android:elevation="4dp"
android:layout_width="match_parent"
android:layout_height="60dp" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.fragment.app.FragmentContainerView
android:id="@+id/activity_setting_main_content"
android:name="com.github.kr328.clash.SettingMainActivity$Fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/activity_setting_proxy_toolbar"
android:elevation="4dp"
android:layout_width="match_parent"
android:layout_height="60dp" />
</com.google.android.material.appbar.AppBarLayout>
<com.github.kr328.clash.view.RadioFatItem
android:id="@+id/activity_setting_proxy_vpn_mode"
android:layout_marginTop="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:title="@string/proxy_setting_vpn_mode"
app:summary="@string/proxy_setting_vpn_mode_summary"/>
<com.github.kr328.clash.view.RadioFatItem
android:id="@+id/activity_setting_proxy_proxy_only_mode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:title="@string/proxy_setting_proxy_mode"
app:summary="@string/proxy_setting_proxy_mode_summary"/>
<View
android:id="@+id/activity_setting_proxy_divider"
android:layout_marginTop="5dp"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/lightGray"/>
<androidx.fragment.app.FragmentContainerView
android:id="@+id/activity_setting_proxy_content"
android:name="com.github.kr328.clash.SettingProxyActivity$Fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_marginTop="5dp"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="70dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground">
<ImageView
android:id="@android:id/icon"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginTop="20dp"
android:layout_width="30dp"
android:layout_height="30dp"
android:contentDescription="@string/app_name" />
<TextView
android:textColor="@android:color/black"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:layout_toEndOf="@android:id/icon"
android:layout_centerVertical="true"
android:id="@android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_marginTop="5dp"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="70dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground">
<ImageView
android:id="@android:id/icon"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginTop="20dp"
android:layout_width="30dp"
android:layout_height="30dp"
android:contentDescription="@string/app_name" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@android:id/icon"
android:layout_centerVertical="true"
android:orientation="vertical">
<TextView
android:textColor="@android:color/black"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:id="@android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_marginTop="2dp"
android:id="@android:id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</RelativeLayout>
+2 -2
View File
@@ -12,7 +12,7 @@
android:layout_centerVertical="true"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="27.5dp" />
android:layout_marginStart="22.5dp" />
<LinearLayout
android:id="@+id/view_fat_item_text_container"
@@ -20,7 +20,7 @@
android:layout_height="wrap_content"
android:layout_toEndOf="@id/view_fat_item_icon"
android:layout_toStartOf="@id/view_fat_item_operation_clickable"
android:layout_marginStart="27.5dp"
android:layout_marginStart="22.5dp"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:orientation="vertical">
@@ -15,7 +15,7 @@
android:layout_centerVertical="true"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginStart="24dp" />
android:layout_marginStart="19dp" />
<LinearLayout
android:id="@+id/view_radio_fat_item_text_container"
@@ -23,7 +23,7 @@
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_toStartOf="@id/view_radio_fat_item_operation_clickable"
android:layout_marginStart="80dp"
android:layout_marginStart="70dp"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:orientation="vertical">
+16 -4
View File
@@ -1,9 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="icon" format="reference" />
<attr name="title" format="string" />
<attr name="summary" format="string" />
<attr name="operation" format="string" />
<declare-styleable name="FatItem">
<attr name="icon" format="reference" />
<attr name="title" format="string" />
<attr name="summary" format="string" />
<attr name="operation" format="string" />
<attr name="icon" />
<attr name="title" />
<attr name="summary" />
<attr name="operation" />
</declare-styleable>
<declare-styleable name="RadioFatItem">
<attr name="icon"/>
<attr name="title"/>
<attr name="summary"/>
<attr name="operation"/>
</declare-styleable>
</resources>
+21
View File
@@ -43,4 +43,25 @@
<string name="clash_import_file_invalid">Invalid Config: %s</string>
<string name="clash_proxy_group_title">%s - %s</string>
<string name="application_setting_title">Setting</string>
<string name="application_setting_application">Application</string>
<string name="application_setting_proxy">Proxy</string>
<string name="proxy_setting_vpn_mode">VPN Mode</string>
<string name="proxy_setting_vpn_mode_summary">Handle all system traffic</string>
<string name="proxy_setting_proxy_mode">Proxy Only Mode</string>
<string name="proxy_setting_proxy_mode_summary">Start clash core only</string>
<string name="proxy_setting_vpn_setting">VPN Settings</string>
<string name="proxy_setting_vpn_setting_access_control">Access Control</string>
<string name="proxy_setting_vpn_setting_access_control_summary">Configure access permission for apps</string>
<string name="proxy_setting_vpn_setting_ipv6">IPv6 Support</string>
<string name="proxy_setting_vpn_setting_ipv6_summary">Routing IPv6 traffic</string>
<string name="access_setting_allow_all">Allow All</string>
<string name="access_setting_allow_all_summary">Allow all apps access vpn</string>
<string name="access_setting_allow">Allow</string>
<string name="access_setting_allow_summary">Allow follow apps access vpn</string>
<string name="access_setting_disallow">Disallow</string>
<string name="access_setting_disallow_summary">Disallow follow apps access vpn</string>
</resources>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
android:title="@string/application_setting_proxy"
android:icon="@drawable/ic_cloud"
android:layout="@layout/preference_main_item">
<intent android:targetClass="com.github.kr328.clash.SettingProxyActivity"
android:targetPackage="com.github.kr328.clash" />
</Preference>
</PreferenceScreen>
+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory android:title="@string/proxy_setting_vpn_setting">
<CheckBoxPreference
android:title="@string/proxy_setting_vpn_setting_ipv6"
android:summary="@string/proxy_setting_vpn_setting_ipv6_summary" />
<Preference
android:layout="@layout/preference_proxy_item"
android:title="@string/proxy_setting_vpn_setting_access_control"
android:summary="@string/proxy_setting_vpn_setting_access_control_summary">
<intent android:targetPackage="com.github.kr328.clash"
android:targetClass="com.github.kr328.clash.SettingAccessActivity" />
</Preference>
</PreferenceCategory>
</PreferenceScreen>
+9 -134
View File
@@ -1,72 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- from https://github.com/shadowsocks/shadowsocks-android/blob/master/core/src/main/res/values/arrays.xml -->
<!-- exclude 10.0.0.0/8 192.168.0.0/16 172.18.0.0/16 -->
<string-array name="bypass_private_route" translatable="false">
<item>1.0.0.0/8</item>
<item>2.0.0.0/7</item>
<item>4.0.0.0/6</item>
<item>0.0.0.0/5</item>
<item>8.0.0.0/7</item>
<item>11.0.0.0/8</item>
<item>12.0.0.0/6</item>
<item>16.0.0.0/4</item>
<item>32.0.0.0/3</item>
<item>64.0.0.0/3</item>
<item>96.0.0.0/6</item>
<item>100.0.0.0/10</item>
<item>100.128.0.0/9</item>
<item>101.0.0.0/8</item>
<item>102.0.0.0/7</item>
<item>104.0.0.0/5</item>
<item>112.0.0.0/10</item>
<item>112.64.0.0/11</item>
<item>112.96.0.0/12</item>
<item>112.112.0.0/13</item>
<item>112.120.0.0/14</item>
<item>112.124.0.0/19</item>
<item>112.124.32.0/21</item>
<item>112.124.40.0/22</item>
<item>112.124.44.0/23</item>
<item>112.124.46.0/24</item>
<item>112.124.48.0/20</item>
<item>112.124.64.0/18</item>
<item>112.124.128.0/17</item>
<item>112.125.0.0/16</item>
<item>112.126.0.0/15</item>
<item>112.128.0.0/9</item>
<item>113.0.0.0/8</item>
<item>114.0.0.0/10</item>
<item>114.64.0.0/11</item>
<item>114.96.0.0/12</item>
<item>114.112.0.0/15</item>
<item>114.114.0.0/18</item>
<item>114.114.64.0/19</item>
<item>114.114.96.0/20</item>
<item>114.114.112.0/23</item>
<item>114.114.115.0/24</item>
<item>114.114.116.0/22</item>
<item>114.114.120.0/21</item>
<item>114.114.128.0/17</item>
<item>114.115.0.0/16</item>
<item>114.116.0.0/14</item>
<item>114.120.0.0/13</item>
<item>114.128.0.0/9</item>
<item>115.0.0.0/8</item>
<item>116.0.0.0/6</item>
<item>120.0.0.0/6</item>
<item>124.0.0.0/7</item>
<item>126.0.0.0/8</item>
<item>64.0.0.0/2</item>
<item>128.0.0.0/3</item>
<item>160.0.0.0/5</item>
<item>168.0.0.0/8</item>
<item>169.0.0.0/9</item>
<item>169.128.0.0/10</item>
<item>169.192.0.0/11</item>
<item>169.224.0.0/12</item>
<item>169.240.0.0/13</item>
<item>169.248.0.0/14</item>
<item>169.252.0.0/15</item>
<item>169.255.0.0/16</item>
<item>170.0.0.0/7</item>
<item>168.0.0.0/6</item>
<item>172.0.0.0/12</item>
<item>172.32.0.0/11</item>
<item>172.64.0.0/10</item>
@@ -74,39 +19,7 @@
<item>173.0.0.0/8</item>
<item>174.0.0.0/7</item>
<item>176.0.0.0/4</item>
<item>192.0.0.8/29</item>
<item>192.0.0.16/28</item>
<item>192.0.0.32/27</item>
<item>192.0.0.64/26</item>
<item>192.0.0.128/25</item>
<item>192.0.1.0/24</item>
<item>192.0.3.0/24</item>
<item>192.0.4.0/22</item>
<item>192.0.8.0/21</item>
<item>192.0.16.0/20</item>
<item>192.0.32.0/19</item>
<item>192.0.64.0/18</item>
<item>192.0.128.0/17</item>
<item>192.1.0.0/16</item>
<item>192.2.0.0/15</item>
<item>192.4.0.0/14</item>
<item>192.8.0.0/13</item>
<item>192.16.0.0/12</item>
<item>192.32.0.0/11</item>
<item>192.64.0.0/12</item>
<item>192.80.0.0/13</item>
<item>192.88.0.0/18</item>
<item>192.88.64.0/19</item>
<item>192.88.96.0/23</item>
<item>192.88.98.0/24</item>
<item>192.88.100.0/22</item>
<item>192.88.104.0/21</item>
<item>192.88.112.0/20</item>
<item>192.88.128.0/17</item>
<item>192.89.0.0/16</item>
<item>192.90.0.0/15</item>
<item>192.92.0.0/14</item>
<item>192.96.0.0/11</item>
<item>192.0.0.0/9</item>
<item>192.128.0.0/11</item>
<item>192.160.0.0/13</item>
<item>192.169.0.0/16</item>
@@ -116,52 +29,14 @@
<item>192.192.0.0/10</item>
<item>193.0.0.0/8</item>
<item>194.0.0.0/7</item>
<item>196.0.0.0/7</item>
<item>198.0.0.0/12</item>
<item>198.16.0.0/15</item>
<item>198.18.0.0/16</item>
<item>198.20.0.0/14</item>
<item>198.24.0.0/13</item>
<item>198.32.0.0/12</item>
<item>198.48.0.0/15</item>
<item>198.50.0.0/16</item>
<item>198.51.0.0/18</item>
<item>198.51.64.0/19</item>
<item>198.51.96.0/22</item>
<item>198.51.101.0/24</item>
<item>198.51.102.0/23</item>
<item>198.51.104.0/21</item>
<item>198.51.112.0/20</item>
<item>198.51.128.0/17</item>
<item>198.52.0.0/14</item>
<item>198.56.0.0/13</item>
<item>198.64.0.0/10</item>
<item>198.128.0.0/9</item>
<item>199.0.0.0/8</item>
<item>200.0.0.0/7</item>
<item>202.0.0.0/8</item>
<item>203.0.0.0/18</item>
<item>203.0.64.0/19</item>
<item>203.0.96.0/20</item>
<item>203.0.112.0/24</item>
<item>203.0.114.0/23</item>
<item>203.0.116.0/22</item>
<item>203.0.120.0/21</item>
<item>203.0.128.0/17</item>
<item>203.1.0.0/16</item>
<item>203.2.0.0/15</item>
<item>203.4.0.0/14</item>
<item>203.8.0.0/13</item>
<item>203.16.0.0/12</item>
<item>203.32.0.0/11</item>
<item>203.64.0.0/10</item>
<item>203.128.0.0/9</item>
<item>204.0.0.0/6</item>
<item>196.0.0.0/6</item>
<item>200.0.0.0/5</item>
<item>208.0.0.0/4</item>
<item>224.0.0.0/3</item>
</string-array>
<string-array name="default_bypass_application">
<item>com.github.kr328.clash</item>
<item>com.android.networkstack</item>
</string-array>
</resources>
</resources>