Exemplo n.º 1
0
            public TimeEntryListItemHolder(LogTimeEntriesAdapter owner, View root) : base(root)
            {
                this.owner = owner;

                ColorView           = root.FindViewById <View> (Resource.Id.ColorView);
                ProjectTextView     = root.FindViewById <TextView> (Resource.Id.ProjectTextView).SetFont(Font.RobotoMedium);
                ClientTextView      = root.FindViewById <TextView> (Resource.Id.ClientTextView).SetFont(Font.RobotoMedium);
                TaskTextView        = root.FindViewById <TextView> (Resource.Id.TaskTextView).SetFont(Font.RobotoMedium);
                DescriptionTextView = root.FindViewById <TextView> (Resource.Id.DescriptionTextView).SetFont(Font.Roboto);
                TagsView            = root.FindViewById <NotificationImageView> (Resource.Id.TagsIcon);
                NotSyncedView       = root.FindViewById <View> (Resource.Id.NotSyncedIcon);
                BillableView        = root.FindViewById <View> (Resource.Id.BillableIcon);
                DurationTextView    = root.FindViewById <TextView> (Resource.Id.DurationTextView).SetFont(Font.RobotoLight);
                ContinueImageButton = root.FindViewById <ImageButton> (Resource.Id.ContinueImageButton);
                SwipeLayout         = root.FindViewById <RelativeLayout> (Resource.Id.swipe_layout);
                PreUndoLayout       = root.FindViewById <FrameLayout> (Resource.Id.pre_undo_layout);
                UndoButton          = root.FindViewById <LinearLayout> (Resource.Id.undo_layout);
                UndoButton          = root.FindViewById(Resource.Id.undo_button);
                UndoLayout          = root.FindViewById(Resource.Id.undo_layout);

                ContinueImageButton.SetOnTouchListener(this);
                UndoButton.SetOnTouchListener(this);
            }
Exemplo n.º 2
0
            public void Bind(ITimeEntryHolder datasource)
            {
                if (datasource == null || Handle == IntPtr.Zero)
                {
                    return;
                }

                var color = Color.Transparent;
                var ctx   = ServiceContainer.Resolve <Context> ();

                var authManager = ServiceContainer.Resolve <AuthManager> ();

                if (authManager.OfflineMode || (datasource.Data.RemoteId.HasValue && !datasource.Data.IsDirty))
                {
                    NotSyncedView.Visibility = ViewStates.Gone;
                }
                else
                {
                    NotSyncedView.Visibility = ViewStates.Visible;
                }
                var notSyncedShape = NotSyncedView.Background as GradientDrawable;

                if (datasource.Data.IsDirty && datasource.Data.RemoteId.HasValue)
                {
                    notSyncedShape.SetColor(ctx.Resources.GetColor(Resource.Color.light_gray));
                }
                else
                {
                    notSyncedShape.SetColor(ctx.Resources.GetColor(Resource.Color.material_red));
                }

                var info = datasource.Info;

                if (!string.IsNullOrWhiteSpace(info.ProjectData.Name))
                {
                    color = Color.ParseColor(ProjectModel.HexColors [info.Color % ProjectModel.HexColors.Length]);
                    ProjectTextView.SetTextColor(color);
                    ProjectTextView.Text = info.ProjectData.Name;
                }
                else
                {
                    ProjectTextView.Text = ctx.GetString(Resource.String.RecentTimeEntryNoProject);
                    ProjectTextView.SetTextColor(ctx.Resources.GetColor(Resource.Color.dark_gray_text));
                }

                if (string.IsNullOrWhiteSpace(info.ClientData.Name))
                {
                    ClientTextView.Text       = string.Empty;
                    ClientTextView.Visibility = ViewStates.Gone;
                }
                else
                {
                    ClientTextView.Text       = string.Format("{0} • ", info.ClientData.Name);
                    ClientTextView.Visibility = ViewStates.Visible;
                }

                if (string.IsNullOrWhiteSpace(info.TaskData.Name))
                {
                    TaskTextView.Text       = string.Empty;
                    TaskTextView.Visibility = ViewStates.Gone;
                }
                else
                {
                    TaskTextView.Text       = string.Format("{0} • ", info.TaskData.Name);
                    TaskTextView.Visibility = ViewStates.Visible;
                }

                if (string.IsNullOrWhiteSpace(info.Description))
                {
                    DescriptionTextView.Text = ctx.GetString(Resource.String.RecentTimeEntryNoDescription);
                }
                else
                {
                    DescriptionTextView.Text = info.Description;
                }

                BillableView.Visibility = info.IsBillable ? ViewStates.Visible : ViewStates.Gone;

                var shape = ColorView.Background as GradientDrawable;

                if (shape != null)
                {
                    shape.SetColor(color);
                }

                // Show start/stop btn
                if (datasource.Data.State == TimeEntryState.Running)
                {
                    ContinueImageButton.SetImageResource(Resource.Drawable.IcStop);
                }
                else
                {
                    ContinueImageButton.SetImageResource(Resource.Drawable.IcPlayArrowGrey);
                }

                // Set tag number
                var numberOfTags = datasource.Info.NumberOfTags;

                TagsView.BubbleCount = numberOfTags;
                TagsView.Visibility  = numberOfTags > 0 ? ViewStates.Visible : ViewStates.Gone;

                // Set duration
                duration  = datasource.GetDuration();
                isRunning = datasource.Data.State == TimeEntryState.Running;
                RebindDuration();
            }