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

Release new version Release v0.14.13 #3498

Open
8 tasks done
hoangdat opened this issue Feb 20, 2025 · 10 comments
Open
8 tasks done

Release new version Release v0.14.13 #3498

hoangdat opened this issue Feb 20, 2025 · 10 comments

Comments

@hoangdat
Copy link
Member

hoangdat commented Feb 20, 2025

DoD:

  • Request translating in weblate and merge to branch
  • Test in all platforms base on the check-list case: tnr-tmail-template.ods
    • Chrome
    • Firefox
    • Edge
    • Safari
    • Android
    • iOS
    • Opera
  • CHANGE LOG test
  • Memory leak verifycation
  • Tag new version
  • Push new docker image
  • iOS - Release app in Test Flight
  • Android - Release app in Internal Test
@hoangdat
Copy link
Member Author

hoangdat commented Feb 20, 2025

=> Result

@tddang-linagora
Copy link
Contributor

Twake Workplace redirect

Redirection jumps to app store even when the app is installed

  • Not signed in
app-not-signed-in-store-jump.mov
  • Signed in with same account
same-account-app-signed-in-store-jump.mov
  • Signed in with different account
app-different-account-signed-in-store-jump.mov

@tddang-linagora
Copy link
Contributor

Support Cyrus server

Cannot send email

Request
{
  "using": [
    "urn:ietf:params:jmap:submission",
    "urn:ietf:params:jmap:mail",
    "urn:ietf:params:jmap:core"
  ],
  "methodCalls": [
    [
      "Mailbox/set",
      {
        "accountId": "bob",
        "create": {
          "f71a4b61-ef5c-11ef-ac2d-41c7acf8245d": {
            "name": "Outbox",
            "isSubscribed": true
          }
        }
      },
      "c0"
    ],
    [
      "Email/set",
      {
        "accountId": "bob",
        "create": {
          "f71a4b62-ef5c-11ef-ac2d-41c7acf8245d": {
            "mailboxIds": {
              "#f71a4b61-ef5c-11ef-ac2d-41c7acf8245d": true
            },
            "subject": "dlawknd",
            "from": [
              {
                "name": null,
                "email": "[email protected]"
              }
            ],
            "to": [
              {
                "name": null,
                "email": "[email protected]"
              }
            ],
            "cc": [],
            "bcc": [],
            "replyTo": [
              {
                "name": null,
                "email": "[email protected]"
              }
            ],
            "htmlBody": [
              {
                "partId": "f71a4b60-ef5c-11ef-ac2d-41c7acf8245d",
                "type": "text/html"
              }
            ],
            "bodyValues": {
              "f71a4b60-ef5c-11ef-ac2d-41c7acf8245d": {
                "value": "<div>sawbdw<br><br></div>",
                "isEncodingProblem": false,
                "isTruncated": false,
                "header:Accept-Language:asText": "fr-FR, en-US, vi-VN, ru-RU, ar-TN, it-IT, de-DE",
                "header:Content-Language:asText": "en-US"
              }
            },
            "header:User-Agent:asText": "Twake-Mail/0.14.13 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
          }
        }
      },
      "c1"
    ],
    [
      "EmailSubmission/set",
      {
        "accountId": "bob",
        "create": {
          "f71a4b63-ef5c-11ef-ac2d-41c7acf8245d": {
            "emailId": "#f71a4b62-ef5c-11ef-ac2d-41c7acf8245d",
            "envelope": {
              "mailFrom": {
                "email": "[email protected]"
              },
              "rcptTo": [
                {
                  "email": "[email protected]"
                }
              ]
            }
          }
        },
        "onSuccessUpdateEmail": {
          "#f71a4b63-ef5c-11ef-ac2d-41c7acf8245d": {
            "mailboxIds/xhrnf36c9jvd5zwfi37x32gw": true,
            "mailboxIds/#f71a4b61-ef5c-11ef-ac2d-41c7acf8245d": null,
            "keywords/$seen": true,
            "keywords/$draft": null
          }
        }
      },
      "c2"
    ]
  ]
}
Response
{
    "methodResponses": [
        [
            "Mailbox/set",
            {
                "oldState": "96",
                "newState": "96",
                "created": null,
                "updated": null,
                "destroyed": null,
                "notCreated": {
                    "f71a4b61-ef5c-11ef-ac2d-41c7acf8245d": {
                        "type": "invalidProperties",
                        "properties": [
                            "name"
                        ]
                    }
                },
                "notUpdated": null,
                "notDestroyed": null,
                "accountId": "bob"
            },
            "c0"
        ],
        [
            "Email/set",
            {
                "oldState": "96",
                "newState": "96",
                "created": null,
                "updated": null,
                "destroyed": null,
                "notCreated": {
                    "f71a4b62-ef5c-11ef-ac2d-41c7acf8245d": {
                        "type": "invalidProperties",
                        "properties": [
                            "mailboxIds"
                        ]
                    }
                },
                "notUpdated": null,
                "notDestroyed": null,
                "accountId": "bob"
            },
            "c1"
        ],
        [
            "EmailSubmission/set",
            {
                "oldState": "63",
                "newState": "63",
                "created": null,
                "updated": null,
                "destroyed": null,
                "notCreated": {
                    "f71a4b63-ef5c-11ef-ac2d-41c7acf8245d": {
                        "type": "invalidProperties",
                        "properties": [
                            "emailId"
                        ]
                    }
                },
                "notUpdated": null,
                "notDestroyed": null,
                "accountId": "bob"
            },
            "c2"
        ],
        [
            "Email/set",
            {
                "oldState": "96",
                "newState": "96",
                "created": null,
                "updated": null,
                "destroyed": null,
                "notCreated": null,
                "notUpdated": null,
                "notDestroyed": null,
                "accountId": "bob"
            },
            "c2"
        ]
    ],
    "sessionState": "0"
}

