Skip to content

Commit af94d21

Browse files
committed
UI cleanup
1 parent 347f2f3 commit af94d21

7 files changed

Lines changed: 90 additions & 71 deletions

File tree

app/src/main/java/eu/faircode/netguard/ActivityMain.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -979,9 +979,6 @@ public boolean onOptionsItemSelected(MenuItem item) {
979979
else
980980
Toast.makeText(this, R.string.msg_unavailable, Toast.LENGTH_SHORT).show();
981981
return true;
982-
} else if (itemId == R.id.menu_insights) {
983-
startActivity(new Intent(this, net.kollnig.missioncontrol.InsightsActivity.class));
984-
return true;
985982
} else if (itemId == R.id.menu_settings) {
986983
startActivity(new Intent(this, ActivitySettings.class));
987984
return true;

app/src/main/java/eu/faircode/netguard/ActivitySettings.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,6 @@ protected void onPostCreate(Bundle savedInstanceState) {
132132

133133
PreferenceGroup cat_options = (PreferenceGroup) ((PreferenceGroup) screen.findPreference("screen_options"))
134134
.findPreference("category_options");
135-
PreferenceGroup cat_network = (PreferenceGroup) ((PreferenceGroup) screen
136-
.findPreference("screen_network_options")).findPreference("category_network_options");
137135
PreferenceGroup cat_advanced = (PreferenceGroup) ((PreferenceGroup) screen
138136
.findPreference("screen_advanced_options")).findPreference("category_advanced_options");
139137
PreferenceGroup cat_backup = (PreferenceGroup) ((PreferenceGroup) screen.findPreference("screen_backup"))
@@ -537,6 +535,13 @@ else if ("blocking_mode".equals(name)) {
537535
ServiceSinkhole.reload("changed " + name, this, false);
538536
}
539537

538+
else if ("log_logcat".equals(name)) {
539+
boolean research = prefs.getBoolean(name, false);
540+
if (prefs.getBoolean("sni_enabled", false) != research)
541+
prefs.edit().putBoolean("sni_enabled", research).apply();
542+
ServiceSinkhole.reload("changed " + name, this, false);
543+
}
544+
540545
else if ("sni_enabled".equals(name)) {
541546
ServiceSinkhole.reload("changed " + name, this, false);
542547
}

app/src/main/java/net/kollnig/missioncontrol/ActivityOnboarding.java

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -515,34 +515,54 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder vh, int position)
515515
holder.tvStandardDesc.setText(R.string.onboarding_blockingmode_standard_desc);
516516
holder.rbStrict.setText(R.string.onboarding_blockingmode_strict_label);
517517
holder.tvStrictDesc.setText(R.string.onboarding_blockingmode_strict_desc);
518+
holder.rbResearch.setText(R.string.onboarding_blockingmode_research_label);
519+
holder.tvResearchDesc.setText(R.string.onboarding_blockingmode_research_desc);
518520

519521
// Set current selection
520522
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(
521523
holder.itemView.getContext());
524+
boolean researchPreset = prefs.getBoolean("log_logcat", false)
525+
|| !prefs.getBoolean("filter", true);
522526
String currentMode = prefs.getString(BlockingMode.PREF_BLOCKING_MODE,
523527
BlockingMode.getDefaultMode());
524-
if (BlockingMode.MODE_MINIMAL.equals(currentMode))
528+
holder.rgBlockingMode.setOnCheckedChangeListener(null);
529+
if (researchPreset)
530+
holder.rbResearch.setChecked(true);
531+
else if (BlockingMode.MODE_MINIMAL.equals(currentMode))
525532
holder.rbMinimal.setChecked(true);
526533
else if (BlockingMode.MODE_STRICT.equals(currentMode))
527534
holder.rbStrict.setChecked(true);
528535
else
529536
holder.rbStandard.setChecked(true);
530537

531538
holder.rgBlockingMode.setOnCheckedChangeListener((group, checkedId) -> {
532-
String mode;
539+
String mode = BlockingMode.MODE_STANDARD;
540+
boolean enableFilter = true;
541+
boolean enableSni = false;
542+
boolean enableAdbLogging = false;
543+
boolean enableDotBlocking = true;
544+
533545
if (checkedId == R.id.rbMinimal)
534546
mode = BlockingMode.MODE_MINIMAL;
535547
else if (checkedId == R.id.rbStrict)
536548
mode = BlockingMode.MODE_STRICT;
537-
else
538-
mode = BlockingMode.MODE_STANDARD;
549+
else if (checkedId == R.id.rbResearch) {
550+
mode = BlockingMode.MODE_MINIMAL;
551+
enableSni = true;
552+
enableAdbLogging = true;
553+
enableDotBlocking = false;
554+
}
539555

540556
PreferenceManager.getDefaultSharedPreferences(holder.itemView.getContext())
541557
.edit()
542558
.putString(BlockingMode.PREF_BLOCKING_MODE, mode)
559+
.putBoolean("filter", enableFilter)
560+
.putBoolean("sni_enabled", enableSni)
561+
.putBoolean("log_logcat", enableAdbLogging)
562+
.putBoolean("block_dot", enableDotBlocking)
543563
.apply();
544564

545-
if (BlockingMode.MODE_MINIMAL.equals(mode)) {
565+
if (enableFilter && BlockingMode.MODE_MINIMAL.equals(mode)) {
546566
BlockingMode.applyMinimalModeExclusions(holder.itemView.getContext());
547567
}
548568
});
@@ -585,8 +605,8 @@ class BlockingModeViewHolder extends RecyclerView.ViewHolder {
585605
TextView tvTitle, tvDescription;
586606
android.widget.ImageView ivIcon;
587607
RadioGroup rgBlockingMode;
588-
RadioButton rbMinimal, rbStandard, rbStrict;
589-
TextView tvMinimalDesc, tvStandardDesc, tvStrictDesc;
608+
RadioButton rbMinimal, rbStandard, rbStrict, rbResearch;
609+
TextView tvMinimalDesc, tvStandardDesc, tvStrictDesc, tvResearchDesc;
590610

591611
BlockingModeViewHolder(@NonNull View itemView) {
592612
super(itemView);
@@ -597,9 +617,11 @@ class BlockingModeViewHolder extends RecyclerView.ViewHolder {
597617
rbMinimal = itemView.findViewById(R.id.rbMinimal);
598618
rbStandard = itemView.findViewById(R.id.rbStandard);
599619
rbStrict = itemView.findViewById(R.id.rbStrict);
620+
rbResearch = itemView.findViewById(R.id.rbResearch);
600621
tvMinimalDesc = itemView.findViewById(R.id.tvMinimalDesc);
601622
tvStandardDesc = itemView.findViewById(R.id.tvStandardDesc);
602623
tvStrictDesc = itemView.findViewById(R.id.tvStrictDesc);
624+
tvResearchDesc = itemView.findViewById(R.id.tvResearchDesc);
603625
}
604626
}
605627
}

app/src/main/res/layout/item_onboarding_blocking_mode.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,21 @@
8989
android:layout_marginBottom="12dp"
9090
android:textAppearance="@style/TextAppearance.AppCompat.Caption" />
9191

92+
<RadioButton
93+
android:id="@+id/rbResearch"
94+
android:layout_width="match_parent"
95+
android:layout_height="wrap_content"
96+
android:layout_marginBottom="4dp"
97+
android:textStyle="bold" />
98+
99+
<TextView
100+
android:id="@+id/tvResearchDesc"
101+
android:layout_width="match_parent"
102+
android:layout_height="wrap_content"
103+
android:layout_marginStart="32dp"
104+
android:layout_marginBottom="12dp"
105+
android:textAppearance="@style/TextAppearance.AppCompat.Caption" />
106+
92107
</RadioGroup>
93108

94109
</LinearLayout>

app/src/main/res/menu/main.xml

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,6 @@
6060
<item
6161
android:id="@+id/menu_log"
6262
android:title="@string/menu_log"/>
63-
<item
64-
android:id="@+id/menu_insights"
65-
android:title="@string/menu_insights"/>
66-
<item
67-
68-
android:id="@+id/menu_settings"
69-
android:visible="true"
70-
android:title="@string/menu_settings"/>
7163
<item
7264
android:id="@+id/menu_invite"
7365
android:visible="false"
@@ -78,18 +70,25 @@
7870
android:visible="false"/>
7971
<item
8072
android:id="@+id/menu_csv"
81-
android:title="@string/menu_csv"/>
73+
android:title="@string/menu_csv"
74+
android:visible="false"/>
8275
<item
8376
android:id="@+id/menu_troubleshooting"
8477
android:title="@string/menu_troubleshooting"/>
8578
<item
8679
android:id="@+id/menu_about"
87-
android:title="@string/menu_about"/>
80+
android:title="@string/menu_about"
81+
android:visible="false"/>
8882
<item
8983
android:id="@+id/menu_support"
90-
android:title="@string/menu_support" />
84+
android:title="@string/menu_support"
85+
android:visible="false" />
9186
<item
9287
android:id="@+id/menu_apps"
9388
android:title="@string/menu_apps"
9489
android:visible="false" />
90+
<item
91+
android:id="@+id/menu_settings"
92+
android:visible="true"
93+
android:title="@string/menu_settings"/>
9594
</menu>

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
<string name="setting_advanced_options">Advanced options (for experts)</string>
9393
<string name="setting_system">Show system apps</string>
9494
<string name="setting_log_app">Search new trackers</string>
95-
<string name="setting_log_logcat">Log transmissions to ADB</string>
95+
<string name="setting_log_logcat">Research</string>
9696
<string name="setting_filter">Block trackers</string>
9797
<string name="setting_filter_udp">Block trackers on UDP</string>
9898
<string name="setting_handover">Seamless VPN handover on reload</string>
@@ -161,7 +161,7 @@
161161
<string name="summary_validate">Domain name used to validate the internet connection at port 443 (https).</string>
162162
<string name="summary_socks5_enabled">Only TCP traffic will be sent to the proxy server</string>
163163
<string name="summary_watchdog">Periodically check if TrackerControl is still running (enter zero to disable this option). This might result in extra battery usage.</string>
164-
<string name="summary_log_logcat">Disables blocking. Communications (and identified trackers) are logged to device log. Retrieve with adb logcat with tag \'TC-Log\'.</string>
164+
<string name="summary_log_logcat">Research mode: identified trackers are logged to ADB and SNI extraction is enabled for better hostname detection. Retrieve logs with adb logcat using tag \'TC-Log\'.</string>
165165

166166
<string name="msg_sure">Are you sure?</string>
167167
<string name="msg_started">Looking for trackers...</string>
@@ -464,13 +464,15 @@ Sincerely,\n\n]]></string>
464464
<string name="blocking_mode_strict">Strict</string>
465465

