private AndroidX.Fragment.App.Fragment CreateFragment(string tag) { AndroidX.Fragment.App.Fragment result = null; switch (tag) { case "clock_fragment": if (clockFragment == null) { clockFragment = new ClockFragment(); } result = clockFragment; break; case "notification_fragment": if (notificationFragment == null) { notificationFragment = new NotificationFragment(); } result = notificationFragment; break; case "music_fragment": if (musicFragment == null) { musicFragment = new MusicFragment(); } result = musicFragment; break; } Log.Debug("LiveDisplay", "create: " + result.ToString()); return(result); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.LockScreen); ThreadPool.QueueUserWorkItem(isApphealthy => { if (Checkers.IsNotificationListenerEnabled() == false || Checkers.ThisAppCanDrawOverlays() == false || Checkers.IsThisAppADeviceAdministrator() == false) { RunOnUiThread(() => { Toast.MakeText(Application.Context, "You dont have the required permissions", ToastLength.Long).Show(); Finish(); } ); } }); //Views //wallpaperView = FindViewById<ImageView>(Resource.Id.wallpaper); //unlocker = FindViewById<ImageView>(Resource.Id.unlocker); startCamera = FindViewById <Button>(Resource.Id.btnStartCamera); startDialer = FindViewById <Button>(Resource.Id.btnStartPhone); clearAll = FindViewById <Button>(Resource.Id.btnClearAllNotifications); lockscreen = FindViewById <LinearLayout>(Resource.Id.contenedorPrincipal); viewPropertyAnimator = Window.DecorView.Animate(); viewPropertyAnimator.SetListener(new LockScreenAnimationHelper(Window)); livedisplayinfo = FindViewById <TextView>(Resource.Id.livedisplayinfo); fadeoutanimation = AnimationUtils.LoadAnimation(Application.Context, Resource.Animation.abc_fade_out); fadeoutanimation.AnimationEnd += Fadeoutanimation_AnimationEnd; notificationFragment = new NotificationFragment(); musicFragment = new MusicFragment(); clockFragment = new ClockFragment(); weatherFragment = new WeatherFragment(); clearAll.Click += BtnClearAll_Click; //unlocker.Touch += Unlocker_Touch; startCamera.Click += StartCamera_Click; startDialer.Click += StartDialer_Click; lockscreen.Touch += Lockscreen_Touch; watchDog = new System.Timers.Timer { AutoReset = false }; watchDog.Elapsed += WatchdogInterval_Elapsed; halfscreenheight = Resources.DisplayMetrics.HeightPixels / 2; WallpaperPublisher.NewWallpaperIssued += Wallpaper_NewWallpaperIssued; //CatcherHelper events CatcherHelper.NotificationListSizeChanged += CatcherHelper_NotificationListSizeChanged; using (recycler = FindViewById <RecyclerView>(Resource.Id.NotificationListRecyclerView)) { using (layoutManager = new LinearLayoutManager(Application.Context)) { recycler.SetLayoutManager(layoutManager); recycler.SetAdapter(CatcherHelper.notificationAdapter); } } LoadClockFragment(); LoadNotificationFragment(); LoadConfiguration(); OnActivityStateChanged += LockScreenActivity_OnActivityStateChanged; WallpaperPublisher.CurrentWallpaperCleared += WallpaperPublisher_CurrentWallpaperCleared; }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.LockScreen); Window.DecorView.SetBackgroundColor(Color.Black); ThreadPool.QueueUserWorkItem(isApphealthy => { bool canDrawOverlays = true; if (Build.VERSION.SdkInt > BuildVersionCodes.LollipopMr1) //In Lollipop and less this permission is granted at Install time. { canDrawOverlays = Checkers.ThisAppCanDrawOverlays(); } if (Checkers.IsNotificationListenerEnabled() == false || canDrawOverlays == false || Checkers.IsThisAppADeviceAdministrator() == false) { RunOnUiThread(() => Toast.MakeText(Application.Context, "You dont have the required permissions", ToastLength.Long).Show() ); Finish(); } }); //Views wallpaper = FindViewById <ImageView>(Resource.Id.wallpaper); unlocker = FindViewById <ImageView>(Resource.Id.unlocker); startCamera = FindViewById <Button>(Resource.Id.btnStartCamera); startDialer = FindViewById <Button>(Resource.Id.btnStartPhone); clearAll = FindViewById <Button>(Resource.Id.btnClearAllNotifications); lockscreen = FindViewById <LinearLayout>(Resource.Id.contenedorPrincipal); weatherandclockcontainer = FindViewById <FrameLayout>(Resource.Id.weatherandcLockplaceholder); fadeoutanimation = AnimationUtils.LoadAnimation(Application.Context, Resource.Animation.abc_fade_out); fadeoutanimation.AnimationEnd += Fadeoutanimation_AnimationEnd; notificationFragment = new NotificationFragment(); musicFragment = new MusicFragment(); clockFragment = new ClockFragment(); weatherFragment = new WeatherFragment(); clearAll.Click += BtnClearAll_Click; unlocker.Touch += Unlocker_Touch; startCamera.Click += StartCamera_Click; startDialer.Click += StartDialer_Click; lockscreen.Touch += Lockscreen_Touch; weatherandclockcontainer.LongClick += Weatherandclockcontainer_LongClick; watchDog = new System.Timers.Timer(); watchDog.AutoReset = false; watchDog.Elapsed += WatchdogInterval_Elapsed; WallpaperPublisher.NewWallpaperIssued += Wallpaper_NewWallpaperIssued; //CatcherHelper events CatcherHelper.NotificationListSizeChanged += CatcherHelper_NotificationListSizeChanged; //Load RecyclerView using (recycler = FindViewById <RecyclerView>(Resource.Id.NotificationListRecyclerView)) { using (layoutManager = new LinearLayoutManager(Application.Context)) { recycler.SetLayoutManager(layoutManager); recycler.SetAdapter(CatcherHelper.notificationAdapter); } } LoadClockFragment(); LoadNotificationFragment(); //Load User Configs. LoadConfiguration(); CheckNotificationListSize(); }