diff options
author | Jimmy Garrido <jimmygarrido@outlook.com> | 2017-06-22 11:49:39 -0700 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2017-06-22 19:50:44 +0100 |
commit | 334ccc47a158dd1090706491068fc5f8833de077 (patch) | |
tree | 007fa67c1395e08422e41b6f8945f33eeab5fda7 /Xamarin.Forms.Platform.Android/Platform.cs | |
parent | 595344f31aa108275bfbef9abc6a3ae68b79c52b (diff) | |
download | xamarin-forms-334ccc47a158dd1090706491068fc5f8833de077.tar.gz xamarin-forms-334ccc47a158dd1090706491068fc5f8833de077.tar.bz2 xamarin-forms-334ccc47a158dd1090706491068fc5f8833de077.zip |
Fix possible crash on API 21+ at launch when using Holo theme and FormsApplicationActivity (#961)
* Fix possible crash on API 21+ at launch
* Do not use an explicit cast
* Do not use C# 7 pattern matching
Diffstat (limited to 'Xamarin.Forms.Platform.Android/Platform.cs')
-rw-r--r-- | Xamarin.Forms.Platform.Android/Platform.cs | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/Xamarin.Forms.Platform.Android/Platform.cs b/Xamarin.Forms.Platform.Android/Platform.cs index add84eb6..fe588eb8 100644 --- a/Xamarin.Forms.Platform.Android/Platform.cs +++ b/Xamarin.Forms.Platform.Android/Platform.cs @@ -847,24 +847,28 @@ namespace Xamarin.Forms.Platform.Android Color navigationBarTextColor = CurrentNavigationPage == null ? Color.Default : CurrentNavigationPage.BarTextColor; TextView actionBarTitleTextView = null; - if(Forms.IsLollipopOrNewer) + if (Forms.IsLollipopOrNewer) { int actionbarId = _context.Resources.GetIdentifier("action_bar", "id", "android"); - if(actionbarId > 0) + if (actionbarId > 0) { - Toolbar toolbar = (Toolbar)((Activity)_context).FindViewById(actionbarId); - - for( int i = 0; i < toolbar.ChildCount; i++ ) + var toolbar = ((Activity)_context).FindViewById(actionbarId) as ViewGroup; + if (toolbar != null) { - if( toolbar.GetChildAt(i) is TextView ) + for (int i = 0; i < toolbar.ChildCount; i++) { - actionBarTitleTextView = (TextView)toolbar.GetChildAt(i); - break; + var textView = toolbar.GetChildAt(i) as TextView; + if (textView != null) + { + actionBarTitleTextView = textView; + break; + } } } } - } - else + } + + if (actionBarTitleTextView == null) { int actionBarTitleId = _context.Resources.GetIdentifier("action_bar_title", "id", "android"); if (actionBarTitleId > 0) |