diff --git a/app/src/main/java/org/fdroid/fdroid/views/apps/AppListItemController.java b/app/src/main/java/org/fdroid/fdroid/views/apps/AppListItemController.java index 4a007830d..935a0f720 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/apps/AppListItemController.java +++ b/app/src/main/java/org/fdroid/fdroid/views/apps/AppListItemController.java @@ -26,7 +26,6 @@ import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; -import android.widget.Toast; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; @@ -43,6 +42,7 @@ import org.fdroid.fdroid.installer.ApkCache; import org.fdroid.fdroid.installer.InstallManagerService; import org.fdroid.fdroid.installer.Installer; import org.fdroid.fdroid.installer.InstallerFactory; +import org.fdroid.fdroid.views.updates.DismissResult; import java.io.File; import java.util.Iterator; @@ -203,13 +203,13 @@ public abstract class AppListItemController extends RecyclerView.ViewHolder { * This mainly exists to keep the API consistent, in that the {@link App} is threaded through to the relevant * method with a guarantee that it is not null, rather than every method having to check if it is null or not. */ - public final void onDismiss() { + @NonNull + public final DismissResult onDismiss() { if (currentApp != null && canDismiss()) { - CharSequence message = onDismissApp(currentApp); - if (message != null) { - Toast.makeText(activity, message, Toast.LENGTH_SHORT).show(); - } + return onDismissApp(currentApp); } + + return new DismissResult(); } /** @@ -218,9 +218,9 @@ public abstract class AppListItemController extends RecyclerView.ViewHolder { * a {@link android.widget.Toast} for a {@link android.widget.Toast#LENGTH_SHORT} time. * @see #canDismiss() This must also be overriden and should return true. */ - @Nullable - protected CharSequence onDismissApp(@NonNull App app) { - return null; + @NonNull + protected DismissResult onDismissApp(@NonNull App app) { + return new DismissResult(); } /** diff --git a/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java b/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java index 1db90df67..50636c861 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java @@ -379,7 +379,7 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB AppUpdateStatusManager manager = AppUpdateStatusManager.getInstance(context); String reason = intent.getStringExtra(AppUpdateStatusManager.EXTRA_REASON_FOR_CHANGE); - switch(intent.getAction()) { + switch (intent.getAction()) { // Apps which are added/removed from the list due to becoming ready to install or a repo being // disabled both cause us to increase/decrease our badge count respectively. case AppUpdateStatusManager.BROADCAST_APPSTATUS_LIST_CHANGED: diff --git a/app/src/main/java/org/fdroid/fdroid/views/updates/DismissResult.java b/app/src/main/java/org/fdroid/fdroid/views/updates/DismissResult.java new file mode 100644 index 000000000..c68870128 --- /dev/null +++ b/app/src/main/java/org/fdroid/fdroid/views/updates/DismissResult.java @@ -0,0 +1,29 @@ +package org.fdroid.fdroid.views.updates; + +import android.support.annotation.Nullable; + +/** + * When dismissing an item from the Updates tab, there is two different things we need to return. + * This is a dumb data object to represent these things, because a method is only allowed to return one thing. + */ +public class DismissResult { + + @Nullable + public final CharSequence message; + + public final boolean requiresAdapterRefresh; + + public DismissResult() { + this(null, false); + } + + public DismissResult(boolean requiresAdapterRefresh) { + this(null, requiresAdapterRefresh); + } + + public DismissResult(@Nullable CharSequence message, boolean requiresAdapterRefresh) { + this.message = message; + this.requiresAdapterRefresh = requiresAdapterRefresh; + } + +} diff --git a/app/src/main/java/org/fdroid/fdroid/views/updates/UpdatesAdapter.java b/app/src/main/java/org/fdroid/fdroid/views/updates/UpdatesAdapter.java index 046e8f1b1..c657fe498 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/updates/UpdatesAdapter.java +++ b/app/src/main/java/org/fdroid/fdroid/views/updates/UpdatesAdapter.java @@ -343,14 +343,9 @@ public class UpdatesAdapter extends RecyclerView.Adapter