466466
<string name="onboarding_blockingmode_title">Choose Blocking Mode</string>
467-
<string name="onboarding_blockingmode_desc">How aggressively should TrackerControl block trackers? Higher modes block more but will require you to manually exclude some apps. You can change this later in Settings, and find help under Troubleshooting in the app menu.</string>
467+
<string name="onboarding_blockingmode_desc">Choose how TrackerControl should handle trackers. Blocking modes stop trackers at different levels of aggressiveness; Research mode keeps blocking off and enables SNI extraction for measurement only. You can change this later in Settings.</string>
468468
<string name="onboarding_blockingmode_minimal_label">Minimal (Recommended for new users)</string>
469469
<string name="onboarding_blockingmode_minimal_desc">Blocks only confirmed trackers that are safe to block. Limited app breakage. Good for most users.</string>
470470
<string name="onboarding_blockingmode_standard_label">Standard</string>
471471
<string name="onboarding_blockingmode_standard_desc">Blocks all known trackers from multiple lists. Some apps will break and need to be manually excluded.</string>
472472
<string name="onboarding_blockingmode_strict_label">Strict</string>
473473
<string name="onboarding_blockingmode_strict_desc">Blocks everything including essential services and ambiguous domains. Significant app breakage — many apps will need to be manually excluded.</string>
474+
<string name="onboarding_blockingmode_research_label">Research</string>
475+
<string name="onboarding_blockingmode_research_desc">No tracker blocking. Logs transmissions to ADB and enables SNI extraction for better hostname detection. Research only: this leaks your IP address to tracker servers.</string>
474476

