<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 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>
    <!-- Intentionally unset. Vendors should set this in an overlay. -->
    <string name="trusted_quick_viewer_package" translatable="false"></string>

    <!-- Indicates if DocumentsUI should handle VIEW_DOWNLOADS Intent.
    on ARC++ devices, there exists another handler which handles VIEW_DOWNLOADS Intent. -->
    <bool name="handle_view_downloads_intent">true</bool>

    <!-- Indicates if search view is taking the whole toolbar space. On larger
         layouts we reduce this to an input-box adjacent to menu actions. -->
    <bool name="full_bar_search_view">true</bool>

    <!-- Indicates if showing as search bar design -->
    <bool name="show_search_bar">false</bool>

    <!-- Indicates if showing hidden files by default -->
    <bool name="show_hidden_files_by_default">false</bool>

    <string name="default_root_uri" translatable="false">content://com.android.providers.downloads.documents/root/downloads</string>
    <!-- The value is used in sorting process on Drawer menu. If the root's package name
     start with it, the item will have higher order than others.-->
    <string name="preferred_root_package" translatable="false">com.android.shell</string>

    <string name="datetime_format_12" translatable="false">MMM dd, yyyy, h:mm a</string>
    <string name="datetime_format_24" translatable="false">MMM dd, yyyy, H:mm</string>

    <!--
        New features must be added behind a boolean flag prefixed w/ "feature_".
        Please add them in alphabetical order. Same goes for accessor
        methods in Features class.
    -->
    <bool name="feature_archive_creation">true</bool>
    <bool name="feature_command_interceptor">false</bool>
    <bool name="feature_content_paging">true</bool>
    <bool name="feature_content_refresh">true</bool>
    <bool name="feature_folders_in_search_results">true</bool>
    <bool name="feature_gesture_scale">true</bool>
    <bool name="feature_job_progress_dialog">false</bool>
    <bool name="feature_launch_to_document">true</bool>
    <bool name="feature_notification_channel">true</bool>
    <bool name="feature_overwrite_confirmation">true</bool>
    <bool name="feature_remote_actions">true</bool>
    <bool name="feature_system_keyboard_navigation">true</bool>
    <bool name="feature_virtual_files_sharing">true</bool>
    <bool name="feature_inspector">true</bool>
    <bool name="feature_debug_mode">false</bool>

    <!-- Indicates if internal storage is shown as default or not. -->
    <bool name="config_default_show_device_root">false</bool>

    <!-- Whether to show capitalize string on Button -->
    <bool name="config_button_all_caps">true</bool>

    <!-- This option allows us to hide the Files app icon from launcher on Android Go device.
    Android Go device will have Files Go app for file management. -->
    <bool name="is_launcher_enabled">true</bool>

    <string name="scrolling_behavior" translatable="false">com.android.documentsui.ui.SearchBarScrollingViewBehavior</string>

    <!-- The maximum record of search history. -->
    <integer name="config_maximum_search_history">200</integer>
</resources>
