Parcourir la source

Added headers on API, X_APPLICATION_BUILD_NUMBER = appversion & X_PLATFORM_BUILD_NUMBER = osversion and currently sending only 2 params email and password on login API

Khubaib il y a 5 mois
Parent
commit
e738310196

+ 1 - 1
.idea/deploymentTargetSelector.xml

@@ -4,7 +4,7 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2024-09-16T12:40:42.801642745Z">
+        <DropdownSelection timestamp="2024-09-27T11:18:35.350023906Z">
           <Target type="DEFAULT_BOOT">
             <handle>
               <DeviceId pluginId="PhysicalDevice" identifier="serial=1C051FDF60048Z" />

BIN
app/release/fvpn_release_v_3.3.0.apk


+ 5 - 4
app/src/main/java/com/vpn/fastestvpnservice/retrofit/Api.kt

@@ -13,9 +13,7 @@ interface Api {
     @FormUrlEncoded
     @POST("authenticate")
     fun login(
-        @Field("email") email: String?, @Field("password") password: String?,
-        @Field("platform") platform: String?, @Field("version") version: String?,
-        @Field("app_version") app_version: String?
+        @Field("email") email: String?, @Field("password") password: String?
     ): Call<Any?>
 
     @FormUrlEncoded
@@ -97,4 +95,7 @@ interface Api {
         @Field("protocol") protocol: String?
     ): Call<Any>
 
-}
+}
+
+//        @Field("platform") platform: String?, @Field("version") version: String?,
+//        @Field("app_version") app_version: String?

+ 23 - 3
app/src/main/java/com/vpn/fastestvpnservice/retrofit/WebServiceFactory.java

@@ -1,10 +1,13 @@
 package com.vpn.fastestvpnservice.retrofit;
 
+import android.content.pm.PackageInfo;
+
 import com.stealthcopter.networktools.Ping;
 import de.blinkt.openvpn.core.App;
 import com.vpn.fastestvpnservice.constants.AppConstant;
 import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper;
 import com.vpn.fastestvpnservice.retrofit.entities.GsonFactory;
+import com.vpn.fastestvpnservice.utils.StaticMethods;
 
 import java.io.IOException;
 import java.util.concurrent.TimeUnit;
