Directly remove notification, on error reload (#3968)

Directly remove notification, on error reload
This commit is contained in:
Tobias Kaminsky 2019-05-09 14:48:39 +02:00 committed by GitHub
commit 10f61729e2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 13 deletions

View file

@ -374,17 +374,21 @@ public class NotificationsActivity extends FileActivity implements Notifications
}
@Override
public void onRemovedNotification(boolean isSuccess, NotificationListAdapter.NotificationViewHolder holder) {
if (isSuccess) {
adapter.removeNotification(holder);
if (adapter.getItemCount() == 0) {
setEmptyContent(noResultsHeadline, noResultsMessage);
swipeListRefreshLayout.setVisibility(View.GONE);
swipeEmptyListRefreshLayout.setVisibility(View.VISIBLE);
}
} else {
public void onRemovedNotification(boolean isSuccess) {
if (!isSuccess) {
DisplayUtils.showSnackMessage(this, getString(R.string.remove_notification_failed));
fetchAndSetData();
}
}
@Override
public void removeNotification(NotificationListAdapter.NotificationViewHolder holder) {
adapter.removeNotification(holder);
if (adapter.getItemCount() == 0) {
setEmptyContent(noResultsHeadline, noResultsMessage);
swipeListRefreshLayout.setVisibility(View.GONE);
swipeEmptyListRefreshLayout.setVisibility(View.VISIBLE);
}
}

View file

@ -48,8 +48,12 @@ public class DeleteNotificationTask extends AsyncTask<Action, Void, Boolean> {
}
@Override
protected Boolean doInBackground(Action... actions) {
protected void onPreExecute() {
notificationsActivity.removeNotification(holder);
}
@Override
protected Boolean doInBackground(Action... actions) {
RemoteOperationResult result = new DeleteNotificationRemoteOperation(notification.notificationId)
.execute(client);
@ -58,6 +62,6 @@ public class DeleteNotificationTask extends AsyncTask<Action, Void, Boolean> {
@Override
protected void onPostExecute(Boolean success) {
notificationsActivity.onRemovedNotification(success, holder);
notificationsActivity.onRemovedNotification(success);
}
}

View file

@ -26,7 +26,9 @@ import com.owncloud.android.ui.adapter.NotificationListAdapter;
public interface NotificationsContract {
interface View {
void onRemovedNotification(boolean isSuccess, NotificationListAdapter.NotificationViewHolder holder);
void onRemovedNotification(boolean isSuccess);
void removeNotification(NotificationListAdapter.NotificationViewHolder holder);
void onRemovedAllNotifications(boolean isSuccess);