Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HOLD for payment 2022-06-15] [$250] Nothing happens when the google meet option is pressed on android - reported by @adeel0202 #8851

Closed
mvtglobally opened this issue May 2, 2022 · 39 comments
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Daily KSv2 Engineering External Added to denote the issue can be worked on by a contributor Improvement Item broken or needs improvement.

Comments

@mvtglobally
Copy link

mvtglobally commented May 2, 2022

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


Action Performed:

  1. Go to any chat
  2. Press Start a call icon
  3. Select Google Meet option

Expected Result:

It should redirect to google meet

Actual Result:

Nothing happens

Workaround:

unknown

Platform:

Where is this issue occurring?

  • Android

Version Number: 1.1.57-0
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

22-04-14-22-24-21.mp4

Upwork job URL: https://www.upwork.com/jobs/~0141cfd04877737242
Issue reported by: @adeel0202
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1649958629253299

View all open jobs on GitHub

@mvtglobally mvtglobally added AutoAssignerTriage Auto assign issues for triage to an available triage team member Daily KSv2 labels May 2, 2022
@melvin-bot

This comment was marked as off-topic.

1 similar comment
@melvin-bot

This comment was marked as off-topic.

@melvin-bot
Copy link

melvin-bot bot commented May 2, 2022

Triggered auto assignment to @trjExpensify (AutoAssignerTriage), see https://stackoverflow.com/c/expensify/questions/4749 for more details.

@melvin-bot melvin-bot bot removed the AutoAssignerTriage Auto assign issues for triage to an available triage team member label May 2, 2022
@trjExpensify
Copy link
Contributor

I don't have an Android device to test this. I asked @peterdbarkerUK to confirm the reproduction steps on his Pixel 6 and it redirects to Google Meet. 😕

@adeel0202, did you try this with the Google Meet app installed to see if there's a different result?

@adeel0202
Copy link
Contributor

Just installed the Google Meet app and still, nothing happens when I tap the Google Meet option.

22-05-02-19-18-36_Q5alneWO.mp4

@trjExpensify
Copy link
Contributor

Alright, going to pass this over to engineering triage!

@melvin-bot
Copy link

melvin-bot bot commented May 3, 2022

Triggered auto assignment to @AndrewGable (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

@trjExpensify trjExpensify added the Improvement Item broken or needs improvement. label May 3, 2022
@AndrewGable AndrewGable added the External Added to denote the issue can be worked on by a contributor label May 3, 2022
@melvin-bot
Copy link

melvin-bot bot commented May 3, 2022

Current assignee @trjExpensify is eligible for the External assigner, not assigning anyone new.

@AndrewGable AndrewGable added Weekly KSv2 and removed Daily KSv2 labels May 3, 2022
@tgolen
Copy link
Contributor

tgolen commented May 3, 2022

hm, works for me (ish) in the simulator. It should open up a browser and go to https://meet.google.com/new. I think it's not fully working in the simulator because I don't have the google meet app installed.

@AndrewGable
Copy link
Contributor

@Expensify/applauseleads - Can you reproduce this?

@isagoico
Copy link

isagoico commented May 6, 2022

@AndrewGable Able to reproduce the issue in my device, Android 10 / Build 1.1.57-7

WhatsApp.Video.2022-05-06.at.1.22.19.PM.mp4

@AndrewGable AndrewGable added the Help Wanted Apply this label when an issue is open to proposals by contributors label May 6, 2022
@AndrewGable
Copy link
Contributor

@trjExpensify - Do you know if I applied the correct labels here? 🤔 - It seems like we are missing a C+.

@eVoloshchak
Copy link
Contributor

eVoloshchak commented May 7, 2022

When you try to reproduce this in dev, it gives you the following warning:

image

Proposal:

  1. Add
<uses-permission android:name="android.permission.CALL_PHONE"/>

to the list of permissions in AndroidManifest.xml

  1. Request permission on this line in VideoChatButtonAndMenu.js
  onPress: async () => {
      this.toggleVideoChatMenu();
      await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.CALL_PHONE)
      Linking.openURL(CONST.NEW_GOOGLE_MEET_MEETING_URL);
  },
22-05-07-19-17-42.mp4

Note:
This is probably a good idea to show some kind of alert if user has denied the permission, what is the desired behavior in this case?

But probably the bigger question is "Why does opening google.meet.com requires a CALL_PHONE permission?". I couldn't find anything about this, but still searching.

UPD
Did some more digging and foud out that we can modify NEW_GOOGLE_MEET_MEETING_URL in CONST.js to avoid requesting additional permissions
We need to change it from https://meet.google.com/new to https://meet.google.com.
But this is kind of strange, since both https://meet.google.com/new and https://meet.google.com are just opening Google Meet application (see my previous video), and don't create a new meeting, just present user with a button to create one. Is this how it should work?
Another thing I noticed is that in doesn't matter whether you have Google Meet app installed or not. If you don't have it installed, it just opens up the same interface in Gmail application.
Tested with OnePlus6 running Android 11 and LG G7 running Android 10, the behavior is exactly the same.

@trjExpensify
Copy link
Contributor

@trjExpensify - Do you know if I applied the correct labels here? 🤔 - It seems like we are missing a C+.

You're good. I hadn't taken this to Upwork yet to add the Exported label (which will assign C+ and Help wanted), but let me do that now that it has been reproduced.

@melvin-bot melvin-bot bot added Weekly KSv2 and removed Weekly KSv2 labels May 9, 2022
@melvin-bot
Copy link

