From 8f322413eac93925575c1b9482008d2f644191d8 Mon Sep 17 00:00:00 2001 From: Martin Guillon Date: Thu, 5 Aug 2021 09:50:37 +0200 Subject: [PATCH] fix: autofillType pre 26 --- .../ui/editable-text-base/index.android.ts | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/core/ui/editable-text-base/index.android.ts b/packages/core/ui/editable-text-base/index.android.ts index 898797086..5037835af 100644 --- a/packages/core/ui/editable-text-base/index.android.ts +++ b/packages/core/ui/editable-text-base/index.android.ts @@ -3,9 +3,13 @@ import { textTransformProperty, textProperty, resetSymbol } from '../text-base'; import { Color } from '../../color'; import { ad } from '../../utils'; import { CoreTypes } from '../../core-types'; +import { Device } from '../../platform'; +import lazy from '../../utils/lazy'; export * from './editable-text-base-common'; +const sdkVersion = lazy(() => parseInt(Device.sdkVersion)); + //https://github.com/NativeScript/NativeScript/issues/2942 export let dismissKeyboardTimeoutId: NodeJS.Timer; export let dismissKeyboardOwner: WeakRef; @@ -139,6 +143,8 @@ function initializeEditTextListeners(): void { EditTextListeners = EditTextListenersImpl; } +let apiLevel: number; + export abstract class EditableTextBase extends EditableTextBaseCommon { /* tslint:disable */ _dirtyTextAccumulator: string; @@ -158,6 +164,9 @@ export abstract class EditableTextBase extends EditableTextBaseCommon { } public createNativeView() { + if (!apiLevel) { + apiLevel = sdkVersion(); + } return new android.widget.EditText(this._context); } @@ -299,28 +308,31 @@ export abstract class EditableTextBase extends EditableTextBaseCommon { } [autofillTypeProperty.setNative](value: CoreTypes.AutofillType) { + if (apiLevel < 26) { + return; + } let newOptions; switch (value) { case 'phone': - newOptions = android.view.View.AUTOFILL_HINT_PHONE; + newOptions = 'phone'; // android.view.View.AUTOFILL_HINT_PHONE break; case 'postalCode': - newOptions = android.view.View.AUTOFILL_HINT_POSTAL_CODE; + newOptions = 'postalCode'; // android.view.View.AUTOFILL_HINT_POSTAL_CODE break; case 'creditCardNumber': - newOptions = android.view.View.AUTOFILL_HINT_CREDIT_CARD_NUMBER; + newOptions = 'creditCardNumber'; // android.view.View.AUTOFILL_HINT_CREDIT_CARD_NUMBER break; case 'email': - newOptions = android.view.View.AUTOFILL_HINT_EMAIL_ADDRESS; + newOptions = 'emailAddress'; // android.view.View.AUTOFILL_HINT_EMAIL_ADDRESS break; case 'name': - newOptions = android.view.View.AUTOFILL_HINT_NAME; + newOptions = 'name'; // android.view.View.AUTOFILL_HINT_NAME break; case 'username': - newOptions = android.view.View.AUTOFILL_HINT_USERNAME; + newOptions = 'username'; // android.view.View.AUTOFILL_HINT_USERNAME break; case 'password': - newOptions = android.view.View.AUTOFILL_HINT_PASSWORD; + newOptions = 'password'; // android.view.View.AUTOFILL_HINT_PASSWORD break; case 'none': newOptions = null;