private static void AddLinks(MatchOptions linkifyMask, BetterLinkMovementMethod movementMethod, TextView textView)
 {
     textView.MovementMethod = movementMethod;
     if (linkifyMask != LinkifyNone)
     {
         Android.Text.Util.Linkify.AddLinks(textView, linkifyMask);
     }
 }
 /**
  * Get a static instance of BetterLinkMovementMethod. Do note that registering a click listener on the returned
  * instance is not supported because it will potentially be shared on multiple TextViews.
  */
 public static BetterLinkMovementMethod GetInstance()
 {
     if (_singleInstance == null)
     {
         _singleInstance = new BetterLinkMovementMethod();
     }
     return(_singleInstance);
 }
        // ======== PUBLIC APIs END ======== //

        private static void RAddLinks(MatchOptions linkifyMask, ViewGroup viewGroup, BetterLinkMovementMethod movementMethod)
        {
            for (var i = 0; i < viewGroup.ChildCount; i++)
            {
                var child = viewGroup.GetChildAt(i);

                if (child is ViewGroup)
                {
                    // Recursively find child TextViews.
                    RAddLinks(linkifyMask, child as ViewGroup, movementMethod);
                }
                else if (child is TextView)
                {
                    var textView = child as TextView;
                    AddLinks(linkifyMask, movementMethod, textView);
                }
            }
        }