From: Jimmy Garrido Date: Thu, 22 Jun 2017 18:49:39 +0000 (-0700) Subject: Fix possible crash on API 21+ at launch when using Holo theme and FormsApplicationAct... X-Git-Tag: accepted/tizen/4.0/unified/20170816.011313~236 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=334ccc47a158dd1090706491068fc5f8833de077;p=platform%2Fupstream%2Fxamarin-forms.git 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 --- diff --git a/Xamarin.Forms.Platform.Android/Platform.cs b/Xamarin.Forms.Platform.Android/Platform.cs index add84eb..fe588eb 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)