<?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>
    <!-- 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>
</resources>