475477
<string name="exclude_vpn" translatable="false">Tracker Protection</string>
476478
<string name="exclude_vpn_explanation">Detects and blocks trackers for this app.</string>

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

Lines changed: 24 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -6,39 +6,43 @@
66
android:key="category_options"
77
android:layout="@layout/pref_cat"
88
android:title="@string/setting_options">
9-
<eu.faircode.netguard.SwitchPreference
10-
android:defaultValue="true"
11-
android:key="installed"
12-
android:summary="@string/summary_install"
13-
android:title="@string/setting_install" />
14-
<EditTextPreference
15-
android:defaultValue="10"
16-
android:inputType="number"
17-
android:key="pause"
18-
android:summary="@string/summary_pause" />
19-
<eu.faircode.netguard.SwitchPreference
20-
android:defaultValue="true"
21-
android:key="update_check"
22-
android:summary="@string/summary_update"
23-
android:title="@string/setting_update" />
249
<ListPreference
2510
android:defaultValue="standard"
2611
android:entries="@array/blockingModeNames"
2712
android:entryValues="@array/blockingModeValues"
2813
android:key="blocking_mode"
2914
android:summary="@string/summary_blocking_mode_standard"
3015
android:title="@string/setting_blocking_mode" />
16+
<eu.faircode.netguard.SwitchPreference
17+
android:defaultValue="false"
18+
android:key="log_logcat"
19+
android:title="@string/setting_log_logcat"
20+
android:summary="@string/summary_log_logcat" />
21+
<eu.faircode.netguard.SwitchPreference
22+
android:defaultValue="false"
23+
android:key="disable_on_call"
24+
android:summary="@string/summary_call"
25+
android:title="@string/setting_call" />
3126
</PreferenceCategory>
3227
</PreferenceScreen>
3328