Set up

@dab246
Copy link
Member

dab246 commented Feb 21, 2025

Twake Workplace redirect

Redirection jumps to app store even when the app is installed

Cannot redirection jumps to app store when the app is not installed on FIREFOX

After investigating I found the issue on TWP side. When clicking on the app item on TWP website, on mobile it will do 2 actions

  1. Open a deep link
  2. Open the app store link after time out.

So we have to check if the app opened successfully then it does not redirect to the app store.

Propose

  • Use document.hidden to check if the app has opened successfully.
  • Use an iframe instead of window.location to prevent the browser from automatically falling back.
  • Only redirect to the store if the app does not open after a few seconds.
const handleTwakeMailLink = (deepLink) => {
  const playStoreUrl =
    'https://play.google.com/store/apps/details?id=com.linagora.android.teammail&hl=en';

  // Create an iframe to open the deep link
  const iframe = document.createElement("iframe");
  iframe.style.display = "none";
  iframe.src = deepLink;
  document.body.appendChild(iframe);

  // Set a timeout to redirect if the app doesn't open
  const timeout = setTimeout(() => {
    if (!document.hidden) {
      window.location.href = playStoreUrl;
    }
  }, 2000);

  document.addEventListener("visibilitychange", () => {
    if (document.hidden) {
      clearTimeout(timeout);
    }
  });

  // Remove the iframe after 3 seconds to avoid DOM clutter
  setTimeout(() => {
    document.body.removeChild(iframe);
  }, 3000);
};

@hoangdat @rezk2ll

@dab246
Copy link
Member

dab246 commented Feb 21, 2025

Support Cyrus server

Cannot send email

Fixed at #3505

@hoangdat
Copy link
Member Author

  • release v0.14.14 with fix for Cyrus and add translation

@rezk2ll
Copy link
Member

rezk2ll commented Feb 28, 2025

Twake Workplace redirect

Redirection jumps to app store even when the app is installed
Cannot redirection jumps to app store when the app is not installed on FIREFOX

After investigating I found the issue on TWP side. When clicking on the app item on TWP website, on mobile it will do 2 actions

  1. Open a deep link
  2. Open the app store link after time out.

So we have to check if the app opened successfully then it does not redirect to the app store.

Propose

  • Use document.hidden to check if the app has opened successfully.
  • Use an iframe instead of window.location to prevent the browser from automatically falling back.
  • Only redirect to the store if the app does not open after a few seconds.

const handleTwakeMailLink = (deepLink) => {
const playStoreUrl =
'https://play.google.com/store/apps/details?id=com.linagora.android.teammail&hl=en';

// Create an iframe to open the deep link
const iframe = document.createElement("iframe");
iframe.style.display = "none";
iframe.src = deepLink;
document.body.appendChild(iframe);

// Set a timeout to redirect if the app doesn't open
const timeout = setTimeout(() => {
if (!document.hidden) {
window.location.href = playStoreUrl;
}
}, 2000);

document.addEventListener("visibilitychange", () => {
if (document.hidden) {
clearTimeout(timeout);
}
});

// Remove the iframe after 3 seconds to avoid DOM clutter
setTimeout(() => {
document.body.removeChild(iframe);
}, 3000);
};
@hoangdat @rezk2ll

I found another proper solution using document.hasFocus method.

it is deployed to staging for testing now

@dab246
Copy link
Member

dab246 commented Mar 4, 2025

I found another proper solution using document.hasFocus method.

it is deployed to staging for testing now

I checked on stg, but it still fails, please try again @rezk2ll

ScreenRecording_03-04-2025.10-17-22_1.MP4

@rezk2ll
Copy link
Member

rezk2ll commented Mar 4, 2025

I found another proper solution using document.hasFocus method.
it is deployed to staging for testing now

I checked on stg, but it still fails, please try again @rezk2ll

ScreenRecording_03-04-2025.10-17-22_1.MP4

in the demo, did you hit the back button right after opening the tmail application or it happened on it's own?

@dab246
Copy link
Member

dab246 commented Mar 4, 2025

I found another proper solution using document.hasFocus method.
it is deployed to staging for testing now

I checked on stg, but it still fails, please try again @rezk2ll

in the demo, did you hit the back button right after opening the tmail application or it happened on it's own?

I did nothing, just clicked Mail item in TWP page and it happened by itself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants