From 68f735272dda3d1e342c186a89474b8acbb4aa53 Mon Sep 17 00:00:00 2001 From: Mushegh98 Date: Mon, 15 Jun 2020 15:57:07 +0400 Subject: [PATCH] Network toast message move in BaseActivityBubble. --- .../android/activity/BaseActivityBubble.java | 27 ++++++++++ .../android/activity/LoginActivity.java | 9 +++- .../android/repository/DataRepository.java | 50 ++++++++----------- 3 files changed, 55 insertions(+), 31 deletions(-) diff --git a/ui/src/main/java/com/wireguard/android/activity/BaseActivityBubble.java b/ui/src/main/java/com/wireguard/android/activity/BaseActivityBubble.java index 04f1b80..8c30777 100644 --- a/ui/src/main/java/com/wireguard/android/activity/BaseActivityBubble.java +++ b/ui/src/main/java/com/wireguard/android/activity/BaseActivityBubble.java @@ -1,8 +1,20 @@ package com.wireguard.android.activity; +import android.content.Context; import android.os.Bundle; import android.os.Handler; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Toast; + +import com.wireguard.android.R; import com.wireguard.android.fragment.LoadingDialogFragment; + +import java.net.ConnectException; +import java.net.UnknownHostException; + import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.lifecycle.Lifecycle; @@ -58,4 +70,19 @@ public class BaseActivityBubble extends AppCompatActivity { loadingDialog.dismissAllowingStateLoss(); } } + + protected void showNetworkNotAvailableMessage(Context context) { + if (context instanceof LoginActivity) { + ((LoginActivity) context).runOnUiThread(new Runnable() { + @Override public void run() { + final LayoutInflater inflater = ((LoginActivity) context).getLayoutInflater(); + final View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) ((LoginActivity) context).findViewById(R.id.custom_toast_container)); + final Toast toast = new Toast(context); + toast.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 60); + toast.setView(layout); + toast.show(); + } + }); + } + } } diff --git a/ui/src/main/java/com/wireguard/android/activity/LoginActivity.java b/ui/src/main/java/com/wireguard/android/activity/LoginActivity.java index e7607c6..5561864 100644 --- a/ui/src/main/java/com/wireguard/android/activity/LoginActivity.java +++ b/ui/src/main/java/com/wireguard/android/activity/LoginActivity.java @@ -177,7 +177,11 @@ public class LoginActivity extends BaseActivityBubble { closeLoadingDialog(); if (encodedCertificate.length == 0) { Toast.makeText(LoginActivity.this, getString(R.string.failed_bubble), Toast.LENGTH_SHORT).show(); - } else { + } + else if(encodedCertificate.length == 1){ + showNetworkNotAvailableMessage(LoginActivity.this); + } + else { final Intent intent = KeyChain.createInstallIntent(); intent.putExtra(KeyChain.EXTRA_CERTIFICATE, encodedCertificate); intent.putExtra(KeyChain.EXTRA_NAME, CERTIFICATE_NAME); @@ -191,6 +195,9 @@ public class LoginActivity extends BaseActivityBubble { break; case ERROR: closeLoadingDialog(); + if("no network".equals(userStatusResource.message)){ + showNetworkNotAvailableMessage(LoginActivity.this); + } Toast.makeText(LoginActivity.this, getString(R.string.login_failed), Toast.LENGTH_SHORT).show(); Log.d("TAG", "Error"); break; diff --git a/ui/src/main/java/com/wireguard/android/repository/DataRepository.java b/ui/src/main/java/com/wireguard/android/repository/DataRepository.java index 644b493..b145abc 100644 --- a/ui/src/main/java/com/wireguard/android/repository/DataRepository.java +++ b/ui/src/main/java/com/wireguard/android/repository/DataRepository.java @@ -120,8 +120,8 @@ public class DataRepository { getAllDevices(context); } }, throwable -> { - showNetworkNotAvailableMessage(throwable,context); - setMutableLiveData(StatusResource.error(throwable.getMessage())); + setErrorMessage(throwable,this); + // setMutableLiveData(StatusResource.error(throwable.getMessage())); }); compositeDisposable.add(disposableLogin); } @@ -146,8 +146,8 @@ public class DataRepository { addDevice(context); } }, throwable -> { - showNetworkNotAvailableMessage(throwable,context); - setMutableLiveData(StatusResource.error(throwable.getMessage())); + setErrorMessage(throwable,this); + // setMutableLiveData(StatusResource.error(throwable.getMessage())); }); compositeDisposable.add(disposableAllDevices); } @@ -201,8 +201,8 @@ public class DataRepository { UserStore.getInstance(context).setDevice(device.getName(), device.getUuid()); getConfig(context); }, throwable -> { - showNetworkNotAvailableMessage(throwable,context); - setMutableLiveData(StatusResource.error(throwable.getMessage())); + setErrorMessage(throwable,this); + // setMutableLiveData(StatusResource.error(throwable.getMessage())); }); compositeDisposable.add(disposableAddDevice); } else { @@ -240,21 +240,22 @@ public class DataRepository { UserStore.getInstance(context).setDevice(device.getName(), device.getUuid()); getConfig(context); }, throwable -> { - showNetworkNotAvailableMessage(throwable,context); - setMutableLiveData(StatusResource.error(throwable.getMessage())); + setErrorMessage(throwable,this); + // setMutableLiveData(StatusResource.error(throwable.getMessage())); }); compositeDisposable.add(disposableAddDevice); } } } }, throwable -> { - showNetworkNotAvailableMessage(throwable,context); - setMutableLiveData(StatusResource.error(NO_INTERNET_CONNECTION)); + setErrorMessage(throwable,this); + // setMutableLiveData(StatusResource.error(NO_INTERNET_CONNECTION)); }); compositeDisposable.add(disposableAllDevices); } private void getConfig(Context context) { + NetworkBoundStatusResource liveData = this; final String deviceID = UserStore.getInstance(context).getDeviceID(); final String token = UserStore.getInstance(context).getToken(); Request request = new Request.Builder() @@ -263,8 +264,8 @@ public class DataRepository { .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(final okhttp3.Call call, final IOException e) { - showNetworkNotAvailableMessage(e,context); - postMutableLiveData(StatusResource.error(e.getMessage())); + setErrorMessage(e,liveData); + // postMutableLiveData(StatusResource.error(e.getMessage())); } @Override public void onResponse(final okhttp3.Call call, final Response response) throws IOException { @@ -385,8 +386,7 @@ public class DataRepository { .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(final okhttp3.Call call, final IOException e) { - showNetworkNotAvailableMessage(e,context); - liveData.postValue(new byte[]{}); + liveData.postValue(new byte[]{1}); } @Override public void onResponse(final okhttp3.Call call, final Response response) throws IOException { @@ -460,22 +460,6 @@ public class DataRepository { return liveData; } - private void showNetworkNotAvailableMessage(Throwable throwable , Context context){ - if( throwable instanceof UnknownHostException || throwable instanceof ConnectException){ - if(context instanceof LoginActivity) { - ((LoginActivity)context).runOnUiThread(new Runnable() { - @Override public void run() { - final LayoutInflater inflater = ((LoginActivity) context).getLayoutInflater(); - final View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup)((LoginActivity)context).findViewById(R.id.custom_toast_container)); - final Toast toast = new Toast(context); - toast.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 60); - toast.setView(layout); - toast.show(); - } - }); - } - } - } public void setHostName(Context context, String hostname){ UserStore.getInstance(context).setHostname(hostname); @@ -484,4 +468,10 @@ public class DataRepository { public String getHostname(Context context){ return UserStore.getInstance(context).getHostname(); } + + private void setErrorMessage(Throwable throwable , NetworkBoundStatusResource liveData){ + if( throwable instanceof UnknownHostException || throwable instanceof ConnectException){ + liveData.postMutableLiveData(StatusResource.error("no network")); + } + } }