diff options
author | 2019-05-03 19:18:02 +0800 | |
---|---|---|
committer | 2019-05-08 16:50:03 +0800 | |
commit | 03ef741d82978285d200692fb035b04837e1939f (patch) | |
tree | 3aef91bb7d9fee8c972573787e5f567dacd418ad | |
parent | e66ca09dfed3130f4d0e09ed9f88f39d0788fec4 (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.xml | 25 | ||||
-rw-r--r-- | res/values-night/themes.xml | 25 | ||||
-rw-r--r-- | res/values/styles.xml | 23 | ||||
-rw-r--r-- | res/values/styles_text.xml | 5 | ||||
-rw-r--r-- | res/values/themes.xml | 4 | ||||
-rw-r--r-- | src/com/android/documentsui/CreateDirectoryFragment.java | 20 | ||||
-rw-r--r-- | src/com/android/documentsui/OperationDialogFragment.java | 11 | ||||
-rw-r--r-- | src/com/android/documentsui/dirlist/RenameDocumentFragment.java | 17 | ||||
-rw-r--r-- | src/com/android/documentsui/picker/ConfirmFragment.java | 5 | ||||
-rw-r--r-- | src/com/android/documentsui/ui/DialogController.java | 11 |
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, |