From ba2bd8af2005132dd69d56cc2d4e9f98d2eddb1c Mon Sep 17 00:00:00 2001 From: Sergey Eremin Date: Fri, 23 Jun 2017 20:00:32 +0300 Subject: [PATCH] Manual download no longer triggers autoinstallation --- .../yalpstore/DetailsDownloadReceiver.java | 20 ++++++++++++------- .../yeriomin/yalpstore/DownloadState.java | 3 ++- .../yalpstore/ManualDownloadActivity.java | 8 +++++++- .../fragment/details/ButtonDownload.java | 4 ++++ 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/DetailsDownloadReceiver.java b/app/src/main/java/com/github/yeriomin/yalpstore/DetailsDownloadReceiver.java index 2cbba4cf3..bc34b98c5 100644 --- a/app/src/main/java/com/github/yeriomin/yalpstore/DetailsDownloadReceiver.java +++ b/app/src/main/java/com/github/yeriomin/yalpstore/DetailsDownloadReceiver.java @@ -51,13 +51,19 @@ public class DetailsDownloadReceiver extends BroadcastReceiver { } buttonDownload.setText(R.string.details_download); buttonDownload.setEnabled(true); - if (state.isEverythingSuccessful()) { - buttonDownload.setVisibility(View.GONE); - buttonInstall.setVisibility(View.VISIBLE); - if (PreferenceActivity.getBoolean(context, PreferenceActivity.PREFERENCE_AUTO_INSTALL)) { - buttonInstall.setEnabled(false); - buttonInstall.setText(R.string.details_installing); - } + if (!state.isEverythingSuccessful()) { + return; + } + buttonDownload.setVisibility(View.GONE); + buttonInstall.setVisibility(View.VISIBLE); + if (PreferenceActivity.getBoolean(context, PreferenceActivity.PREFERENCE_AUTO_INSTALL) + && !state.getTriggeredBy().equals(DownloadState.TriggeredBy.MANUAL_DOWNLOAD_BUTTON) + ) { + buttonInstall.setEnabled(false); + buttonInstall.setText(R.string.details_installing); + } else { + buttonInstall.setEnabled(true); + buttonInstall.setText(R.string.details_install); } } } diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/DownloadState.java b/app/src/main/java/com/github/yeriomin/yalpstore/DownloadState.java index 5e0742789..29da5b4e6 100644 --- a/app/src/main/java/com/github/yeriomin/yalpstore/DownloadState.java +++ b/app/src/main/java/com/github/yeriomin/yalpstore/DownloadState.java @@ -12,7 +12,8 @@ public class DownloadState { public enum TriggeredBy { DOWNLOAD_BUTTON, UPDATE_ALL_BUTTON, - SCHEDULED_UPDATE + SCHEDULED_UPDATE, + MANUAL_DOWNLOAD_BUTTON } enum Status { diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/ManualDownloadActivity.java b/app/src/main/java/com/github/yeriomin/yalpstore/ManualDownloadActivity.java index 8ba85ab25..baf51d69b 100644 --- a/app/src/main/java/com/github/yeriomin/yalpstore/ManualDownloadActivity.java +++ b/app/src/main/java/com/github/yeriomin/yalpstore/ManualDownloadActivity.java @@ -4,6 +4,7 @@ import android.content.Intent; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; +import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; @@ -43,6 +44,7 @@ public class ManualDownloadActivity extends DetailsActivity { ManualDownloadTextWatcher textWatcher = new ManualDownloadTextWatcher( app, (Button) findViewById(R.id.download), + (Button) findViewById(R.id.install), downloadOrInstallFragment ); String versionCode = Integer.toString(app.getVersionCode()); @@ -66,12 +68,14 @@ public class ManualDownloadActivity extends DetailsActivity { private final App app; private final Button downloadButton; + private final Button installButton; private DownloadOrInstall downloadOrInstallManager; private Timer timer; - public ManualDownloadTextWatcher(App app, Button downloadButton, DownloadOrInstall downloadOrInstallManager) { + public ManualDownloadTextWatcher(App app, Button downloadButton, Button installButton, DownloadOrInstall downloadOrInstallManager) { this.app = app; this.downloadButton = downloadButton; + this.installButton = installButton; this.downloadOrInstallManager = downloadOrInstallManager; } @@ -84,8 +88,10 @@ public class ManualDownloadActivity extends DetailsActivity { public void onTextChanged(CharSequence s, int start, int before, int count) { try { app.setVersionCode(Integer.parseInt(s.toString())); + installButton.setVisibility(View.GONE); downloadButton.setText(R.string.details_download_checking); downloadButton.setEnabled(false); + downloadButton.setVisibility(View.VISIBLE); restartTimer(); } catch (NumberFormatException e) { Log.w(getClass().getName(), s.toString() + " is not a number"); diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/fragment/details/ButtonDownload.java b/app/src/main/java/com/github/yeriomin/yalpstore/fragment/details/ButtonDownload.java index 2b4a7006f..aa302400d 100644 --- a/app/src/main/java/com/github/yeriomin/yalpstore/fragment/details/ButtonDownload.java +++ b/app/src/main/java/com/github/yeriomin/yalpstore/fragment/details/ButtonDownload.java @@ -19,6 +19,9 @@ import com.github.yeriomin.yalpstore.model.App; import java.io.File; +import static com.github.yeriomin.yalpstore.DownloadState.TriggeredBy.DOWNLOAD_BUTTON; +import static com.github.yeriomin.yalpstore.DownloadState.TriggeredBy.MANUAL_DOWNLOAD_BUTTON; + public class ButtonDownload extends Button { public ButtonDownload(DetailsActivity activity, App app) { @@ -96,6 +99,7 @@ public class ButtonDownload extends Button { purchaseTask.setOnDownloadProgressListener(new OnDownloadProgressListener(progressBar, DownloadState.get(app.getPackageName()))); purchaseTask.setApp(app); purchaseTask.setContext(activity); + purchaseTask.setTriggeredBy(activity instanceof ManualDownloadActivity ? MANUAL_DOWNLOAD_BUTTON : DOWNLOAD_BUTTON); purchaseTask.prepareDialog( R.string.dialog_message_purchasing_app, R.string.dialog_title_purchasing_app