Example #1
0
        public override void OnActivityCreated(Bundle savedInstanceState)
        {
            firebaseAnalytics = FirebaseAnalytics.GetInstance(Context);

            base.OnCreate(savedInstanceState);
            _projects = Queries.AllProjects();

            // It is not possible to SetAdapter in OnActivityCreated as accessing the rootView.
            adapter = new ProjectsAdapter(_projects);
            adapter.ProjectClicked += OnProjectClick;
            Activity.FindViewById <RecyclerView>(Resource.Id.projects).SetAdapter(adapter);
            // As this method is called each time the Fragment is in view (similar to onResume),
            // only call it if there are no projects, i.e. on first use.
            if (_projects.Count <= 0)
            {
                LoadDataIfNotLoading(true);
            }

            var refresher = Activity.FindViewById <SwipeRefreshLayout>(Resource.Id.projectsRefresher);

            refresher.SetColorSchemeResources(Resource.Color.primary_material_dark);
            refresher.Refresh += async delegate {
                LOG_SWIPE_REFRESH();
                await LoadData();

                refresher.Refreshing = false;
            };
        }
        private async Task GetData(ListView listView, Controller ctrl)
        {
            try
            {
                var output = await ctrl.GetProjects(Settings.GetInstance().Dataset);

                Debug.WriteLine("We are here");
                var listAdapter = new ProjectsAdapter(Activity, Android.Resource.Layout.SimpleListItem1,
                                                      output.ToArray());
                Debug.WriteLine("Setting the adapter");
                listView.Adapter = listAdapter;
                Debug.WriteLine("List will be displayed");
                SetListShown(true);
                ListView.SetSelection(listAdapter.Count - 1);
            }
            catch (CannotReachServerException)
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(Activity);
                builder.SetTitle("Unable to Connect")
                .SetMessage("Please check your network connection and try again")
                .SetNeutralButton("Okay", (sender, args) =>
                {
                    builder.Dispose();
                    ((MainActivity)Activity).FragmentManager.PopBackStack();
                })
                .SetCancelable(false);
                AlertDialog alert = builder.Create();
                alert.Show();
            }
            catch (StatusNotOkayException se)
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(Activity);
                builder.SetTitle("An Error has occured")
                .SetMessage("Error :" + se.GetMessage())
                .SetNeutralButton("Okay", (sender, args) =>
                {
                    builder.Dispose();
                })
                .SetCancelable(false);
                AlertDialog alert = builder.Create();
                alert.Show();
            }
            catch (Exception e)
            {
                // For any other weird exceptions
                AlertDialog.Builder builder = new AlertDialog.Builder(Activity);
                builder.SetTitle("An Error has occured")
                .SetNeutralButton("Okay", (sender, args) =>
                {
                    builder.Dispose();
                })
                .SetMessage("Error :" + e.Message)
                .SetCancelable(false);
                AlertDialog alert = builder.Create();
                alert.Show();
            }
        }
        public override Dialog OnCreateDialog (Bundle state)
        {
            adapter = new ProjectsAdapter ();
            var dia = new AlertDialog.Builder (Activity)
                .SetTitle (Resource.String.ChooseTimeEntryProjectDialogTitle)
                    .SetAdapter (adapter, OnItemSelected)
                .SetNegativeButton (Resource.String.ChooseTimeEntryProjectDialogCancel, OnCancelButtonClicked)
                .Create ();

            dia.ListView.Divider = Activity.Resources.GetDrawable (Resource.Drawable.dividerhorizontalopaque);
            return dia;
        }
Example #4
0
        public override Dialog OnCreateDialog(Bundle state)
        {
            adapter = new ProjectsAdapter();
            var dia = new AlertDialog.Builder(Activity)
                      .SetTitle(Resource.String.ChooseTimeEntryProjectDialogTitle)
                      .SetAdapter(adapter, OnItemSelected)
                      .SetNegativeButton(Resource.String.ChooseTimeEntryProjectDialogCancel, OnCancelButtonClicked)
                      .Create();

            dia.ListView.Divider = Activity.Resources.GetDrawable(Resource.Drawable.dividerhorizontalopaque);
            return(dia);
        }
        private async void GetProjects()
        {
            try
            {
                List <Project> projectList = await _vm.GetProjects();

                //Set up adapter and stuff here
                projectsAdapter = new ProjectsAdapter(this.Activity, projectList);

                ListView listView = View.FindViewById <ListView>(Resource.Id.lv_projects);

                listView.ItemClick += listView_ItemClick;
                listView.Adapter    = projectsAdapter;
            }
            catch (Exception e)
            {
                //Show exception message here
                Console.WriteLine("Exception occured. Reason:" + e.Message);
            }
        }
Example #6
0
        public override void OnStart()
        {
            base.OnStart();

            firebaseAnalytics = FirebaseAnalytics.GetInstance(Context);

            _projects = Queries.AllProjects();

            // It is not possible to SetAdapter in OnActivityCreated as accessing the rootView.
            adapter = new ProjectsAdapter(_projects, Context);
            adapter.ProjectClicked += OnProjectClick;
            listView.SetAdapter(adapter);

            refresher = Activity.FindViewById <SwipeRefreshLayout>(Resource.Id.projectsRefresher);
            refresher.SetColorSchemeResources(Resource.Color.primary_material_dark);
            refresher.Refresh += Refresher_Refresh;

            if (!HasRefreshedProjects)
            {
                LoadDataIfNotLoading();
            }
        }
Example #7
0
        protected override async void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            SetContentView(Resource.Layout.Main);

            var toolbar = FindViewById <Toolbar>(Resource.Id.AppToolbar);

            toolbar.SetNavigationIcon(Resource.Drawable.icon);
            SetActionBar(toolbar);
            ActionBar.Title = GetString(Resource.String.ApplicationName);

            _projectsDataSource           = new List <Project>();
            _projectsAdapter              = new ProjectsAdapter(_projectsDataSource);
            _projectsAdapter.ItemClicked += OnProjectItemClicked;

            _progressBar = FindViewById <ProgressBar>(Resource.Id.Progressbar);
            var projectsRecycleView = FindViewById <RecyclerView>(Resource.Id.ProjectsRecyclerView);

            projectsRecycleView.SetLayoutManager(new LinearLayoutManager(this));
            projectsRecycleView.SetAdapter(_projectsAdapter);

            await LoadProjectsAsync();
        }
        private async Task GetData(ListView listView, Controller ctrl)
        {
            try
            {
                var output = await ctrl.GetProjects(AccountStorage.DataSet);

                Debug.WriteLine("We are here");
                var listAdapter = new ProjectsAdapter(Activity, Android.Resource.Layout.SimpleListItem1,
                                                      output.ToArray());
                Debug.WriteLine("Setting the adapter");
                listView.Adapter = listAdapter;
                Debug.WriteLine("List will be displayed");
                SetListShown(true);
                ListView.SetSelection(listAdapter.Count - 1);
            }
            catch (CannotReachServerException)
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(Activity);
                builder.SetTitle("Unable to Connect")
                .SetMessage("Please check your network connection and try again")
                .SetNeutralButton("Okay", (sender, args) =>
                {
                    builder.Dispose();
                    ((MainActivity)Activity).FragmentManager.PopBackStack();
                })
                .SetCancelable(false);
                AlertDialog alert = builder.Create();
                alert.Show();
            }

            catch (WebException we)
            {
                if (we.Status == WebExceptionStatus.ProtocolError)
                {
                    var response = we.Response as HttpWebResponse;
                    if (response != null)
                    {
                        Console.WriteLine("HTTP Status Code: " + (int)response.StatusCode);
                        if (response.StatusCode == HttpStatusCode.Forbidden)
                        {
                            try
                            {
                                Toast.MakeText(this.Activity, "Username and password error.", ToastLength.Long).Show();
                                System.Diagnostics.Debug.WriteLine("We are about to logout");
                                AccountStorage.ClearStorage();
                                System.Diagnostics.Debug.WriteLine("Main Activity is :" + Activity == null);
                                System.Diagnostics.Debug.WriteLine("Items in the backstack :" + Activity.FragmentManager.BackStackEntryCount);
                                System.Diagnostics.Debug.WriteLine("Main Activity is :" + Activity == null);
                                Activity.FragmentManager.PopBackStack(null, PopBackStackFlags.Inclusive);
                                System.Diagnostics.Debug.WriteLine("Items in the backstack 2 :" + Activity.FragmentManager.BackStackEntryCount);
                                ((MainActivity)(Activity)).SetDrawerState(false);
                                ((MainActivity)(Activity)).SwitchToFragment(MainActivity.FragmentTypes.Login);
                            }
                            catch (System.Exception e)
                            {
                                System.Diagnostics.Debug.WriteLine("We encountered an error :" + e.Message);
                            }
                        }
                    }
                    else
                    {
                        // no http status code available
                        Toast.MakeText(Activity, "Unable to load the data. Please restart the application.", ToastLength.Short).Show();
                    }
                }
                else
                {
                    // no http status code availableToast.MakeText(Activity, "Unable to load the data. Please restart the application.", ToastLength.Short).Show();
                }
            }
            catch (StatusNotOkayException se)
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(Activity);
                builder.SetTitle("An Error has occured")
                .SetMessage("Error :" + se.GetMessage())
                .SetNeutralButton("Okay", (sender, args) =>
                {
                    builder.Dispose();
                })
                .SetCancelable(false);
                AlertDialog alert = builder.Create();
                alert.Show();
            }
            catch (Exception e)
            {
                // For any other weird exceptions
                AlertDialog.Builder builder = new AlertDialog.Builder(Activity);
                builder.SetTitle("An Error has occured")
                .SetNeutralButton("Okay", (sender, args) =>
                {
                    builder.Dispose();
                })
                .SetMessage("Error :" + e.Message)
                .SetCancelable(false);
                AlertDialog alert = builder.Create();
                alert.Show();
            }
        }
 //populate list
 private void populateProjectList(View view)
 {
     projects = ProjectsCollection.GetProjects();
     adapter  = new ProjectsAdapter(view.Context, projects);
     mListProjects.Adapter = adapter;
 }