Exemplo n.º 1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            AndroidApplication = Application as AndroidApplication;
            AndroidApplication.Logger.Debug(() => $"DownloadActivity:OnCreate");

            base.OnCreate(savedInstanceState);

            // Set our view from the layout resource
            SetContentView(Resource.Layout.activity_download);

            RvDownloads     = FindViewById <EmptyRecyclerView>(Resource.Id.rvDownloads);
            ProgressSpinner = FindViewById <ProgressSpinnerView>(Resource.Id.progressBar);
            NoDataView      = FindViewById <LinearLayout>(Resource.Id.layNoData);

            RvDownloads.SetLayoutManager(new LinearLayoutManager(this));
            RvDownloads.AddItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.Vertical));
            RvDownloads.SetEmptyView(NoDataView);
            Adapter = new SyncItemRecyclerAdapter(this);
            RvDownloads.SetAdapter(Adapter);

            var factory = AndroidApplication.IocContainer.Resolve <ViewModelFactory>();

            ViewModel = new ViewModelProvider(this, factory).Get(Java.Lang.Class.FromType(typeof(DownloadViewModel))) as DownloadViewModel;
            Lifecycle.AddObserver(ViewModel);
            SetupViewModelObservers();

            ViewModel.Initialise(AndroidApplication.ControlFile);
            Task.Run(() => ViewModel.FindEpisodesToDownload());

            AndroidApplication.Logger.Debug(() => $"DownloadActivity:OnCreate - end");
        }
 public SampleFragment(IEnumerable <ILifecycleObserver> lifecycleObservers)
 {
     foreach (var lifecycleObserver  in lifecycleObservers)
     {
         Lifecycle.AddObserver(lifecycleObserver);
     }
 }
Exemplo n.º 3
0
        public override void OnCreate(Bundle savedInstanceState)
        {
            AndroidApplication = Activity.Application as AndroidApplication;
            AndroidApplication.Logger.Debug(() => $"SettingsFragment:OnCreate");

            base.OnCreate(savedInstanceState);

            var factory = AndroidApplication.IocContainer.Resolve <ViewModelFactory>();

            ViewModel = new ViewModelProvider(this, factory).Get(Java.Lang.Class.FromType(typeof(SettingsViewModel))) as SettingsViewModel;
            Lifecycle.AddObserver(ViewModel);
            SetupViewModelObservers();

            ViewModel.Initialise();
        }
Exemplo n.º 4
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.Main);
            time      = FindViewById <TextView>(Resource.Id.time);
            startStop = FindViewById <Button>(Resource.Id.start_stop);
            reset     = FindViewById <Button>(Resource.Id.reset);
            StopwatchLifecycleObserver observer = new StopwatchLifecycleObserver(model, new Handler());

            handlerModelChanged = (sender, e) =>
            {
                switch (e.PropertyName)
                {
                case "Running":
                    UpdateButtons();
                    break;

                case "Diff":
                    UpdateTime();
                    break;
                }
            };
            model.PropertyChanged += handlerModelChanged;

            startStopClicked = (object sender, EventArgs e) =>
            {
                model.Running = !model.Running;
                if (model.Running)
                {
                    observer.ScheduleAtFixedRate();
                }
                else
                {
                    observer.Stop();
                }
            };
            startStop.Click += startStopClicked;

            resetClicked = (object sender, EventArgs e) => { model.Diff = 0; };
            reset.Click += resetClicked;

            Lifecycle.AddObserver(observer);
            UpdateButtons();
            UpdateTime();
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            AndroidApplication = Application as AndroidApplication;
            AndroidApplication.Logger.Debug(() => $"DownloadActivity:OnCreate");

            base.OnCreate(savedInstanceState);

            // Set our view from the layout resource
            SetContentView(Resource.Layout.activity_download);

            RvDownloads     = FindViewById <EmptyRecyclerView>(Resource.Id.rvDownloads);
            NoDataView      = FindViewById <LinearLayout>(Resource.Id.layNoData);
            NoDataText      = FindViewById <TextView>(Resource.Id.txtNoData);
            ProgressSpinner = FindViewById <ProgressSpinnerView>(Resource.Id.progressBar);
            DownloadButton  = FindViewById <FloatingActionButton>(Resource.Id.fab_download);

            RvDownloads.SetLayoutManager(new LinearLayoutManager(this));
            RvDownloads.AddItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.Vertical));
            RvDownloads.SetEmptyView(NoDataView);

            var factory = AndroidApplication.IocContainer.Resolve <ViewModelFactory>();

            ViewModel = new ViewModelProvider(this, factory).Get(Java.Lang.Class.FromType(typeof(DownloadViewModel))) as DownloadViewModel;

            Adapter = new DownloadRecyclerItemAdapter(this, ViewModel);
            RvDownloads.SetAdapter(Adapter);

            Lifecycle.AddObserver(ViewModel);
            SetupViewModelObservers();

            ViewModel.Initialise();
            Task.Run(() => ViewModel.FindEpisodesToDownload());

            DownloadButton.Click += (sender, e) => ViewModel.DownloadAllPodcastsWithNetworkCheck();

            ExitPromptDialogFragment = SupportFragmentManager.FindFragmentByTag(EXIT_PROMPT_TAG) as OkCancelDialogFragment;
            SetupFragmentObservers(ExitPromptDialogFragment);
            NetworkPromptDialogFragment = SupportFragmentManager.FindFragmentByTag(NETWORK_PROMPT_TAG) as OkCancelDialogFragment;
            SetupFragmentObservers(NetworkPromptDialogFragment);

            AndroidApplication.Logger.Debug(() => $"DownloadActivity:OnCreate - end");
        }
