Skip to content

Commit 18cdd25

Browse files
author
isayan
committed
support Clear all selection
1 parent 11b1b68 commit 18cdd25

File tree

5 files changed

+64
-29
lines changed

5 files changed

+64
-29
lines changed

android_app/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ android {
66
applicationId "tun.proxy"
77
minSdkVersion 21
88
targetSdkVersion 27
9-
versionCode 100014
9+
versionCode 100015
1010
versionName VERSION_NAME
1111
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1212
externalNativeBuild {

android_app/app/src/main/java/tun/proxy/SimplePreferenceFragment.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package tun.proxy;
22

3+
import android.app.AlertDialog;
34
import android.annotation.TargetApi;
45
import android.content.Context;
6+
import android.content.DialogInterface;
57
import android.content.Intent;
68
import android.content.pm.PackageInfo;
79
import android.content.pm.PackageManager;
@@ -29,6 +31,7 @@ public class SimplePreferenceFragment extends PreferenceFragment
2931
public static final String VPN_CONNECTION_MODE = "vpn_connection_mode";
3032
public static final String VPN_DISALLOWED_APPLICATION_LIST = "vpn_disallowed_application_list";
3133
public static final String VPN_ALLOWED_APPLICATION_LIST = "vpn_allowed_application_list";
34+
public static final String VPN_CLEAR_ALL_SELECTION = "vpn_clear_all_selection";
3235

3336
@Override
3437
public void onCreate(Bundle savedInstanceState) {
@@ -40,8 +43,10 @@ public void onCreate(Bundle savedInstanceState) {
4043
final ListPreference prefPackage = (ListPreference) this.findPreference(VPN_CONNECTION_MODE);
4144
final PreferenceScreen prefDisallow = (PreferenceScreen) findPreference(VPN_DISALLOWED_APPLICATION_LIST);
4245
final PreferenceScreen prefAllow = (PreferenceScreen) findPreference(VPN_ALLOWED_APPLICATION_LIST);
46+
final PreferenceScreen clearAllSelection = (PreferenceScreen) findPreference(VPN_CLEAR_ALL_SELECTION);
4347
prefDisallow.setOnPreferenceClickListener(this);
4448
prefAllow.setOnPreferenceClickListener(this);
49+
clearAllSelection.setOnPreferenceClickListener(this);
4550

4651
prefPackage.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
4752
@Override
@@ -63,6 +68,18 @@ public boolean onPreferenceChange(Preference preference, Object value) {
6368
prefDisallow.setEnabled(MyApplication.VPNMode.DISALLOW.name().equals(prefPackage.getValue()));
6469
prefAllow.setEnabled(MyApplication.VPNMode.ALLOW.name().equals(prefPackage.getValue()));
6570

71+
updateMenuItem();
72+
73+
}
74+
75+
private void updateMenuItem() {
76+
final PreferenceScreen prefDisallow = (PreferenceScreen) findPreference(VPN_DISALLOWED_APPLICATION_LIST);
77+
final PreferenceScreen prefAllow = (PreferenceScreen) findPreference(VPN_ALLOWED_APPLICATION_LIST);
78+
79+
int countDisallow = MyApplication.getInstance().loadVPNApplication(MyApplication.VPNMode.DISALLOW).size();
80+
int countAllow = MyApplication.getInstance().loadVPNApplication(MyApplication.VPNMode.ALLOW).size();
81+
prefDisallow.setTitle(getString(R.string.pref_disallowed_application_list) + String.format(" (%d)",countDisallow));
82+
prefAllow.setTitle(getString(R.string.pref_allowed_application_list) + String.format(" (%d)",countAllow));
6683
}
6784

6885
@Override
@@ -87,10 +104,29 @@ public boolean onPreferenceClick(Preference preference) {
87104
case VPN_ALLOWED_APPLICATION_LIST:
88105
transitionFragment(PackageListPreferenceFragment.newInstance(MyApplication.VPNMode.ALLOW));
89106
break;
107+
case VPN_CLEAR_ALL_SELECTION:
108+
new AlertDialog.Builder(getActivity())
109+
.setTitle(getString(R.string.title_activity_settings))
110+
.setMessage(getString(R.string.pref_dialog_clear_all_application_msg))
111+
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
112+
@Override
113+
public void onClick(DialogInterface dialog, int which) {
114+
Set set = new HashSet();
115+
MyApplication.getInstance().storeVPNApplication(MyApplication.VPNMode.ALLOW, set);
116+
MyApplication.getInstance().storeVPNApplication(MyApplication.VPNMode.DISALLOW, set);
117+
updateMenuItem();
118+
}
119+
})
120+
.setNegativeButton("Cancel", null)
121+
.show();
122+
123+
break;
90124
}
91125
return false;
92126
}
93127

128+
129+
94130
private void transitionFragment(PreferenceFragment nextPreferenceFragment) {
95131
// replaceによるFragmentの切り替えと、addToBackStackで戻るボタンを押した時に前のFragmentに戻るようにする
96132
getFragmentManager()

android_app/app/src/main/res/values/strings.xml

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
<string name="title_show_about">About</string>
1515
<string name="title_activity_settings">Settings</string>
1616

17-
17+
<!-- Category -->
1818
<string name="search">Search</string>
1919

20-
<!-- Category -->
2120
<string name="pref_header_allowed_application_list">Allowed application list</string>
2221
<string name="pref_header_disallowed_application_list">Disallowed application list</string>
22+
<string name="pref_dialog_clear_all_application_msg">Clear all selections of Allowed / Disallowed application list</string>
2323

2424
<string name="pref_vpn_connection_mode">Allowed / Disallowed Application</string>
2525
<string-array name="pref_vpn_connection_name">
@@ -33,23 +33,18 @@
3333

3434
<string name="pref_allowed_application_list">allowed application list</string>
3535

36-
<string-array name="pref_allowed_application_name">
37-
</string-array>
38-
<string-array name="pref_allowed_application_value">
39-
</string-array>
36+
<string-array name="pref_allowed_application_name"> </string-array>
37+
<string-array name="pref_allowed_application_value"></string-array>
4038

4139
<string name="pref_disallowed_application_list">disallowed application list</string>
42-
<string-array name="pref_disallowed_application_name">
43-
</string-array>
44-
<string-array name="pref_disallowed_application_value">
45-
</string-array>
40+
41+
<string-array name="pref_disallowed_application_name"></string-array>
42+
<string-array name="pref_disallowed_application_value"></string-array>
4643

4744
<string name="pref_trusted_ca_list">trusted CA list</string>
48-
<string-array name="pref_trusted_ca_name">
49-
</string-array>
5045

51-
<string-array name="pref_trusted_ca_value">
52-
</string-array>
46+
<string-array name="pref_trusted_ca_name"></string-array>
47+
<string-array name="pref_trusted_ca_value"></string-array>
5348

5449

5550
</resources>

android_app/app/src/main/res/xml/preferences.xml

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,23 @@
2727
android:layout_width="wrap_content"
2828
android:layout_height="wrap_content" />
2929

30-
<!--
31-
<MultiSelectListPreference
32-
android:key="vpn_allowed_application"
33-
android:title="@string/pref_header_allowed_package_list"
34-
android:entries="@array/pref_allowed_application_name"
35-
android:entryValues="@array/pref_allowed_application_value" />
36-
37-
<MultiSelectListPreference
38-
android:key="vpn_disallowed_application"
39-
android:title="@string/pref_header_disallowed_package_list"
40-
android:entries="@array/pref_disallowed_application_name"
41-
android:entryValues="@array/pref_disallowed_application_value" />
42-
-->
30+
<PreferenceScreen
31+
android:key="vpn_clear_all_selection"
32+
android:title="Clear all selection" />
33+
34+
<!--
35+
<MultiSelectListPreference
36+
android:key="vpn_allowed_application"
37+
android:title="@string/pref_header_allowed_package_list"
38+
android:entries="@array/pref_allowed_application_name"
39+
android:entryValues="@array/pref_allowed_application_value" />
40+
41+
<MultiSelectListPreference
42+
android:key="vpn_disallowed_application"
43+
android:title="@string/pref_header_disallowed_package_list"
44+
android:entries="@array/pref_disallowed_application_name"
45+
android:entryValues="@array/pref_disallowed_application_value" />
46+
-->
4347
</PreferenceCategory>
4448
<!--
4549
<PreferenceCategory

android_app/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ org.gradle.jvmargs=-Xmx1536m
1313
# org.gradle.parallel=true
1414

1515
APP_NAME=TunProxy
16-
VERSION_NAME=1.1.4
16+
VERSION_NAME=1.1.5
1717

1818
productKeyStore=../androidkeystore.jks
1919
productKeyAlias=key0

0 commit comments

Comments
 (0)