--- /dev/null
+<?xml version="1.0" encoding="utf-8" ?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:state_enabled="false"
+ android:drawable="@drawable/synchronize_disabled" />
+ <item
+ android:state_enabled="true"
+ android:drawable="@drawable/synchronize_enabled" />
+</selector>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8" ?>
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/synchronize_enabled"
+ android:alpha="178">
+</bitmap>
\ No newline at end of file
<ItemGroup>
<BundleResource Include="Resources\drawable\caret_r.png" />
</ItemGroup>
+ <ItemGroup>
+ <AndroidResource Include="Resources\drawable\synchronize.xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <AndroidResource Include="Resources\drawable\synchronize_disabled.xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <AndroidResource Include="Resources\drawable\synchronize_enabled.png" />
+ </ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Import Project="..\packages\Xamarin.Insights.1.11.4\build\MonoAndroid10\Xamarin.Insights.targets" Condition="Exists('..\packages\Xamarin.Insights.1.11.4\build\MonoAndroid10\Xamarin.Insights.targets')" />
--- /dev/null
+using Xamarin.Forms.CustomAttributes;
+using Xamarin.Forms.Internals;
+
+#if UITEST
+using Xamarin.UITest;
+using NUnit.Framework;
+#endif
+
+// Apply the default category of "Issues" to all of the tests in this assembly
+// We use this as a catch-all for tests which haven't been individually categorized
+#if UITEST
+[assembly: NUnit.Framework.Category("Issues")]
+#endif
+
+namespace Xamarin.Forms.Controls.Issues
+{
+ [Preserve(AllMembers = true)]
+ [Issue(IssueTracker.Bugzilla, 53909, "XML drawables cannot be used as ToolbarItem.Icon ", PlatformAffected.Default)]
+ public class Bugzilla53909 : TestContentPage // or TestMasterDetailPage, etc ...
+ {
+ protected override void Init()
+ {
+
+ var tbi = new ToolbarItem();
+ tbi.Icon = "synchronize.png";
+ tbi.Order = ToolbarItemOrder.Primary;
+ tbi.Priority = 0;
+
+ ToolbarItems.Add(tbi);
+
+ // Initialize ui here instead of ctor
+ Content = new Label
+ {
+ Text = "We need to check the icon appears"
+ };
+ }
+ }
+}
\ No newline at end of file
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla52533.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla53362.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla45874.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)Bugzilla53909.cs" />
<Compile Include="$(MSBuildThisFileDirectory)_Template.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Issue1028.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Issue1075.cs" />
FileImageSource icon = item.Icon;
if (!string.IsNullOrEmpty(icon))
{
- var iconBitmap = new BitmapDrawable(context.Resources, ResourceManager.GetBitmap(context.Resources, icon));
- if (iconBitmap != null && iconBitmap.Bitmap != null)
+ Drawable iconBitmap = context.Resources.GetDrawable(icon) ?? new BitmapDrawable(context.Resources, ResourceManager.GetBitmap(context.Resources, icon));
+ if (iconBitmap != null)
menuItem.SetIcon(iconBitmap);
}
menuItem.SetEnabled(controller.IsEnabled);
if (action.Icon != null)
{
- var iconBitmap = new BitmapDrawable(_context.Resources, ResourceManager.GetBitmap(_context.Resources, action.Icon));
- if (iconBitmap != null && iconBitmap.Bitmap != null)
- item.SetIcon(_context.Resources.GetDrawable(action.Icon));
+ Drawable iconBitmap = _context.Resources.GetDrawable(action.Icon) ?? new BitmapDrawable(_context.Resources, ResourceManager.GetBitmap(_context.Resources, action.Icon));
+ if (iconBitmap != null)
+ item.SetIcon(iconBitmap);
}
action.PropertyChanged += changed;
else
{
IMenuItem menuItem = menu.Add(item.Text);
- if (!string.IsNullOrEmpty(item.Icon))
+ var icon = item.Icon;
+ if (!string.IsNullOrEmpty(icon))
{
- var iconBitmap = new BitmapDrawable(_context.Resources, ResourceManager.GetBitmap(_context.Resources, item.Icon));
- if (iconBitmap != null && iconBitmap.Bitmap != null)
+ Drawable iconBitmap = _context.Resources.GetDrawable(icon) ?? new BitmapDrawable(_context.Resources, ResourceManager.GetBitmap(_context.Resources, icon));
+ if (iconBitmap != null)
menuItem.SetIcon(iconBitmap);
}
menuItem.SetEnabled(controller.IsEnabled);