<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright 2022 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 name="activityNotFoundMsg">The activity with intent was not found : </string>
    <string name="activityNotStartedException">Unable to start the activity with intent : </string>
    <string name="canNotDrawOverlaysMsg">The application cannot draw overlays</string>
    <string name="dumpsysActivity">dumpsys activity</string>
    <string name="dumpsysActivityNotStartedException">Could not execute dumpsys activity command
    </string>
    <string name="errorMessage">Device is vulnerable to b/205150380 hence any app with
    "SYSTEM_ALERT_WINDOW can overlay the RequestManageCredentials screen</string>
    <string name="mResumedTrue">mResumed=true</string>
    <string name="overlayAttack">overlayattack</string>
    <string name="overlayButtonText">OverlayButton</string>
    <string name="overlayServiceNotStartedException">Unable to start the overlay service</string>
    <string name="overlayUiScreenError">Overlay UI did not appear on the screen</string>
    <string name="vulActivityNotRunningError">The RequestManageCredentials is not currently running
    on the device</string>
</resources>
