relaycorp / relaynet-gateway-android

Awala Gateway for Android
https://relaynet.network/users
GNU General Public License v3.0
7 stars 0 forks source link

Failure to register with the public gateway isn't reflected on main screen #263

Closed gnarea closed 2 years ago

gnarea commented 3 years ago

So the user is told that they're connected to Relaynet, when they're not.

We could, for example, display the screen for when the user is disconnected from Relaynet -- or, preferably, create a new one for this state.

Filmaluco commented 2 years ago

@gnarea can you specify a bit more on what you would want visually? A simple text change, something disappearing or appearing...? And maybe Claudia could take a look based on those?

gnarea commented 2 years ago

@Filmaluco, I'd be inclined to go for a new screen state roughly based on the "you're disconnected from Awala" screen, but I agree it'd be great to have Claudia design it.

In hindsight, I think this should be a generic error screen that's only displayed when the user is connected to the Internet but we failed to communicate with the public gateway for whatever reason when: (a) registering with it (the original scope of this issue) or (b) collecting parcels.

"Failing to communicate" could mean anything that prevents the request from completing successfully (e.g., DNS resolution failure, HTTP 4XX/5XX responses).

claudiaacabado commented 2 years ago

Hi @gnarea. I created two options for the case you're tackling. Option 1 - Illustration + main copy + additional copy + action / Option 2 - Illustration + main copy. Something like these would work? disconnected

gnarea commented 2 years ago

Sorry for the delay, @claudiaacabado. Missed this notification.

I'd go for a variation of Option 1:

However, I'm not sure what to do about the CTA, because we might need two:

Thoughts?

sdsantos commented 2 years ago

Sorry for the delay, @claudiaacabado. Missed this notification.

I'd go for a variation of Option 1:

  • Title: "You're connected to the Internet but not Awala"
  • Description: "This may be a transient issue that will fix itself soon or, if you live in a country where access to the Internet is censored, it may be that Awala is blocked. If you think it may be the latter, try using a VPN (we recommend TunnelBear)."

However, I'm not sure what to do about the CTA, because we might need two:

Thoughts?

I think we can keep the description more generic, and have the generic "Get help online" option. That way we can iterate on the copy there, and even offer some kind of support.

gnarea commented 2 years ago

I think we can keep the description more generic, and have the generic "Get help online" option. That way we can iterate on the copy there, and even offer some kind of support.

I'm torn. On the one hand, what I'm proposing above feels way too complicated UX-wise (too much text and two CTAs). On the other hand, I'm 100% sure that the Awala gateways will get blocked by censors as soon as it starts to pick up popularity, so I think it's important to give users some helpful pointers. Is there some kind of middle ground?

For example, what if we display a different description and CTA depending on which country the user is located? Assuming we can do that without asking for additional permissions. For example:

The annoying thing with this approach is that it'd make manual testing harder. Plus the implementation wouldn't be as straightforward as a generic screen.

Thoughts?

sdsantos commented 2 years ago

Aren't countries that are blocking Awala also likely to block TunnelBear? Maybe not the Google Play Store though... Ideally, we would point to a website that would be hard to block where we could adjust the instructions however we want, instead of having that inside the app. But a quick solution for the worst situations is a better UX.

"The government of $COUNTRY may be blocking Awala" does sound like a reach in most cases, I think initially these issues would be mainly bugs until Awala gets a certain adoption, and we hear about the first cases of censoring.

gnarea commented 2 years ago

Aren't countries that are blocking Awala also likely to block TunnelBear? Maybe not the Google Play Store though... Ideally, we would point to a website that would be hard to block where we could adjust the instructions however we want, instead of having that inside the app. But a quick solution for the worst situations is a better UX.

TunnelBear is pretty effective at circumventing Internet censorship, whereas Awala has no built-in mechanism to circumvent Internet censorship -- so we have to rely on VPNs/Tor/etc (until we do).

It's pretty easy for governments to block any website and Awala public gateways. We can't create a website that's hard to block, but we can only advise users on how to bypass censorship more generally.

"The government of $COUNTRY may be blocking Awala" does sound like a reach in most cases, I think initially these issues would be mainly bugs until Awala gets a certain adoption, and we hear about the first cases of censoring.

I agree that copy isn't quite right and there's a possibility that the connection is failing due to a bug, but it may be fixed by tweaking the copy. For example: "This may be due to an issue with Awala. However, your local government may be blocking Awala, so you might want to using a VPN."

(Side note: based on my understanding of the code we have today, that screen would only be displayed if we failed to make a HEAD request to the PoWeb endpoint of the public gateway but we managed to make a HEAD request to google.com. So, barring any bugs in that logic, it effectively means that the screen would only be shown if the public gateway has an outage (possible but unlikely) or the public gateway was blacklisted by the govt)

I like the idea of evolving the app based on future feedback, but in this particular case, I don't see what we could do differently once we start hearing reports of Awala being blocked: I have no doubt this will start to happen shortly after we go live, and TunnerBear is the only tool I'd recommend to circumvent the blocking of Awala gateways.

gnarea commented 2 years ago

BTW, the problem with tools other than TunnelBear is that they can be too complicated/intimidating for the average person (e.g., Tor) or have very questionable orgs running them (e.g., most VPN providers).

There's one, maybe two, VPN providers that I'd probably trust enough to recommend them to Awala users, but in the interest of keeping things simple I think it'd be best to pick one.

sdsantos commented 2 years ago

Then maybe let's go with your first suggestion, without country differences for now? https://github.com/relaycorp/relaynet-gateway-android/issues/263#issuecomment-976381548

gnarea commented 2 years ago

Sounds good 👍🏾

github-actions[bot] commented 2 years ago

:tada: This issue has been resolved in version 1.2.0 :tada:

The release is available on:

Your semantic-release bot :package::rocket: