From 510e37a0476fcd4ee25ef109a04edf4d8316e028 Mon Sep 17 00:00:00 2001 From: dev-rminds Date: Fri, 22 Aug 2025 19:26:03 +0300 Subject: [PATCH] fix connection check for custom api urls and allow connection to https for debug build --- .../me/android/data/net/MeServiceFactory.java | 14 +-------- .../android/data/net/common/CommonService.kt | 9 ------ .../repository/common/CommonRepository.kt | 8 +---- .../common/datasource/CommonDataSource.kt | 2 -- .../datasource/CommonRemoteDataSource.kt | 13 ++++----- presentation/src/dev/AndroidManifest.xml | 3 ++ .../check_api_status/CheckApiPresenter.kt | 29 +++++++------------ .../api_config/dialogs/TestApiErrorDialog.kt | 22 +++++++------- .../dialogs/TestApiSuccessDialog.kt | 22 +++++++------- .../account/pair_device/PairDeviceActivity.kt | 6 ---- 10 files changed, 43 insertions(+), 85 deletions(-) create mode 100644 presentation/src/dev/AndroidManifest.xml diff --git a/data/src/main/java/io/forus/me/android/data/net/MeServiceFactory.java b/data/src/main/java/io/forus/me/android/data/net/MeServiceFactory.java index d7710712..c5208714 100755 --- a/data/src/main/java/io/forus/me/android/data/net/MeServiceFactory.java +++ b/data/src/main/java/io/forus/me/android/data/net/MeServiceFactory.java @@ -51,7 +51,6 @@ public T createRetrofitService(final Class clazz, final String endPoint) } public T createRetrofitService(final Class clazz, final String endPoint, final String customAccessToken) throws Exception{ - okhttp3.OkHttpClient.Builder httpClient = new okhttp3.OkHttpClient.Builder(); MeHttpLoggingInterceptor logging = new MeHttpLoggingInterceptor(HttpLoggingInterceptor.Logger.DEFAULT); @@ -59,14 +58,8 @@ public T createRetrofitService(final Class clazz, final String endPoint, logging.setLogAccessToken(false); httpClient.addInterceptor(logging); httpClient.addInterceptor(chain -> { - Request original = chain.request(); - - HttpUrl url = original.url() - .newBuilder() - .build(); - - + HttpUrl url = original.url().newBuilder().build(); String userAgent = getUserAgent(); Log.d("forus","userAgent="+userAgent); @@ -134,7 +127,6 @@ private String getUserAgent(){ e.printStackTrace(); } - return String.format(Locale.US, "%s/%s (Android %s; %s; %s %s; %s)", appName, @@ -145,8 +137,4 @@ private String getUserAgent(){ Build.DEVICE, Locale.getDefault().getLanguage()); } - - - - } diff --git a/data/src/main/java/io/forus/me/android/data/net/common/CommonService.kt b/data/src/main/java/io/forus/me/android/data/net/common/CommonService.kt index 0b22658f..312f2948 100644 --- a/data/src/main/java/io/forus/me/android/data/net/common/CommonService.kt +++ b/data/src/main/java/io/forus/me/android/data/net/common/CommonService.kt @@ -1,8 +1,5 @@ package io.forus.me.android.data.net.common -import io.forus.me.android.data.entity.common.Success -import io.forus.me.android.data.entity.records.request.* -import io.forus.me.android.data.entity.records.response.* import io.reactivex.Observable import okhttp3.ResponseBody import retrofit2.http.* @@ -11,12 +8,6 @@ import retrofit2.http.* * Created by maestrovs on 03.05.2020 */ interface CommonService { - - - @GET("api/v1/status") fun status() : Observable - - - } \ No newline at end of file diff --git a/data/src/main/java/io/forus/me/android/data/repository/common/CommonRepository.kt b/data/src/main/java/io/forus/me/android/data/repository/common/CommonRepository.kt index d8fb42f5..3106d4f4 100644 --- a/data/src/main/java/io/forus/me/android/data/repository/common/CommonRepository.kt +++ b/data/src/main/java/io/forus/me/android/data/repository/common/CommonRepository.kt @@ -4,14 +4,8 @@ import io.forus.me.android.data.repository.common.datasource.CommonDataSource import io.forus.me.android.domain.repository.common.CommonRepository import io.reactivex.Observable - class CommonRepository(private val commonDataSource: CommonDataSource) : CommonRepository { - - override fun status(): Observable { - return commonDataSource.status() - .map { - it - } + return commonDataSource.status().map { it } } } \ No newline at end of file diff --git a/data/src/main/java/io/forus/me/android/data/repository/common/datasource/CommonDataSource.kt b/data/src/main/java/io/forus/me/android/data/repository/common/datasource/CommonDataSource.kt index 8f18c5c9..3acb45a2 100644 --- a/data/src/main/java/io/forus/me/android/data/repository/common/datasource/CommonDataSource.kt +++ b/data/src/main/java/io/forus/me/android/data/repository/common/datasource/CommonDataSource.kt @@ -1,9 +1,7 @@ package io.forus.me.android.data.repository.common.datasource -import com.gigawatt.android.data.net.sign.models.request.SignUp import io.reactivex.Observable interface CommonDataSource { - fun status(): Observable } \ No newline at end of file diff --git a/data/src/main/java/io/forus/me/android/data/repository/common/datasource/CommonRemoteDataSource.kt b/data/src/main/java/io/forus/me/android/data/repository/common/datasource/CommonRemoteDataSource.kt index a10dd40f..6cd3c278 100644 --- a/data/src/main/java/io/forus/me/android/data/repository/common/datasource/CommonRemoteDataSource.kt +++ b/data/src/main/java/io/forus/me/android/data/repository/common/datasource/CommonRemoteDataSource.kt @@ -4,14 +4,13 @@ import io.forus.me.android.data.net.common.CommonService import io.forus.me.android.data.repository.datasource.RemoteDataSource import io.reactivex.Observable -class CommonRemoteDataSource(f: () -> CommonService) : CommonDataSource, RemoteDataSource(f) { +class CommonRemoteDataSource(f: () -> CommonService) : CommonDataSource, + RemoteDataSource(f) { override fun status(): Observable { - return service.status() - .map { - val result = it.string(); - result == "1"||result.isEmpty() - - } + return service.status().map { + val json = it.string() + json.contains("\"success\":true") + } } } diff --git a/presentation/src/dev/AndroidManifest.xml b/presentation/src/dev/AndroidManifest.xml new file mode 100644 index 00000000..5230cc75 --- /dev/null +++ b/presentation/src/dev/AndroidManifest.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/presentation/src/main/java/io/forus/me/android/presentation/api_config/check_api_status/CheckApiPresenter.kt b/presentation/src/main/java/io/forus/me/android/presentation/api_config/check_api_status/CheckApiPresenter.kt index acd75423..1cd42207 100644 --- a/presentation/src/main/java/io/forus/me/android/presentation/api_config/check_api_status/CheckApiPresenter.kt +++ b/presentation/src/main/java/io/forus/me/android/presentation/api_config/check_api_status/CheckApiPresenter.kt @@ -5,35 +5,26 @@ import io.forus.me.android.data.net.MeServiceFactory import io.forus.me.android.data.net.common.CommonService import io.forus.me.android.data.repository.common.CommonRepository import io.forus.me.android.data.repository.common.datasource.CommonRemoteDataSource -import io.forus.me.android.presentation.api_config.ApiConfig -import io.forus.me.android.presentation.internal.Injection import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers -import javax.inject.Inject class CheckApiPresenter(val context: Context) { - - fun checkApi(apiString: String, success: (Boolean) -> Unit, error: (Throwable) -> Unit) { - try { - val commonRemoteDataSource = CommonRemoteDataSource { MeServiceFactory.getInstance().createRetrofitService(CommonService::class.java, apiString) } - val commonRepository = CommonRepository(commonRemoteDataSource) commonRepository.status() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .map { - success(it) - it - } - .onErrorReturn { - error(it) - false - }.subscribe() - + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .map { result -> + success(result) + result + } + .onErrorReturn { throwable -> + error(throwable) + false + }.subscribe() } catch (e: Exception) { error(e) } diff --git a/presentation/src/main/java/io/forus/me/android/presentation/api_config/dialogs/TestApiErrorDialog.kt b/presentation/src/main/java/io/forus/me/android/presentation/api_config/dialogs/TestApiErrorDialog.kt index 2996f93c..f1a18fd9 100644 --- a/presentation/src/main/java/io/forus/me/android/presentation/api_config/dialogs/TestApiErrorDialog.kt +++ b/presentation/src/main/java/io/forus/me/android/presentation/api_config/dialogs/TestApiErrorDialog.kt @@ -2,20 +2,20 @@ package io.forus.me.android.presentation.api_config.dialogs import android.content.Context import com.afollestad.materialdialogs.MaterialDialog -import io.forus.me.android.presentation.R - - -class TestApiErrorDialog(private val context: Context, private val message: String, - private val cancelListener: () -> Unit){ +class TestApiErrorDialog( + context: Context, + message: String, + private val cancelListener: () -> Unit +) { private val dialog: MaterialDialog = MaterialDialog.Builder(context) - .title("Error test API server") - .content(message) - .negativeText("Cancel") - .cancelListener { cancelListener.invoke() } - .build() + .title("Error test API server") + .content(message) + .negativeText("Cancel") + .cancelListener { cancelListener.invoke() } + .build() - fun show(){ + fun show() { dialog.show() } } \ No newline at end of file diff --git a/presentation/src/main/java/io/forus/me/android/presentation/api_config/dialogs/TestApiSuccessDialog.kt b/presentation/src/main/java/io/forus/me/android/presentation/api_config/dialogs/TestApiSuccessDialog.kt index 29e79fba..e10cb163 100644 --- a/presentation/src/main/java/io/forus/me/android/presentation/api_config/dialogs/TestApiSuccessDialog.kt +++ b/presentation/src/main/java/io/forus/me/android/presentation/api_config/dialogs/TestApiSuccessDialog.kt @@ -2,20 +2,20 @@ package io.forus.me.android.presentation.api_config.dialogs import android.content.Context import com.afollestad.materialdialogs.MaterialDialog -import io.forus.me.android.presentation.R - - -class TestApiSuccessDialog(private val context: Context, private val message: String, - private val positiveCallback: () -> Unit){ +class TestApiSuccessDialog( + context: Context, + message: String, + private val positiveCallback: () -> Unit +) { private val dialog: MaterialDialog = MaterialDialog.Builder(context) - .title("Success test API server") - .content(message) - .positiveText("OK") - .onPositive { dialog, which -> positiveCallback.invoke() } - .build() + .title("Success test API server") + .content(message) + .positiveText("OK") + .onPositive { dialog, which -> positiveCallback.invoke() } + .build() - fun show(){ + fun show() { dialog.show() } } \ No newline at end of file diff --git a/presentation/src/main/java/io/forus/me/android/presentation/view/screens/account/pair_device/PairDeviceActivity.kt b/presentation/src/main/java/io/forus/me/android/presentation/view/screens/account/pair_device/PairDeviceActivity.kt index 6ee76cb1..0e6d1d3a 100644 --- a/presentation/src/main/java/io/forus/me/android/presentation/view/screens/account/pair_device/PairDeviceActivity.kt +++ b/presentation/src/main/java/io/forus/me/android/presentation/view/screens/account/pair_device/PairDeviceActivity.kt @@ -5,19 +5,13 @@ import android.content.Context import android.content.Intent import android.os.Bundle import io.forus.me.android.presentation.R - -import io.forus.me.android.presentation.view.activity.BaseActivity import io.forus.me.android.presentation.view.activity.CommonActivity /** * Activity Pair Device. */ class PairDeviceActivity : CommonActivity() { - - companion object { - - fun getCallingIntent(context: Context): Intent { return Intent(context, PairDeviceActivity::class.java) }