Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Commit caa3ebc

Browse files
Avoid ImageButtonRenderer ObjectDisposedException on Android (#996)
* Avoid crash using reflection or exception ignoring * Remove uncessserary exception reference. Comment reference to XF issue Co-authored-by: Andrei <[email protected]>
1 parent 0db9352 commit caa3ebc

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

src/CommunityToolkit/Xamarin.CommunityToolkit/Effects/IconTintColor/IconTintColorEffectRouter.android.cs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.ComponentModel;
1+
using System;
2+
using System.ComponentModel;
23
using System.Linq;
34
using Android.Graphics;
45
using Android.Widget;
@@ -50,16 +51,21 @@ void ApplyTintColor()
5051

5152
void ClearTintColor()
5253
{
53-
switch (Control)
54+
try
5455
{
55-
case ImageView image:
56-
image.ClearColorFilter();
57-
break;
58-
case Button button:
59-
var drawables = button.GetCompoundDrawables().Where(d => d != null);
60-
foreach (var img in drawables)
61-
img.ClearColorFilter();
62-
break;
56+
switch (Control)
57+
{
58+
case ImageView image:
59+
image.ClearColorFilter();
60+
break;
61+
case Button button:
62+
foreach (var drawable in button.GetCompoundDrawables())
63+
drawable?.ClearColorFilter();
64+
break;
65+
}
66+
}
67+
catch (ObjectDisposedException) {
68+
// We ignore ObjectDisposedException as a workaround of XF issue https://github.com/xamarin/Xamarin.Forms/issues/13889
6369
}
6470
}
6571

0 commit comments

Comments
 (0)