melvin-bot bot commented May 9, 2022

Triggered auto assignment to Contributor-plus team member for initial proposal review - @rushatgabhane (Exported)

@eVoloshchak
Copy link
Contributor

@eVoloshchak A new meeting is created on web.

Yup, I also observed that. When you were testing, was new meeting created on Android or did it just open google meet app?

@rushatgabhane
Copy link
Member

rushatgabhane commented May 18, 2022

was new meeting created on Android or did it just open google meet app

It just opened the meet app.


I can't repro the issue at all. I tested on the following physical devices from the respective regions.
Pixel 6, Android 12 - UK
Pixel 3, Android 10, 11 and 12 (i sideloaded the firmware) - USA
Samsung S8, Android 9 - UAE

@AndrewGable what do we do here? Should we wait for more proposals that point to the exact root cause?

@eVoloshchak
Copy link
Contributor

eVoloshchak commented May 18, 2022

It just opened the meet app.

In that case we can just change https://meet.google.com/new to https://meet.google.com for Android, the behaviour will stay the same but the permission isn't required.
But I argee, finding some proof of why it is that way is required

@AndrewGable
Copy link
Contributor

Kinda seems just like it's a quirk of Google's app, which we probably won't ever get to the bottom of. I think the high level solution sounds solid, but let's update the proposal to include all the changes required.

@eVoloshchak
Copy link
Contributor

Updated proposal:

  1. Add GOOGLE_MEET_APP_URL: 'https://meet.google.com' to CONST.js
  2. In src/components create a folder called VideoChatButtonAndMenu, move VideoChatButtonAndMenu.js into it and rename it to index.js
  3. In that same folder create a file called getGoogleMeetUrl.js with the following contents:
export default function getGoogleMeetUrl() {
    return CONST.NEW_GOOGLE_MEET_MEETING_URL;
}
  1. Create a file called getGoogleMeetUrl.android.js
export default function getGoogleMeetUrl() {
    return CONST.GOOGLE_MEET_APP_URL;
}
  1. Replace this line with Linking.openURL(getGoogleMeetUrl());

@rushatgabhane
Copy link
Member

rushatgabhane commented May 18, 2022

@eVoloshchak I believe we don't follow that pattern for components. It should look something more like this

  • BaseComponent
  • index.js
  • index.android.js

eg: Modal component
Please make sure to add a comment for Android and add a link to your investigation.
Also, GOOGLE_MEET_URL_ANDROID seems like a better name. What do you think?

@rushatgabhane
Copy link
Member

🎀 👀 🎀 C+ reviewed

We're gonna be using https://meet.google.com for android and https://meet.google.com/new for all other platforms.
I can't repro the bug on any of my devices, but @eVoloshchak has tested it out. Let's do this!

cc: @AndrewGable

@AndrewGable
Copy link
Contributor

Let's do it!

@melvin-bot melvin-bot bot removed the Help Wanted Apply this label when an issue is open to proposals by contributors label May 18, 2022
@melvin-bot
Copy link

melvin-bot bot commented May 18, 2022

📣 @eVoloshchak You have been assigned to this job by @AndrewGable!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑‍💻
Keep in mind: Code of Conduct | Contributing 📖

@eVoloshchak
Copy link
Contributor

@eVoloshchak I believe we don't follow that pattern for components. It should look something more like this

  • BaseComponent
  • index.js
  • index.android.js

Got it, thanks

Please make sure to add a comment for Android and add a link to your investigation.

Will do

Also, GOOGLE_MEET_URL_ANDROID seems like a better name. What do you think?

Yes, I agree, will use that instead

I applied for the job on Upwork, will submit a PR in ~2 days

@trjExpensify
Copy link
Contributor

Sent the offer! 👍

@trjExpensify
Copy link
Contributor

👋 @eVoloshchak any luck with submitting that PR?

@eVoloshchak
Copy link
Contributor

Sorry for the delay, PR is up

@rushatgabhane
Copy link
Member

rushatgabhane commented Jun 5, 2022

Hello @eVoloshchak @AndrewGable, PR #9193 caused some console errors.
I've raised PR #9315 to fix them and avoid a deploy blocker.

@trjExpensify please note that this is a regression.

@trjExpensify
Copy link
Contributor

Cool, thanks @rushatgabhane. 👍

@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Weekly KSv2 labels Jun 8, 2022
@melvin-bot melvin-bot bot changed the title [$250] Nothing happens when the google meet option is pressed on android - reported by @adeel0202 [HOLD for payment 2022-06-15] [$250] Nothing happens when the google meet option is pressed on android - reported by @adeel0202 Jun 8, 2022
@melvin-bot
Copy link

melvin-bot bot commented Jun 8, 2022

The solution for this issue has been 🚀 deployed to production 🚀 in version 1.1.73-2 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2022-06-15. 🎊

@melvin-bot melvin-bot bot added Daily KSv2 and removed Weekly KSv2 labels Jun 14, 2022
@trjExpensify
Copy link
Contributor

@eVoloshchak, I've paid you for this.

@rushatgabhane & @adeel0202 I need you both to accept the offers to settle up here.

@trjExpensify
Copy link
Contributor

Okay, @adeel0202 done! I'll close it out once @rushatgabhane accepts the C+ offer.

@trjExpensify
Copy link
Contributor

All set here, closing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Daily KSv2 Engineering External Added to denote the issue can be worked on by a contributor Improvement Item broken or needs improvement.
Projects
None yet
Development

No branches or pull requests

8 participants