From 89e2ab5cb8f10987ef67c3eac2b757a334f0ccfb Mon Sep 17 00:00:00 2001 From: Sergey Eremin Date: Thu, 29 Dec 2016 12:54:48 +0300 Subject: [PATCH] Non-free app download attempt disabled --- .../yeriomin/yalpstore/DetailsActivity.java | 53 ++++++++++--------- .../yalpstore/PlayStoreApiWrapper.java | 1 + .../github/yeriomin/yalpstore/model/App.java | 9 ++++ app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 5 files changed, 41 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/DetailsActivity.java b/app/src/main/java/com/github/yeriomin/yalpstore/DetailsActivity.java index 033512673..572494540 100644 --- a/app/src/main/java/com/github/yeriomin/yalpstore/DetailsActivity.java +++ b/app/src/main/java/com/github/yeriomin/yalpstore/DetailsActivity.java @@ -180,33 +180,38 @@ public class DetailsActivity extends Activity { setText(R.id.permissions, TextUtils.join("\n", localizedPermissions)); Button downloadButton = (Button) findViewById(R.id.download); - downloadButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - task = new GoogleApiAsyncTask() { - @Override - protected Throwable doInBackground(Void... params) { - PlayStoreApiWrapper wrapper = new PlayStoreApiWrapper(DetailsActivity.this); - try { - wrapper.download(app); - } catch (Throwable e) { - return e; + if (app.isFree()) { + downloadButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + task = new GoogleApiAsyncTask() { + @Override + protected Throwable doInBackground(Void... params) { + PlayStoreApiWrapper wrapper = new PlayStoreApiWrapper(DetailsActivity.this); + try { + wrapper.download(app); + } catch (Throwable e) { + return e; + } + return null; } - return null; + }; + task.setContext(v.getContext()); + task.prepareDialog( + getString(R.string.dialog_message_purchasing_app), + getString(R.string.dialog_title_purchasing_app) + ); + if (checkPermission()) { + task.execute(); + } else { + requestPermission(); } - }; - task.setContext(v.getContext()); - task.prepareDialog( - getString(R.string.dialog_message_purchasing_app), - getString(R.string.dialog_title_purchasing_app) - ); - if (checkPermission()) { - task.execute(); - } else { - requestPermission(); } - } - }); + }); + } else { + downloadButton.setText(getString(R.string.details_download_nonfree)); + downloadButton.setEnabled(false); + } } private void setText(int viewId, String text) { diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/PlayStoreApiWrapper.java b/app/src/main/java/com/github/yeriomin/yalpstore/PlayStoreApiWrapper.java index 83839b11e..056da8cdb 100644 --- a/app/src/main/java/com/github/yeriomin/yalpstore/PlayStoreApiWrapper.java +++ b/app/src/main/java/com/github/yeriomin/yalpstore/PlayStoreApiWrapper.java @@ -52,6 +52,7 @@ public class PlayStoreApiWrapper { app.setRating(details.getAggregateRating().getStarRating()); if (details.getOfferCount() > 0) { app.setOfferType(details.getOffer(0).getOfferType()); + app.setFree(details.getOffer(0).getMicros() == 0); } AppDetails appDetails = details.getDetails().getAppDetails(); app.getPackageInfo().packageName = appDetails.getPackageName(); diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/model/App.java b/app/src/main/java/com/github/yeriomin/yalpstore/model/App.java index cbf56dfb4..901f52dd8 100644 --- a/app/src/main/java/com/github/yeriomin/yalpstore/model/App.java +++ b/app/src/main/java/com/github/yeriomin/yalpstore/model/App.java @@ -25,6 +25,7 @@ public class App { private String description; private List permissions; private boolean isInstalled; + private boolean isFree; public App() { this.packageInfo = new PackageInfo(); @@ -175,4 +176,12 @@ public class App { public void setInstalled(boolean installed) { isInstalled = installed; } + + public boolean isFree() { + return isFree; + } + + public void setFree(boolean free) { + isFree = free; + } } diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 89fcc448d..7d8c1845c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -32,6 +32,7 @@ Версия %s Версия %s → %s Скачать + Платное приложение - скачать не получится млн млрд e-mail diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2cc6dd23e..0060de334 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -32,6 +32,7 @@ Version %s Version %s → %s Download + App is not free - download disabled mil bil e-mail here