Merge "Update dialog UI and search view hint font" into qt-dev
am: 71513f91c3

Change-Id: I7561bfdb9dc60fe66c4825dd42be150be0ac2539
diff --git a/res/values-night/styles.xml b/res/values-night/styles.xml
deleted file mode 100644
index b5fa036..0000000
--- a/res/values-night/styles.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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 xmlns:android="http://schemas.android.com/apk/res/android">
-    <style name="BottomSheetDialogStyle" parent="@style/Theme.MaterialComponents.BottomSheetDialog">
-        <item name="android:colorBackground">@color/app_background_color</item>
-        <item name="android:statusBarColor">@android:color/transparent</item>
-        <item name="android:windowIsFloating">false</item>
-        <item name="bottomSheetStyle">@style/BottomSheet</item>
-        <item name="colorControlHighlight">@color/ripple_material_dark</item>
-    </style>
-</resources>
diff --git a/res/values-night/themes.xml b/res/values-night/themes.xml
index 81d0af1..af2d4b3 100644
--- a/res/values-night/themes.xml
+++ b/res/values-night/themes.xml
@@ -41,29 +41,4 @@
         <item name="android:windowSoftInputMode">stateUnspecified|adjustUnspecified</item>
 
     </style>
-
-    <style name="DocumentsDefaultTheme" parent="@style/Theme.MaterialComponents.NoActionBar">
-
-        <!-- This only used by support lib, not allow to overlay -->
-        <item name="windowActionBar">false</item>
-        <item name="windowActionModeOverlay">true</item>
-
-        <!-- For material design widget, chips, buttons, not support attr-->
-        <item name="colorPrimary">@color/primary</item>
-        <item name="colorAccent">@color/primary</item>
-
-        <item name="gridItemTint">@color/item_doc_grid_tint</item>
-
-        <item name="actionBarTheme">@style/ActionBarTheme</item>
-        <item name="actionModeStyle">@style/ActionModeStyle</item>
-        <item name="actionOverflowButtonStyle">@style/OverflowButtonStyle</item>
-        <item name="actionOverflowMenuStyle">@style/OverflowMenuStyle</item>
-        <item name="alertDialogTheme">@style/AlertDialogTheme</item>
-        <item name="bottomSheetDialogTheme">@style/BottomSheetDialogStyle</item>
-        <item name="materialButtonStyle">@style/MaterialButton</item>
-        <item name="materialButtonOutlinedStyle">@style/MaterialOutlinedButton</item>
-        <item name="materialCardViewStyle">@style/CardViewStyle</item>
-        <item name="queryBackground">@color/menu_search_background</item>
-        <item name="snackbarButtonStyle">@style/SnackbarButtonStyle</item>
-    </style>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 5e31cd3..10f9b05 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -43,11 +43,11 @@
         <item name="android:textColor">?android:colorPrimary</item>
     </style>
 
-    <style name="BottomSheetDialogStyle" parent="@Theme.MaterialComponents.Light.BottomSheetDialog">
-        <item name="android:colorBackground">@color/app_background_color</item>
-        <item name="android:windowLightNavigationBar">true</item>
-        <item name="android:statusBarColor">@android:color/transparent</item>
-        <item name="android:navigationBarColor">?android:attr/colorBackground</item>
+    <style name="AutoCompleteTextViewStyle" parent="@style/Widget.AppCompat.AutoCompleteTextView">
+        <item name="android:textAppearance">@style/AutoCompleteText</item>
+    </style>
+
+    <style name="BottomSheetDialogStyle" parent="@style/ThemeOverlay.MaterialComponents.BottomSheetDialog">
         <item name="android:windowIsFloating">false</item>
         <item name="bottomSheetStyle">@style/BottomSheet</item>
         <item name="colorControlHighlight">@color/ripple_material_light</item>
@@ -68,6 +68,12 @@
         <item name="android:overlapAnchor">false</item>
     </style>
 
+    <style name="MaterialAlertDialogTitleStyle" parent="@style/MaterialAlertDialog.MaterialComponents.Title.Text.CenterStacked">
+        <item name="android:textColor">?attr/colorOnSurface</item>
+        <item name="android:textSize">20sp</item>
+        <item name="fontFamily">@string/config_fontFamilyMedium</item>
+    </style>
+
     <style name="MaterialButton" parent="@style/Widget.MaterialComponents.Button.UnelevatedButton">
         <item name="android:textAppearance">@style/MaterialButtonTextAppearance</item>
     </style>
@@ -84,4 +90,11 @@
         <item name="buttonBarPositiveButtonStyle">@style/DialogTextButton</item>
         <item name="buttonBarNegativeButtonStyle">@style/DialogTextButton</item>
     </style>
+
+    <style name="MaterialAlertDialogTheme" parent="@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog.Centered">
+        <item name="android:dialogCornerRadius">@dimen/grid_item_radius</item>
+        <item name="buttonBarPositiveButtonStyle">@style/DialogTextButton</item>
+        <item name="buttonBarNegativeButtonStyle">@style/DialogTextButton</item>
+        <item name="materialAlertDialogTitleTextStyle">@style/MaterialAlertDialogTitleStyle</item>
+    </style>
 </resources>
