Loading packages/Tethering/AndroidManifest.xml +3 −0 Original line number Diff line number Diff line Loading @@ -34,11 +34,14 @@ <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" /> <uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY" /> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.TETHER_PRIVILEGED" /> <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" /> <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <protected-broadcast android:name="com.android.server.connectivity.tethering.DISABLE_TETHERING" /> <application android:process="com.android.networkstack.process" android:extractNativeLibs="false" Loading packages/Tethering/res/values-mcc204-mnc04/strings.xml→packages/Tethering/res/values-mcc310-mnc004/config.xml +20 −0 Original line number Diff line number Diff line Loading @@ -14,17 +14,7 @@ limitations under the License. --> <resources> <!-- String for no upstream notification title [CHAR LIMIT=200] --> <string name="no_upstream_notification_title">Tethering has no internet</string> <!-- String for no upstream notification title [CHAR LIMIT=200] --> <string name="no_upstream_notification_message">Devices can\u2019t connect</string> <!-- String for no upstream notification disable button [CHAR LIMIT=200] --> <string name="no_upstream_notification_disable_button">Turn off tethering</string> <!-- String for cellular roaming notification title [CHAR LIMIT=200] --> <string name="upstream_roaming_notification_title">Hotspot or tethering is on</string> <!-- String for cellular roaming notification message [CHAR LIMIT=500] --> <string name="upstream_roaming_notification_message">Additional charges may apply while roaming</string> <!-- String for cellular roaming notification continue button [CHAR LIMIT=200] --> <string name="upstream_roaming_notification_continue_button">Continue</string> <!-- Delay(millisecond) to show no upstream notification after there's no Backhaul. Set delay to "0" for disable this feature. --> <integer name="delay_to_show_no_upstream_after_no_backhaul">5000</integer> </resources> No newline at end of file packages/Tethering/res/values-mcc311-mnc480/config.xml 0 → 100644 +20 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2020 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <resources> <!-- Delay(millisecond) to show no upstream notification after there's no Backhaul. Set delay to "0" for disable this feature. --> <integer name="delay_to_show_no_upstream_after_no_backhaul">5000</integer> </resources> No newline at end of file packages/Tethering/res/values/config.xml +6 −0 Original line number Diff line number Diff line Loading @@ -202,4 +202,10 @@ <string name="tethering_notification_title">@string/tethered_notification_title</string> <!-- String for tether enable notification message. --> <string name="tethering_notification_message">@string/tethered_notification_message</string> <!-- No upstream notification is shown when there is a downstream but no upstream that is able to do the tethering. --> <!-- Delay(millisecond) to show no upstream notification after there's no Backhaul. Set delay to "-1" for disable this feature. --> <integer name="delay_to_show_no_upstream_after_no_backhaul">-1</integer> </resources> packages/Tethering/src/com/android/networkstack/tethering/Tethering.java +9 −1 Original line number Diff line number Diff line Loading @@ -257,7 +257,7 @@ public class Tethering { mContext = mDeps.getContext(); mNetd = mDeps.getINetd(mContext); mLooper = mDeps.getTetheringLooper(); mNotificationUpdater = mDeps.getNotificationUpdater(mContext); mNotificationUpdater = mDeps.getNotificationUpdater(mContext, mLooper); mPublicSync = new Object(); Loading Loading @@ -337,6 +337,11 @@ public class Tethering { filter.addAction(ACTION_RESTRICT_BACKGROUND_CHANGED); mContext.registerReceiver(mStateReceiver, filter, null, mHandler); final IntentFilter noUpstreamFilter = new IntentFilter(); noUpstreamFilter.addAction(TetheringNotificationUpdater.ACTION_DISABLE_TETHERING); mContext.registerReceiver( mStateReceiver, noUpstreamFilter, PERMISSION_MAINLINE_NETWORK_STACK, mHandler); final WifiManager wifiManager = getWifiManager(); if (wifiManager != null) { wifiManager.registerSoftApCallback(mExecutor, new TetheringSoftApCallback()); Loading Loading @@ -855,6 +860,8 @@ public class Tethering { } else if (action.equals(ACTION_RESTRICT_BACKGROUND_CHANGED)) { mLog.log("OBSERVED data saver changed"); handleDataSaverChanged(); } else if (action.equals(TetheringNotificationUpdater.ACTION_DISABLE_TETHERING)) { untetherAll(); } } Loading Loading @@ -2013,6 +2020,7 @@ public class Tethering { } finally { mTetheringEventCallbacks.finishBroadcast(); } mNotificationUpdater.onUpstreamNetworkChanged(network); } private void reportConfigurationChanged(TetheringConfigurationParcel config) { Loading Loading
packages/Tethering/AndroidManifest.xml +3 −0 Original line number Diff line number Diff line Loading @@ -34,11 +34,14 @@ <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" /> <uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY" /> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.TETHER_PRIVILEGED" /> <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" /> <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <protected-broadcast android:name="com.android.server.connectivity.tethering.DISABLE_TETHERING" /> <application android:process="com.android.networkstack.process" android:extractNativeLibs="false" Loading
packages/Tethering/res/values-mcc204-mnc04/strings.xml→packages/Tethering/res/values-mcc310-mnc004/config.xml +20 −0 Original line number Diff line number Diff line Loading @@ -14,17 +14,7 @@ limitations under the License. --> <resources> <!-- String for no upstream notification title [CHAR LIMIT=200] --> <string name="no_upstream_notification_title">Tethering has no internet</string> <!-- String for no upstream notification title [CHAR LIMIT=200] --> <string name="no_upstream_notification_message">Devices can\u2019t connect</string> <!-- String for no upstream notification disable button [CHAR LIMIT=200] --> <string name="no_upstream_notification_disable_button">Turn off tethering</string> <!-- String for cellular roaming notification title [CHAR LIMIT=200] --> <string name="upstream_roaming_notification_title">Hotspot or tethering is on</string> <!-- String for cellular roaming notification message [CHAR LIMIT=500] --> <string name="upstream_roaming_notification_message">Additional charges may apply while roaming</string> <!-- String for cellular roaming notification continue button [CHAR LIMIT=200] --> <string name="upstream_roaming_notification_continue_button">Continue</string> <!-- Delay(millisecond) to show no upstream notification after there's no Backhaul. Set delay to "0" for disable this feature. --> <integer name="delay_to_show_no_upstream_after_no_backhaul">5000</integer> </resources> No newline at end of file
packages/Tethering/res/values-mcc311-mnc480/config.xml 0 → 100644 +20 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2020 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <resources> <!-- Delay(millisecond) to show no upstream notification after there's no Backhaul. Set delay to "0" for disable this feature. --> <integer name="delay_to_show_no_upstream_after_no_backhaul">5000</integer> </resources> No newline at end of file
packages/Tethering/res/values/config.xml +6 −0 Original line number Diff line number Diff line Loading @@ -202,4 +202,10 @@ <string name="tethering_notification_title">@string/tethered_notification_title</string> <!-- String for tether enable notification message. --> <string name="tethering_notification_message">@string/tethered_notification_message</string> <!-- No upstream notification is shown when there is a downstream but no upstream that is able to do the tethering. --> <!-- Delay(millisecond) to show no upstream notification after there's no Backhaul. Set delay to "-1" for disable this feature. --> <integer name="delay_to_show_no_upstream_after_no_backhaul">-1</integer> </resources>
packages/Tethering/src/com/android/networkstack/tethering/Tethering.java +9 −1 Original line number Diff line number Diff line Loading @@ -257,7 +257,7 @@ public class Tethering { mContext = mDeps.getContext(); mNetd = mDeps.getINetd(mContext); mLooper = mDeps.getTetheringLooper(); mNotificationUpdater = mDeps.getNotificationUpdater(mContext); mNotificationUpdater = mDeps.getNotificationUpdater(mContext, mLooper); mPublicSync = new Object(); Loading Loading @@ -337,6 +337,11 @@ public class Tethering { filter.addAction(ACTION_RESTRICT_BACKGROUND_CHANGED); mContext.registerReceiver(mStateReceiver, filter, null, mHandler); final IntentFilter noUpstreamFilter = new IntentFilter(); noUpstreamFilter.addAction(TetheringNotificationUpdater.ACTION_DISABLE_TETHERING); mContext.registerReceiver( mStateReceiver, noUpstreamFilter, PERMISSION_MAINLINE_NETWORK_STACK, mHandler); final WifiManager wifiManager = getWifiManager(); if (wifiManager != null) { wifiManager.registerSoftApCallback(mExecutor, new TetheringSoftApCallback()); Loading Loading @@ -855,6 +860,8 @@ public class Tethering { } else if (action.equals(ACTION_RESTRICT_BACKGROUND_CHANGED)) { mLog.log("OBSERVED data saver changed"); handleDataSaverChanged(); } else if (action.equals(TetheringNotificationUpdater.ACTION_DISABLE_TETHERING)) { untetherAll(); } } Loading Loading @@ -2013,6 +2020,7 @@ public class Tethering { } finally { mTetheringEventCallbacks.finishBroadcast(); } mNotificationUpdater.onUpstreamNetworkChanged(network); } private void reportConfigurationChanged(TetheringConfigurationParcel config) { Loading