3429
<PreferenceScreen
35-
android:key="screen_network_options"
36-
android:title="@string/setting_network_options">
30+
android:key="screen_advanced_options"
31+
android:title="@string/setting_advanced_options">
3732
<PreferenceCategory
38-
android:key="category_network_options"
33+
android:key="category_advanced_options"
3934
android:layout="@layout/pref_cat"
40-
android:title="@string/setting_network_options">
41-
35+
android:title="@string/setting_advanced_options">
36+
<EditTextPreference
37+
android:defaultValue="10"
38+
android:inputType="number"
39+
android:key="pause"
40+
android:summary="@string/summary_pause" />
41+
<eu.faircode.netguard.SwitchPreference
42+
android:defaultValue="true"
43+
android:key="update_check"
44+
android:summary="@string/summary_update"
45+
android:title="@string/setting_update" />
4246
<eu.faircode.netguard.SwitchPreference
4347
android:defaultValue="false"
4448
android:key="subnet"
@@ -56,25 +60,10 @@
5660
android:key="lan"
5761
android:summary="@string/summary_lan"
5862
android:title="@string/setting_lan" />
59-
<eu.faircode.netguard.SwitchPreference
60-
android:defaultValue="false"
61-
android:key="disable_on_call"
62-
android:summary="@string/summary_call"
63-
android:title="@string/setting_call" />
6463
<eu.faircode.netguard.SwitchPreference
6564
android:defaultValue="false"
6665
android:key="reload_onconnectivity"
6766
android:title="@string/setting_reload_onconnectivity" />
68-
</PreferenceCategory>
69-
</PreferenceScreen>
70-
71-
<PreferenceScreen
72-
android:key="screen_advanced_options"
73-
android:title="@string/setting_advanced_options">
74-
<PreferenceCategory
75-
android:key="category_advanced_options"
76-
android:layout="@layout/pref_cat"
77-
android:title="@string/setting_advanced_options">
7867
<eu.faircode.netguard.SwitchPreference
7968
android:defaultValue="false"
8069
android:key="doh_enabled"
@@ -99,11 +88,6 @@
9988
android:key="block_dot"
10089
android:summary="@string/summary_block_dot"
10190
android:title="@string/setting_block_dot" />
102-
<eu.faircode.netguard.SwitchPreference
103-
android:defaultValue="false"
104-
android:key="sni_enabled"
105-
android:summary="@string/summary_sni_enabled"
106-
android:title="@string/setting_sni_enabled" />
10791
<eu.faircode.netguard.SwitchPreference
10892
android:defaultValue="false"
10993
android:key="domain_based_blocking"
@@ -243,11 +227,6 @@
243227
<Preference
244228
android:key="show_resolved"
245229
android:title="@string/setting_show_resolved" />
246-
<eu.faircode.netguard.SwitchPreference
247-
android:defaultValue="false"
248-
android:key="log_logcat"
249-
android:title="@string/setting_log_logcat"
250-
android:summary="@string/summary_log_logcat" />
251230
</PreferenceCategory>
252231
</PreferenceScreen>
253232

0 commit comments

Comments
 (0)