summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/base
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/base')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java33
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java12
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/models/Location.java4
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/views/LocationButton.java7
4 files changed, 34 insertions, 22 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java
index 11cab7e5..f8053f5e 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java
@@ -417,62 +417,56 @@ public class EipFragment extends Fragment implements Observer {
if (eipStatus.isConnecting() ) {
setMainButtonEnabled(true);
showConnectionTransitionLayout(true);
- if (eipStatus.isReconnecting()) {
- subDescription.setText(getString(R.string.reconnecting));
- } else {
- subDescription.setText(R.string.connection_not_connected);
- }
locationButton.setText(getString(R.string.finding_best_connection));
- mainDescription.setText(R.string.eip_state_insecure);
- locationButton.setVisibility(VISIBLE);
locationButton.setLocationLoad(UNKNOWN);
locationButton.showBridgeIndicator(false);
+ locationButton.showRecommendedIndicator(false);
+ mainDescription.setText(R.string.eip_state_insecure);
+ subDescription.setText(null);
} else if (eipStatus.isConnected()) {
setMainButtonEnabled(true);
mainButton.updateState(true, false, false);
locationButton.setLocationLoad(gatewaysManager.getLoadForLocation(VpnStatus.getLastConnectedVpnName()));
locationButton.setText(VpnStatus.getLastConnectedVpnName());
locationButton.showBridgeIndicator(VpnStatus.isUsingBridges());
- locationButton.setVisibility(VISIBLE);
- colorBackground();
+ locationButton.showRecommendedIndicator(getPreferredCity(getContext())== null);
mainDescription.setText(R.string.eip_state_connected);
- subDescription.setText(getPreferredCity(getContext()) == null ?
- R.string.eip_state_connected_recommended :
- R.string.eip_state_connected_manual);
+ subDescription.setText(null);
+ colorBackground();
} else if(isOpenVpnRunningWithoutNetwork()){
Log.d(TAG, "eip fragment eipStatus - isOpenVpnRunningWithoutNetwork");
setMainButtonEnabled(true);
mainButton.updateState(true, false, true);
- locationButton.setVisibility(VISIBLE);
locationButton.setText(VpnStatus.getCurrentlyConnectingVpnName());
locationButton.showBridgeIndicator(VpnStatus.isUsingBridges());
+ locationButton.showBridgeIndicator(VpnStatus.isUsingBridges());
+ locationButton.showRecommendedIndicator(getPreferredCity(getContext())== null);
colorBackgroundALittle();
- mainDescription.setText(R.string.eip_state_insecure);
+ mainDescription.setText(R.string.eip_state_connected);
subDescription.setText(R.string.eip_state_no_network);
} else if (eipStatus.isDisconnected() && reconnectingWithDifferentGateway()) {
showConnectionTransitionLayout(true);
// showRetryToast(activity);
locationButton.setText(getString(R.string.finding_best_connection));
- locationButton.setVisibility(VISIBLE);
locationButton.setLocationLoad(UNKNOWN);
locationButton.showBridgeIndicator(false);
+ locationButton.showRecommendedIndicator(false);
mainDescription.setText(R.string.eip_state_insecure);
subDescription.setText(R.string.reconnecting);
} else if (eipStatus.isDisconnecting()) {
setMainButtonEnabled(false);
showConnectionTransitionLayout(false);
mainDescription.setText(R.string.eip_state_insecure);
- subDescription.setText(R.string.connection_not_connected);
} else if (eipStatus.isBlocking()) {
setMainButtonEnabled(true);
mainButton.updateState(true, false, true);
colorBackgroundALittle();
locationButton.setText(getString(R.string.finding_best_connection));
- locationButton.setVisibility(VISIBLE);
locationButton.setLocationLoad(UNKNOWN);
locationButton.showBridgeIndicator(false);
+ locationButton.showRecommendedIndicator(false);
mainDescription.setText(R.string.eip_state_connected);
- subDescription.setText(R.string.eip_state_blocking);
+ subDescription.setText(getString(R.string.eip_state_blocking, getString(R.string.app_name)));
} else {
locationButton.setText(activity.getString(R.string.vpn_button_turn_on));
setMainButtonEnabled(true);
@@ -480,7 +474,8 @@ public class EipFragment extends Fragment implements Observer {
greyscaleBackground();
locationButton.setLocationLoad(UNKNOWN);
locationButton.showBridgeIndicator(false);
- locationButton.setVisibility(INVISIBLE);
+ locationButton.setText(getString(R.string.gateway_selection_title));
+ locationButton.showRecommendedIndicator(false);
mainDescription.setText(R.string.eip_state_insecure);
subDescription.setText(R.string.connection_not_connected);
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java
index 4a431dff..c98abd74 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java
@@ -29,6 +29,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatButton;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.appcompat.widget.AppCompatTextView;
+import androidx.core.view.LayoutInflaterCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -50,6 +51,7 @@ import se.leap.bitmaskclient.eip.EipCommand;
import se.leap.bitmaskclient.eip.EipStatus;
import se.leap.bitmaskclient.eip.GatewaysManager;
+import static android.view.View.GONE;
import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE;
import static de.blinkt.openvpn.core.connection.Connection.TransportType.OBFS4;
@@ -199,6 +201,7 @@ public class GatewaySelectionFragment extends Fragment implements Observer, Loca
public AppCompatTextView locationLabel;
public LocationIndicator locationIndicator;
public AppCompatImageView bridgeView;
+ public AppCompatImageView selectedView;
public View layout;
public ViewHolder(View v) {
@@ -207,6 +210,7 @@ public class GatewaySelectionFragment extends Fragment implements Observer, Loca
locationLabel = v.findViewById(R.id.location);
locationIndicator = v.findViewById(R.id.quality);
bridgeView = v.findViewById(R.id.bridge_image);
+ selectedView = v.findViewById(R.id.selected);
}
}
@@ -249,11 +253,17 @@ public class GatewaySelectionFragment extends Fragment implements Observer, Loca
Log.d(TAG, "view at position clicked: " + position);
LocationListSelectionListener listener = callback.get();
if (listener != null) {
+ for (Location l : values) {
+ l.selected = false;
+ }
+ location.selected = !location.selected;
+ notifyDataSetChanged();
listener.onLocationSelected(location);
}
});
holder.locationIndicator.setLoad(GatewaysManager.Load.getLoadByValue(location.averageLoad));
- holder.bridgeView.setVisibility(location.supportedTransports.contains(OBFS4) ? VISIBLE : View.GONE);
+ holder.bridgeView.setVisibility(location.supportedTransports.contains(OBFS4) ? VISIBLE : GONE);
+ holder.selectedView.setVisibility(location.selected ? VISIBLE : INVISIBLE);
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/models/Location.java b/app/src/main/java/se/leap/bitmaskclient/base/models/Location.java
index 3ec7d38c..3eb82f22 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/models/Location.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/models/Location.java
@@ -26,12 +26,14 @@ public class Location {
@NonNull public HashSet<Connection.TransportType> supportedTransports;
public double averageLoad;
public int numberOfGateways;
+ public boolean selected;
- public Location(@NonNull String name, double averageLoad, int numberOfGateways, @NonNull HashSet<Connection.TransportType> supportedTransports) {
+ public Location(@NonNull String name, double averageLoad, int numberOfGateways, @NonNull HashSet<Connection.TransportType> supportedTransports, boolean selected) {
this.name = name;
this.averageLoad = averageLoad;
this.numberOfGateways = numberOfGateways;
this.supportedTransports = supportedTransports;
+ this.selected = selected;
}
@Override
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/views/LocationButton.java b/app/src/main/java/se/leap/bitmaskclient/base/views/LocationButton.java
index 11ea198c..b2182d61 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/views/LocationButton.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/views/LocationButton.java
@@ -10,7 +10,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.appcompat.widget.AppCompatTextView;
-import androidx.appcompat.widget.LinearLayoutCompat;
import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.eip.GatewaysManager;
@@ -19,6 +18,7 @@ public class LocationButton extends RelativeLayout {
private LocationIndicator locationIndicator;
private AppCompatTextView textView;
private AppCompatImageView bridgeView;
+ private AppCompatImageView recommendedView;
public LocationButton(@NonNull Context context) {
super(context);
@@ -37,6 +37,7 @@ public class LocationButton extends RelativeLayout {
locationIndicator = rootview.findViewById(R.id.load_indicator);
textView = rootview.findViewById(R.id.text_location);
bridgeView = rootview.findViewById(R.id.bridge_icn);
+ recommendedView = rootview.findViewById(R.id.recommended_icn);
}
public void setLocationLoad(GatewaysManager.Load load) {
@@ -50,4 +51,8 @@ public class LocationButton extends RelativeLayout {
public void showBridgeIndicator(boolean show) {
bridgeView.setVisibility(show ? VISIBLE : GONE);
}
+
+ public void showRecommendedIndicator(boolean show) {
+ recommendedView.setVisibility(show? VISIBLE : GONE );
+ }
}