diff --git a/app/src/main/java/org/lineageos/updater/UpdatesListAdapter.java b/app/src/main/java/org/lineageos/updater/UpdatesListAdapter.java
index 2a62b63..b038249 100644
--- a/app/src/main/java/org/lineageos/updater/UpdatesListAdapter.java
+++ b/app/src/main/java/org/lineageos/updater/UpdatesListAdapter.java
@@ -499,7 +499,6 @@
                 .setPositiveButton(android.R.string.ok,
                         (dialog, which) -> {
                             Utils.triggerUpdate(mActivity, downloadId);
-                            maybeShowInfoDialog();
                         })
                 .setNegativeButton(android.R.string.cancel, null);
     }
@@ -516,21 +515,6 @@
                 .setNegativeButton(android.R.string.cancel, null);
     }
 
-    private void maybeShowInfoDialog() {
-        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(mActivity);
-        boolean alreadySeen = preferences.getBoolean(Constants.HAS_SEEN_INFO_DIALOG, false);
-        if (alreadySeen) {
-            return;
-        }
-        new AlertDialog.Builder(mActivity)
-                .setTitle(R.string.info_dialog_title)
-                .setMessage(R.string.info_dialog_message)
-                .setPositiveButton(R.string.info_dialog_ok, (dialog, which) -> preferences.edit()
-                        .putBoolean(Constants.HAS_SEEN_INFO_DIALOG, true)
-                        .apply())
-                .show();
-    }
-
     private void startActionMode(final UpdateInfo update, final boolean canDelete, View anchor) {
         mSelectedDownload = update.getDownloadId();
         notifyItemChanged(update.getDownloadId());
