Loading app/src/main/java/app/fedilab/android/mastodon/helper/MediaHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -403,7 +403,7 @@ public class MediaHelper { minute); final long[] time = {calendar.getTimeInMillis()}; if ((time[0] - new Date().getTime()) < 60000) { if ((time[0] - new Date().getTime()) < 300000) { Toasty.warning(activity, activity.getString(R.string.toot_scheduled_date), Toast.LENGTH_LONG).show(); } else { SimpleDateFormat sdf = new SimpleDateFormat(Helper.SCHEDULE_DATE_FORMAT, Locale.getDefault()); Loading app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusScheduledAdapter.java +31 −21 Original line number Diff line number Diff line Loading @@ -155,52 +155,62 @@ public class StatusScheduledAdapter extends RecyclerView.Adapter<StatusScheduled unfollowConfirm.setMessage(context.getString(R.string.remove_scheduled)); unfollowConfirm.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); unfollowConfirm.setPositiveButton(R.string.delete, (dialog, which) -> { if (scheduledStatuses != null && scheduledStatuses.size() > position) { int adapterPosition = holder.getBindingAdapterPosition(); if (adapterPosition == RecyclerView.NO_POSITION) { return; } if (scheduledStatuses != null && scheduledStatuses.size() > adapterPosition) { Account.API currentApi = BaseMainActivity.api; if (currentApi == Account.API.MISSKEY) { MisskeyStatusesVM misskeyStatusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(MisskeyStatusesVM.class); misskeyStatusesVM.cancelScheduledNote(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, scheduledStatuses.get(position).id) misskeyStatusesVM.cancelScheduledNote(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, scheduledStatuses.get(adapterPosition).id) .observe((LifecycleOwner) context, success -> { if (success != null && success) { scheduledStatuses.remove(scheduledStatuses.get(position)); int pos = holder.getBindingAdapterPosition(); if (pos != RecyclerView.NO_POSITION && pos < scheduledStatuses.size()) { scheduledStatuses.remove(pos); notifyItemRemoved(pos); if (scheduledStatuses.isEmpty()) { scheduledActions.onAllDeleted(); } notifyItemRemoved(position); } } }); } else { StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class); statusesVM.deleteScheduledStatus(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, scheduledStatuses.get(position).id) statusesVM.deleteScheduledStatus(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, scheduledStatuses.get(adapterPosition).id) .observe((LifecycleOwner) context, unused -> { scheduledStatuses.remove(scheduledStatuses.get(position)); int pos = holder.getBindingAdapterPosition(); if (pos != RecyclerView.NO_POSITION && pos < scheduledStatuses.size()) { scheduledStatuses.remove(pos); notifyItemRemoved(pos); if (scheduledStatuses.isEmpty()) { scheduledActions.onAllDeleted(); } notifyItemRemoved(position); } }); } } else if (statusDraftList != null && statusDraftList.size() > position) { } else if (statusDraftList != null && statusDraftList.size() > adapterPosition) { try { new StatusDraft(context).removeScheduled(statusDraftList.get(position)); WorkManager.getInstance(context).cancelWorkById(statusDraftList.get(position).workerUuid); statusDraftList.remove(statusDraftList.get(position)); new StatusDraft(context).removeScheduled(statusDraftList.get(adapterPosition)); WorkManager.getInstance(context).cancelWorkById(statusDraftList.get(adapterPosition).workerUuid); statusDraftList.remove(adapterPosition); notifyItemRemoved(adapterPosition); if (statusDraftList.isEmpty()) { scheduledActions.onAllDeleted(); } notifyItemRemoved(position); } catch (DBException e) { e.printStackTrace(); } } else if (scheduledBoosts != null && position < scheduledBoosts.size()) { } else if (scheduledBoosts != null && adapterPosition < scheduledBoosts.size()) { try { new ScheduledBoost(context).removeScheduled(scheduledBoosts.get(position)); WorkManager.getInstance(context).cancelWorkById(scheduledBoosts.get(position).workerUuid); scheduledBoosts.remove(scheduledBoosts.get(position)); new ScheduledBoost(context).removeScheduled(scheduledBoosts.get(adapterPosition)); WorkManager.getInstance(context).cancelWorkById(scheduledBoosts.get(adapterPosition).workerUuid); scheduledBoosts.remove(adapterPosition); notifyItemRemoved(adapterPosition); if (scheduledBoosts.isEmpty()) { scheduledActions.onAllDeleted(); } notifyItemRemoved(position); } catch (DBException e) { e.printStackTrace(); } Loading Loading
app/src/main/java/app/fedilab/android/mastodon/helper/MediaHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -403,7 +403,7 @@ public class MediaHelper { minute); final long[] time = {calendar.getTimeInMillis()}; if ((time[0] - new Date().getTime()) < 60000) { if ((time[0] - new Date().getTime()) < 300000) { Toasty.warning(activity, activity.getString(R.string.toot_scheduled_date), Toast.LENGTH_LONG).show(); } else { SimpleDateFormat sdf = new SimpleDateFormat(Helper.SCHEDULE_DATE_FORMAT, Locale.getDefault()); Loading
app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusScheduledAdapter.java +31 −21 Original line number Diff line number Diff line Loading @@ -155,52 +155,62 @@ public class StatusScheduledAdapter extends RecyclerView.Adapter<StatusScheduled unfollowConfirm.setMessage(context.getString(R.string.remove_scheduled)); unfollowConfirm.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); unfollowConfirm.setPositiveButton(R.string.delete, (dialog, which) -> { if (scheduledStatuses != null && scheduledStatuses.size() > position) { int adapterPosition = holder.getBindingAdapterPosition(); if (adapterPosition == RecyclerView.NO_POSITION) { return; } if (scheduledStatuses != null && scheduledStatuses.size() > adapterPosition) { Account.API currentApi = BaseMainActivity.api; if (currentApi == Account.API.MISSKEY) { MisskeyStatusesVM misskeyStatusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(MisskeyStatusesVM.class); misskeyStatusesVM.cancelScheduledNote(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, scheduledStatuses.get(position).id) misskeyStatusesVM.cancelScheduledNote(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, scheduledStatuses.get(adapterPosition).id) .observe((LifecycleOwner) context, success -> { if (success != null && success) { scheduledStatuses.remove(scheduledStatuses.get(position)); int pos = holder.getBindingAdapterPosition(); if (pos != RecyclerView.NO_POSITION && pos < scheduledStatuses.size()) { scheduledStatuses.remove(pos); notifyItemRemoved(pos); if (scheduledStatuses.isEmpty()) { scheduledActions.onAllDeleted(); } notifyItemRemoved(position); } } }); } else { StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class); statusesVM.deleteScheduledStatus(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, scheduledStatuses.get(position).id) statusesVM.deleteScheduledStatus(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, scheduledStatuses.get(adapterPosition).id) .observe((LifecycleOwner) context, unused -> { scheduledStatuses.remove(scheduledStatuses.get(position)); int pos = holder.getBindingAdapterPosition(); if (pos != RecyclerView.NO_POSITION && pos < scheduledStatuses.size()) { scheduledStatuses.remove(pos); notifyItemRemoved(pos); if (scheduledStatuses.isEmpty()) { scheduledActions.onAllDeleted(); } notifyItemRemoved(position); } }); } } else if (statusDraftList != null && statusDraftList.size() > position) { } else if (statusDraftList != null && statusDraftList.size() > adapterPosition) { try { new StatusDraft(context).removeScheduled(statusDraftList.get(position)); WorkManager.getInstance(context).cancelWorkById(statusDraftList.get(position).workerUuid); statusDraftList.remove(statusDraftList.get(position)); new StatusDraft(context).removeScheduled(statusDraftList.get(adapterPosition)); WorkManager.getInstance(context).cancelWorkById(statusDraftList.get(adapterPosition).workerUuid); statusDraftList.remove(adapterPosition); notifyItemRemoved(adapterPosition); if (statusDraftList.isEmpty()) { scheduledActions.onAllDeleted(); } notifyItemRemoved(position); } catch (DBException e) { e.printStackTrace(); } } else if (scheduledBoosts != null && position < scheduledBoosts.size()) { } else if (scheduledBoosts != null && adapterPosition < scheduledBoosts.size()) { try { new ScheduledBoost(context).removeScheduled(scheduledBoosts.get(position)); WorkManager.getInstance(context).cancelWorkById(scheduledBoosts.get(position).workerUuid); scheduledBoosts.remove(scheduledBoosts.get(position)); new ScheduledBoost(context).removeScheduled(scheduledBoosts.get(adapterPosition)); WorkManager.getInstance(context).cancelWorkById(scheduledBoosts.get(adapterPosition).workerUuid); scheduledBoosts.remove(adapterPosition); notifyItemRemoved(adapterPosition); if (scheduledBoosts.isEmpty()) { scheduledActions.onAllDeleted(); } notifyItemRemoved(position); } catch (DBException e) { e.printStackTrace(); } Loading