@@ -25,6 +28,8 @@ public class WebServiceFactory {
     private static final String X_PLATFORM = "X-PLATFORM";
     private static final String X_PLATFORM_TOKEN = "X-PLATFORM-TOKEN";
     private static final String X_LOCALE = "Content-Language";
+    private static final String X_APPLICATION_BUILD_NUMBER = "X-Application-Build-Number";
+    private static final String X_PLATFORM_BUILD_NUMBER = "X-PLATFORM-Build-Number";
     private static final String PLATFORM = "platform";
     private static final String VERSION = "version";
 
@@ -38,9 +43,22 @@ public class WebServiceFactory {
         httpClient.connectTimeout(120, TimeUnit.SECONDS);
         httpClient.readTimeout(120, TimeUnit.SECONDS);
 
+        boolean isTV = StaticMethods.isTV(App.getContext().getApplicationContext());
+        String platform = "";
+        if (isTV) { platform = "TV"; } else { platform = "android"; }
+        String finalPlatform = platform;
+
+        String versionName = "";
+        try {
+            PackageInfo pInfo = App.getContext().getApplicationContext().getPackageManager().getPackageInfo(App.getContext().getApplicationContext().getPackageName(), 0);
+            versionName = pInfo.versionName;
+        } catch (Exception ex) {}
+
+        String finalVersionName = versionName;
+        String osVersion = android.os.Build.VERSION.RELEASE;
+
         if (instance == null) {
             HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
-            // TODO uncomment_this_JC
 //            if (BuildConfig.DEBUG) {
 //                logging.setLevel(HttpLoggingInterceptor.Level.BODY);
 //            }
@@ -53,10 +71,12 @@ public class WebServiceFactory {
                     Request.Builder requestBuilder;
                     prefHelper.getXPlatformToken();
                     requestBuilder = original.newBuilder()
-                            .header(X_PLATFORM, "android")
+                            .header(X_PLATFORM, finalPlatform)
                             .header(KEY_HEADER_AUTHORIZATION, (prefHelper.getUser() != null) ? "Bearer " + prefHelper.getUser().getToken() : "")
                             .header(X_PLATFORM_TOKEN, prefHelper.getXPlatformToken())
-                            .header(X_LOCALE, prefHelper.getLanguage());
+                            .header(X_LOCALE, prefHelper.getLanguage())
+                            .header(X_APPLICATION_BUILD_NUMBER, finalVersionName)
+                            .header(X_PLATFORM_BUILD_NUMBER, osVersion);
 
                     return chain.proceed(requestBuilder.build());
                 }

+ 7 - 2
app/src/main/java/com/vpn/fastestvpnservice/screens/LoginScreen.kt

@@ -583,6 +583,11 @@ fun ColumnScope.SignInButton(
                 }
             }
 
+            var versionName: String = ""
+            try {
+                val pInfo = context.packageManager.getPackageInfo(context.packageName, 0)
+                versionName = pInfo.versionName
+            } catch (ex: Exception) { }
 
 //            showLoader = true
             if (loginViewModel.liveDataLoginStatus.value == false) {
@@ -599,8 +604,8 @@ fun ColumnScope.SignInButton(
                             email,
                             password,
                             "android",
-                            "11",
-                            "3.2.4"
+                            android.os.Build.VERSION.RELEASE,
+                            versionName
                         )
                     }
                 }

+ 11 - 1
app/src/main/java/com/vpn/fastestvpnservice/screens/SignUpScreen.kt

@@ -89,6 +89,7 @@ import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
 import com.vpn.fastestvpnservice.sealedClass.Screen
 import com.vpn.fastestvpnservice.ui.theme.customTypography
 import com.vpn.fastestvpnservice.ui.theme.outfitFontFamily
+import com.vpn.fastestvpnservice.utils.StaticMethods
 import com.vpn.fastestvpnservice.viewmodels.LoginViewModel
 import com.vpn.fastestvpnservice.viewmodels.SearchListViewModel
 import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel
@@ -727,6 +728,15 @@ fun ColumnScope.SignUpButton(
             textAlign = TextAlign.Center
         )
 
+        var versionName: String = ""
+        try {
+            val pInfo = context.packageManager.getPackageInfo(context.packageName, 0)
+            versionName = pInfo.versionName
+        } catch (ex: Exception) { }
+
+        val isTV = StaticMethods.isTV(context)
+        val platform = if (isTV) "TV" else "android"
+
         val signUpData = signUpViewModel.liveDataSignUp.observeAsState().value
         signUpData?.let { response ->
             signUpViewModel.setSignUpStatus(false)
@@ -734,7 +744,7 @@ fun ColumnScope.SignUpButton(
                 signUpViewModel.setSignUpStatus(true)
 
                 loginViewModel.loginRequest(
-                    email, password, "android", "11", "3.2.4"
+                    email, password, platform, android.os.Build.VERSION.RELEASE, versionName
                 )
             } else {
                response.message?.let {

+ 3 - 0
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/HomeScreen.kt

@@ -4,6 +4,7 @@ import android.app.Activity
 import android.content.Context
 import android.content.Intent
 import android.content.res.Configuration
+import android.os.Build
 import android.os.Handler
 import android.util.Log
 import androidx.activity.ComponentActivity
@@ -84,11 +85,13 @@ import androidx.compose.ui.unit.sp
 import androidx.compose.ui.window.DialogProperties
 import androidx.constraintlayout.compose.ConstraintLayout
 import androidx.constraintlayout.compose.Dimension
+import androidx.core.os.BuildCompat
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.LifecycleEventObserver
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.viewmodel.compose.viewModel
 import androidx.navigation.NavHostController
+import com.google.firebase.BuildConfig
 import com.vpn.fastestvpnservice.MainActivity
 import com.vpn.fastestvpnservice.R
 import com.vpn.fastestvpnservice.beans.Protocol

+ 9 - 2
app/src/main/java/com/vpn/fastestvpnservice/screensTV/LoginScreenTV.kt

@@ -61,6 +61,7 @@ import androidx.tv.material3.Button
 import androidx.tv.material3.ButtonDefaults
 import androidx.tv.material3.Surface
 import androidx.tv.material3.SurfaceDefaults
+import com.chad.library.BuildConfig
 import com.vpn.fastestvpnservice.R
 import com.vpn.fastestvpnservice.beans.Server
 import com.vpn.fastestvpnservice.beans.filterList
@@ -355,6 +356,12 @@ fun ColumnScope.LoginButtonTV(
                 }
             }
 
+            var versionName: String = ""
+            try {
+                val pInfo = context.packageManager.getPackageInfo(context.packageName, 0)
+                versionName = pInfo.versionName
+            } catch (ex: Exception) { }
+
             if (status == false) {
                 if (customValidation.isValidText(email, "Email") &&
                     customValidation.isValidText(password, "Password") &&
@@ -366,8 +373,8 @@ fun ColumnScope.LoginButtonTV(
                             email,
                             password,
                             "TV",
-                            "14",
-                            "3.2.9"
+                            android.os.Build.VERSION.RELEASE,
+                            versionName
                         )
                     }
                 }

+ 1 - 1
app/src/main/java/com/vpn/fastestvpnservice/viewmodels/LoginViewModel.kt

@@ -37,7 +37,7 @@ class LoginViewModel: ViewModel() {
         app_version: String
     ) {
         WebServiceFactory.getInstance().login(
-            email, password, platform, version, app_version).enqueue(
+            email, password).enqueue(
             RetrofitNetworkHandling<Any?>(object :
                 RetrofitNetworkHandling.ResponseCallback<Any?> {
                 override fun onSuccess(call: Call<Any?>?, response: Any?) {