diff --git a/res/values/styles_text.xml b/res/values/styles_text.xml
index 6512d7a..5e3d57c 100644
--- a/res/values/styles_text.xml
+++ b/res/values/styles_text.xml
@@ -21,6 +21,7 @@
 
     <style name="SortList" parent="@style/TextAppearance.AppCompat.Subhead">
         <item name="android:textColor">@color/sort_list_text</item>
+        <item name="fontFamily">@string/config_fontFamilyMedium</item>
     </style>
 
     <style name="SearchBarTitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
@@ -40,6 +41,10 @@
         <item name="fontFamily">@string/config_fontFamily</item>
     </style>
 
+    <style name="AutoCompleteText" parent="@style/TextAppearance.AppCompat.Medium">
+        <item name="fontFamily">@string/config_fontFamily</item>
+    </style>
+
     <style name="CardPrimaryText" parent="@style/TextAppearance.AppCompat.Subhead">
         <item name="android:textColor">?android:attr/textColorPrimary</item>
         <item name="android:textSize">14sp</item>
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 644c6bb..6667793 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -46,7 +46,7 @@
 
     </style>
 
-    <style name="DocumentsDefaultTheme" parent="@style/Theme.MaterialComponents.Light.NoActionBar">
+    <style name="DocumentsDefaultTheme" parent="@style/Theme.MaterialComponents.DayNight.NoActionBar">
 
         <!-- This only used by support lib, not allow to overlay -->
         <item name="windowActionBar">false</item>
@@ -64,10 +64,12 @@
         <item name="actionOverflowButtonStyle">@style/OverflowButtonStyle</item>
         <item name="actionOverflowMenuStyle">@style/OverflowMenuStyle</item>
         <item name="alertDialogTheme">@style/AlertDialogTheme</item>
+        <item name="autoCompleteTextViewStyle">@style/AutoCompleteTextViewStyle</item>
         <item name="bottomSheetDialogTheme">@style/BottomSheetDialogStyle</item>
         <item name="materialButtonStyle">@style/MaterialButton</item>
         <item name="materialButtonOutlinedStyle">@style/MaterialOutlinedButton</item>
         <item name="materialCardViewStyle">@style/CardViewStyle</item>
+        <item name="materialAlertDialogTheme">@style/MaterialAlertDialogTheme</item>
         <item name="queryBackground">@color/menu_search_background</item>
         <item name="snackbarButtonStyle">@style/SnackbarButtonStyle</item>
     </style>
diff --git a/src/com/android/documentsui/CreateDirectoryFragment.java b/src/com/android/documentsui/CreateDirectoryFragment.java
index dd7c2b5..756b555 100644
--- a/src/com/android/documentsui/CreateDirectoryFragment.java
+++ b/src/com/android/documentsui/CreateDirectoryFragment.java
@@ -32,28 +32,28 @@
 import android.os.FileUtils;
 import android.provider.DocumentsContract;
 import android.provider.DocumentsContract.Document;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.inputmethod.EditorInfo;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.widget.TextView.OnEditorActionListener;
+
 import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.FragmentManager;
 
-import android.util.Log;
-import android.view.KeyEvent;
-import android.view.inputmethod.EditorInfo;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.EditText;
-import android.widget.TextView;
-import android.widget.TextView.OnEditorActionListener;
-
-import com.google.android.material.snackbar.Snackbar;
-import com.google.android.material.textfield.TextInputLayout;
-
 import com.android.documentsui.base.DocumentInfo;
 import com.android.documentsui.base.Shared;
-import com.android.documentsui.R;
 import com.android.documentsui.ui.Snackbars;
 
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import com.google.android.material.snackbar.Snackbar;
+import com.google.android.material.textfield.TextInputLayout;
+
 /**
  * Dialog to create a new directory.
  */
@@ -70,7 +70,7 @@
         final Context context = getActivity();
         final ContentResolver resolver = context.getContentResolver();
 
-        final AlertDialog.Builder builder = new AlertDialog.Builder(context);
+        final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
         final LayoutInflater dialogInflater = LayoutInflater.from(builder.getContext());
 
         final View view = dialogInflater.inflate(R.layout.dialog_file_name, null, false);
diff --git a/src/com/android/documentsui/OperationDialogFragment.java b/src/com/android/documentsui/OperationDialogFragment.java
index 7b36599..bc98662 100644
--- a/src/com/android/documentsui/OperationDialogFragment.java
+++ b/src/com/android/documentsui/OperationDialogFragment.java
@@ -16,24 +16,25 @@
 
 package com.android.documentsui;
 
-import androidx.annotation.IntDef;
 import android.app.Dialog;
 import android.content.DialogInterface;
 import android.net.Uri;
 import android.os.Bundle;
