Skip to content

Commit 949f082

Browse files
authored
Merge pull request #20 from vivek-nexus/v2.1.0
v2.1.0
2 parents 6e6329d + 45ae8b9 commit 949f082

3 files changed

Lines changed: 25 additions & 14 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Improve workplace communication by connecting Google Meet with Slack!
66

77
**Google Meet ⇔ Slack automatically (Glack) updates your slack status in real time, when you join and exit meetings, even for unscheduled meetings or overflowing meetings.**
88

9-
Extension status: 🟢 OPERATIONAL (v2.0.3 — degraded functionality for users who recieved new meet UI; fix in progress)
9+
Extension status: 🟢 OPERATIONAL (v2.1.0)
1010

1111

1212

extension/content.js

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,14 @@ checkExtensionStatus().then(() => {
3030
joinKeyBoardShortcutListener();
3131
exitKeyBoardShortcutListener();
3232

33+
// 1. Meet UI prior to July/Aug 2024
3334
checkElement(".google-material-icons", "call_end").then(() => {
34-
console.log("Meeting started, setting Slack status")
35-
chrome.runtime.sendMessage({ message: "Set status" }, function (response) {
36-
console.log(response);
37-
});
38-
39-
contains(".google-material-icons", "call_end")[0].parentElement.addEventListener("click", () => {
40-
console.log("Meeting ended, clearing Slack status")
41-
chrome.runtime.sendMessage({ message: "Clear status" }, function (response) {
42-
console.log(response);
43-
});
44-
})
35+
meetingRoutines(".google-material-icons", "call_end")
36+
})
37+
38+
// 2. Meet UI post July/Aug 2024
39+
checkElement(".google-symbols", "call_end").then(() => {
40+
meetingRoutines(".google-symbols", "call_end")
4541
})
4642
}
4743
else {
@@ -67,6 +63,21 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
6763
}
6864
});
6965

66+
function meetingRoutines(selector, text) {
67+
console.log("Meeting started, setting Slack status")
68+
chrome.runtime.sendMessage({ message: "Set status" }, function (response) {
69+
console.log(response);
70+
});
71+
72+
// Event bubbling ensures this works for both cases 1 and 2. The node in case 2 is nested one level deeper than case 1.
73+
contains(selector, text)[0].parentElement.parentElement.addEventListener("click", () => {
74+
console.log("Meeting ended, clearing Slack status")
75+
chrome.runtime.sendMessage({ message: "Clear status" }, function (response) {
76+
console.log(response);
77+
});
78+
})
79+
}
80+
7081
function joinKeyBoardShortcutListener() {
7182
document.addEventListener("keydown", function (event) {
7283
if ((event.ctrlKey || event.metaKey) && !(event.shiftKey) && (event.key.toLowerCase() === "v")) {
@@ -84,7 +95,7 @@ function exitKeyBoardShortcutListener() {
8495
document.addEventListener("keydown", function (event) {
8596
if ((event.ctrlKey || event.metaKey) && (event.shiftKey) && (event.key.toLowerCase() === "v")) {
8697
if (contains("i", "call_end")[0])
87-
contains("i", "call_end")[0].parentElement.click();
98+
contains("i", "call_end")[0].click();
8899
}
89100
});
90101
}

extension/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "Google Meet ⇔ Slack integration (Glack)",
3-
"version": "2.0.3",
3+
"version": "2.1.0",
44
"manifest_version": 3,
55
"description": "Real-time Google Meet status on Slack, just like Slack huddles.",
66
"action": {

0 commit comments

Comments
 (0)