From a030e6e2802bd2cf45e4d9fa7bc2826a759e250c Mon Sep 17 00:00:00 2001 From: caneleex Date: Sat, 24 Jul 2021 16:57:42 +0200 Subject: [PATCH 1/3] fix requests not sending sometimes --- app/src/main/java/pl/jakubweg/requests/Requester.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/pl/jakubweg/requests/Requester.java b/app/src/main/java/pl/jakubweg/requests/Requester.java index 10955180..b3ae0cd1 100644 --- a/app/src/main/java/pl/jakubweg/requests/Requester.java +++ b/app/src/main/java/pl/jakubweg/requests/Requester.java @@ -184,6 +184,7 @@ public class Requester { String url = SPONSORBLOCK_API_URL + route.compile(params).getCompiledRoute(); HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setRequestMethod(route.getMethod().name()); + connection.getInputStream().close(); // this is required so it properly establishes the connection when not reading the InputStream in any of the routes return connection; } From 518572967b598d53b5b80b630c7e6c8f1bf0a1c7 Mon Sep 17 00:00:00 2001 From: caneleex Date: Sat, 24 Jul 2021 18:53:59 +0200 Subject: [PATCH 2/3] add proper response handling to setUsername --- .../java/pl/jakubweg/SponsorBlockUtils.java | 4 +++- .../java/pl/jakubweg/requests/Requester.java | 15 ++++++++++----- app/src/main/res/values/strings.xml | 19 +++++++++++-------- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/pl/jakubweg/SponsorBlockUtils.java b/app/src/main/java/pl/jakubweg/SponsorBlockUtils.java index 127a07b1..0695dcd1 100644 --- a/app/src/main/java/pl/jakubweg/SponsorBlockUtils.java +++ b/app/src/main/java/pl/jakubweg/SponsorBlockUtils.java @@ -190,6 +190,7 @@ public abstract class SponsorBlockUtils { }; private static final Runnable toastRunnable = () -> { Context context = appContext.get(); + Log.d("cock", String.valueOf(context)); if (context != null && messageToToast != null) Toast.makeText(context, messageToToast, Toast.LENGTH_LONG).show(); }; @@ -452,7 +453,8 @@ public abstract class SponsorBlockUtils { preference.setSummary(str("stats_username_change")); preference.setText(userName); preference.setOnPreferenceChangeListener((preference1, newUsername) -> { - Requester.setUsername((String) newUsername); + appContext = new WeakReference<>(context.getApplicationContext()); + Requester.setUsername((String) newUsername, toastRunnable); return false; }); } diff --git a/app/src/main/java/pl/jakubweg/requests/Requester.java b/app/src/main/java/pl/jakubweg/requests/Requester.java index b3ae0cd1..acef509c 100644 --- a/app/src/main/java/pl/jakubweg/requests/Requester.java +++ b/app/src/main/java/pl/jakubweg/requests/Requester.java @@ -134,9 +134,6 @@ public class Requester { case 403: SponsorBlockUtils.messageToToast = str("vote_failed_forbidden"); break; - case 429: - SponsorBlockUtils.messageToToast = str("vote_failed_rate_limit"); - break; default: SponsorBlockUtils.messageToToast = str("vote_failed_unknown_error", responseCode, connection.getResponseMessage()); break; @@ -170,9 +167,18 @@ public class Requester { }).start(); } - public static void setUsername(String username) { + public static void setUsername(String username, Runnable toastRunnable) { try { HttpURLConnection connection = getConnectionFromRoute(Route.CHANGE_USERNAME, SponsorBlockSettings.uuid, username); + int responseCode = connection.getResponseCode(); + + if (responseCode == 200) { + SponsorBlockUtils.messageToToast = str("stats_username_changed"); + } + else { + SponsorBlockUtils.messageToToast = str("stats_username_change_unknown_error", responseCode, connection.getResponseMessage()); + } + new Handler(Looper.getMainLooper()).post(toastRunnable); connection.disconnect(); } catch (Exception ex) { @@ -184,7 +190,6 @@ public class Requester { String url = SPONSORBLOCK_API_URL + route.compile(params).getCompiledRoute(); HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setRequestMethod(route.getMethod().name()); - connection.getInputStream().close(); // this is required so it properly establishes the connection when not reading the InputStream in any of the routes return connection; } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e561d0ad..2e68d5ec 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -182,18 +182,22 @@ Skip automatically Show a skip button Don\'t do anything + Stats Loading.. SponsorBlock is disabled - Your username: <b>%s</b> + Your username: <b>%s</b> Click to change your username - Submissions: <b>%s</b> - You\'ve saved people from <b>%s</b> segments. - That\'s <b>%s</b> of their lives. Click to see the leaderboard - You\'ve skipped <b>%s</b> segments. - That\'s <b>%s</b>. + Unable to change username: Status: %d %s + Username changed successfully + Submissions: <b>%s</b> + You\'ve saved people from <b>%s</b> segments. + That\'s <b>%s</b> of their lives. Click to see the leaderboard + You\'ve skipped <b>%s</b> segments. + That\'s <b>%s</b>. + About - This app uses the API from Sponsor Block + This app uses the API from SponsorBlock Tap to learn more, and see downloads for other platforms at: sponsor.ajay.app Integration made by JakubWeg Tap to skip @@ -206,7 +210,6 @@ Submitting segment… Unable to vote for segment: Status: %d %s - Can\'t vote for segment.\nRate Limited (Too many from the same user or IP) Can\'t vote for segment.\nA moderator has decided that this segment is correct Voted successfully Voting for segment… From 45f67d4f29843239c42ed09cc8ff9f4b166424ae Mon Sep 17 00:00:00 2001 From: caneleex Date: Sat, 24 Jul 2021 18:55:45 +0200 Subject: [PATCH 3/3] ah yes --- app/src/main/java/pl/jakubweg/SponsorBlockUtils.java | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/pl/jakubweg/SponsorBlockUtils.java b/app/src/main/java/pl/jakubweg/SponsorBlockUtils.java index 0695dcd1..a197c1d1 100644 --- a/app/src/main/java/pl/jakubweg/SponsorBlockUtils.java +++ b/app/src/main/java/pl/jakubweg/SponsorBlockUtils.java @@ -190,7 +190,6 @@ public abstract class SponsorBlockUtils { }; private static final Runnable toastRunnable = () -> { Context context = appContext.get(); - Log.d("cock", String.valueOf(context)); if (context != null && messageToToast != null) Toast.makeText(context, messageToToast, Toast.LENGTH_LONG).show(); };