Exemplo n.º 6
0
        public BindableActivity()
        {
            ViewModel = new TViewModel();
            Lifecycle.AddObserver(new LifecycleObserver(LifecycleSubject.OnNext));
            LifecycleObservable.Subscribe(e => System.Diagnostics.Debug.WriteLine($"New event: {e}"));
            LifecycleObservable.Where(e => e == Lifecycle.Event.OnResume).Subscribe(PerformBinding);

            void PerformBinding(Lifecycle.Event _)
            {
                CanPerformBinding = true;
                try
                {
                    BindViewModelSubject.OnNext(ViewModel);
                }
                finally
                {
                    CanPerformBinding = false;
                }
            }
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.Main);
            time      = FindViewById <TextView>(Resource.Id.time);
            startStop = FindViewById <Button>(Resource.Id.start_stop);
            reset     = FindViewById <Button>(Resource.Id.reset);

            model = (StopwatchViewModel)ViewModelProviders.Of(this).Get(Java.Lang.Class.FromType(typeof(StopwatchViewModel)));
            model.running.Observe(this, new OnChangedHandler(() =>
            {
                startStop.Text = GetString(model.Running ? Resource.String.stop : Resource.String.start);
                reset.Enabled  = !model.Running;
            }));
            model.diff.Observe(this, new OnChangedHandler(() =>
            {
                time.Text = F.Format(new Date(model.Diff));
            }));
            StopwatchLifecycleObserver observer = new StopwatchLifecycleObserver(model);

            startStopClicked = (object sender, EventArgs e) =>
            {
                model.Running = !model.Running;
                if (model.Running)
                {
                    observer.ScheduleAtFixedRate();
                }
                else
                {
                    observer.Stop();
                }
            };
            startStop.Click += startStopClicked;

            resetClicked = (object sender, EventArgs e) => { model.Diff = 0; };
            reset.Click += resetClicked;

            Lifecycle.AddObserver(observer);
            UpdateButtons();
            UpdateTime();
        }
Exemplo n.º 8
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            AndroidApplication = Application as AndroidApplication;
            AndroidApplication.Logger.Debug(() => $"ExampleActivity:OnCreate");

            base.OnCreate(savedInstanceState);

            // Set our view from the layout resource
            SetContentView(Resource.Layout.activity_example);

            var factory = AndroidApplication.IocContainer.Resolve <ViewModelFactory>();

            ViewModel = new ViewModelProvider(this, factory).Get(Java.Lang.Class.FromType(typeof(ExampleViewModel))) as ExampleViewModel;
            Lifecycle.AddObserver(ViewModel);
            SetupLiveDataViewModelObservers();
            SetupViewModelObservers();

            ViewModel.Initialise();

            AndroidApplication.Logger.Debug(() => $"ExampleActivity:OnCreate - end");
        }
Exemplo n.º 9
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            AndroidApplication = Application as AndroidApplication;
            AndroidApplication.Logger.Debug(() => $"OpenSourceLicensesActivity:OnCreate");

            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.activity_opensourcelicenses);

            LicenseTextScroller = FindViewById <ScrollView>(Resource.Id.license_scroller);
            LicenseText         = FindViewById <TextView>(Resource.Id.license_text);

            var factory = AndroidApplication.IocContainer.Resolve <ViewModelFactory>();

            ViewModel = new ViewModelProvider(this, factory).Get(Java.Lang.Class.FromType(typeof(OpenSourceLicensesViewModel))) as OpenSourceLicensesViewModel;
            Lifecycle.AddObserver(ViewModel);
            SetupViewModelObservers();

            ViewModel.Initialise();

            AndroidApplication.Logger.Debug(() => $"OpenSourceLicensesActivity:OnCreate - end");
        }
Exemplo n.º 10
0
        public static FlutterView CreateView(Activity activity, Lifecycle lifecycle, string initialRoute)
        {
            FlutterMain.StartInitialization(activity.ApplicationContext);
            FlutterMain.EnsureInitializationComplete(activity.ApplicationContext, new string[] { });

            var nativeView = new FlutterNativeView(activity);

            var flutterView = new BaseFlutterView(activity, null, nativeView);

            if (initialRoute != null)
            {
                flutterView.SetInitialRoute(initialRoute);
            }

            var o = new FlutterLifecycleObserver(activity.ApplicationContext, flutterView);

            lifecycle.AddObserver(o);

            flutterView.Alpha = 0.0f;

            return(flutterView);
        }
