Skip to content
Snippets Groups Projects
Commit 34d41508 authored by Junyu Lai's avatar Junyu Lai Committed by Automerger Merge Worker
Browse files

Merge "Revert "Revert "[BR07.2] Redirect data saver switch to Connectiv...""...

Merge "Revert "Revert "[BR07.2] Redirect data saver switch to Connectiv..."" into main am: c056440a

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2801073



Change-Id: I55b46b8029082a913fb426e386f5dd6c7ed74b54
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c3d2521e c056440a
No related branches found
No related tags found
No related merge requests found
......@@ -74,6 +74,7 @@ import com.android.internal.app.IBatteryStats;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.HexDump;
import com.android.modules.utils.build.SdkLevel;
import com.android.net.flags.Flags;
import com.android.net.module.util.NetdUtils;
import com.android.net.module.util.PermissionUtils;
import com.android.server.FgThread;
......@@ -1059,17 +1060,25 @@ public class NetworkManagementService extends INetworkManagementService.Stub {
Log.w(TAG, "setDataSaverMode(): already " + mDataSaverMode);
return true;
}
Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "bandwidthEnableDataSaver");
Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "setDataSaverModeEnabled");
try {
final boolean changed = mNetdService.bandwidthEnableDataSaver(enable);
if (changed) {
if (Flags.setDataSaverViaCm()) {
// setDataSaverEnabled throws if it fails to set data saver.
mContext.getSystemService(ConnectivityManager.class)
.setDataSaverEnabled(enable);
mDataSaverMode = enable;
return true;
} else {
Log.w(TAG, "setDataSaverMode(" + enable + "): netd command silently failed");
final boolean changed = mNetdService.bandwidthEnableDataSaver(enable);
if (changed) {
mDataSaverMode = enable;
} else {
Log.e(TAG, "setDataSaverMode(" + enable + "): failed to set iptables");
}
return changed;
}
return changed;
} catch (RemoteException e) {
Log.w(TAG, "setDataSaverMode(" + enable + "): netd command failed", e);
} catch (RemoteException | IllegalStateException e) {
Log.e(TAG, "setDataSaverMode(" + enable + "): failed with exception", e);
return false;
} finally {
Trace.traceEnd(Trace.TRACE_TAG_NETWORK);
......
......@@ -57,6 +57,7 @@ import android.util.ArrayMap;
import androidx.test.runner.AndroidJUnit4;
import com.android.internal.app.IBatteryStats;
import com.android.net.flags.Flags;
import org.junit.After;
import org.junit.Before;
......@@ -263,7 +264,11 @@ public class NetworkManagementServiceTest {
verify(mCm).addUidToMeteredNetworkDenyList(TEST_UID);
mNMService.setDataSaverModeEnabled(true);
verify(mNetdService).bandwidthEnableDataSaver(true);
if (Flags.setDataSaverViaCm()) {
verify(mCm).setDataSaverEnabled(true);
} else {
verify(mNetdService).bandwidthEnableDataSaver(true);
}
mNMService.setUidOnMeteredNetworkDenylist(TEST_UID, false);
assertTrue("Should be true since data saver is on and the uid is not allowlisted",
......@@ -279,7 +284,11 @@ public class NetworkManagementServiceTest {
mNMService.setUidOnMeteredNetworkAllowlist(TEST_UID, false);
verify(mCm).removeUidFromMeteredNetworkAllowList(TEST_UID);
mNMService.setDataSaverModeEnabled(false);
verify(mNetdService).bandwidthEnableDataSaver(false);
if (Flags.setDataSaverViaCm()) {
verify(mCm).setDataSaverEnabled(false);
} else {
verify(mNetdService).bandwidthEnableDataSaver(false);
}
assertFalse("Network should not be restricted when data saver is off",
mNMService.isNetworkRestricted(TEST_UID));
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment