예제 #1
0
        public override bool OnOptionsItemSelected(IMenuItem item)
        {
            // Ugly null check
            if (item == SaveMenuItem && ViewModel != null)
            {
                Task.Run(async() => await ViewModel.SaveManualAsync());
            }

            Activity.OnBackPressed();
            return(base.OnOptionsItemSelected(item));
        }
        public void Create(Android.Support.V7.App.AppCompatActivity activity, Android.Support.V7.Widget.Toolbar toolbar, Bundle savedInstanceState)
        {
            _activity = activity;

            InitNavigation();
            InitDrawer(toolbar);

            if(null != savedInstanceState) {
                _selectedMenuItemResId = savedInstanceState.GetInt(StateSelectedResId, -1);
            }
        }
예제 #3
0
        public override void OnStart()
        {
            base.OnStart();

            // show keyboard
            var inputService = (InputMethodManager)Activity.GetSystemService(Context.InputMethodService);

            ProjectBit.TextField.PostDelayed(delegate {
                inputService.ShowSoftInput(ProjectBit.TextField, ShowFlags.Implicit);
            }, 100);
        }
 public override void OnActivityResult(int requestCode, int resultCode, Intent data)
 {
     base.OnActivityResult(requestCode, resultCode, data);
     if (requestCode == NewProjectFragment.ClientSelectedRequestCode)
     {
         if (resultCode == (int)Result.Ok)
         {
             Activity.Finish();
         }
     }
 }
예제 #5
0
        public override void OnActivityResult(int requestCode, int resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);

            if (requestCode == ProjectCreatedRequestCode)
            {
                if (resultCode == (int)Result.Ok)
                {
                    Activity.Finish();
                }
            }
        }
예제 #6
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            var view = inflater.Inflate(Resource.Layout.ReportsPagerFragment, container, false);

            viewPager = view.FindViewById <ViewPager> (Resource.Id.ReportsViewPager);
            viewPager.PageSelected += OnPageSelected;

            timePeriod           = view.FindViewById <TextView> (Resource.Id.TimePeriodLabel);
            previousPeriod       = view.FindViewById(Resource.Id.PreviousFrameLayout);
            nextPeriod           = view.FindViewById(Resource.Id.NextFrameLayout);
            syncErrorBar         = view.FindViewById <FrameLayout> (Resource.Id.ReportsSyncBar);
            syncRetry            = view.FindViewById <ImageButton> (Resource.Id.ReportsSyncRetryButton);
            reportsContainer     = view.FindViewById <LinearLayout> (Resource.Id.ReportsContainer);
            nouserDisclaimer     = view.FindViewById <LinearLayout> (Resource.Id.NoUserDisclaimer);
            noUserRegisterButton = view.FindViewById <Button> (Resource.Id.ReportsRegisterButton);

            previousPeriod.Click += (sender, e) => NavigatePage(-1);
            nextPeriod.Click     += (sender, e) => NavigatePage(1);
            syncRetry.Click      += async(sender, e) => await ReloadCurrent();

            noUserRegisterButton.Click += OpenRegisterScreen;

            var activity = (MainDrawerActivity)Activity;

            toolbar = activity.MainToolbar;

            HasOptionsMenu = true;
            Activity.InvalidateOptionsMenu();

            ResetAdapter();
            UpdatePeriod();

            var settings = ServiceContainer.Resolve <SettingsStore> ();

            if (settings.ReportsCurrentItem.HasValue)
            {
                viewPager.CurrentItem = settings.ReportsCurrentItem.Value;
            }

            if (ServiceContainer.Resolve <AuthManager> ().OfflineMode)
            {
                nouserDisclaimer.Visibility = ViewStates.Visible;
                reportsContainer.Visibility = ViewStates.Gone;
            }
            else
            {
                nouserDisclaimer.Visibility = ViewStates.Gone;
                reportsContainer.Visibility = ViewStates.Visible;
            }

            return(view);
        }
예제 #7
0
        public static Task <Bitmap> CropImage(Android.Support.V7.App.AppCompatActivity activity, Bitmap picture)
        {
            var fragment = new CropImageFragment();

            fragment._picture   = picture;
            fragment.completion = new TaskCompletionSource <Bitmap>();
            activity.SupportFragmentManager.BeginTransaction()
            .Replace(Resource.Id.content_frame, fragment)
            .AddToBackStack(null)
            .Commit();

            return(fragment.completion.Task);
        }
예제 #8
0
 public override bool OnOptionsItemSelected(IMenuItem item)
 {
     if (item.ItemId == Android.Resource.Id.Home)
     {
         var resultIntent = new Intent();
         Activity.SetResult(Result.Canceled, resultIntent);
         Activity.Finish();
     }
     else
     {
         SaveButtonHandler(this, null);
     }
     return(base.OnOptionsItemSelected(item));
 }
예제 #9
0
        public override void OnActivityResult(int requestCode, int resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);

            // Bypass to close the activity
            // if the project is created in NewProject activity,
            // close the Project list activity
            if (requestCode == ProjectCreatedRequestCode)
            {
                if (resultCode == (int)Result.Ok)
                {
                    data.PutExtra(BaseActivity.IntentTaskIdArgument, Guid.Empty.ToString());
                    Activity.SetResult(Result.Ok, data);
                    Activity.Finish();
                }
            }
        }
