|
@@ -2,6 +2,7 @@ package com.getbubblenow.android.activity; |
|
|
|
|
|
|
|
|
import androidx.annotation.Nullable; |
|
|
import androidx.annotation.Nullable; |
|
|
import androidx.constraintlayout.widget.ConstraintLayout; |
|
|
import androidx.constraintlayout.widget.ConstraintLayout; |
|
|
|
|
|
import androidx.lifecycle.Observer; |
|
|
import androidx.lifecycle.ViewModelProvider; |
|
|
import androidx.lifecycle.ViewModelProvider; |
|
|
|
|
|
|
|
|
import android.animation.Animator; |
|
|
import android.animation.Animator; |
|
@@ -54,6 +55,7 @@ public class MainActivity extends BaseActivityBubble { |
|
|
|
|
|
|
|
|
private String config = ""; |
|
|
private String config = ""; |
|
|
private byte[] certificateEncode; |
|
|
private byte[] certificateEncode; |
|
|
|
|
|
private boolean isNeedConnection; |
|
|
|
|
|
|
|
|
private ValueAnimator progressAnimatorStart; |
|
|
private ValueAnimator progressAnimatorStart; |
|
|
private ValueAnimator progressAnimatorProgress; |
|
|
private ValueAnimator progressAnimatorProgress; |
|
@@ -153,6 +155,7 @@ public class MainActivity extends BaseActivityBubble { |
|
|
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certificateEncode); |
|
|
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certificateEncode); |
|
|
intent.putExtra(KeyChain.EXTRA_NAME, CERTIFICATE_NAME); |
|
|
intent.putExtra(KeyChain.EXTRA_NAME, CERTIFICATE_NAME); |
|
|
closeLoadingDialog(); |
|
|
closeLoadingDialog(); |
|
|
|
|
|
isNeedConnection = false; |
|
|
startActivityForResult(intent, REQUEST_CODE); |
|
|
startActivityForResult(intent, REQUEST_CODE); |
|
|
} |
|
|
} |
|
|
break; |
|
|
break; |
|
@@ -283,9 +286,9 @@ public class MainActivity extends BaseActivityBubble { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void connect() { |
|
|
private void connect() { |
|
|
if(mainViewModel.isHaveCertificate(this)) { |
|
|
|
|
|
|
|
|
if (mainViewModel.isHaveCertificate(this)) { |
|
|
mainViewModel.isHaveTunnel(this).observe(this, booleanStatusResource -> { |
|
|
mainViewModel.isHaveTunnel(this).observe(this, booleanStatusResource -> { |
|
|
if(booleanStatusResource.data!=null) { |
|
|
|
|
|
|
|
|
if (booleanStatusResource.data != null) { |
|
|
if (booleanStatusResource.data) { |
|
|
if (booleanStatusResource.data) { |
|
|
final boolean state = mainViewModel.isVPNConnected(this, connectionStateFlag); |
|
|
final boolean state = mainViewModel.isVPNConnected(this, connectionStateFlag); |
|
|
connectionStateFlag = state; |
|
|
connectionStateFlag = state; |
|
@@ -298,12 +301,11 @@ public class MainActivity extends BaseActivityBubble { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
|
|
|
} else { |
|
|
final Intent intent = KeyChain.createInstallIntent(); |
|
|
final Intent intent = KeyChain.createInstallIntent(); |
|
|
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certificateEncode); |
|
|
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certificateEncode); |
|
|
intent.putExtra(KeyChain.EXTRA_NAME, CERTIFICATE_NAME); |
|
|
intent.putExtra(KeyChain.EXTRA_NAME, CERTIFICATE_NAME); |
|
|
|
|
|
isNeedConnection = true; |
|
|
startActivityForResult(intent, REQUEST_CODE); |
|
|
startActivityForResult(intent, REQUEST_CODE); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@@ -314,7 +316,7 @@ public class MainActivity extends BaseActivityBubble { |
|
|
.createTunnel(this, UserStore.getInstance(this).getConfig()) |
|
|
.createTunnel(this, UserStore.getInstance(this).getConfig()) |
|
|
.observe(this, objectStatusResource -> { |
|
|
.observe(this, objectStatusResource -> { |
|
|
closeLoadingDialog(); |
|
|
closeLoadingDialog(); |
|
|
switch (objectStatusResource.status){ |
|
|
|
|
|
|
|
|
switch (objectStatusResource.status) { |
|
|
case SUCCESS: |
|
|
case SUCCESS: |
|
|
closeLoadingDialog(); |
|
|
closeLoadingDialog(); |
|
|
logout.setEnabled(true); |
|
|
logout.setEnabled(true); |
|
@@ -327,9 +329,9 @@ public class MainActivity extends BaseActivityBubble { |
|
|
break; |
|
|
break; |
|
|
case ERROR: |
|
|
case ERROR: |
|
|
closeLoadingDialog(); |
|
|
closeLoadingDialog(); |
|
|
if(NO_INTERNET_CONNECTION.equals(objectStatusResource.message)) { |
|
|
|
|
|
|
|
|
if (NO_INTERNET_CONNECTION.equals(objectStatusResource.message)) { |
|
|
showNetworkNotAvailableMessage(); |
|
|
showNetworkNotAvailableMessage(); |
|
|
} else if(LOGIN_FAILED.equals(objectStatusResource.message)) { |
|
|
|
|
|
|
|
|
} else if (LOGIN_FAILED.equals(objectStatusResource.message)) { |
|
|
Toast.makeText(this, LOGIN_FAILED, Toast.LENGTH_LONG).show(); |
|
|
Toast.makeText(this, LOGIN_FAILED, Toast.LENGTH_LONG).show(); |
|
|
} else { |
|
|
} else { |
|
|
showErrorDialog(objectStatusResource.message); |
|
|
showErrorDialog(objectStatusResource.message); |
|
@@ -350,15 +352,17 @@ public class MainActivity extends BaseActivityBubble { |
|
|
connectionStateFlag = false; |
|
|
connectionStateFlag = false; |
|
|
setConnectionStateUI(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(); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|