private (Java_Object[], Java_Object) GetConstructorArgs(Context context)
    {
        if (Build.VERSION.SdkInt > BuildVersionCodes.P)
        {
            return(null, null);
        }

        if (_constructorArgsField == null)
        {
            _constructorArgsField = Java_Class.FromType(typeof(LayoutInflater)).GetDeclaredField("mConstructorArgs");

            _constructorArgsField.Accessible = true;
        }

        var constructorArgs = (Java_Object[])_constructorArgsField.Get(this);

        Java_Object previousContext = null;

        if (constructorArgs != null)
        {
            previousContext = constructorArgs?[0];

            constructorArgs[0] = context;

            _constructorArgsField.Set(this, constructorArgs);
        }

        return(constructorArgs, previousContext);
    }
        ActivityDesc CreateActivityDesc(int titleId, int descriptionId, Java.Lang.Class activity)
        {
            ActivityDesc activityDesc = new ActivityDesc();

            activityDesc.mTitle       = GetString(titleId);
            activityDesc.mDescription = GetString(descriptionId);
            activityDesc.mActivity    = activity;
            return(activityDesc);
        }
Beispiel #3
0
        void GetFrontSizes()
        {
            CameraManager manager = (CameraManager)Context.GetSystemService(Context.CameraService);

            CameraCharacteristics characteristics = manager.GetCameraCharacteristics(frontCameraId);

            StreamConfigurationMap map = (StreamConfigurationMap)characteristics.Get(CameraCharacteristics.ScalerStreamConfigurationMap);

            frontCameraSizes = map.GetOutputSizes(Class.FromType(typeof(SurfaceTexture)));
        }
        public void AddTab(TabHost.TabSpec tabSpec, Class clss, Bundle args)
        {
            tabSpec.SetContent(new DummyTabFactory(_context));
            var tag = tabSpec.Tag;

            var info = new TabInfo(tag, clss, args);

            _tabs.Add(info);
            _tabHost.AddTab(tabSpec);
            NotifyDataSetChanged();
        }
