Exemplo n.º 1
0
        public void Setup()
        {
            ResetObservedResults();

            MockApplication = A.Fake <Application>();
            A.CallTo(() => MockApplication.PackageName).Returns("com.andrewandderek.podcastutilities");
            MockLogger           = A.Fake <ILogger>();
            MockResourceProvider = A.Fake <IResourceProvider>();
            MockFileUtilities    = A.Fake <IFileUtilities>();
            MockApplicationControlFileProvider = A.Fake <IApplicationControlFileProvider>();
            MockCrashReporter   = A.Fake <ICrashReporter>();
            MockAnalyticsEngine = A.Fake <IAnalyticsEngine>();
            MockEpisodePurger   = A.Fake <IEpisodePurger>();

            SetupResources();

            ViewModel = new PurgeViewModel(
                MockApplication,
                MockLogger,
                MockResourceProvider,
                MockApplicationControlFileProvider,
                MockEpisodePurger,
                MockFileUtilities,
                MockCrashReporter,
                MockAnalyticsEngine
                );
            ViewModel.Observables.Title          += SetTitle;
            ViewModel.Observables.StartProgress  += StartProgress;
            ViewModel.Observables.UpdateProgress += UpdateProgress;
            ViewModel.Observables.EndProgress    += EndProgress;
            ViewModel.Observables.SetPurgeItems  += SetPurgeItems;
            ViewModel.Observables.DisplayMessage += DisplayMessage;
        }
Exemplo n.º 2
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.º 3
0
 public PurgeRecyclerItemAdapter(Context context, PurgeViewModel viewModel)
 {
     Context   = context;
     ViewModel = viewModel;
 }