[Tizen] Fix the DisplayActionSheet (#12188)

* [Tizen] Fix button style issue in DisplayActionSheet

* [Tizen] Add null check for avoiding null reference exceptions
This commit is contained in:
shmin 2020-09-22 18:51:10 +09:00 коммит произвёл GitHub
Родитель 1b495da2c5
Коммит 7200e07dc7
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
8 изменённых файлов: 25 добавлений и 9 удалений

Просмотреть файл

@ -142,10 +142,12 @@ namespace Xamarin.Forms.Platform.Tizen
var destruction = new Native.Button(alert) var destruction = new Native.Button(alert)
{ {
Text = arguments.Destruction, Text = arguments.Destruction,
Style = ButtonStyle.Text,
TextColor = EColor.Red,
AlignmentX = -1 AlignmentX = -1
}; };
destruction.SetWatchTextStyle();
//TextColor should be set after applying style
destruction.TextColor = EColor.Red;
destruction.Clicked += (s, evt) => destruction.Clicked += (s, evt) =>
{ {
arguments.SetResult(arguments.Destruction); arguments.SetResult(arguments.Destruction);
@ -160,9 +162,10 @@ namespace Xamarin.Forms.Platform.Tizen
var button = new Native.Button(alert) var button = new Native.Button(alert)
{ {
Text = buttonName, Text = buttonName,
Style = ButtonStyle.Text,
AlignmentX = -1 AlignmentX = -1
}; };
button.SetWatchTextStyle();
button.Clicked += (s, evt) => button.Clicked += (s, evt) =>
{ {
arguments.SetResult(buttonName); arguments.SetResult(buttonName);

Просмотреть файл

@ -114,7 +114,7 @@ namespace Xamarin.Forms.Platform.Tizen
void UpdateText() void UpdateText()
{ {
Control.Text = Element.Text; Control.Text = Element.Text ?? "";
if (!Control.IsFocused) if (!Control.IsFocused)
{ {
Control.MoveCursorEnd(); Control.MoveCursorEnd();

Просмотреть файл

@ -116,7 +116,7 @@ namespace Xamarin.Forms.Platform.Tizen
void UpdateText() void UpdateText()
{ {
Control.Text = Element.Text; Control.Text = Element.Text ?? "";
if (!Control.IsFocused) if (!Control.IsFocused)
{ {
Control.MoveCursorEnd(); Control.MoveCursorEnd();
@ -259,7 +259,7 @@ namespace Xamarin.Forms.Platform.Tizen
int GetSelectionStart() int GetSelectionStart()
{ {
int start = Element.Text.Length; int start = Element.Text?.Length ?? 0;
int cursorPosition = Element.CursorPosition; int cursorPosition = Element.CursorPosition;
if (Element.IsSet(Entry.CursorPositionProperty)) if (Element.IsSet(Entry.CursorPositionProperty))

Просмотреть файл

@ -84,7 +84,7 @@ namespace Xamarin.Forms.Platform.Tizen
void UpdateText() void UpdateText()
{ {
Control.Text = Element.Text; Control.Text = Element.Text ?? "";
} }
void UpdateTextColor() void UpdateTextColor()

Просмотреть файл

@ -71,7 +71,7 @@ namespace Xamarin.Forms.Platform.Tizen
void UpdateText(bool isInitialized) void UpdateText(bool isInitialized)
{ {
_span.Text = Element.ContentAsString(); _span.Text = Element.ContentAsString() ?? "";
if (!isInitialized) if (!isInitialized)
ApplyTextAndStyle(); ApplyTextAndStyle();
} }

Просмотреть файл

@ -175,7 +175,7 @@ namespace Xamarin.Forms.Platform.Tizen
/// </summary> /// </summary>
void TextPropertyHandler() void TextPropertyHandler()
{ {
Control.Text = Element.Text; Control.Text = Element.Text ?? "";
} }
void UpdateKeyboard(bool initialize) void UpdateKeyboard(bool initialize)

Просмотреть файл

@ -81,6 +81,7 @@ namespace Xamarin.Forms.Platform.Tizen
{ {
public const string PopupLeft = "popup/circle/left_delete"; public const string PopupLeft = "popup/circle/left_delete";
public const string PopupRight = "popup/circle/right_check"; public const string PopupRight = "popup/circle/right_check";
public const string Text = "textbutton";
} }
} }

Просмотреть файл

@ -235,6 +235,17 @@ namespace Xamarin.Forms.Platform.Tizen
return button; return button;
} }
public static EButton SetWatchTextStyle(this EButton button)
{
if (Device.Idiom != TargetIdiom.Watch)
{
Log.Error($"ToWatchPopupRightStyleButton is only supported on TargetIdiom.Watch : {0}", Device.Idiom);
return button;
}
button.Style = ThemeConstants.Button.Styles.Watch.Text;
return button;
}
public static bool SetIconPart(this EButton button, EvasObject content, bool preserveOldContent = false) public static bool SetIconPart(this EButton button, EvasObject content, bool preserveOldContent = false)
{ {
return button.SetPartContent(ThemeConstants.Button.Parts.Icon, content, preserveOldContent); return button.SetPartContent(ThemeConstants.Button.Parts.Icon, content, preserveOldContent);
@ -273,6 +284,7 @@ namespace Xamarin.Forms.Platform.Tizen
button.SetPartColor(ThemeConstants.Button.ColorClass.Effect, color); button.SetPartColor(ThemeConstants.Button.ColorClass.Effect, color);
button.SetPartColor(ThemeConstants.Button.ColorClass.EffectPressed, color); button.SetPartColor(ThemeConstants.Button.ColorClass.EffectPressed, color);
} }
#endregion #endregion
#region Popup #region Popup