From 6e754acabaeed4672ed19f3b6b0f1d7e6fa84f72 Mon Sep 17 00:00:00 2001 From: Austin Huang Date: Thu, 20 Aug 2020 21:49:05 -0400 Subject: [PATCH] fix #63 (not tested) plus direct download issue --- .../main/java/awais/instagrabber/MainHelper.java | 15 ++++++++++----- .../instagrabber/activities/ProfileViewer.java | 10 ++++++---- .../instagrabber/activities/SavedViewer.java | 4 ++++ .../awais/instagrabber/asyncs/PostFetcher.java | 1 + app/src/main/res/values/strings.xml | 1 + 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/awais/instagrabber/MainHelper.java b/app/src/main/java/awais/instagrabber/MainHelper.java index 65c7084e..6a4468e5 100755 --- a/app/src/main/java/awais/instagrabber/MainHelper.java +++ b/app/src/main/java/awais/instagrabber/MainHelper.java @@ -1100,8 +1100,15 @@ public final class MainHelper implements SwipeRefreshLayout.OnRefreshListener { } private void toggleSelection(final PostModel postModel) { - if (postModel != null && postsAdapter != null) { + if (postModel != null && postsAdapter != null && main.selectedItems.size() >= 100) { + Toast.makeText(main, R.string.downloader_too_many, Toast.LENGTH_SHORT); + } + else if (postModel != null && postsAdapter != null) { if (postModel.isSelected()) main.selectedItems.remove(postModel); + else if (main.selectedItems.size() >= 100) { + Toast.makeText(main, R.string.downloader_too_many, Toast.LENGTH_SHORT); + return; + } else main.selectedItems.add(postModel); postModel.setSelected(!postModel.isSelected()); notifyAdapter(postModel); @@ -1217,9 +1224,7 @@ public final class MainHelper implements SwipeRefreshLayout.OnRefreshListener { private final View.OnClickListener profileActionListener = new View.OnClickListener() { @Override public void onClick(final View v) { - final boolean iamme = (isLoggedIn && main.profileModel != null) - ? Utils.getUserIdFromCookie(cookie).equals(main.profileModel.getId()) - : false; + final boolean iamme = (isLoggedIn && main.profileModel != null) && Utils.getUserIdFromCookie(cookie).equals(main.profileModel.getId()); if (!isLoggedIn && Utils.dataBox.getFavorite(main.userQuery) != null && v == main.mainBinding.profileView.btnFollow) { Utils.dataBox.delFavorite(new DataBox.FavoriteModel(main.userQuery, Long.parseLong(Utils.dataBox.getFavorite(main.userQuery).split("/")[1]), @@ -1283,7 +1288,7 @@ public final class MainHelper implements SwipeRefreshLayout.OnRefreshListener { final String urlParameters = "target_user_id="+main.profileModel.getId(); urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); urlConnection.setRequestProperty("Content-Length", "" + - Integer.toString(urlParameters.getBytes().length)); + urlParameters.getBytes().length); urlConnection.setDoOutput(true); DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream()); wr.writeBytes(urlParameters); diff --git a/app/src/main/java/awais/instagrabber/activities/ProfileViewer.java b/app/src/main/java/awais/instagrabber/activities/ProfileViewer.java index dc2cbb11..ecb31040 100755 --- a/app/src/main/java/awais/instagrabber/activities/ProfileViewer.java +++ b/app/src/main/java/awais/instagrabber/activities/ProfileViewer.java @@ -767,6 +767,10 @@ public final class ProfileViewer extends BaseLanguageActivity implements SwipeRe private void toggleSelection(final PostModel postModel) { if (postModel != null && postsAdapter != null) { if (postModel.isSelected()) selectedItems.remove(postModel); + else if (selectedItems.size() >= 100) { + Toast.makeText(ProfileViewer.this, R.string.downloader_too_many, Toast.LENGTH_SHORT); + return; + } else selectedItems.add(postModel); postModel.setSelected(!postModel.isSelected()); notifyAdapter(postModel); @@ -823,9 +827,7 @@ public final class ProfileViewer extends BaseLanguageActivity implements SwipeRe private final View.OnClickListener profileActionListener = new View.OnClickListener() { @Override public void onClick(final View v) { - final boolean iamme = (isLoggedIn && profileModel != null) - ? Utils.getUserIdFromCookie(cookie).equals(profileModel.getId()) - : false; + final boolean iamme = (isLoggedIn && profileModel != null) && Utils.getUserIdFromCookie(cookie).equals(profileModel.getId()); if (!isLoggedIn && Utils.dataBox.getFavorite(userQuery) != null && v == profileBinding.profileView.btnFollow) { Utils.dataBox.delFavorite(new DataBox.FavoriteModel(userQuery, Long.parseLong(Utils.dataBox.getFavorite(userQuery).split("/")[1]), @@ -889,7 +891,7 @@ public final class ProfileViewer extends BaseLanguageActivity implements SwipeRe final String urlParameters = "target_user_id="+profileModel.getId(); urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); urlConnection.setRequestProperty("Content-Length", "" + - Integer.toString(urlParameters.getBytes().length)); + urlParameters.getBytes().length); urlConnection.setDoOutput(true); DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream()); wr.writeBytes(urlParameters); diff --git a/app/src/main/java/awais/instagrabber/activities/SavedViewer.java b/app/src/main/java/awais/instagrabber/activities/SavedViewer.java index fa2ad596..a873f1ff 100755 --- a/app/src/main/java/awais/instagrabber/activities/SavedViewer.java +++ b/app/src/main/java/awais/instagrabber/activities/SavedViewer.java @@ -226,6 +226,10 @@ public final class SavedViewer extends BaseLanguageActivity implements SwipeRefr private void toggleSelection(final PostModel postModel) { if (postModel != null && postsAdapter != null) { if (postModel.isSelected()) selectedItems.remove(postModel); + else if (selectedItems.size() >= 100) { + Toast.makeText(SavedViewer.this, R.string.downloader_too_many, Toast.LENGTH_SHORT); + return; + } else selectedItems.add(postModel); postModel.setSelected(!postModel.isSelected()); notifyAdapter(postModel); diff --git a/app/src/main/java/awais/instagrabber/asyncs/PostFetcher.java b/app/src/main/java/awais/instagrabber/asyncs/PostFetcher.java index 9877a035..91179049 100755 --- a/app/src/main/java/awais/instagrabber/asyncs/PostFetcher.java +++ b/app/src/main/java/awais/instagrabber/asyncs/PostFetcher.java @@ -36,6 +36,7 @@ public final class PostFetcher extends AsyncTask @Override protected ViewerPostModel[] doInBackground(final Void... voids) { ViewerPostModel[] result = null; + Utils.setupCookies(Utils.settingsHelper.getString(Constants.COOKIE)); // <- direct download try { final HttpURLConnection conn = (HttpURLConnection) new URL("https://www.instagram.com/p/" + shortCode + "/?__a=1").openConnection(); conn.setUseCaches(false); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b3459430..0d97d45f 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -182,6 +182,7 @@ Unknown error occurred!!! Error creating folder! Error downloading file + You can only download 100 posts at a time. Don\'t be too greedy! Copy username Copy comment Reply to comment