mirror of
https://github.com/material-components/material-components-android.git
synced 2026-02-20 08:39:55 +08:00
Include separator characters for Samsung devices in MaterialDatePicker
Resolves https://github.com/material-components/material-components-android/issues/682 PiperOrigin-RevId: 279146671 (cherry picked from commit 62a2164f1808a559c0ddb799aff4965f3669f20b)
This commit is contained in:
parent
cc1cfd7acc
commit
945a220138
@ -28,11 +28,13 @@ import androidx.annotation.RestrictTo;
|
||||
import androidx.annotation.RestrictTo.Scope;
|
||||
import androidx.core.util.Pair;
|
||||
import androidx.core.util.Preconditions;
|
||||
import android.text.InputType;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.EditText;
|
||||
import com.google.android.material.internal.ManufacturerUtils;
|
||||
import com.google.android.material.internal.ViewUtils;
|
||||
import com.google.android.material.resources.MaterialAttributes;
|
||||
import com.google.android.material.textfield.TextInputLayout;
|
||||
@ -178,6 +180,12 @@ public class RangeDateSelector implements DateSelector<Pair<Long, Long>> {
|
||||
final TextInputLayout endTextInput = root.findViewById(R.id.mtrl_picker_text_input_range_end);
|
||||
EditText startEditText = startTextInput.getEditText();
|
||||
EditText endEditText = endTextInput.getEditText();
|
||||
// The date inputType for Samsung does not include any separator characters
|
||||
if (ManufacturerUtils.isSamsungDevice()) {
|
||||
// Using the URI variation places the '/' and '.' in more prominent positions
|
||||
startEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI);
|
||||
endEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI);
|
||||
}
|
||||
|
||||
invalidRangeStartError = root.getResources().getString(R.string.mtrl_picker_invalid_range);
|
||||
|
||||
|
||||
@ -27,10 +27,12 @@ import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RestrictTo;
|
||||
import androidx.annotation.RestrictTo.Scope;
|
||||
import androidx.core.util.Pair;
|
||||
import android.text.InputType;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.EditText;
|
||||
import com.google.android.material.internal.ManufacturerUtils;
|
||||
import com.google.android.material.internal.ViewUtils;
|
||||
import com.google.android.material.resources.MaterialAttributes;
|
||||
import com.google.android.material.textfield.TextInputLayout;
|
||||
@ -100,6 +102,11 @@ public class SingleDateSelector implements DateSelector<Long> {
|
||||
|
||||
TextInputLayout dateTextInput = root.findViewById(R.id.mtrl_picker_text_input_date);
|
||||
EditText dateEditText = dateTextInput.getEditText();
|
||||
// The date inputType for Samsung does not include any separator characters
|
||||
if (ManufacturerUtils.isSamsungDevice()) {
|
||||
// Using the URI variation places the '/' and '.' in more prominent positions
|
||||
dateEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI);
|
||||
}
|
||||
SimpleDateFormat format = UtcDates.getTextInputFormat();
|
||||
String formatHint = UtcDates.getTextInputHint(root.getResources(), format);
|
||||
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright 2019 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.
|
||||
*/
|
||||
package com.google.android.material.internal;
|
||||
|
||||
import com.google.android.material.R;
|
||||
|
||||
import android.os.Build;
|
||||
import androidx.annotation.RestrictTo;
|
||||
import androidx.annotation.RestrictTo.Scope;
|
||||
|
||||
/** Utils to determine device manufacturers for special handling. */
|
||||
@RestrictTo(Scope.LIBRARY_GROUP)
|
||||
public class ManufacturerUtils {
|
||||
|
||||
private ManufacturerUtils() {}
|
||||
|
||||
/** Returns true if the device manufacturer is Samsung. */
|
||||
public static boolean isSamsungDevice() {
|
||||
return Build.MANUFACTURER.equalsIgnoreCase("samsung");
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user