Beispiel #5
0
 public virtual Banner SetBannerAnimation(Java.Lang.Class transformer)
 {
     try
     {
         SetPageTransformer(true, (IPageTransformer)transformer.NewInstance());
     }
     catch (System.Exception e)
     {
         Log.Error(tag, "Please set the IPageTransformer class");
     }
     return(this);
 }
        private bool IsServiceRunning(Java.Lang.Class serviceClass)
        {
            ActivityManager manager = (ActivityManager)GetSystemService(Context.ActivityService);

            // foreach (RunningServiceInfo service in manager.GetRunningServices(int.MaxValue))
            foreach (var item in manager.GetRunningServices(int.MaxValue))
            {
                if (serviceClass.Name.Equals(item.Service.ClassName))
                {
                    return(true);
                }
            }
            return(false);
        }
 public static void UpdateWidget(this Context context, Type MyAppWidgetProvider)
 {
     Java.Lang.Class WidgetProviderType = Java.Lang.Class.FromType(MyAppWidgetProvider);
     int[]           ids = AppWidgetManager.GetInstance(context)
                           .GetAppWidgetIds(new ComponentName(context, WidgetProviderType));
     if (ids?.Length > 0)
     {
         Intent intent = new Intent(context, WidgetProviderType);
         intent.SetAction(AppWidgetManager.ActionAppwidgetUpdate);
         // Use an array and EXTRA_APPWIDGET_IDS instead of AppWidgetManager.EXTRA_APPWIDGET_ID,
         // since it seems the onUpdate() is only fired on that:
         intent.PutExtra(AppWidgetManager.ExtraAppwidgetIds, ids);
         context.SendBroadcast(intent);
     }
 }
    private void SetPrivateFactory()
    {
        // LayoutInflater in Android versions greater than Honeycomb uses a private factory.
        // Make sure that our custom layout inflater uses our private factory.

        if (!_hasSetPrivateFactory && InterceptingService.PrivateFactoryInjection)
        {
            if (Context is IFactory2 factory2)
            {
                var setPrivateFactoryMethod = Java_Class.FromType(typeof(LayoutInflater)).GetMethod("setPrivateFactory", Java_Class.FromType(typeof(IFactory2)));

                setPrivateFactoryMethod.Accessible = true;

                setPrivateFactoryMethod.TryInvoke(this, new PrivateViewPumpFactory2(factory2, this));
            }

            _hasSetPrivateFactory = true;
        }
    }
 public TabInfo(string _tag, Class _class, Bundle _args)
 {
     tag = _tag;
     clss = _class;
     args = _args;
 }
        public View OnCreateView(View parent, string name, Context context, IAttributeSet attrs)
        {
            System.Diagnostics.Debug.WriteLine (name);

            if (name.Equals("android.support.v7.internal.view.menu.ActionMenuItemView", StringComparison.InvariantCultureIgnoreCase))
            {
                View view = null;

                try
                {
                    if (ActionMenuItemViewClass == null)
                        ActionMenuItemViewClass = ClassLoader.SystemClassLoader.LoadClass(name);
                }
                catch (ClassNotFoundException)
                {
                    return null;
                }

                if (ActionMenuItemViewClass == null)
                    return null;

                if (ActionMenuItemViewConstructor == null)
                {
                    try
                    {
                        ActionMenuItemViewConstructor = ActionMenuItemViewClass.GetConstructor(new Class[] {
                            Class.FromType(typeof(Context)),
                                 Class.FromType(typeof(IAttributeSet))
                        });
                    }
                    catch (SecurityException)
                    {
                        return null;
                    }
                    catch (NoSuchMethodException)
                    {
                        return null;
                    }
                }
                if (ActionMenuItemViewConstructor == null)
                    return null;

                try
                {
                    Java.Lang.Object[] args = new Java.Lang.Object[] { context, (Java.Lang.Object)attrs };
                    view = (View)(ActionMenuItemViewConstructor.NewInstance(args));
                }
                catch (IllegalArgumentException)
                {
                    return null;
                }
                catch (InstantiationException)
                {
                    return null;
                }
                catch (IllegalAccessException)
                {
                    return null;
                }
                catch (InvocationTargetException)
                {
                    return null;
                }
                if (null == view)
                    return null;

                View v = view;

                new Handler().Post(() => {

                    try
                    {
                        if(v is LinearLayout) {
                            var ll = (LinearLayout)v;
                            for(int i = 0; i < ll.ChildCount; i++) {
                                var button = ll.GetChildAt(i) as Button;

                                if(button != null) {
                                    var title = button.Text;

                                    if (!string.IsNullOrEmpty(title) && title.Length == 1)
                                    {
                                        button.SetTypeface(Typeface, TypefaceStyle.Normal);
                                    }
                                }
                            }
                        }
                        else if(v is TextView) {
                            var tv = (TextView)v;
                            string title = tv.Text;

                            if (!string.IsNullOrEmpty(title) && title.Length == 1)
                            {
                                tv.SetTypeface(Typeface, TypefaceStyle.Normal);
                            }
                        }
                    }
                    catch (ClassCastException)
                    {
                    }
                });

                return view;
            }

            return null;
        }
 private static View CreateView(LayoutInflater.IFactory2 factory2, View parent, string name, Context context, IAttributeSet attrs, ref Class @class)
 {
     if (factory2 == null)
         return null;
     if (name.IndexOf(".", StringComparison.Ordinal) < 0)
     {
         if (@class == null)
             @class = GetClass(name);
         if (@class != null)
         {
             var view = factory2.OnCreateView(parent, @class.Name, context, attrs);
             if (view != null)
                 return view;
         }
     }
     return factory2.OnCreateView(parent, name, context, attrs);
 }
 private static Field TryGetField(string fieldName, Class clazz)
 {
     try
     {
         var field = clazz.GetDeclaredField(fieldName);
         field.Accessible = true;
         return field;
     }
     catch (Exception e)
     {
         Tracer.Error(e.Flatten(true));
         return null;
     }
 }
        private View CreateCustomToolbarItem(string name, Context context, IAttributeSet attrs)
        {
            // android.support.v7.widget.Toolbar
            // android.support.v7.view.menu.ActionMenuItemView
            View view = null;

            try
            {
                if (ActionMenuItemViewClass == null)
                    ActionMenuItemViewClass = ClassLoader.LoadClass(name);
            }
            catch (ClassNotFoundException ex)
            {
                return null;
            }

            if (ActionMenuItemViewClass == null)
                return null;

            if (ActionMenuItemViewConstructor == null)
            {
                try
                {
                    ActionMenuItemViewConstructor = ActionMenuItemViewClass.GetConstructor(new Class[] {
                            Class.FromType(typeof(Context)),
                                 Class.FromType(typeof(IAttributeSet))
                        });
                }
                catch (SecurityException)
                {
                    return null;
                }
                catch (NoSuchMethodException)
                {
                    return null;
                }
            }
            if (ActionMenuItemViewConstructor == null)
                return null;

            try
            {
                Java.Lang.Object[] args = new Java.Lang.Object[] { context, (Java.Lang.Object)attrs };
                view = (View)(ActionMenuItemViewConstructor.NewInstance(args));
            }
            catch (IllegalArgumentException)
            {
                return null;
            }
            catch (InstantiationException)
            {
                return null;
            }
            catch (IllegalAccessException)
            {
                return null;
            }
            catch (InvocationTargetException)
            {
                return null;
            }
            if (null == view)
                return null;

            View v = view;

            new Handler().Post(() =>
            {

                try
                {
                    if (v is LinearLayout)
                    {
                        var ll = (LinearLayout)v;
                        for (int i = 0; i < ll.ChildCount; i++)
                        {
                            var button = ll.GetChildAt(i) as Button;

                            if (button != null)
                            {
                                var title = button.Text;

                                if (!string.IsNullOrEmpty(title) && title.Length == 1)
                                {
                                    button.SetTypeface(Typeface, TypefaceStyle.Normal);
                                }
                            }
                        }
                    }
                    else if (v is TextView)
                    {
                        var tv = (TextView)v;
                        string title = tv.Text;

                        if (!string.IsNullOrEmpty(title) && title.Length == 1)
                        {
                            tv.SetTypeface(Typeface, TypefaceStyle.Normal);
                        }
                    }
                }
                catch (ClassCastException)
                {
                }
            });

            return view;
        }
