From f92f149e8c109b85bd868a865bf691ceb61de47b Mon Sep 17 00:00:00 2001 From: Konrad Kollnig <5175206+kasnder@users.noreply.github.com> Date: Mon, 31 Aug 2026 21:35:02 +0200 Subject: [PATCH] Refresh copyright notices Co-Authored-By: Claude Opus 5 --- .../eu/faircode/netguard/ActivityDns.java | 4 +- .../netguard/ActivityForwardApproval.java | 4 +- .../faircode/netguard/ActivityForwarding.java | 4 +- .../eu/faircode/netguard/ActivityLog.java | 4 +- .../eu/faircode/netguard/ActivityMain.java | 16 +- .../faircode/netguard/ActivitySettings.java | 4 +- .../eu/faircode/netguard/AdapterAccess.java | 4 +- .../java/eu/faircode/netguard/AdapterDns.java | 4 +- .../faircode/netguard/AdapterForwarding.java | 4 +- .../java/eu/faircode/netguard/AdapterLog.java | 4 +- .../eu/faircode/netguard/AdapterRule.java | 4 +- .../java/eu/faircode/netguard/Allowed.java | 4 +- .../eu/faircode/netguard/ApplicationEx.java | 4 +- .../netguard/ApplicationExFilter.java | 4 +- .../eu/faircode/netguard/DatabaseHelper.java | 4 +- .../faircode/netguard/ExpandedListView.java | 4 +- .../java/eu/faircode/netguard/Forward.java | 4 +- .../faircode/netguard/FragmentSettings.java | 4 +- .../eu/faircode/netguard/GlideHelper.java | 4 +- .../netguard/HostsDownloadWorker.java | 4 +- .../java/eu/faircode/netguard/IPUtil.java | 4 +- .../java/eu/faircode/netguard/Packet.java | 4 +- .../faircode/netguard/ReceiverAutostart.java | 4 +- .../netguard/ReceiverPackageRemoved.java | 4 +- .../eu/faircode/netguard/ResourceRecord.java | 4 +- .../main/java/eu/faircode/netguard/Rule.java | 4 +- .../eu/faircode/netguard/ServiceExternal.java | 4 +- .../eu/faircode/netguard/ServiceSinkhole.java | 4 +- .../eu/faircode/netguard/ServiceTileMain.java | 4 +- .../faircode/netguard/SwitchPreference.java | 4 +- .../main/java/eu/faircode/netguard/Usage.java | 4 +- .../main/java/eu/faircode/netguard/Util.java | 4 +- .../eu/faircode/netguard/WidgetAdmin.java | 4 +- .../java/eu/faircode/netguard/WidgetMain.java | 4 +- .../java/net/kollnig/missioncontrol/Common.kt | 2 +- .../missioncontrol/DetailsActivity.java | 2 +- .../missioncontrol/DetailsStateAdapter.java | 2 +- .../missioncontrol/InsightsActivity.kt | 2 +- .../analysis/AnalysisException.java | 2 +- .../analysis/AnalysisProgressCallback.java | 2 +- .../analysis/SignatureTrie.java | 2 +- .../analysis/TrackerAnalysisManager.java | 2 +- .../analysis/TrackerAnalysisWorker.java | 2 +- .../analysis/TrackerLibraryAnalyser.java | 2 +- .../missioncontrol/data/BlockingMode.java | 2 +- .../missioncontrol/data/InsightsData.kt | 2 +- .../data/InsightsDataProvider.kt | 2 +- .../data/InternetBlocklist.java | 2 +- .../missioncontrol/data/PackageUids.java | 2 +- .../net/kollnig/missioncontrol/data/Pair.java | 2 +- .../missioncontrol/data/PlayStore.java | 2 +- .../kollnig/missioncontrol/data/Tracker.java | 2 +- .../missioncontrol/data/TrackerBlocklist.java | 2 +- .../missioncontrol/data/TrackerCategory.java | 2 +- .../missioncontrol/data/TrackerList.java | 2 +- .../missioncontrol/data/UidKeyedStore.java | 2 +- .../details/ActionsFragment.java | 2 +- .../details/CountriesFragment.java | 2 +- .../missioncontrol/dns/DnsProxyServer.java | 2 +- app/src/main/res/layout/about.xml | 1 + app/src/main/res/layout/android.xml | 1 + app/src/main/res/layout/forward.xml | 2 +- app/src/main/res/layout/forwardadd.xml | 2 +- app/src/main/res/layout/forwardapproval.xml | 2 +- app/src/main/res/layout/forwarding.xml | 2 +- app/src/main/res/layout/xposed.xml | 1 + app/src/main/res/menu/forward.xml | 2 +- app/src/main/res/menu/forwarding.xml | 2 +- scripts/refresh_copyright_headers.py | 148 ++++++++++++++++++ 69 files changed, 262 insertions(+), 99 deletions(-) create mode 100644 scripts/refresh_copyright_headers.py diff --git a/app/src/main/java/eu/faircode/netguard/ActivityDns.java b/app/src/main/java/eu/faircode/netguard/ActivityDns.java index e102ed9e7..69a4e414d 100644 --- a/app/src/main/java/eu/faircode/netguard/ActivityDns.java +++ b/app/src/main/java/eu/faircode/netguard/ActivityDns.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ActivityForwardApproval.java b/app/src/main/java/eu/faircode/netguard/ActivityForwardApproval.java index b7066c52e..52be38cc4 100644 --- a/app/src/main/java/eu/faircode/netguard/ActivityForwardApproval.java +++ b/app/src/main/java/eu/faircode/netguard/ActivityForwardApproval.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ActivityForwarding.java b/app/src/main/java/eu/faircode/netguard/ActivityForwarding.java index c16dfdc5f..3575593c7 100644 --- a/app/src/main/java/eu/faircode/netguard/ActivityForwarding.java +++ b/app/src/main/java/eu/faircode/netguard/ActivityForwarding.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ActivityLog.java b/app/src/main/java/eu/faircode/netguard/ActivityLog.java index 2c87d6e1a..8c43ae018 100644 --- a/app/src/main/java/eu/faircode/netguard/ActivityLog.java +++ b/app/src/main/java/eu/faircode/netguard/ActivityLog.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ActivityMain.java b/app/src/main/java/eu/faircode/netguard/ActivityMain.java index cff8a1efc..e9ee8a253 100644 --- a/app/src/main/java/eu/faircode/netguard/ActivityMain.java +++ b/app/src/main/java/eu/faircode/netguard/ActivityMain.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; @@ -102,6 +102,7 @@ import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.Locale; public class ActivityMain extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener { private static final String TAG = "TrackerControl.Main"; @@ -186,6 +187,7 @@ protected void onCreate(Bundle savedInstanceState) { Log.i(TAG, "SDK=" + Build.VERSION.SDK_INT); super.onCreate(savedInstanceState); setContentView(R.layout.android); + setCopyright(findViewById(android.R.id.content)); return; } @@ -194,6 +196,7 @@ protected void onCreate(Bundle savedInstanceState) { Log.i(TAG, "Xposed running"); super.onCreate(savedInstanceState); setContentView(R.layout.xposed); + setCopyright(findViewById(android.R.id.content)); return; } @@ -1559,10 +1562,19 @@ public void onDismiss(DialogInterface dialogInterface) { dialogLegend.show(); } + private void setCopyright(View view) { + TextView tvCopyright = view.findViewById(R.id.tvCopyright); + if (tvCopyright != null) + tvCopyright.setText(getString(R.string.app_copyright).replaceFirst( + "(?<=2019[–-])20\\d{2}", + new SimpleDateFormat("yyyy", Locale.US).format(new Date()))); + } + private void menu_about() { // Create view LayoutInflater inflater = LayoutInflater.from(this); View view = inflater.inflate(R.layout.about, null, false); + setCopyright(view); TextView tvVersionName = view.findViewById(R.id.tvVersionName); TextView tvVersionCode = view.findViewById(R.id.tvVersionCode); Button btnRate = view.findViewById(R.id.btnRate); diff --git a/app/src/main/java/eu/faircode/netguard/ActivitySettings.java b/app/src/main/java/eu/faircode/netguard/ActivitySettings.java index 7f946d256..3b482410a 100644 --- a/app/src/main/java/eu/faircode/netguard/ActivitySettings.java +++ b/app/src/main/java/eu/faircode/netguard/ActivitySettings.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/AdapterAccess.java b/app/src/main/java/eu/faircode/netguard/AdapterAccess.java index f89ce90d2..7abb959bc 100644 --- a/app/src/main/java/eu/faircode/netguard/AdapterAccess.java +++ b/app/src/main/java/eu/faircode/netguard/AdapterAccess.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/AdapterDns.java b/app/src/main/java/eu/faircode/netguard/AdapterDns.java index d0ccbfedb..739ea250c 100644 --- a/app/src/main/java/eu/faircode/netguard/AdapterDns.java +++ b/app/src/main/java/eu/faircode/netguard/AdapterDns.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/AdapterForwarding.java b/app/src/main/java/eu/faircode/netguard/AdapterForwarding.java index f0da5b7e8..a8302162b 100644 --- a/app/src/main/java/eu/faircode/netguard/AdapterForwarding.java +++ b/app/src/main/java/eu/faircode/netguard/AdapterForwarding.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/AdapterLog.java b/app/src/main/java/eu/faircode/netguard/AdapterLog.java index 681f83644..adcd586ca 100644 --- a/app/src/main/java/eu/faircode/netguard/AdapterLog.java +++ b/app/src/main/java/eu/faircode/netguard/AdapterLog.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/AdapterRule.java b/app/src/main/java/eu/faircode/netguard/AdapterRule.java index 2b561775d..8568f4ca4 100644 --- a/app/src/main/java/eu/faircode/netguard/AdapterRule.java +++ b/app/src/main/java/eu/faircode/netguard/AdapterRule.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/Allowed.java b/app/src/main/java/eu/faircode/netguard/Allowed.java index b640a3084..fc84dd7bf 100644 --- a/app/src/main/java/eu/faircode/netguard/Allowed.java +++ b/app/src/main/java/eu/faircode/netguard/Allowed.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2020 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ApplicationEx.java b/app/src/main/java/eu/faircode/netguard/ApplicationEx.java index 7ed543da1..9e6e281e1 100644 --- a/app/src/main/java/eu/faircode/netguard/ApplicationEx.java +++ b/app/src/main/java/eu/faircode/netguard/ApplicationEx.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ApplicationExFilter.java b/app/src/main/java/eu/faircode/netguard/ApplicationExFilter.java index f22d2c24f..dc48cb5c6 100644 --- a/app/src/main/java/eu/faircode/netguard/ApplicationExFilter.java +++ b/app/src/main/java/eu/faircode/netguard/ApplicationExFilter.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2022 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/DatabaseHelper.java b/app/src/main/java/eu/faircode/netguard/DatabaseHelper.java index 52f84153e..0dfcf7e4f 100644 --- a/app/src/main/java/eu/faircode/netguard/DatabaseHelper.java +++ b/app/src/main/java/eu/faircode/netguard/DatabaseHelper.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ExpandedListView.java b/app/src/main/java/eu/faircode/netguard/ExpandedListView.java index f9d571185..520136f2a 100644 --- a/app/src/main/java/eu/faircode/netguard/ExpandedListView.java +++ b/app/src/main/java/eu/faircode/netguard/ExpandedListView.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/Forward.java b/app/src/main/java/eu/faircode/netguard/Forward.java index 141e0ef43..f46ecd8c4 100644 --- a/app/src/main/java/eu/faircode/netguard/Forward.java +++ b/app/src/main/java/eu/faircode/netguard/Forward.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2020 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/FragmentSettings.java b/app/src/main/java/eu/faircode/netguard/FragmentSettings.java index 4d9fa7595..0d305ae0e 100644 --- a/app/src/main/java/eu/faircode/netguard/FragmentSettings.java +++ b/app/src/main/java/eu/faircode/netguard/FragmentSettings.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/GlideHelper.java b/app/src/main/java/eu/faircode/netguard/GlideHelper.java index ae0873290..93bd9cadc 100644 --- a/app/src/main/java/eu/faircode/netguard/GlideHelper.java +++ b/app/src/main/java/eu/faircode/netguard/GlideHelper.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/HostsDownloadWorker.java b/app/src/main/java/eu/faircode/netguard/HostsDownloadWorker.java index b5271c3e0..0bad9a801 100644 --- a/app/src/main/java/eu/faircode/netguard/HostsDownloadWorker.java +++ b/app/src/main/java/eu/faircode/netguard/HostsDownloadWorker.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/IPUtil.java b/app/src/main/java/eu/faircode/netguard/IPUtil.java index 52c74ca6d..4971d650b 100644 --- a/app/src/main/java/eu/faircode/netguard/IPUtil.java +++ b/app/src/main/java/eu/faircode/netguard/IPUtil.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2020 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/Packet.java b/app/src/main/java/eu/faircode/netguard/Packet.java index c2a023b06..f15b99eb3 100644 --- a/app/src/main/java/eu/faircode/netguard/Packet.java +++ b/app/src/main/java/eu/faircode/netguard/Packet.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2020 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ReceiverAutostart.java b/app/src/main/java/eu/faircode/netguard/ReceiverAutostart.java index 9d368eb48..cd27045f7 100644 --- a/app/src/main/java/eu/faircode/netguard/ReceiverAutostart.java +++ b/app/src/main/java/eu/faircode/netguard/ReceiverAutostart.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ReceiverPackageRemoved.java b/app/src/main/java/eu/faircode/netguard/ReceiverPackageRemoved.java index ac0d110b4..ed1f50b05 100644 --- a/app/src/main/java/eu/faircode/netguard/ReceiverPackageRemoved.java +++ b/app/src/main/java/eu/faircode/netguard/ReceiverPackageRemoved.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ResourceRecord.java b/app/src/main/java/eu/faircode/netguard/ResourceRecord.java index 5d710e161..af5a877b0 100644 --- a/app/src/main/java/eu/faircode/netguard/ResourceRecord.java +++ b/app/src/main/java/eu/faircode/netguard/ResourceRecord.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2020 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/Rule.java b/app/src/main/java/eu/faircode/netguard/Rule.java index 85a18c27e..dcd75a191 100644 --- a/app/src/main/java/eu/faircode/netguard/Rule.java +++ b/app/src/main/java/eu/faircode/netguard/Rule.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ServiceExternal.java b/app/src/main/java/eu/faircode/netguard/ServiceExternal.java index 6564e1360..46d2d8730 100644 --- a/app/src/main/java/eu/faircode/netguard/ServiceExternal.java +++ b/app/src/main/java/eu/faircode/netguard/ServiceExternal.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java b/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java index 6ded0e183..fb4df5a07 100644 --- a/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java +++ b/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/ServiceTileMain.java b/app/src/main/java/eu/faircode/netguard/ServiceTileMain.java index dd20be7a1..67d4a97f1 100644 --- a/app/src/main/java/eu/faircode/netguard/ServiceTileMain.java +++ b/app/src/main/java/eu/faircode/netguard/ServiceTileMain.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/SwitchPreference.java b/app/src/main/java/eu/faircode/netguard/SwitchPreference.java index bd87806d1..a5129c40a 100644 --- a/app/src/main/java/eu/faircode/netguard/SwitchPreference.java +++ b/app/src/main/java/eu/faircode/netguard/SwitchPreference.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/Usage.java b/app/src/main/java/eu/faircode/netguard/Usage.java index 0253d8b6a..adf6f35f8 100644 --- a/app/src/main/java/eu/faircode/netguard/Usage.java +++ b/app/src/main/java/eu/faircode/netguard/Usage.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2020 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/Util.java b/app/src/main/java/eu/faircode/netguard/Util.java index 42bd1b4d5..ef2a16610 100644 --- a/app/src/main/java/eu/faircode/netguard/Util.java +++ b/app/src/main/java/eu/faircode/netguard/Util.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/WidgetAdmin.java b/app/src/main/java/eu/faircode/netguard/WidgetAdmin.java index 1a89131b6..75ab9ca3e 100644 --- a/app/src/main/java/eu/faircode/netguard/WidgetAdmin.java +++ b/app/src/main/java/eu/faircode/netguard/WidgetAdmin.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/eu/faircode/netguard/WidgetMain.java b/app/src/main/java/eu/faircode/netguard/WidgetMain.java index 8c3c22f0a..dea7fd60f 100644 --- a/app/src/main/java/eu/faircode/netguard/WidgetMain.java +++ b/app/src/main/java/eu/faircode/netguard/WidgetMain.java @@ -14,8 +14,8 @@ * You should have received a copy of the GNU General Public License * along with NetGuard. If not, see . * - * Copyright © 2015–2020 by Marcel Bokhorst (M66B), Konrad - * Kollnig (University of Oxford) + * Copyright © 2015–2020 Marcel Bokhorst (M66B) + * Copyright © 2019–2026 Konrad Kollnig */ package eu.faircode.netguard; diff --git a/app/src/main/java/net/kollnig/missioncontrol/Common.kt b/app/src/main/java/net/kollnig/missioncontrol/Common.kt index e39226c2d..d1e337cbf 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/Common.kt +++ b/app/src/main/java/net/kollnig/missioncontrol/Common.kt @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol diff --git a/app/src/main/java/net/kollnig/missioncontrol/DetailsActivity.java b/app/src/main/java/net/kollnig/missioncontrol/DetailsActivity.java index bfc76334e..d8a01b1ac 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/DetailsActivity.java +++ b/app/src/main/java/net/kollnig/missioncontrol/DetailsActivity.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol; diff --git a/app/src/main/java/net/kollnig/missioncontrol/DetailsStateAdapter.java b/app/src/main/java/net/kollnig/missioncontrol/DetailsStateAdapter.java index d5e8eb6f2..4f9779c68 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/DetailsStateAdapter.java +++ b/app/src/main/java/net/kollnig/missioncontrol/DetailsStateAdapter.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2022 Konrad Kollnig */ package net.kollnig.missioncontrol; diff --git a/app/src/main/java/net/kollnig/missioncontrol/InsightsActivity.kt b/app/src/main/java/net/kollnig/missioncontrol/InsightsActivity.kt index b881fdff7..f76ed15de 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/InsightsActivity.kt +++ b/app/src/main/java/net/kollnig/missioncontrol/InsightsActivity.kt @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol diff --git a/app/src/main/java/net/kollnig/missioncontrol/analysis/AnalysisException.java b/app/src/main/java/net/kollnig/missioncontrol/analysis/AnalysisException.java index 2534a270e..b67309af5 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/analysis/AnalysisException.java +++ b/app/src/main/java/net/kollnig/missioncontrol/analysis/AnalysisException.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2021 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2022 Konrad Kollnig */ package net.kollnig.missioncontrol.analysis; diff --git a/app/src/main/java/net/kollnig/missioncontrol/analysis/AnalysisProgressCallback.java b/app/src/main/java/net/kollnig/missioncontrol/analysis/AnalysisProgressCallback.java index 7e706e896..af492e52f 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/analysis/AnalysisProgressCallback.java +++ b/app/src/main/java/net/kollnig/missioncontrol/analysis/AnalysisProgressCallback.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2021 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.analysis; diff --git a/app/src/main/java/net/kollnig/missioncontrol/analysis/SignatureTrie.java b/app/src/main/java/net/kollnig/missioncontrol/analysis/SignatureTrie.java index 97046f819..053e71612 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/analysis/SignatureTrie.java +++ b/app/src/main/java/net/kollnig/missioncontrol/analysis/SignatureTrie.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2021 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.analysis; diff --git a/app/src/main/java/net/kollnig/missioncontrol/analysis/TrackerAnalysisManager.java b/app/src/main/java/net/kollnig/missioncontrol/analysis/TrackerAnalysisManager.java index 62d160355..79d35c33c 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/analysis/TrackerAnalysisManager.java +++ b/app/src/main/java/net/kollnig/missioncontrol/analysis/TrackerAnalysisManager.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2021 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.analysis; diff --git a/app/src/main/java/net/kollnig/missioncontrol/analysis/TrackerAnalysisWorker.java b/app/src/main/java/net/kollnig/missioncontrol/analysis/TrackerAnalysisWorker.java index 75b613123..8cebaf738 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/analysis/TrackerAnalysisWorker.java +++ b/app/src/main/java/net/kollnig/missioncontrol/analysis/TrackerAnalysisWorker.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2021 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.analysis; diff --git a/app/src/main/java/net/kollnig/missioncontrol/analysis/TrackerLibraryAnalyser.java b/app/src/main/java/net/kollnig/missioncontrol/analysis/TrackerLibraryAnalyser.java index 682be87e8..b5a71588a 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/analysis/TrackerLibraryAnalyser.java +++ b/app/src/main/java/net/kollnig/missioncontrol/analysis/TrackerLibraryAnalyser.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2021 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.analysis; diff --git a/app/src/main/java/net/kollnig/missioncontrol/data/BlockingMode.java b/app/src/main/java/net/kollnig/missioncontrol/data/BlockingMode.java index 550fe8f42..c1b84658b 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/data/BlockingMode.java +++ b/app/src/main/java/net/kollnig/missioncontrol/data/BlockingMode.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.data; diff --git a/app/src/main/java/net/kollnig/missioncontrol/data/InsightsData.kt b/app/src/main/java/net/kollnig/missioncontrol/data/InsightsData.kt index 2095de999..12af4fde1 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/data/InsightsData.kt +++ b/app/src/main/java/net/kollnig/missioncontrol/data/InsightsData.kt @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.data diff --git a/app/src/main/java/net/kollnig/missioncontrol/data/InsightsDataProvider.kt b/app/src/main/java/net/kollnig/missioncontrol/data/InsightsDataProvider.kt index 945e7b345..cdbc5f4a5 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/data/InsightsDataProvider.kt +++ b/app/src/main/java/net/kollnig/missioncontrol/data/InsightsDataProvider.kt @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.data diff --git a/app/src/main/java/net/kollnig/missioncontrol/data/InternetBlocklist.java b/app/src/main/java/net/kollnig/missioncontrol/data/InternetBlocklist.java index 0aa798529..87458b137 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/data/InternetBlocklist.java +++ b/app/src/main/java/net/kollnig/missioncontrol/data/InternetBlocklist.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.data; diff --git a/app/src/main/java/net/kollnig/missioncontrol/data/PackageUids.java b/app/src/main/java/net/kollnig/missioncontrol/data/PackageUids.java index 29b263c4b..1f76bc659 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/data/PackageUids.java +++ b/app/src/main/java/net/kollnig/missioncontrol/data/PackageUids.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.data; diff --git a/app/src/main/java/net/kollnig/missioncontrol/data/Pair.java b/app/src/main/java/net/kollnig/missioncontrol/data/Pair.java index be21d29ba..7f47dada5 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/data/Pair.java +++ b/app/src/main/java/net/kollnig/missioncontrol/data/Pair.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2022 Konrad Kollnig */ package net.kollnig.missioncontrol.data; diff --git a/app/src/main/java/net/kollnig/missioncontrol/data/PlayStore.java b/app/src/main/java/net/kollnig/missioncontrol/data/PlayStore.java index 4820eb469..604166575 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/data/PlayStore.java +++ b/app/src/main/java/net/kollnig/missioncontrol/data/PlayStore.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2022 Konrad Kollnig */ package net.kollnig.missioncontrol.data; diff --git a/app/src/main/java/net/kollnig/missioncontrol/data/Tracker.java b/app/src/main/java/net/kollnig/missioncontrol/data/Tracker.java index f6e172330..3e1c79ff2 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/data/Tracker.java +++ b/app/src/main/java/net/kollnig/missioncontrol/data/Tracker.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.data; diff --git a/app/src/main/java/net/kollnig/missioncontrol/data/TrackerBlocklist.java b/app/src/main/java/net/kollnig/missioncontrol/data/TrackerBlocklist.java index c3c16ebf0..e89bffc74 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/data/TrackerBlocklist.java +++ b/app/src/main/java/net/kollnig/missioncontrol/data/TrackerBlocklist.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.data; diff --git a/app/src/main/java/net/kollnig/missioncontrol/data/TrackerCategory.java b/app/src/main/java/net/kollnig/missioncontrol/data/TrackerCategory.java index 14c082c94..031dc6f9f 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/data/TrackerCategory.java +++ b/app/src/main/java/net/kollnig/missioncontrol/data/TrackerCategory.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.data; diff --git a/app/src/main/java/net/kollnig/missioncontrol/data/TrackerList.java b/app/src/main/java/net/kollnig/missioncontrol/data/TrackerList.java index 80a16ccac..17b27684e 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/data/TrackerList.java +++ b/app/src/main/java/net/kollnig/missioncontrol/data/TrackerList.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.data; diff --git a/app/src/main/java/net/kollnig/missioncontrol/data/UidKeyedStore.java b/app/src/main/java/net/kollnig/missioncontrol/data/UidKeyedStore.java index a34895fae..eb96dbb25 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/data/UidKeyedStore.java +++ b/app/src/main/java/net/kollnig/missioncontrol/data/UidKeyedStore.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.data; diff --git a/app/src/main/java/net/kollnig/missioncontrol/details/ActionsFragment.java b/app/src/main/java/net/kollnig/missioncontrol/details/ActionsFragment.java index 2f959a764..be8a01372 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/details/ActionsFragment.java +++ b/app/src/main/java/net/kollnig/missioncontrol/details/ActionsFragment.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.details; diff --git a/app/src/main/java/net/kollnig/missioncontrol/details/CountriesFragment.java b/app/src/main/java/net/kollnig/missioncontrol/details/CountriesFragment.java index cedc707d0..e3e21c0b7 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/details/CountriesFragment.java +++ b/app/src/main/java/net/kollnig/missioncontrol/details/CountriesFragment.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with TrackerControl. If not, see . * - * Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + * Copyright © 2019–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.details; diff --git a/app/src/main/java/net/kollnig/missioncontrol/dns/DnsProxyServer.java b/app/src/main/java/net/kollnig/missioncontrol/dns/DnsProxyServer.java index 4b410d973..f006e8922 100644 --- a/app/src/main/java/net/kollnig/missioncontrol/dns/DnsProxyServer.java +++ b/app/src/main/java/net/kollnig/missioncontrol/dns/DnsProxyServer.java @@ -4,7 +4,7 @@ * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Copyright © 2024 Konrad Kollnig (University of Oxford) + * Copyright © 2024–2026 Konrad Kollnig */ package net.kollnig.missioncontrol.dns; diff --git a/app/src/main/res/layout/about.xml b/app/src/main/res/layout/about.xml index 543399b17..ab4bdd1c9 100644 --- a/app/src/main/res/layout/about.xml +++ b/app/src/main/res/layout/about.xml @@ -75,6 +75,7 @@ diff --git a/app/src/main/res/layout/android.xml b/app/src/main/res/layout/android.xml index 7a4afbb37..eb6008205 100644 --- a/app/src/main/res/layout/android.xml +++ b/app/src/main/res/layout/android.xml @@ -44,6 +44,7 @@ diff --git a/app/src/main/res/layout/forward.xml b/app/src/main/res/layout/forward.xml index ad37563b7..da5a48c68 100644 --- a/app/src/main/res/layout/forward.xml +++ b/app/src/main/res/layout/forward.xml @@ -13,7 +13,7 @@ ~ You should have received a copy of the GNU General Public License ~ along with TrackerControl. If not, see . ~ - ~ Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + ~ Copyright © 2019–2020 Konrad Kollnig --> . ~ - ~ Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + ~ Copyright © 2019–2026 Konrad Kollnig --> . ~ - ~ Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + ~ Copyright © 2019–2026 Konrad Kollnig --> . ~ - ~ Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + ~ Copyright © 2019–2020 Konrad Kollnig --> diff --git a/app/src/main/res/menu/forward.xml b/app/src/main/res/menu/forward.xml index ecf47afbd..f43fe6748 100644 --- a/app/src/main/res/menu/forward.xml +++ b/app/src/main/res/menu/forward.xml @@ -13,7 +13,7 @@ ~ You should have received a copy of the GNU General Public License ~ along with TrackerControl. If not, see . ~ - ~ Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + ~ Copyright © 2019–2020 Konrad Kollnig --> diff --git a/app/src/main/res/menu/forwarding.xml b/app/src/main/res/menu/forwarding.xml index ef2694b06..ffae1a9ac 100644 --- a/app/src/main/res/menu/forwarding.xml +++ b/app/src/main/res/menu/forwarding.xml @@ -13,7 +13,7 @@ ~ You should have received a copy of the GNU General Public License ~ along with TrackerControl. If not, see . ~ - ~ Copyright © 2019–2020 Konrad Kollnig (University of Oxford) + ~ Copyright © 2019–2020 Konrad Kollnig --> Copyright © )(?P20\d{2})(?:(?P[–-])20\d{2})? Konrad Kollnig" + r"(?: \(University of Oxford\))?" +) +KONRAD_RESOURCE = re.compile( + r"(?P\\u00A9 (?P20\d{2})[–-])20\d{2} Konrad Kollnig" +) +SHARED_NETGUARD_HEADER = re.compile( + r"(?P\s*\* )Copyright © 2015[–-]2020 by Marcel Bokhorst \(M66B\), Konrad\n" + r"\s*\* Kollnig \(University of Oxford\)" +) + + +def git(*args: str) -> str: + return subprocess.check_output(("git", *args), cwd=ROOT, text=True).strip() + + +def git_show(revision: str, path: str) -> str | None: + result = subprocess.run( + ("git", "show", f"{revision}:{path}"), + cwd=ROOT, + text=True, + capture_output=True, + ) + return result.stdout if result.returncode == 0 else None + + +def is_notice_only_revision(revision: str, path: str) -> bool: + diff = subprocess.check_output( + ("git", "diff", "--unified=0", f"{revision}^", revision, "--", path), + cwd=ROOT, + text=True, + ) + for line in diff.splitlines(): + if line.startswith(("+++", "---")) or not line.startswith(("+", "-")): + continue + changed = line[1:].strip() + if changed and "Copyright" not in changed and "Kollnig (University of Oxford)" not in changed: + return False + return True + + +def last_updated_year(path: str) -> str: + revisions = git("log", "--format=%H", "--", path).splitlines() + for revision in revisions: + before = git_show(f"{revision}^", path) + after = git_show(revision, path) + if before is None or after is None or not is_notice_only_revision(revision, path): + return git("show", "-s", "--format=%ad", "--date=format:%Y", revision) + raise RuntimeError(f"No revision found for {path}") + + +def refresh(text: str, year: str) -> str: + text = SHARED_NETGUARD_HEADER.sub( + lambda match: ( + f"{match.group('indent')}Copyright © 2015–2020 Marcel Bokhorst (M66B)\n" + f"{match.group('indent').lstrip(chr(10))}Copyright © 2019–{year} Konrad Kollnig" + ), + text, + ) + text = KONRAD_HEADER.sub( + lambda match: ( + f"{match.group('intro')}{match.group('start')} Konrad Kollnig" + if match.group("start") == year + else ( + f"{match.group('intro')}{match.group('start')}" + f"{match.group('separator') or '–'}{year} Konrad Kollnig" + ) + ), + text, + ) + return KONRAD_RESOURCE.sub( + lambda match: f"{match.group('prefix')}{year} Konrad Kollnig", text + ) + + +def has_recognized_notice(text: str) -> bool: + return any( + pattern.search(text) + for pattern in (SHARED_NETGUARD_HEADER, KONRAD_HEADER, KONRAD_RESOURCE) + ) + + +def tracked_konrad_files() -> list[str]: + # Several inherited NetGuard headers split "Konrad Kollnig" over two lines. + files = git("grep", "-I", "-l", "-e", "Konrad").splitlines() + return [ + path + for path in files + if path and not path.startswith("app/src/main/res/values") + ] + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--write", action="store_true", help="apply the refresh") + parser.add_argument("paths", nargs="*", help="tracked files to refresh") + args = parser.parse_args() + + paths = args.paths or tracked_konrad_files() + changed: list[str] = [] + ignored: list[str] = [] + for path in paths: + file = ROOT / path + original = file.read_text() + if not has_recognized_notice(original): + ignored.append(path) + continue + updated = refresh(original, last_updated_year(path)) + if updated == original: + continue + changed.append(path) + if args.write: + file.write_text(updated) + + for path in changed: + print(path) + if ignored: + print(f"Ignored {len(ignored)} file(s) without a recognized Konrad notice.", file=sys.stderr) + if changed and not args.write: + print("Run with --write to apply these changes.", file=sys.stderr) + return 1 + return 0 + + +if __name__ == "__main__": + raise SystemExit(main())