예제 #10
0
        private async void OnItemSelected(object m)
        {
            ProjectModel   project   = null;
            WorkspaceModel workspace = null;
            TaskData       task      = null;

            if (m is WorkspaceProjectsView.Project)
            {
                var wrap = (WorkspaceProjectsView.Project)m;
                if (wrap.IsNoProject)
                {
                    workspace = new WorkspaceModel(wrap.WorkspaceId);
                }
                else if (wrap.IsNewProject)
                {
                    // Show create project activity instead
                    var entryList = new List <TimeEntryData> (viewModel.TimeEntryList);
                    var intent    = BaseActivity.CreateDataIntent <NewProjectActivity, List <TimeEntryData> >
                                        (Activity, entryList, NewProjectActivity.ExtraTimeEntryDataListId);
                    StartActivityForResult(intent, ProjectCreatedRequestCode);
                }
                else
                {
                    project   = (ProjectModel)wrap.Data;
                    workspace = project.Workspace;
                }
            }
            else if (m is ProjectAndTaskView.Workspace)
            {
                var wrap = (ProjectAndTaskView.Workspace)m;
                workspace = (WorkspaceModel)wrap.Data;
            }
            else if (m is TaskData)
            {
                task      = (TaskData)m;
                project   = new ProjectModel(task.ProjectId);
                workspace = new WorkspaceModel(task.WorkspaceId);
            }

            if (project != null || workspace != null)
            {
                await viewModel.SaveModelAsync(project, workspace, task);

                Activity.Finish();
            }
        }
        private void OnModelLoaded(object sender, EventArgs e)
        {
            if (!viewModel.IsLoading)
            {
                if (viewModel != null)
                {
                    editTimeEntryFragment.TimeEntry = viewModel.Model;
                    editTimeEntryFragment.OnPressedProjectSelector += OnProjectSelected;
                    editTimeEntryFragment.OnPressedTagSelector     += OnTagSelected;
                    viewModel.OnProjectListChanged += OnProjectListChanged;

                    // Set adapter
                    listAdapter = new GroupedEditAdapter(viewModel.Model);
                    (listAdapter as GroupedEditAdapter).HandleTapTimeEntry = HandleTimeEntryClick;
                    recyclerView.SetAdapter(listAdapter);
                }
                else
                {
                    Activity.Finish();
                }
            }
        }
예제 #12
0
        private async void SaveButtonHandler(object sender, EventArgs e)
        {
            // TODO: Deactivate Save btn.
            // If name is empty.
            var projectName = ProjectBit.TextField.Text;

            if (string.IsNullOrEmpty(projectName))
            {
                new AlertDialog.Builder(Activity)
                .SetTitle(Resource.String.NewProjectEmptyDialogTitle)
                .SetMessage(Resource.String.NewProjectEmptyDialogMessage)
                .SetPositiveButton(Resource.String.NewProjectEmptyDialogPositiveButtonTitle, (EventHandler <DialogClickEventArgs>)null)
                .Show();
                return;
            }

            // If name exists.
            var existsName = await ViewModel.ExistProjectWithName(projectName);

            if (existsName)
            {
                new AlertDialog.Builder(Activity)
                .SetTitle(Resource.String.NewProjectDuplicateDialogTitle)
                .SetMessage(Resource.String.NewProjectDuplicateDialogMessage)
                .SetPositiveButton(Resource.String.NewProjectEmptyDialogPositiveButtonTitle, (EventHandler <DialogClickEventArgs>)null)
                .Show();
                return;
            }

            // Save project and send result.
            var newProjectData = await ViewModel.SaveProject(projectName, ColorPicker.Adapter.SelectedColor);

            var resultIntent = new Intent();

            resultIntent.PutExtra(BaseActivity.IntentProjectIdArgument, newProjectData.Id.ToString());
            Activity.SetResult(Result.Ok, resultIntent);
            Activity.Finish();
        }
        public void ShowNewVersionDialog(Android.Support.V7.App.AppCompatActivity activity)
        {
            AlertDialog.Builder builder = new AlertDialog.Builder(activity);
            builder.SetTitle(" New Version Available ");
            var version = activity.PackageManager.GetPackageInfo(activity.PackageName,
                                                                 Android.Content.PM.PackageInfoFlags.MetaData);
            SpannableString s = new SpannableString(String.Format("Please download the new version of this app from"));

            Linkify.AddLinks(s, MatchOptions.WebUrls);
            //builder.SetMessage(s);

            builder.SetCancelable(false);
            builder.SetPositiveButton("Download", delegate
            {
                builder.Dispose();

                DownloadFile(activity);
            });



            builder.Show();
        }
예제 #14
0
        private void OnDataLoaded(object sender, EventArgs e)
        {
            if (!viewModel.IsLoading)
            {
                if (viewModel.Model == null)
                {
                    Activity.Finish();
                }
            }

            if (viewModel.ProjectList.IsLoading || viewModel.IsLoading)
            {
                return;
            }

            EnsureCorrectState();

            // Create tabs
            if (viewModel.ProjectList.Workspaces.Count > 1)
            {
                int i = 0;
                foreach (var ws in viewModel.ProjectList.Workspaces)
                {
                    var tab = tabLayout.NewTab().SetText(ws.Data.Name);
                    tabLayout.AddTab(tab);
                    try {
                        if (ws.Data.Id == viewModel.TimeEntryList[0].WorkspaceId)
                        {
                            viewModel.ProjectList.CurrentWorkspaceIndex = i;
                            tab.Select();
                        }
                    } catch (Exception ex) {}

                    i++;
                }
            }
        }
 public override bool OnOptionsItemSelected(IMenuItem item)
 {
     Activity.OnBackPressed();
     return(base.OnOptionsItemSelected(item));
 }