From 9202a4c0ee50897a98b4b1aa53134ddfdf578c0f Mon Sep 17 00:00:00 2001 From: Daniel Jacob Chittoor Date: Thu, 18 Jan 2024 14:16:15 +0530 Subject: [PATCH 1/4] sdk: Add HW_KILL_SWITCH_ENABLED setting --- sdk/src/java/lineageos/providers/LineageSettings.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sdk/src/java/lineageos/providers/LineageSettings.java b/sdk/src/java/lineageos/providers/LineageSettings.java index 67643a3f..bbee53a6 100644 --- a/sdk/src/java/lineageos/providers/LineageSettings.java +++ b/sdk/src/java/lineageos/providers/LineageSettings.java @@ -2075,6 +2075,15 @@ public final class LineageSettings { public static final Validator ENABLE_TASKBAR_VALIDATOR = sBooleanValidator; + /** + * Whether hardware kill-switch is enabled or not. + */ + public static final String HW_KILL_SWITCH_ENABLED = "hw_kill_switch_enabled"; + + /** @hide */ + public static final Validator HW_KILL_SWITCH_ENABLED_VALIDATOR = + sBooleanValidator; + /** * I can haz more bukkits * @hide @@ -2251,6 +2260,8 @@ public final class LineageSettings { CLICK_PARTIAL_SCREENSHOT_VALIDATOR); VALIDATORS.put(ENABLE_TASKBAR, ENABLE_TASKBAR_VALIDATOR); + VALIDATORS.put(HW_KILL_SWITCH_ENABLED, + HW_KILL_SWITCH_ENABLED_VALIDATOR); VALIDATORS.put(__MAGICAL_TEST_PASSING_ENABLER, __MAGICAL_TEST_PASSING_ENABLER_VALIDATOR); }; -- GitLab From 0605483a78f32986411e628ff0ecd66576bdccd1 Mon Sep 17 00:00:00 2001 From: Kshitij Gupta Date: Thu, 14 Nov 2024 10:16:10 +0100 Subject: [PATCH 2/4] LineageSettingsProvider: Use framework value for lock rotation --- lineage/res/res/values-sw600dp/config.xml | 20 -------------------- lineage/res/res/values/config.xml | 2 +- 2 files changed, 1 insertion(+), 21 deletions(-) delete mode 100644 lineage/res/res/values-sw600dp/config.xml diff --git a/lineage/res/res/values-sw600dp/config.xml b/lineage/res/res/values-sw600dp/config.xml deleted file mode 100644 index 815baf4e..00000000 --- a/lineage/res/res/values-sw600dp/config.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - true - diff --git a/lineage/res/res/values/config.xml b/lineage/res/res/values/config.xml index 46c12131..babeeea4 100644 --- a/lineage/res/res/values/config.xml +++ b/lineage/res/res/values/config.xml @@ -336,7 +336,7 @@ 10 - false + @*android:bool/config_enableLockScreenRotation true -- GitLab From 5eeb49c243952a710fea5d00fa1ec0006ba2abf2 Mon Sep 17 00:00:00 2001 From: althafvly Date: Thu, 6 Feb 2025 10:43:28 +0530 Subject: [PATCH 3/4] sdk: Register network callback only if it is enabled. Change-Id: I8c11ac84e9a18c38c5909a8d012c8e3badfe1a16 --- .../internal/statusbar/NetworkTraffic.java | 109 ++++++++++++------ 1 file changed, 72 insertions(+), 37 deletions(-) diff --git a/sdk/src/java/org/lineageos/internal/statusbar/NetworkTraffic.java b/sdk/src/java/org/lineageos/internal/statusbar/NetworkTraffic.java index 3856a30e..90d94195 100644 --- a/sdk/src/java/org/lineageos/internal/statusbar/NetworkTraffic.java +++ b/sdk/src/java/org/lineageos/internal/statusbar/NetworkTraffic.java @@ -15,6 +15,7 @@ import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.net.ConnectivityManager; +import android.net.ConnectivityManager.NetworkCallback; import android.net.LinkProperties; import android.net.Network; import android.net.NetworkCapabilities; @@ -99,6 +100,10 @@ public class NetworkTraffic extends TextView { private int mIconTint = Color.WHITE; private Drawable mDrawable; + // Network tracking related variables + private NetworkCallback mNetworkCallback; + private NetworkCallback mDefaultNetworkCallback; + private final HashMap mLinkPropertiesMap = new HashMap<>(); // Used to indicate that the set of sources contributing // to current stats have changed. @@ -121,6 +126,10 @@ public class NetworkTraffic extends TextView { mNetworkTrafficIsVisible = false; + ContentResolver resolver = mContext.getContentResolver(); + mMode = LineageSettings.Secure.getInt(resolver, + LineageSettings.Secure.NETWORK_TRAFFIC_MODE, MODE_DISABLED); + mTrafficHandler = new Handler(mContext.getMainLooper()) { @Override public void handleMessage(Message msg) { @@ -293,46 +302,70 @@ public class NetworkTraffic extends TextView { }; mObserver = new SettingsObserver(mTrafficHandler); - // Network tracking related variables - final NetworkRequest request = new NetworkRequest.Builder() - .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) - .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN) - .build(); - ConnectivityManager.NetworkCallback networkCallback = - new ConnectivityManager.NetworkCallback() { - @Override - public void onLinkPropertiesChanged(Network network, - LinkProperties linkProperties) { - Message msg = new Message(); - msg.what = MESSAGE_TYPE_ADD_NETWORK; - msg.obj = new LinkPropertiesHolder(network, linkProperties); - mTrafficHandler.sendMessage(msg); - } + manageNetworkCallbacks(); + } - @Override - public void onLost(Network network) { - Message msg = new Message(); - msg.what = MESSAGE_TYPE_REMOVE_NETWORK; - msg.obj = network; - mTrafficHandler.sendMessage(msg); - } - }; - ConnectivityManager.NetworkCallback defaultNetworkCallback = - new ConnectivityManager.NetworkCallback() { - @Override - public void onAvailable(Network network) { - updateViewState(); - } + private void manageNetworkCallbacks() { + ConnectivityManager connectivityManager = + mContext.getSystemService(ConnectivityManager.class); - @Override - public void onLost(Network network) { - updateViewState(); + if (mMode == MODE_DISABLED) { + // Unregister callbacks if disabling + if (mNetworkCallback != null) { + connectivityManager.unregisterNetworkCallback(mNetworkCallback); + mNetworkCallback = null; } - }; - context.getSystemService(ConnectivityManager.class) - .registerNetworkCallback(request, networkCallback); - context.getSystemService(ConnectivityManager.class) - .registerDefaultNetworkCallback(defaultNetworkCallback); + if (mDefaultNetworkCallback != null) { + connectivityManager.unregisterNetworkCallback(mDefaultNetworkCallback); + mDefaultNetworkCallback = null; + } + return; + } + + // Register callbacks if enabling + if (mNetworkCallback == null) { + mNetworkCallback = new NetworkCallback() { + @Override + public void onLinkPropertiesChanged(Network network, + LinkProperties linkProperties) { + Message msg = new Message(); + msg.what = MESSAGE_TYPE_ADD_NETWORK; + msg.obj = new LinkPropertiesHolder(network, linkProperties); + mTrafficHandler.sendMessage(msg); + } + + @Override + public void onLost(Network network) { + Message msg = new Message(); + msg.what = MESSAGE_TYPE_REMOVE_NETWORK; + msg.obj = network; + mTrafficHandler.sendMessage(msg); + } + }; + + NetworkRequest request = new NetworkRequest.Builder() + .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) + .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN) + .build(); + + connectivityManager.registerNetworkCallback(request, mNetworkCallback); + } + + if (mDefaultNetworkCallback == null) { + mDefaultNetworkCallback = new NetworkCallback() { + @Override + public void onAvailable(Network network) { + updateViewState(); + } + + @Override + public void onLost(Network network) { + updateViewState(); + } + }; + + connectivityManager.registerDefaultNetworkCallback(mDefaultNetworkCallback); + } } public void setViewPosition(int vpos) { @@ -432,6 +465,8 @@ public class NetworkTraffic extends TextView { mShowUnits = LineageSettings.Secure.getInt(resolver, LineageSettings.Secure.NETWORK_TRAFFIC_SHOW_UNITS, SHOW_UNITS_ON); + manageNetworkCallbacks(); + switch (mUnits) { case UNITS_KILOBITS: mAutoHideThreshold = AUTOHIDE_THRESHOLD_KILOBITS; -- GitLab From 87a4b62e748547bbb3d863fd17b6eb229beb1d34 Mon Sep 17 00:00:00 2001 From: althafvly Date: Fri, 7 Feb 2025 13:43:03 +0530 Subject: [PATCH 4/4] sdk: Avoid TooManyRequestsException SystemUI crash - Fixes https://katb.in/vetiveyoqoh Change-Id: Ibdcad1ccdd681bec532e457e33db8e0618c6c39c --- .../org/lineageos/internal/statusbar/NetworkTraffic.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sdk/src/java/org/lineageos/internal/statusbar/NetworkTraffic.java b/sdk/src/java/org/lineageos/internal/statusbar/NetworkTraffic.java index 90d94195..feacc856 100644 --- a/sdk/src/java/org/lineageos/internal/statusbar/NetworkTraffic.java +++ b/sdk/src/java/org/lineageos/internal/statusbar/NetworkTraffic.java @@ -364,7 +364,11 @@ public class NetworkTraffic extends TextView { } }; - connectivityManager.registerDefaultNetworkCallback(mDefaultNetworkCallback); + try { + connectivityManager.registerDefaultNetworkCallback(mDefaultNetworkCallback); + } catch (RuntimeException e) { + Log.e(TAG, "Failed to register network callback", e); + } } } -- GitLab