-import androidx.appcompat.app.AlertDialog;
+import android.text.Html;
+
+import androidx.annotation.IntDef;
 import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
 
-import android.text.Html;
-
 import com.android.documentsui.base.DocumentInfo;
 import com.android.documentsui.base.DocumentStack;
 import com.android.documentsui.services.FileOperationService;
 import com.android.documentsui.services.FileOperationService.OpType;
 import com.android.documentsui.ui.MessageBuilder;
 
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
@@ -93,7 +94,7 @@
         final ArrayList<DocumentInfo> docList = getArguments().getParcelableArrayList(
                 FileOperationService.EXTRA_FAILED_DOCS);
 
-        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity());
         final String message = new MessageBuilder(getContext()).generateListMessage(
                 dialogType, operationType, docList, uriList);
 
diff --git a/src/com/android/documentsui/dirlist/RenameDocumentFragment.java b/src/com/android/documentsui/dirlist/RenameDocumentFragment.java
index e9ccbcc..d78f10a 100644
--- a/src/com/android/documentsui/dirlist/RenameDocumentFragment.java
+++ b/src/com/android/documentsui/dirlist/RenameDocumentFragment.java
@@ -23,11 +23,6 @@
 import android.content.DialogInterface;
 import android.os.AsyncTask;
 import android.os.Bundle;
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
-import androidx.fragment.app.DialogFragment;
-import androidx.fragment.app.FragmentManager;
-
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
@@ -38,8 +33,10 @@
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 
-import com.google.android.material.snackbar.Snackbar;
-import com.google.android.material.textfield.TextInputLayout;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.DialogFragment;
+import androidx.fragment.app.FragmentManager;
 
 import com.android.documentsui.BaseActivity;
 import com.android.documentsui.Metrics;
@@ -48,6 +45,10 @@
 import com.android.documentsui.base.Shared;
 import com.android.documentsui.ui.Snackbars;
 
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import com.google.android.material.snackbar.Snackbar;
+import com.google.android.material.textfield.TextInputLayout;
+
 /**
  * Dialog to rename file or directory.
  */
@@ -72,7 +73,7 @@
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         Context context = getActivity();
-        AlertDialog.Builder builder = new AlertDialog.Builder(context);
+        MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
         LayoutInflater dialogInflater = LayoutInflater.from(builder.getContext());
         View view = dialogInflater.inflate(R.layout.dialog_file_name, null, false);
 
diff --git a/src/com/android/documentsui/picker/ConfirmFragment.java b/src/com/android/documentsui/picker/ConfirmFragment.java
index 7565be0..f56434d 100644
--- a/src/com/android/documentsui/picker/ConfirmFragment.java
+++ b/src/com/android/documentsui/picker/ConfirmFragment.java
@@ -25,7 +25,6 @@
 import android.provider.DocumentsContract;
 import android.text.TextUtils;
 
-import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
@@ -36,6 +35,8 @@
 import com.android.documentsui.base.DocumentInfo;
 import com.android.documentsui.base.Shared;
 
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
 /**
  * Used to confirm with user that it's OK to overwrite an existing file.
  */
@@ -66,7 +67,7 @@
         mType = arg.getInt(CONFIRM_TYPE);
         final PickResult pickResult = ((PickActivity) getActivity()).getInjector().pickResult;
 
-        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity());
         switch (mType) {
             case TYPE_OVERWRITE:
                 String message = String.format(
diff --git a/src/com/android/documentsui/ui/DialogController.java b/src/com/android/documentsui/ui/DialogController.java
index 27656c3..8e96739 100644
--- a/src/com/android/documentsui/ui/DialogController.java
+++ b/src/com/android/documentsui/ui/DialogController.java
@@ -23,18 +23,19 @@
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.FragmentManager;
 
-import com.google.android.material.snackbar.Snackbar;
-
 import com.android.documentsui.R;
 import com.android.documentsui.base.ConfirmationCallback;
 import com.android.documentsui.base.DocumentInfo;
 import com.android.documentsui.base.Features;
 import com.android.documentsui.picker.ConfirmFragment;
 import com.android.documentsui.services.FileOperation;
-import com.android.documentsui.services.FileOperationService.OpType;
 import com.android.documentsui.services.FileOperationService;
-import com.android.documentsui.services.FileOperations.Callback.Status;
+import com.android.documentsui.services.FileOperationService.OpType;
 import com.android.documentsui.services.FileOperations;
+import com.android.documentsui.services.FileOperations.Callback.Status;
+
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import com.google.android.material.snackbar.Snackbar;
 
 import java.util.List;
 
@@ -86,7 +87,7 @@
             // but as a simple runtime dialog. So rotating a device with an
             // active delete dialog...results in that dialog disappearing.
             // We can do better, but don't have cycles for it now.
-            final AlertDialog alertDialog = new AlertDialog.Builder(mActivity)
+            final AlertDialog alertDialog = new MaterialAlertDialogBuilder(mActivity)
                     .setView(message)
                     .setPositiveButton(
                             android.R.string.ok,