Exemplo n.º 11
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            AndroidApplication = Application as AndroidApplication;
            AndroidApplication.Logger.Debug(() => $"PurgeActivity:OnCreate");

            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            base.OnCreate(savedInstanceState);

            // Set our view from the layout resource
            SetContentView(Resource.Layout.activity_purge);

            RvPurgeItems    = FindViewById <EmptyRecyclerView>(Resource.Id.rvPurge);
            NoDataView      = FindViewById <LinearLayout>(Resource.Id.layNoDataPurge);
            ProgressSpinner = FindViewById <ProgressSpinnerView>(Resource.Id.progressBarPurge);
            DeleteButton    = FindViewById <FloatingActionButton>(Resource.Id.fab_delete);

            RvPurgeItems.SetLayoutManager(new LinearLayoutManager(this));
            RvPurgeItems.AddItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.Vertical));
            RvPurgeItems.SetEmptyView(NoDataView);

            var factory = AndroidApplication.IocContainer.Resolve <ViewModelFactory>();

            ViewModel = new ViewModelProvider(this, factory).Get(Java.Lang.Class.FromType(typeof(PurgeViewModel))) as PurgeViewModel;

            Adapter = new PurgeRecyclerItemAdapter(this, ViewModel);
            RvPurgeItems.SetAdapter(Adapter);

            Lifecycle.AddObserver(ViewModel);
            SetupViewModelObservers();

            ViewModel.Initialise();
            Task.Run(() => ViewModel.FindItemsToDelete());

            DeleteButton.Click += (sender, e) =>
                                  Task.Run(() => ViewModel.PurgeAllItems())
                                  .ContinueWith(t => ViewModel.PurgeComplete());

            AndroidApplication.Logger.Debug(() => $"PurgeActivity:OnCreate - end");
        }
Exemplo n.º 12
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            AndroidApplication = Application as AndroidApplication;
            AndroidApplication.Logger.Debug(() => $"MainActivity:OnCreate");

            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            DriveInfoContainerView = FindViewById <LinearLayout>(Resource.Id.drive_info_container);
            NoDriveDataView        = FindViewById <TextView>(Resource.Id.txtNoData);
            RvFeeds    = FindViewById <EmptyRecyclerView>(Resource.Id.feed_list);
            NoFeedView = FindViewById <LinearLayout>(Resource.Id.layNoFeed);
            CacheRoot  = FindViewById <TextView>(Resource.Id.cache_root_value);
            FeedsTitle = FindViewById <TextView>(Resource.Id.feed_list_label);

            RvFeeds.SetLayoutManager(new LinearLayoutManager(this));
            RvFeeds.AddItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.Vertical));
            RvFeeds.SetEmptyView(NoFeedView);
            FeedAdapter = new PodcastFeedRecyclerItemAdapter(this);
            RvFeeds.SetAdapter(FeedAdapter);

            var factory = AndroidApplication.IocContainer.Resolve <ViewModelFactory>();

            ViewModel = new ViewModelProvider(this, factory).Get(Java.Lang.Class.FromType(typeof(MainViewModel))) as MainViewModel;
            Lifecycle.AddObserver(ViewModel);
            SetupViewModelObservers();

            ViewModel.Initialise();

            if (!PermissionChecker.HasManageStoragePermission(this))
            {
                AndroidApplication.Logger.Debug(() => $"MainActivity:OnCreate - manage storage permission not granted - requesting");
                PermissionRequester.RequestManageStoragePermission(this, PermissionRequester.REQUEST_CODE_WRITE_EXTERNAL_STORAGE_PERMISSION, AndroidApplication.PackageName);
            }
            AndroidApplication.Logger.Debug(() => $"MainActivity:OnCreate - end - observers {GetObserverCount()}");
        }
Exemplo n.º 13
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            AndroidApplication = Application as AndroidApplication;
            AndroidApplication.Logger.Debug(() => $"HelpActivity:OnCreate");

            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.activity_help);

            HelpTextScroller = FindViewById <ScrollView>(Resource.Id.help_scroller);
            HelpText         = FindViewById <TextView>(Resource.Id.help_text);
            // make links clickable
            HelpText.MovementMethod = LinkMovementMethod.Instance;

            var factory = AndroidApplication.IocContainer.Resolve <ViewModelFactory>();

            ViewModel = new ViewModelProvider(this, factory).Get(Java.Lang.Class.FromType(typeof(HelpViewModel))) as HelpViewModel;
            Lifecycle.AddObserver(ViewModel);
            SetupViewModelObservers();

            ViewModel.Initialise();

            AndroidApplication.Logger.Debug(() => $"HelpActivity:OnCreate - end");
        }