diff options
author | Justin Klaassen <justinklaassen@google.com> | 2017-09-18 17:38:50 -0400 |
---|---|---|
committer | Justin Klaassen <justinklaassen@google.com> | 2017-09-18 17:38:50 -0400 |
commit | bc81c7ada5aab3806dd0b17498f5c9672c9b33c4 (patch) | |
tree | 7fdcc541a9ac9e92134f1a80cec557fee772bcf8 /android/widget | |
parent | 10d07c88d69cc64f73a069163e7ea5ba2519a099 (diff) | |
download | android-28-bc81c7ada5aab3806dd0b17498f5c9672c9b33c4.tar.gz |
Import Android SDK Platform P [4344336]
/google/data/ro/projects/android/fetch_artifact \
--bid 4344336 \
--target sdk_phone_armv7-win_sdk \
sdk-repo-linux-sources-4344336.zip
AndroidVersion.ApiLevel has been modified to appear as 28
Change-Id: If482fcd4cfaf6c5e544e5574926be25a293e9a6d
Diffstat (limited to 'android/widget')
-rw-r--r-- | android/widget/DatePickerCalendarDelegate.java | 46 | ||||
-rw-r--r-- | android/widget/Editor.java | 84 | ||||
-rw-r--r-- | android/widget/TextView.java | 13 |
3 files changed, 77 insertions, 66 deletions
diff --git a/android/widget/DatePickerCalendarDelegate.java b/android/widget/DatePickerCalendarDelegate.java index 60b47572..e40023d0 100644 --- a/android/widget/DatePickerCalendarDelegate.java +++ b/android/widget/DatePickerCalendarDelegate.java @@ -22,11 +22,10 @@ import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; +import android.icu.text.DateFormat; import android.icu.text.DisplayContext; -import android.icu.text.SimpleDateFormat; import android.icu.util.Calendar; import android.os.Parcelable; -import android.text.format.DateFormat; import android.util.AttributeSet; import android.util.StateSet; import android.view.HapticFeedbackConstants; @@ -62,8 +61,8 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { private static final int[] ATTRS_DISABLED_ALPHA = new int[] { com.android.internal.R.attr.disabledAlpha}; - private SimpleDateFormat mYearFormat; - private SimpleDateFormat mMonthDayFormat; + private DateFormat mYearFormat; + private DateFormat mMonthDayFormat; // Top-level container. private ViewGroup mContainer; @@ -273,19 +272,16 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { /** * Listener called when the user clicks on a header item. */ - private final OnClickListener mOnHeaderClickListener = new OnClickListener() { - @Override - public void onClick(View v) { - tryVibrate(); + private final OnClickListener mOnHeaderClickListener = v -> { + tryVibrate(); - switch (v.getId()) { - case R.id.date_picker_header_year: - setCurrentView(VIEW_YEAR); - break; - case R.id.date_picker_header_date: - setCurrentView(VIEW_MONTH_DAY); - break; - } + switch (v.getId()) { + case R.id.date_picker_header_year: + setCurrentView(VIEW_YEAR); + break; + case R.id.date_picker_header_date: + setCurrentView(VIEW_MONTH_DAY); + break; } }; @@ -299,10 +295,9 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { } // Update the date formatter. - final String datePattern = DateFormat.getBestDateTimePattern(locale, "EMMMd"); - mMonthDayFormat = new SimpleDateFormat(datePattern, locale); + mMonthDayFormat = DateFormat.getInstanceForSkeleton("EMMMd", locale); mMonthDayFormat.setContext(DisplayContext.CAPITALIZATION_FOR_STANDALONE); - mYearFormat = new SimpleDateFormat("y", locale); + mYearFormat = DateFormat.getInstanceForSkeleton("y", locale); // Update the header text. onCurrentDateChanged(false); @@ -344,14 +339,11 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { case VIEW_YEAR: final int year = mCurrentDate.get(Calendar.YEAR); mYearPickerView.setYear(year); - mYearPickerView.post(new Runnable() { - @Override - public void run() { - mYearPickerView.requestFocus(); - final View selected = mYearPickerView.getSelectedView(); - if (selected != null) { - selected.requestFocus(); - } + mYearPickerView.post(() -> { + mYearPickerView.requestFocus(); + final View selected = mYearPickerView.getSelectedView(); + if (selected != null) { + selected.requestFocus(); } }); diff --git a/android/widget/Editor.java b/android/widget/Editor.java index d23dfe46..0f617242 100644 --- a/android/widget/Editor.java +++ b/android/widget/Editor.java @@ -41,6 +41,7 @@ import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; +import android.metrics.LogMaker; import android.os.Bundle; import android.os.LocaleList; import android.os.Parcel; @@ -1585,49 +1586,49 @@ public class Editor { outText.startOffset = 0; outText.selectionStart = mTextView.getSelectionStart(); outText.selectionEnd = mTextView.getSelectionEnd(); + outText.hint = mTextView.getHint(); return true; } boolean reportExtractedText() { final Editor.InputMethodState ims = mInputMethodState; - if (ims != null) { - final boolean contentChanged = ims.mContentChanged; - if (contentChanged || ims.mSelectionModeChanged) { - ims.mContentChanged = false; - ims.mSelectionModeChanged = false; - final ExtractedTextRequest req = ims.mExtractedTextRequest; - if (req != null) { - InputMethodManager imm = InputMethodManager.peekInstance(); - if (imm != null) { - if (TextView.DEBUG_EXTRACT) { - Log.v(TextView.LOG_TAG, "Retrieving extracted start=" - + ims.mChangedStart - + " end=" + ims.mChangedEnd - + " delta=" + ims.mChangedDelta); - } - if (ims.mChangedStart < 0 && !contentChanged) { - ims.mChangedStart = EXTRACT_NOTHING; - } - if (extractTextInternal(req, ims.mChangedStart, ims.mChangedEnd, - ims.mChangedDelta, ims.mExtractedText)) { - if (TextView.DEBUG_EXTRACT) { - Log.v(TextView.LOG_TAG, - "Reporting extracted start=" - + ims.mExtractedText.partialStartOffset - + " end=" + ims.mExtractedText.partialEndOffset - + ": " + ims.mExtractedText.text); - } - - imm.updateExtractedText(mTextView, req.token, ims.mExtractedText); - ims.mChangedStart = EXTRACT_UNKNOWN; - ims.mChangedEnd = EXTRACT_UNKNOWN; - ims.mChangedDelta = 0; - ims.mContentChanged = false; - return true; - } - } - } - } + if (ims == null) { + return false; + } + ims.mSelectionModeChanged = false; + final ExtractedTextRequest req = ims.mExtractedTextRequest; + if (req == null) { + return false; + } + final InputMethodManager imm = InputMethodManager.peekInstance(); + if (imm == null) { + return false; + } + if (TextView.DEBUG_EXTRACT) { + Log.v(TextView.LOG_TAG, "Retrieving extracted start=" + + ims.mChangedStart + + " end=" + ims.mChangedEnd + + " delta=" + ims.mChangedDelta); + } + if (ims.mChangedStart < 0 && !ims.mContentChanged) { + ims.mChangedStart = EXTRACT_NOTHING; + } + if (extractTextInternal(req, ims.mChangedStart, ims.mChangedEnd, + ims.mChangedDelta, ims.mExtractedText)) { + if (TextView.DEBUG_EXTRACT) { + Log.v(TextView.LOG_TAG, + "Reporting extracted start=" + + ims.mExtractedText.partialStartOffset + + " end=" + ims.mExtractedText.partialEndOffset + + ": " + ims.mExtractedText.text); + } + + imm.updateExtractedText(mTextView, req.token, ims.mExtractedText); + ims.mChangedStart = EXTRACT_UNKNOWN; + ims.mChangedEnd = EXTRACT_UNKNOWN; + ims.mChangedDelta = 0; + ims.mContentChanged = false; + return true; } return false; } @@ -3932,6 +3933,10 @@ public class Editor { textClassification.getLabel()) .setIcon(textClassification.getIcon()) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + mMetricsLogger.write( + new LogMaker(MetricsEvent.TEXT_SELECTION_MENU_ITEM_ASSIST) + .setType(MetricsEvent.TYPE_OPEN) + .setSubtype(textClassification.getLogType())); } } @@ -3973,6 +3978,9 @@ public class Editor { .onClick(mTextView); } } + mMetricsLogger.action( + MetricsEvent.ACTION_TEXT_SELECTION_MENU_ITEM_ASSIST, + textClassification.getLogType()); stopTextActionMode(); return true; } diff --git a/android/widget/TextView.java b/android/widget/TextView.java index 4b6c4d35..efcc3a2f 100644 --- a/android/widget/TextView.java +++ b/android/widget/TextView.java @@ -5547,6 +5547,14 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener */ @android.view.RemotableViewMethod public final void setHint(CharSequence hint) { + setHintInternal(hint); + + if (isInputMethodTarget()) { + mEditor.reportExtractedText(); + } + } + + private void setHintInternal(CharSequence hint) { mHint = TextUtils.stringOrSpannedString(hint); if (mLayout != null) { @@ -7644,6 +7652,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } else { MetaKeyKeyListener.stopSelecting(this, sp); } + + setHintInternal(text.hint); } /** @@ -8433,7 +8443,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (mMaxMode != LINES) { desired = Math.min(desired, mMaximum); - } else if (cap && linecount > mMaximum && layout instanceof DynamicLayout) { + } else if (cap && linecount > mMaximum && (layout instanceof DynamicLayout + || layout instanceof BoringLayout)) { desired = layout.getLineTop(mMaximum); if (dr != null) { |