From f2976914e0dea5cb72766ec3154b7b8e792b0542 Mon Sep 17 00:00:00 2001 From: Nitish Ramakrishnan Date: Tue, 7 Nov 2023 13:16:35 -0700 Subject: [PATCH 01/11] changes related to emailService --- www/index.js | 2 +- www/js/control/LogPage.tsx | 2 +- www/js/control/SensedPage.tsx | 3 +- www/js/control/emailService.js | 114 --------------------------------- www/js/ngApp.js | 1 - 5 files changed, 4 insertions(+), 118 deletions(-) delete mode 100644 www/js/control/emailService.js diff --git a/www/index.js b/www/index.js index 78d29cf7a..d6a0a6e7a 100644 --- a/www/index.js +++ b/www/index.js @@ -21,7 +21,7 @@ import './js/diary/services.js'; import './js/survey/enketo/answer.js'; import './js/survey/enketo/enketo-trip-button.js'; import './js/survey/enketo/enketo-add-note-button.js'; -import './js/control/emailService.js'; +// import './js/control/emailService.js'; import './js/metrics-factory.js'; import './js/metrics-mappings.js'; import './js/plugin/logger.ts'; diff --git a/www/js/control/LogPage.tsx b/www/js/control/LogPage.tsx index ad369fbff..3fcce72ac 100644 --- a/www/js/control/LogPage.tsx +++ b/www/js/control/LogPage.tsx @@ -12,7 +12,7 @@ type loadStats = { currentStart: number; gotMaxIndex: boolean; reachedEnd: boole const LogPage = ({ pageVis, setPageVis }) => { const { t } = useTranslation(); const { colors } = useTheme(); - const EmailHelper = getAngularService('EmailHelper'); + //const EmailHelper = getAngularService('EmailHelper'); const [loadStats, setLoadStats] = useState(); const [entries, setEntries] = useState([]); diff --git a/www/js/control/SensedPage.tsx b/www/js/control/SensedPage.tsx index 82fa60581..4d51b5308 100644 --- a/www/js/control/SensedPage.tsx +++ b/www/js/control/SensedPage.tsx @@ -5,11 +5,12 @@ import { getAngularService } from '../angular-react-helper'; import { useTranslation } from 'react-i18next'; import { FlashList } from '@shopify/flash-list'; import moment from 'moment'; +import EmailHelper from './emailService'; const SensedPage = ({ pageVis, setPageVis }) => { const { t } = useTranslation(); const { colors } = useTheme(); - const EmailHelper = getAngularService('EmailHelper'); + //const EmailHelper = getAngularService('EmailHelper'); /* Let's keep a reference to the database for convenience */ const [DB, setDB] = useState(); diff --git a/www/js/control/emailService.js b/www/js/control/emailService.js deleted file mode 100644 index 8eeaf39bb..000000000 --- a/www/js/control/emailService.js +++ /dev/null @@ -1,114 +0,0 @@ -'use strict'; - -import angular from 'angular'; - -angular - .module('emission.services.email', ['emission.plugin.logger']) - - .service('EmailHelper', function ($window, $http, Logger) { - const getEmailConfig = function () { - return new Promise(function (resolve, reject) { - window.Logger.log(window.Logger.LEVEL_INFO, 'About to get email config'); - var address = []; - $http - .get('json/emailConfig.json') - .then(function (emailConfig) { - window.Logger.log( - window.Logger.LEVEL_DEBUG, - 'emailConfigString = ' + JSON.stringify(emailConfig.data), - ); - address.push(emailConfig.data.address); - resolve(address); - }) - .catch(function (err) { - $http - .get('json/emailConfig.json.sample') - .then(function (emailConfig) { - window.Logger.log( - window.Logger.LEVEL_DEBUG, - 'default emailConfigString = ' + JSON.stringify(emailConfig.data), - ); - address.push(emailConfig.data.address); - resolve(address); - }) - .catch(function (err) { - window.Logger.log( - window.Logger.LEVEL_ERROR, - 'Error while reading default email config' + err, - ); - reject(err); - }); - }); - }); - }; - - const hasAccount = function () { - return new Promise(function (resolve, reject) { - $window.cordova.plugins.email.hasAccount(function (hasAct) { - resolve(hasAct); - }); - }); - }; - - this.sendEmail = function (database) { - Promise.all([getEmailConfig(), hasAccount()]).then(function ([address, hasAct]) { - var parentDir = 'unknown'; - - // Check this only for ios, since for android, the check always fails unless - // the user grants the "GET_ACCOUNTS" dynamic permission - // without the permission, we only see the e-mission account which is not valid - // - // https://developer.android.com/reference/android/accounts/AccountManager#getAccounts() - // - // Caller targeting API level below Build.VERSION_CODES.O that - // have not been granted the Manifest.permission.GET_ACCOUNTS - // permission, will only see those accounts managed by - // AbstractAccountAuthenticators whose signature matches the - // client. - // and on android, if the account is not configured, the gmail app will be launched anyway - // on iOS, nothing will happen. So we perform the check only on iOS so that we can - // generate a reasonably relevant error message - - if (ionic.Platform.isIOS() && !hasAct) { - alert(i18next.t('email-service.email-account-not-configured')); - return; - } - - if (ionic.Platform.isAndroid()) { - parentDir = 'app://databases'; - } - if (ionic.Platform.isIOS()) { - alert(i18next.t('email-service.email-account-mail-app')); - parentDir = cordova.file.dataDirectory + '../LocalDatabase'; - } - - if (parentDir == 'unknown') { - alert('parentDir unexpectedly = ' + parentDir + '!'); - } - - window.Logger.log(window.Logger.LEVEL_INFO, 'Going to email ' + database); - parentDir = parentDir + '/' + database; - /* - window.Logger.log(window.Logger.LEVEL_INFO, - "Going to export logs to "+parentDir); - */ - alert(i18next.t('email-service.going-to-email', { parentDir: parentDir })); - var email = { - to: address, - attachments: [parentDir], - subject: i18next.t('email-service.email-log.subject-logs'), - body: i18next.t('email-service.email-log.body-please-fill-in-what-is-wrong'), - }; - - $window.cordova.plugins.email.open(email, function () { - Logger.log( - 'email app closed while sending, ' + - JSON.stringify(email) + - ' not sure if we should do anything', - ); - // alert(i18next.t('email-service.no-email-address-configured') + err); - return; - }); - }); - }; - }); diff --git a/www/js/ngApp.js b/www/js/ngApp.js index 228c2a989..84b9972c4 100644 --- a/www/js/ngApp.js +++ b/www/js/ngApp.js @@ -40,7 +40,6 @@ angular 'emission.services', 'emission.plugin.logger', 'emission.splash.referral', - 'emission.services.email', 'emission.main', 'pascalprecht.translate', 'LocalStorageModule', From c39b3684008de94882886c218a1a5e9852119462 Mon Sep 17 00:00:00 2001 From: Nitish Ramakrishnan Date: Mon, 13 Nov 2023 05:14:06 -0700 Subject: [PATCH 02/11] changes made to emailService and other files as needed --- www/js/control/LogPage.tsx | 3 +- www/js/control/ProfileSettings.jsx | 6 +- www/js/control/SensedPage.tsx | 4 +- www/js/control/emailService.ts | 105 +++++++++++++++++++++++++++++ www/json/emailConfig.json.sample | 3 - 5 files changed, 112 insertions(+), 9 deletions(-) create mode 100644 www/js/control/emailService.ts delete mode 100644 www/json/emailConfig.json.sample diff --git a/www/js/control/LogPage.tsx b/www/js/control/LogPage.tsx index 3fcce72ac..fba7a72d5 100644 --- a/www/js/control/LogPage.tsx +++ b/www/js/control/LogPage.tsx @@ -6,6 +6,7 @@ import { useTranslation } from 'react-i18next'; import { FlashList } from '@shopify/flash-list'; import moment from 'moment'; import AlertBar from './AlertBar'; +import { sendEmail } from './emailService'; type loadStats = { currentStart: number; gotMaxIndex: boolean; reachedEnd: boolean }; @@ -96,7 +97,7 @@ const LogPage = ({ pageVis, setPageVis }) => { }; const emailLog = function () { - EmailHelper.sendEmail('loggerDB'); + sendEmail('loggerDB'); }; const separator = () => ; diff --git a/www/js/control/ProfileSettings.jsx b/www/js/control/ProfileSettings.jsx index b081e642a..9296b74c5 100644 --- a/www/js/control/ProfileSettings.jsx +++ b/www/js/control/ProfileSettings.jsx @@ -13,7 +13,7 @@ import useAppConfig from '../useAppConfig'; import AlertBar from './AlertBar'; import DataDatePicker from './DataDatePicker'; import PrivacyPolicyModal from './PrivacyPolicyModal'; - +import { sendEmail } from './emailService'; import { uploadFile } from './uploadService'; import ActionMenu from '../components/ActionMenu'; import SensedPage from './SensedPage'; @@ -44,7 +44,7 @@ const ProfileSettings = () => { //angular services needed const CarbonDatasetHelper = getAngularService('CarbonDatasetHelper'); - const EmailHelper = getAngularService('EmailHelper'); + //const EmailHelper = getAngularService('EmailHelper'); const NotificationScheduler = getAngularService('NotificationScheduler'); const ControlHelper = getAngularService('ControlHelper'); @@ -256,7 +256,7 @@ const ProfileSettings = () => { const emailLog = function () { // Passing true, we want to send logs - EmailHelper.sendEmail('loggerDB'); + sendEmail('loggerDB'); }; async function updatePrefReminderTime(storeNewVal = true, newTime) { diff --git a/www/js/control/SensedPage.tsx b/www/js/control/SensedPage.tsx index 4d51b5308..a55188469 100644 --- a/www/js/control/SensedPage.tsx +++ b/www/js/control/SensedPage.tsx @@ -5,7 +5,7 @@ import { getAngularService } from '../angular-react-helper'; import { useTranslation } from 'react-i18next'; import { FlashList } from '@shopify/flash-list'; import moment from 'moment'; -import EmailHelper from './emailService'; +import { sendEmail } from './emailService'; const SensedPage = ({ pageVis, setPageVis }) => { const { t } = useTranslation(); @@ -17,7 +17,7 @@ const SensedPage = ({ pageVis, setPageVis }) => { const [entries, setEntries] = useState([]); const emailCache = function () { - EmailHelper.sendEmail('userCacheDB'); + sendEmail('userCacheDB'); }; async function updateEntries() { diff --git a/www/js/control/emailService.ts b/www/js/control/emailService.ts new file mode 100644 index 000000000..72ddfaf82 --- /dev/null +++ b/www/js/control/emailService.ts @@ -0,0 +1,105 @@ +import React, { useEffect, useState } from 'react'; +import i18next from "i18next"; +import { logInfo, logDebug, displayError } from "../plugin/logger"; +//import 'cordova-plugin-email-composer'; + + +// Separated functions here + +/* +function getEmailConfig() { + return new Promise(async (resolve, reject) => { + try { + logInfo("About to get email config"); + let url = "json/emailConfig.json"; + let response = await fetch(url); + let emailConfigData = await response.json(); + logDebug("emailConfigString = " + JSON.stringify(emailConfigData.address)); + resolve(emailConfigData.address); + } catch (err) { + try { + let url = "json/emailConfig.json.sample"; + let response = await fetch(url); + let emailConfigData = await response.json(); + logDebug("default emailConfigString = " + JSON.stringify(emailConfigData.address)); + resolve(emailConfigData.address); + } catch (err) { + displayError(err, "Error while reading default email config"); + reject(err); + } + } + }); +} +*/ + +async function hasAccount(): Promise { + return new Promise((resolve, reject) => { + window['cordova'].plugins['email'].hasAccount(hasAct => { + resolve(hasAct); + }); + }); +} + +export async function sendEmail(database: string) { + let parentDir = "unknown"; + + if (window['ionic'].Platform.isIOS() && !(await hasAccount())) { //check in iOS for configuration of email thingy + alert(i18next.t('email-service.email-account-not-configured')); + return; + } + + if (window['ionic'].Platform.isAndroid()) { + parentDir = "app://databases"; + } + + if (window['ionic'].Platform.isIOS()) { + alert(i18next.t('email-service.email-account-mail-app')); + console.log(window['cordova'].file.dataDirectory); + parentDir = window['cordova'].file.dataDirectory + "../LocalDatabase"; + } + + if (parentDir === 'unknown') { + alert('parentDir unexpectedly = ' + parentDir + '!'); + } + + logInfo('Going to email ' + database); + parentDir = parentDir + '/' + database; + + alert(i18next.t('email-service.going-to-email', { parentDir: parentDir })); + + let emailConfig = `nseptank@nrel.gov`; //remember to change it to Shankari's + + let emailData = { + to: emailConfig, + attachments: [parentDir], + subject: i18next.t('email-service.email-log.subject-logs'), + body: i18next.t('email-service.email-log.body-please-fill-in-what-is-wrong') + }; + + window['cordova'].plugins['email'].open(emailData, () => { + logInfo('Email app closed while sending, ' + JSON.stringify(emailData) + ' not sure if we should do anything'); + }); +} + +/* +function EmailHelper() { + const [emailConfig, setEmailConfig]; + + useEffect(() => { + }, [emailConfig]); + + + +// My export component here + return ( +
+ +
+ ); + +} + +export default EmailHelper; //maybe this is a good option qmark - I think so? +*/ \ No newline at end of file diff --git a/www/json/emailConfig.json.sample b/www/json/emailConfig.json.sample deleted file mode 100644 index b1e28e63b..000000000 --- a/www/json/emailConfig.json.sample +++ /dev/null @@ -1,3 +0,0 @@ -{ - "address": "shankari@eecs.berkeley.edu" -} \ No newline at end of file From 473893f6e05641a2078b86915dbdb84cc85a15da Mon Sep 17 00:00:00 2001 From: Nitish Ramakrishnan <69108657+niccolopaganini@users.noreply.github.com> Date: Mon, 13 Nov 2023 09:32:13 -0700 Subject: [PATCH 03/11] Update emailService.ts - Changed email address to Shankari's --- www/js/control/emailService.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/www/js/control/emailService.ts b/www/js/control/emailService.ts index 72ddfaf82..e8dec1a9c 100644 --- a/www/js/control/emailService.ts +++ b/www/js/control/emailService.ts @@ -43,7 +43,7 @@ async function hasAccount(): Promise { export async function sendEmail(database: string) { let parentDir = "unknown"; - if (window['ionic'].Platform.isIOS() && !(await hasAccount())) { //check in iOS for configuration of email thingy + if (window['ionic'].Platform.isIOS() && !(await hasAccount())) { alert(i18next.t('email-service.email-account-not-configured')); return; } @@ -67,7 +67,7 @@ export async function sendEmail(database: string) { alert(i18next.t('email-service.going-to-email', { parentDir: parentDir })); - let emailConfig = `nseptank@nrel.gov`; //remember to change it to Shankari's + let emailConfig = `k.shankari@nrel.gov`; let emailData = { to: emailConfig, @@ -102,4 +102,4 @@ function EmailHelper() { } export default EmailHelper; //maybe this is a good option qmark - I think so? -*/ \ No newline at end of file +*/ From ab65825a380d1c892b0c378739d94d79fca75ef8 Mon Sep 17 00:00:00 2001 From: Nitish Ramakrishnan <69108657+niccolopaganini@users.noreply.github.com> Date: Mon, 13 Nov 2023 09:39:51 -0700 Subject: [PATCH 04/11] Update emailService.ts Removed comments --- www/js/control/emailService.ts | 53 ---------------------------------- 1 file changed, 53 deletions(-) diff --git a/www/js/control/emailService.ts b/www/js/control/emailService.ts index e8dec1a9c..ea7f976b2 100644 --- a/www/js/control/emailService.ts +++ b/www/js/control/emailService.ts @@ -1,36 +1,6 @@ import React, { useEffect, useState } from 'react'; import i18next from "i18next"; import { logInfo, logDebug, displayError } from "../plugin/logger"; -//import 'cordova-plugin-email-composer'; - - -// Separated functions here - -/* -function getEmailConfig() { - return new Promise(async (resolve, reject) => { - try { - logInfo("About to get email config"); - let url = "json/emailConfig.json"; - let response = await fetch(url); - let emailConfigData = await response.json(); - logDebug("emailConfigString = " + JSON.stringify(emailConfigData.address)); - resolve(emailConfigData.address); - } catch (err) { - try { - let url = "json/emailConfig.json.sample"; - let response = await fetch(url); - let emailConfigData = await response.json(); - logDebug("default emailConfigString = " + JSON.stringify(emailConfigData.address)); - resolve(emailConfigData.address); - } catch (err) { - displayError(err, "Error while reading default email config"); - reject(err); - } - } - }); -} -*/ async function hasAccount(): Promise { return new Promise((resolve, reject) => { @@ -80,26 +50,3 @@ export async function sendEmail(database: string) { logInfo('Email app closed while sending, ' + JSON.stringify(emailData) + ' not sure if we should do anything'); }); } - -/* -function EmailHelper() { - const [emailConfig, setEmailConfig]; - - useEffect(() => { - }, [emailConfig]); - - - -// My export component here - return ( -
- -
- ); - -} - -export default EmailHelper; //maybe this is a good option qmark - I think so? -*/ From 695196e3377a0000c5df5a806de99e82fbe7611a Mon Sep 17 00:00:00 2001 From: Nitish Ramakrishnan <69108657+niccolopaganini@users.noreply.github.com> Date: Mon, 13 Nov 2023 09:40:36 -0700 Subject: [PATCH 05/11] Update SensedPage.tsx Removed comments --- www/js/control/SensedPage.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/www/js/control/SensedPage.tsx b/www/js/control/SensedPage.tsx index a55188469..db1d43535 100644 --- a/www/js/control/SensedPage.tsx +++ b/www/js/control/SensedPage.tsx @@ -10,7 +10,6 @@ import { sendEmail } from './emailService'; const SensedPage = ({ pageVis, setPageVis }) => { const { t } = useTranslation(); const { colors } = useTheme(); - //const EmailHelper = getAngularService('EmailHelper'); /* Let's keep a reference to the database for convenience */ const [DB, setDB] = useState(); From 35dbdcf426f4c803cc371ee9bc71d8947f5fed64 Mon Sep 17 00:00:00 2001 From: Nitish Ramakrishnan <69108657+niccolopaganini@users.noreply.github.com> Date: Mon, 13 Nov 2023 09:41:13 -0700 Subject: [PATCH 06/11] Update LogPage.tsx Removed comments --- www/js/control/LogPage.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/www/js/control/LogPage.tsx b/www/js/control/LogPage.tsx index fba7a72d5..6d603f19e 100644 --- a/www/js/control/LogPage.tsx +++ b/www/js/control/LogPage.tsx @@ -13,7 +13,6 @@ type loadStats = { currentStart: number; gotMaxIndex: boolean; reachedEnd: boole const LogPage = ({ pageVis, setPageVis }) => { const { t } = useTranslation(); const { colors } = useTheme(); - //const EmailHelper = getAngularService('EmailHelper'); const [loadStats, setLoadStats] = useState(); const [entries, setEntries] = useState([]); From d04d87aa4781175f131381fcc2859534bfc5b30e Mon Sep 17 00:00:00 2001 From: Nitish Ramakrishnan <69108657+niccolopaganini@users.noreply.github.com> Date: Mon, 13 Nov 2023 09:41:41 -0700 Subject: [PATCH 07/11] Update ProfileSettings.jsx Removed comments --- www/js/control/ProfileSettings.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/www/js/control/ProfileSettings.jsx b/www/js/control/ProfileSettings.jsx index 9296b74c5..f239b8b29 100644 --- a/www/js/control/ProfileSettings.jsx +++ b/www/js/control/ProfileSettings.jsx @@ -44,7 +44,6 @@ const ProfileSettings = () => { //angular services needed const CarbonDatasetHelper = getAngularService('CarbonDatasetHelper'); - //const EmailHelper = getAngularService('EmailHelper'); const NotificationScheduler = getAngularService('NotificationScheduler'); const ControlHelper = getAngularService('ControlHelper'); From 7d66e57a10d868d17d461d37f80fbeb176fdc291 Mon Sep 17 00:00:00 2001 From: Nitish Ramakrishnan Date: Mon, 13 Nov 2023 10:45:44 -0700 Subject: [PATCH 08/11] ran prettier --- www/js/control/emailService.ts | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/www/js/control/emailService.ts b/www/js/control/emailService.ts index ea7f976b2..0efca1518 100644 --- a/www/js/control/emailService.ts +++ b/www/js/control/emailService.ts @@ -1,31 +1,31 @@ import React, { useEffect, useState } from 'react'; -import i18next from "i18next"; -import { logInfo, logDebug, displayError } from "../plugin/logger"; +import i18next from 'i18next'; +import { logInfo, logDebug, displayError } from '../plugin/logger'; async function hasAccount(): Promise { return new Promise((resolve, reject) => { - window['cordova'].plugins['email'].hasAccount(hasAct => { + window['cordova'].plugins['email'].hasAccount((hasAct) => { resolve(hasAct); }); }); } export async function sendEmail(database: string) { - let parentDir = "unknown"; + let parentDir = 'unknown'; - if (window['ionic'].Platform.isIOS() && !(await hasAccount())) { + if (window['ionic'].Platform.isIOS() && !(await hasAccount())) { alert(i18next.t('email-service.email-account-not-configured')); return; } if (window['ionic'].Platform.isAndroid()) { - parentDir = "app://databases"; + parentDir = 'app://databases'; } if (window['ionic'].Platform.isIOS()) { alert(i18next.t('email-service.email-account-mail-app')); console.log(window['cordova'].file.dataDirectory); - parentDir = window['cordova'].file.dataDirectory + "../LocalDatabase"; + parentDir = window['cordova'].file.dataDirectory + '../LocalDatabase'; } if (parentDir === 'unknown') { @@ -43,10 +43,14 @@ export async function sendEmail(database: string) { to: emailConfig, attachments: [parentDir], subject: i18next.t('email-service.email-log.subject-logs'), - body: i18next.t('email-service.email-log.body-please-fill-in-what-is-wrong') + body: i18next.t('email-service.email-log.body-please-fill-in-what-is-wrong'), }; window['cordova'].plugins['email'].open(emailData, () => { - logInfo('Email app closed while sending, ' + JSON.stringify(emailData) + ' not sure if we should do anything'); + logInfo( + 'Email app closed while sending, ' + + JSON.stringify(emailData) + + ' not sure if we should do anything', + ); }); } From 7480b926d6586658defa7b1bf5d2f014a643b5c4 Mon Sep 17 00:00:00 2001 From: Nitish Ramakrishnan Date: Mon, 20 Nov 2023 10:30:21 -0800 Subject: [PATCH 09/11] Removed unnecessary imports --- www/index.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/www/index.js b/www/index.js index cabf5ef04..865cc9a32 100644 --- a/www/index.js +++ b/www/index.js @@ -14,9 +14,8 @@ import './js/main.js'; import './js/diary.js'; import './js/diary/services.js'; import './js/survey/enketo/answer.js'; -import './js/survey/enketo/enketo-trip-button.js'; -import './js/survey/enketo/enketo-add-note-button.js'; -import './js/control/emailService.js'; +//import './js/survey/enketo/enketo-trip-button.js'; +//import './js/survey/enketo/enketo-add-note-button.js'; import './js/metrics-factory.js'; import './js/metrics-mappings.js'; import './js/plugin/logger.ts'; From b81493c138647e08d013f461091cc10349a400a8 Mon Sep 17 00:00:00 2001 From: Jack Greenlee Date: Tue, 21 Nov 2023 11:24:03 -0500 Subject: [PATCH 10/11] Clean up this file - remove unused imports - use logDebug, logInfo, logWarn, format nicely - replace ionic.Platform.isIOS / isAndroid with cordova.platformId --- www/index.js | 2 -- www/js/control/emailService.ts | 18 +++++++----------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/www/index.js b/www/index.js index 865cc9a32..0ae3896a2 100644 --- a/www/index.js +++ b/www/index.js @@ -14,8 +14,6 @@ import './js/main.js'; import './js/diary.js'; import './js/diary/services.js'; import './js/survey/enketo/answer.js'; -//import './js/survey/enketo/enketo-trip-button.js'; -//import './js/survey/enketo/enketo-add-note-button.js'; import './js/metrics-factory.js'; import './js/metrics-mappings.js'; import './js/plugin/logger.ts'; diff --git a/www/js/control/emailService.ts b/www/js/control/emailService.ts index 0efca1518..601413546 100644 --- a/www/js/control/emailService.ts +++ b/www/js/control/emailService.ts @@ -1,6 +1,5 @@ -import React, { useEffect, useState } from 'react'; import i18next from 'i18next'; -import { logInfo, logDebug, displayError } from '../plugin/logger'; +import { logDebug, logInfo, logWarn } from '../plugin/logger'; async function hasAccount(): Promise { return new Promise((resolve, reject) => { @@ -13,18 +12,18 @@ async function hasAccount(): Promise { export async function sendEmail(database: string) { let parentDir = 'unknown'; - if (window['ionic'].Platform.isIOS() && !(await hasAccount())) { + if (window['cordova'].platformId == 'ios' && !(await hasAccount())) { alert(i18next.t('email-service.email-account-not-configured')); return; } - if (window['ionic'].Platform.isAndroid()) { + if (window['cordova'].platformId) == 'android') { parentDir = 'app://databases'; } - if (window['ionic'].Platform.isIOS()) { + if (window['cordova'].platformId) == 'ios') { alert(i18next.t('email-service.email-account-mail-app')); - console.log(window['cordova'].file.dataDirectory); + logDebug(window['cordova'].file.dataDirectory); parentDir = window['cordova'].file.dataDirectory + '../LocalDatabase'; } @@ -47,10 +46,7 @@ export async function sendEmail(database: string) { }; window['cordova'].plugins['email'].open(emailData, () => { - logInfo( - 'Email app closed while sending, ' + - JSON.stringify(emailData) + - ' not sure if we should do anything', - ); + logWarn(`Email app closed while sending, + emailData = ${JSON.stringify(emailData)}`); }); } From 810c31911ba6c0477c8abdf7da80b75e597cee9e Mon Sep 17 00:00:00 2001 From: Jack Greenlee Date: Tue, 21 Nov 2023 11:27:50 -0500 Subject: [PATCH 11/11] fix bad parentheses --- www/js/control/emailService.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/js/control/emailService.ts b/www/js/control/emailService.ts index 601413546..3a6e8a5c5 100644 --- a/www/js/control/emailService.ts +++ b/www/js/control/emailService.ts @@ -17,11 +17,11 @@ export async function sendEmail(database: string) { return; } - if (window['cordova'].platformId) == 'android') { + if (window['cordova'].platformId == 'android') { parentDir = 'app://databases'; } - if (window['cordova'].platformId) == 'ios') { + if (window['cordova'].platformId == 'ios') { alert(i18next.t('email-service.email-account-mail-app')); logDebug(window['cordova'].file.dataDirectory); parentDir = window['cordova'].file.dataDirectory + '../LocalDatabase';