summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tony Huang <tonyychuang@google.com> 2019-05-03 19:18:02 +0800
committer Tony Huang <tonyychuang@google.com> 2019-05-08 16:50:03 +0800
commit03ef741d82978285d200692fb035b04837e1939f (patch)
tree3aef91bb7d9fee8c972573787e5f567dacd418ad
parente66ca09dfed3130f4d0e09ed9f88f39d0788fec4 (diff)
Update dialog UI and search view hint font
1. Dialog title should place center and use custom font. 2. Search view hint font should same as search bar font. 3. Sort list text should use custom font. 4. Update BottomSheetDialog parent to theme overlay style, so we can remove redundant style on values-night. 5. Update DocumentsDefaultTheme parent to DayNight theme, this theme is control normal and night res in lib, so we can remove redundant style on values-night. Fix: 132038131 Fix: 132038826 Test: visual Test: atest DocumentsUIGoogleTests Change-Id: I01e1e097b9f9df29f5ec432409befbcec8a128db
-rw-r--r--res/values-night/styles.xml25
-rw-r--r--res/values-night/themes.xml25
-rw-r--r--res/values/styles.xml23
-rw-r--r--res/values/styles_text.xml5
-rw-r--r--res/values/themes.xml4
-rw-r--r--src/com/android/documentsui/CreateDirectoryFragment.java20
-rw-r--r--src/com/android/documentsui/OperationDialogFragment.java11
-rw-r--r--src/com/android/documentsui/dirlist/RenameDocumentFragment.java17
-rw-r--r--src/com/android/documentsui/picker/ConfirmFragment.java5
-rw-r--r--src/com/android/documentsui/ui/DialogController.java11
10 files changed, 60 insertions, 86 deletions
diff --git a/res/values-night/styles.xml b/res/values-night/styles.xml
deleted file mode 100644
index b5fa036c6..000000000
--- 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 81d0af1fa..af2d4b368 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 5e31cd390..10f9b05d0 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 6512d7a91..5e3d57c85 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 644c6bb0d..66677934c 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 dd7c2b585..756b55587 100644
--- a/src/com/android/documentsui/CreateDirectoryFragment.java
+++ b/src/com/android/documentsui/CreateDirectoryFragment.java
@@ -32,28 +32,28 @@ import android.os.Bundle;
import android.os.FileUtils;
import android.provider.DocumentsContract;
import android.provider.DocumentsContract.Document;
-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.view.inputmethod.EditorInfo;
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 androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.DialogFragment;
+import androidx.fragment.app.FragmentManager;
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 @@ public class CreateDirectoryFragment extends DialogFragment {
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 7b36599e9..bc98662dc 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 @@ public class OperationDialogFragment extends DialogFragment {
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 e9ccbccfd..d78f10a74 100644
--- a/src/com/android/documentsui/dirlist/RenameDocumentFragment.java
+++ b/src/com/android/documentsui/dirlist/RenameDocumentFragment.java
@@ -23,11 +23,6 @@ import android.content.Context;
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.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 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.DocumentInfo;
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 @@ public class RenameDocumentFragment extends DialogFragment {
@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 7565be05f..f56434d10 100644
--- a/src/com/android/documentsui/picker/ConfirmFragment.java
+++ b/src/com/android/documentsui/picker/ConfirmFragment.java
@@ -25,7 +25,6 @@ import android.os.Bundle;
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.R;
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 @@ public class ConfirmFragment extends DialogFragment {
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 27656c3c4..8e9673932 100644
--- a/src/com/android/documentsui/ui/DialogController.java
+++ b/src/com/android/documentsui/ui/DialogController.java
@@ -23,18 +23,19 @@ import android.widget.TextView;
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 @@ public interface DialogController {
// 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,