@@ -26,6 +26,7 @@ public class MainActivity extends AppCompatActivity { | |||
public ObservableTunnel pendingTunnel; | |||
private Boolean pendingTunnelUp; | |||
private boolean connectionStateFlag; | |||
private ObservableTunnel tunnel ; | |||
private static final int REQUEST_CODE_VPN_PERMISSION = 23491; | |||
@@ -42,8 +43,28 @@ public class MainActivity extends AppCompatActivity { | |||
} | |||
initUI(); | |||
mainViewModel.buildRepositoryInstance(this,mainViewModel.getUserURL(this)); | |||
connectionStateFlag = mainViewModel.getConnectionState(this); | |||
bubbleStatus.setText(mainViewModel.isBubbleConnected(this)); | |||
tunnel = mainViewModel.getTunnelManager().getLastUsedTunnel(); | |||
if(tunnel == null) { | |||
tunnel = mainViewModel.getTunnel(this, connectionStateFlag); | |||
} | |||
} | |||
@Override protected void onResume() { | |||
super.onResume(); | |||
if(tunnel!=null){ | |||
if(tunnel.getState() == State.DOWN) | |||
{ | |||
connectionStateFlag = false; | |||
bubbleStatus.setText(getString(R.string.not_connected_bubble)); | |||
connectButton.setText(getString(R.string.connect)); | |||
} | |||
else { | |||
connectionStateFlag = true; | |||
bubbleStatus.setText(getString(R.string.connected_bubble)); | |||
connectButton.setText(getString(R.string.disconnect)); | |||
} | |||
} | |||
pendingTunnel = tunnel; | |||
} | |||
private void initUI() { | |||
@@ -65,8 +86,6 @@ public class MainActivity extends AppCompatActivity { | |||
} | |||
private void connect() { | |||
ObservableTunnel tunnel = mainViewModel.getTunnel(this, connectionStateFlag); | |||
pendingTunnel = tunnel; | |||
mainViewModel.getTunnelManager().getTunnelState(pendingTunnel).whenComplete((state, throwable) -> { | |||
if (state == State.DOWN) { | |||
connectionStateFlag = true; | |||
@@ -99,13 +118,15 @@ public class MainActivity extends AppCompatActivity { | |||
private void setTunnelStateWithPermissionsResult(final ObservableTunnel tunnel, final boolean checked) { | |||
tunnel.setStateAsync(Tunnel.State.of(checked)).whenComplete((observableTunnel, throwable) ->{ | |||
if(throwable==null){ | |||
if(observableTunnel.equals(State.DOWN)) { | |||
if(observableTunnel == State.DOWN) { | |||
Toast.makeText(this, getString(R.string.not_connected_bubble), Toast.LENGTH_SHORT).show(); | |||
bubbleStatus.setText(getString(R.string.not_connected_bubble)); | |||
connectButton.setText(getString(R.string.connect)); | |||
} | |||
else { | |||
Toast.makeText(this, getString(R.string.connected_bubble), Toast.LENGTH_SHORT).show(); | |||
bubbleStatus.setText(getString(R.string.connected_bubble)); | |||
connectButton.setText(getString(R.string.disconnect)); | |||
} | |||
} | |||
else { | |||
@@ -122,9 +143,4 @@ public class MainActivity extends AppCompatActivity { | |||
pendingTunnelUp = null; | |||
} | |||
} | |||
@Override protected void onDestroy() { | |||
super.onDestroy(); | |||
mainViewModel.setConnectionState(this,connectionStateFlag,bubbleStatus.getText().toString()); | |||
} | |||
} |
@@ -341,19 +341,6 @@ public class DataRepository { | |||
return tunnel; | |||
} | |||
public boolean getConnectionState(Context context){ | |||
return TunnelStore.getInstance(context).getConnectionState(); | |||
} | |||
public String isBubbleConnected(Context context){ | |||
return TunnelStore.getInstance(context).isBubbleConnected(); | |||
} | |||
public void setConnectionState(final Context context, final boolean state, final String stateConnection){ | |||
TunnelStore.getInstance(context).setConnectionState(state,stateConnection); | |||
} | |||
public void setUserURL(Context context, String url){ | |||
UserStore.getInstance(context).setUserURL(url); | |||
} | |||
@@ -10,10 +10,6 @@ public class TunnelStore { | |||
private static final String TUNNEL_SHARED_PREF = "com.wireguard.android.util.bubbleTunnelSharedPref"; | |||
private static final String TUNNEL_DATA_KEY = "com.wireguard.android.util.bubbleResponse"; | |||
private static final String CONFIG_DATA_KEY = "com.wireguard.android.util.bubbleConfigResponse"; | |||
private static final String CONNECTION_STATE_KEY = "com.wireguard.android.util.connectionStateResponse"; | |||
private static final String CONNECTION_STATE_STRING_KEY = "com.wireguard.android.util.connectionStateStringResponse"; | |||
private static final boolean CONNECTION_STATE_DEFAULT_VALUE = false; | |||
private static final String CONNECTION_STATE_STRING_DEFAULT_VALUE = "Not Connected"; | |||
public static final String TUNNEL_DEFAULT_VALUE = ""; | |||
public static final String CONFIG_DEFAULT_VALUE = ""; | |||
@@ -45,17 +41,4 @@ public class TunnelStore { | |||
public String getConfig(){ | |||
return sharedPreferences.getString(CONFIG_DATA_KEY,CONFIG_DEFAULT_VALUE); | |||
} | |||
public void setConnectionState(final boolean state, final String stateConnection){ | |||
sharedPreferences.edit().putBoolean(CONNECTION_STATE_KEY,state).apply(); | |||
sharedPreferences.edit().putString(CONNECTION_STATE_STRING_KEY,stateConnection).apply(); | |||
} | |||
public boolean getConnectionState(){ | |||
return sharedPreferences.getBoolean(CONNECTION_STATE_KEY,CONNECTION_STATE_DEFAULT_VALUE); | |||
} | |||
public String isBubbleConnected(){ | |||
return sharedPreferences.getString(CONNECTION_STATE_STRING_KEY,CONNECTION_STATE_STRING_DEFAULT_VALUE); | |||
} | |||
} |
@@ -23,18 +23,6 @@ public class MainViewModel extends ViewModel { | |||
return DataRepository.getRepositoryInstance().getTunnelManager(); | |||
} | |||
public boolean getConnectionState(Context context){ | |||
return DataRepository.getRepositoryInstance().getConnectionState(context); | |||
} | |||
public String isBubbleConnected(Context context){ | |||
return DataRepository.getRepositoryInstance().isBubbleConnected(context); | |||
} | |||
public void setConnectionState(final Context context, final boolean state, final String stateConnection){ | |||
DataRepository.getRepositoryInstance().setConnectionState(context,state,stateConnection); | |||
} | |||
public void buildRepositoryInstance(Context context, String url){ | |||
DataRepository.buildRepositoryInstance(context,url); | |||
} | |||
@@ -245,4 +245,5 @@ | |||
<string name="not_connected_bubble">Not Connected</string> | |||
<string name="connected_bubble">Connected</string> | |||
<string name="failed_bubble">Failed</string> | |||
<string name="disconnect">Disconnect</string> | |||
</resources> |