Beispiel #14
0
 public TabInfo(string tag, Class _class, Bundle args)
 {
     Tag = tag;
     Class = _class;
     Args = args;
 }
Beispiel #15
0
        public static void TrackAppException(Class activity, String method, Exception exception, Boolean isFatalException)
		{
            TrackAppException(activity.SimpleName, method, exception, isFatalException);
		}
            public void AddTab(TabHost.TabSpec tabSpec, Class clss, Bundle args)
            {
                tabSpec.SetContent(new DummyTabFactory(_activity));
                var tag = tabSpec.Tag;

                var info = new TabInfo(tag, clss, args);

                // Check to see if we already have a fragment for this tab, probably
                // from a previously saved state.  If so, deactivate it, because our
                // initial state is that a tab isn't shown.
                info.fragment = _activity.SupportFragmentManager.FindFragmentByTag(tag);
                if (info.fragment != null && !info.fragment.IsDetached) {
                    var ft = _activity.SupportFragmentManager.BeginTransaction();
                    ft.Detach(info.fragment);
                    ft.Commit();
                }

                _tabs.Add(tag, info);
                _tabHost.AddTab(tabSpec);
            }
		public View OnCreateView(string name, Context context, IAttributeSet attrs)
		{
			if (name.Equals("com.android.internal.view.menu.ActionMenuItemView", StringComparison.InvariantCultureIgnoreCase))
			{
				View view = null;

				try
				{
					if (ActionMenuItemViewClass == null)
						ActionMenuItemViewClass = ClassLoader.SystemClassLoader.LoadClass(name);
				}
				catch (ClassNotFoundException)
				{
					return null;
				}

				if (ActionMenuItemViewClass == null)
					return null;

				if (ActionMenuItemViewConstructor == null)
				{
					try
					{
						ActionMenuItemViewConstructor = ActionMenuItemViewClass.GetConstructor(new Class[] {
							Class.FromType(typeof(Context)),
							Class.FromType(typeof(IAttributeSet))
						});
					}
					catch (SecurityException)
					{
						return null;
					}
					catch (NoSuchMethodException)
					{
						return null;
					}
				}
				if (ActionMenuItemViewConstructor == null)
					return null;

				try
				{
					Java.Lang.Object[] args = new Java.Lang.Object[] { context, (Java.Lang.Object)attrs };
					view = (View)(ActionMenuItemViewConstructor.NewInstance(args));
				}
				catch (IllegalArgumentException)
				{
					return null;
				}
				catch (InstantiationException)
				{
					return null;
				}
				catch (IllegalAccessException)
				{
					return null;
				}
				catch (InvocationTargetException)
				{
					return null;
				}
				if (null == view)
					return null;

				View v = view;

				new Handler().Post(() => {

					try
					{
						var tv = (TextView)v;

						string title = tv.Text;

						if (!string.IsNullOrEmpty(title) && title.Length == 1)
						{
							tv.SetTypeface(Typeface, TypefaceStyle.Normal);
						}
					}
					catch (ClassCastException)
					{
					}
				});

				return view;
			}

			return null;
		}
Beispiel #18
0
 private async Task<string> GetAdvertisingId()
 {
     string id = string.Empty;
     try
     {
         Class localClass = Class.ForName("com.google.android.gms.ads.identifier.AdvertisingIdClient");
         Class[] arrayOfClass;
         (arrayOfClass = new Class[1])[0] = Java.Lang.Class.FromType(typeof(Context));
         Method getAdvertisingIdInfo = localClass.GetMethod("getAdvertisingIdInfo", arrayOfClass);
         Class adInfoClass = Class.ForName("com.google.android.gms.ads.identifier.AdvertisingIdClient$Info");
         Method getId = null;
         Object adInfo = null;
         var task = Task.Factory.StartNew(() =>
             {
                 adInfo = getAdvertisingIdInfo.Invoke(localClass, new Object[] { this });
                 getId = adInfoClass.GetMethod("getId", new Class[0]);
                 id = (string)getId.Invoke(adInfo, new Object[0]);
             });
         await task;
         if (task.Exception != null)
             Log.Debug(TAG, "Failed to obtain Google AdvertisingId");
     }
     catch (System.Exception)
     {
         Log.Debug(TAG, "Failed to obtain Google AdvertisingId");
     }
     return id;
 }