Example #1
0
        private void ImageClick(object sender, EventArgs e)
        {
            var image    = sender as ImageView;
            var position = (int)image.GetTag(Resource.Id.Object_Position);
            var item     = Items[position];

            if (item.Type == ActivityType.Text)
            {
                if (item.User?.Id == null)
                {
                    return;
                }

                UserActivity.StartActivity(Context, item.User.Id);
            }
            else if (item.Type == ActivityType.Message)
            {
                if (item.Messenger?.Id == null)
                {
                    return;
                }

                UserActivity.StartActivity(Context, item.Messenger.Id);
            }
            else if (item.Type == ActivityType.AnimeList || item.Type == ActivityType.MangaList)
            {
                if (item.Media?.Id == null)
                {
                    return;
                }

                MediaActivity.StartActivity(Context, item.Media.Id);
            }
        }
Example #2
0
        private Action GetNotificationClickAction()
        {
            Action retAction  = () => { };
            var    actionType = Model.GetNotificationActionType();

            if (actionType.Equals(NotificationActionType.Media))
            {
                retAction = () => MediaActivity.StartActivity(_context, Model.Media.Id);
            }
            else if (actionType.Equals(NotificationActionType.User))
            {
                retAction = () => UserActivity.StartActivity(_context, Model.User.Id);
            }
            else if (actionType.Equals(NotificationActionType.Activity))
            {
                retAction = () => _context.StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse($"https://anilist.co/activity/{Model.ActivityId}")));
            }
            else if (actionType.EqualsAny(NotificationActionType.Thread, NotificationActionType.Comment))
            {
                retAction = () => _context.StartActivity(new Intent(Intent.ActionView,
                                                                    Android.Net.Uri.Parse(
                                                                        $"https://anilist.co/forum/thread/{Model.Thread?.Id}{(Model.CommentId > 0 ? $"/comment/{Model.CommentId}" : "")}")));
            }

            return(retAction);
        }
Example #3
0
        private static void PopulateLikesContainer(BaseAniDroidActivity context, AniListActivity activity, ViewGroup container)
        {
            var imageSize    = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 40, context.Resources.DisplayMetrics);
            var padding      = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 2, context.Resources.DisplayMetrics);
            var layoutParams = new ViewGroup.LayoutParams(imageSize, imageSize);

            var profileImages = activity.Likes.Select(x =>
            {
                var image = new ImageView(context)
                {
                    LayoutParameters = layoutParams
                };
                image.SetPadding(padding, padding, padding, padding);
                ImageLoader.LoadImage(image, x.Avatar.Large);
                image.Click += (lSend, lArgs) =>
                {
                    UserActivity.StartActivity(context, x.Id);
                };
                image.LongClick += (lSend, lArgs) =>
                {
                    Toast.MakeText(context, x.Name, ToastLength.Short).Show();
                };
                return(image);
            }).ToList();

            container.Visibility = activity.Likes.Any() ? ViewStates.Visible : ViewStates.Gone;
            profileImages.ForEach(container.AddView);
        }
Example #4
0
        private void ImageClick(object sender, EventArgs e)
        {
            var senderView = sender as View;
            var userPos    = (int)senderView.GetTag(Resource.Id.Object_Position);
            var viewModel  = Items[userPos];

            UserActivity.StartActivity(Context, viewModel.Model?.User?.Id ?? 0);
        }
Example #5
0
        private void SetupNavigation()
        {
            var navHeader = _navigationView.GetHeaderView(0);

            _notificationImageView = navHeader.FindViewById <BadgeImageView>(Resource.Id.Navigation_NotificationIcon);

            var userNameViewContainer = navHeader.FindViewById <LinearLayout>(Resource.Id.Navigation_UserNameContainer);
            var userNameView          = navHeader.FindViewById <TextView>(Resource.Id.Navigation_UserName);

            if (!Settings.IsUserAuthenticated)
            {
                navHeader.FindViewById(Resource.Id.Navigation_NotificationIcon).Visibility = ViewStates.Gone;

                userNameViewContainer.Click += (sender, args) =>
                {
                    _navClosedAction = () =>
                    {
                        LoginActivity.StartActivity(this);
                    };
                    _navigationDrawer.CloseDrawer(GravityCompat.Start);
                };
            }
            else
            {
                var user = Settings.LoggedInUser;

                userNameView.Text            = user?.Name ?? "User Error";
                userNameViewContainer.Click += (sender, args) =>
                {
                    _navClosedAction = () =>
                                       AniListNotificationsDialog.Create(this, Presenter.GetNotificationsEnumerable(),
                                                                         _unreadNotificationCount, () => SetNotificationCount(0));
                    _navigationDrawer.CloseDrawer(GravityCompat.Start);
                };

                if (!string.IsNullOrWhiteSpace(user?.Avatar?.Large))
                {
                    var profileImageView = navHeader.FindViewById <ImageView>(Resource.Id.Navigation_ProfileImage);
                    profileImageView.Visibility = ViewStates.Visible;
                    ImageLoader.LoadImage(profileImageView, user.Avatar.Large);
                    profileImageView.Click += (sender, args) =>
                    {
                        _navClosedAction = () => UserActivity.StartActivity(this, user.Id);
                        _navigationDrawer.CloseDrawer(GravityCompat.Start);
                    };
                }

                if (!string.IsNullOrWhiteSpace(user?.BannerImage))
                {
                    var bannerView = navHeader.FindViewById <ImageView>(Resource.Id.Navigation_ProfileBannerImage);
                    bannerView.Visibility = ViewStates.Visible;
                    ImageLoader.LoadImage(bannerView, user.BannerImage);
                }
            }

            _navigationView.SetNavigationItemSelectedListener(this);
            _navigationDrawer.DrawerClosed += OnDrawerClosed;
        }
Example #6
0
        private void RowClick(object sender, EventArgs e)
        {
            var view     = sender as View;
            var position = (int)view.GetTag(Resource.Id.Object_Position);
            var item     = Items[position];

            if (item.Type == ActivityType.Text || item.Type == ActivityType.AnimeList || item.Type == ActivityType.MangaList)
            {
                UserActivity.StartActivity(Context, item.User.Id);
            }
            else if (item.Type == ActivityType.Message)
            {
                UserActivity.StartActivity(Context, item.Messenger.Id);
            }
        }
Example #7
0
        private View CreateMediaFollowingUsersMediaListStatusView(int mediaId)
        {
            var mediaListEnumerable = Presenter.GetMediaFollowingUsersMediaListsEnumerable(mediaId, PageLength);
            var retView             = LayoutInflater.Inflate(Resource.Layout.View_List, null);
            var recycler            = retView.FindViewById <RecyclerView>(Resource.Id.List_RecyclerView);
            var recyclerAdapter     = new MediaListRecyclerAdapter(this, CardType, mediaListEnumerable,
                                                                   MediaListViewModel.CreateUserMediaListViewModel)
            {
                ClickAction = (viewModel, position) => UserActivity.StartActivity(this, viewModel.Model?.User?.Id ?? 0)
            };

            recycler.SetAdapter(recyclerAdapter);

            return(retView);
        }
Example #8
0
 private void SetDefaultClickActions()
 {
     ClickAction =
         (viewModel, position) => UserActivity.StartActivity(Context, viewModel.Model.Id);
 }