瀏覽代碼

Fixed connecting to Bubble after certificate installation

dev
Denys Podymskyy 4 年之前
父節點
當前提交
6578d07598
共有 3 個檔案被更改,包括 25 行新增23 行删除
  1. +21
    -17
      ui/src/main/java/com/getbubblenow/android/activity/MainActivity.java
  2. +1
    -1
      ui/src/main/java/com/getbubblenow/android/model/Network.java
  3. +3
    -5
      ui/src/main/java/com/getbubblenow/android/repository/DataRepository.java

+ 21
- 17
ui/src/main/java/com/getbubblenow/android/activity/MainActivity.java 查看文件

@@ -2,6 +2,7 @@ package com.getbubblenow.android.activity;

import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;

import android.animation.Animator;
@@ -54,6 +55,7 @@ public class MainActivity extends BaseActivityBubble {

private String config = "";
private byte[] certificateEncode;
private boolean isNeedConnection;

private ValueAnimator progressAnimatorStart;
private ValueAnimator progressAnimatorProgress;
@@ -153,6 +155,7 @@ public class MainActivity extends BaseActivityBubble {
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certificateEncode);
intent.putExtra(KeyChain.EXTRA_NAME, CERTIFICATE_NAME);
closeLoadingDialog();
isNeedConnection = false;
startActivityForResult(intent, REQUEST_CODE);
}
break;
@@ -283,9 +286,9 @@ public class MainActivity extends BaseActivityBubble {
}

private void connect() {
if(mainViewModel.isHaveCertificate(this)) {
if (mainViewModel.isHaveCertificate(this)) {
mainViewModel.isHaveTunnel(this).observe(this, booleanStatusResource -> {
if(booleanStatusResource.data!=null) {
if (booleanStatusResource.data != null) {
if (booleanStatusResource.data) {
final boolean state = mainViewModel.isVPNConnected(this, connectionStateFlag);
connectionStateFlag = state;
@@ -298,12 +301,11 @@ public class MainActivity extends BaseActivityBubble {
}
}
});

}
else {
} else {
final Intent intent = KeyChain.createInstallIntent();
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certificateEncode);
intent.putExtra(KeyChain.EXTRA_NAME, CERTIFICATE_NAME);
isNeedConnection = true;
startActivityForResult(intent, REQUEST_CODE);
}
}
@@ -314,7 +316,7 @@ public class MainActivity extends BaseActivityBubble {
.createTunnel(this, UserStore.getInstance(this).getConfig())
.observe(this, objectStatusResource -> {
closeLoadingDialog();
switch (objectStatusResource.status){
switch (objectStatusResource.status) {
case SUCCESS:
closeLoadingDialog();
logout.setEnabled(true);
@@ -327,9 +329,9 @@ public class MainActivity extends BaseActivityBubble {
break;
case ERROR:
closeLoadingDialog();
if(NO_INTERNET_CONNECTION.equals(objectStatusResource.message)) {
if (NO_INTERNET_CONNECTION.equals(objectStatusResource.message)) {
showNetworkNotAvailableMessage();
} else if(LOGIN_FAILED.equals(objectStatusResource.message)) {
} else if (LOGIN_FAILED.equals(objectStatusResource.message)) {
Toast.makeText(this, LOGIN_FAILED, Toast.LENGTH_LONG).show();
} else {
showErrorDialog(objectStatusResource.message);
@@ -350,15 +352,17 @@ public class MainActivity extends BaseActivityBubble {
connectionStateFlag = false;
setConnectionStateUI(false);
}
}
else if (requestCode == REQUEST_CODE) {
if(resultCode == RESULT_OK) {
createTunnel();
} else {
logout.setEnabled(true);
connectButton.setEnabled(true);
Toast.makeText(this, getString(R.string.cerificate_install), Toast.LENGTH_LONG).show();
}
} else if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
createTunnel();
if (isNeedConnection) {
connect();
}
} else {
logout.setEnabled(true);
connectButton.setEnabled(true);
Toast.makeText(this, getString(R.string.cerificate_install), Toast.LENGTH_LONG).show();
}
}
}



+ 1
- 1
ui/src/main/java/com/getbubblenow/android/model/Network.java 查看文件

@@ -226,7 +226,7 @@ public class Network {
this.shortId = shortId;
}

public boolean isRunning(){
public boolean isRunning() {
return state.equals("running");
}



+ 3
- 5
ui/src/main/java/com/getbubblenow/android/repository/DataRepository.java 查看文件

@@ -798,11 +798,9 @@ public final class DataRepository {
}
}
}
connectWithPermission(checked, context).observe((LifecycleOwner) context, new Observer<Boolean>() {
@Override public void onChanged(final Boolean aBoolean) {
liveData.postValue(aBoolean);
}
});
connectWithPermission(checked, context).observe((LifecycleOwner) context,
aBoolean -> liveData.postValue(aBoolean)
);
});
}
return liveData;


Loading…
取消
儲存