feat: save translation history
All checks were successful
continuous-integration/drone/push Build is passing
* for now it's not displayed anywhere [wip]
101
config.xml
Normal file
@ -0,0 +1,101 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<widget id="io.ionic.starter" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||
<name>MyApp</name>
|
||||
<description>An awesome Ionic/Cordova app.</description>
|
||||
<author email="hi@ionicframework.com" href="http://ionicframework.com/">Ionic Framework Team</author>
|
||||
<content src="index.html" />
|
||||
<access origin="*" />
|
||||
<allow-intent href="http://*/*" />
|
||||
<allow-intent href="https://*/*" />
|
||||
<allow-intent href="tel:*" />
|
||||
<allow-intent href="sms:*" />
|
||||
<allow-intent href="mailto:*" />
|
||||
<allow-intent href="geo:*" />
|
||||
<preference name="ScrollEnabled" value="false" />
|
||||
<preference name="BackupWebStorage" value="none" />
|
||||
<preference name="SplashMaintainAspectRatio" value="true" />
|
||||
<preference name="FadeSplashScreenDuration" value="300" />
|
||||
<preference name="SplashShowOnlyFirstTime" value="false" />
|
||||
<preference name="SplashScreen" value="screen" />
|
||||
<preference name="SplashScreenDelay" value="3000" />
|
||||
<platform name="android">
|
||||
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<application android:networkSecurityConfig="@xml/network_security_config" />
|
||||
</edit-config>
|
||||
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
|
||||
<allow-intent href="market:*" />
|
||||
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
|
||||
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
|
||||
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
|
||||
<icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
|
||||
<icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
|
||||
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
|
||||
<splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
|
||||
<splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
|
||||
<splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
|
||||
<splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
|
||||
<splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
|
||||
<splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
|
||||
<splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
|
||||
<splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
|
||||
<splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
|
||||
<splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
|
||||
<splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
|
||||
<splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
|
||||
</platform>
|
||||
<platform name="ios">
|
||||
<allow-intent href="itms:*" />
|
||||
<allow-intent href="itms-apps:*" />
|
||||
<icon height="57" src="resources/ios/icon/icon.png" width="57" />
|
||||
<icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
|
||||
<icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
|
||||
<icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" />
|
||||
<icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" />
|
||||
<icon height="20" src="resources/ios/icon/icon-20.png" width="20" />
|
||||
<icon height="40" src="resources/ios/icon/icon-20@2x.png" width="40" />
|
||||
<icon height="60" src="resources/ios/icon/icon-20@3x.png" width="60" />
|
||||
<icon height="48" src="resources/ios/icon/icon-24@2x.png" width="48" />
|
||||
<icon height="55" src="resources/ios/icon/icon-27.5@2x.png" width="55" />
|
||||
<icon height="29" src="resources/ios/icon/icon-29.png" width="29" />
|
||||
<icon height="58" src="resources/ios/icon/icon-29@2x.png" width="58" />
|
||||
<icon height="87" src="resources/ios/icon/icon-29@3x.png" width="87" />
|
||||
<icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
|
||||
<icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" />
|
||||
<icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120" />
|
||||
<icon height="88" src="resources/ios/icon/icon-44@2x.png" width="88" />
|
||||
<icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
|
||||
<icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" />
|
||||
<icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
|
||||
<icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" />
|
||||
<icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" />
|
||||
<icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
|
||||
<icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" />
|
||||
<icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
|
||||
<icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" />
|
||||
<icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167" />
|
||||
<icon height="172" src="resources/ios/icon/icon-86@2x.png" width="172" />
|
||||
<icon height="196" src="resources/ios/icon/icon-98@2x.png" width="196" />
|
||||
<icon height="1024" src="resources/ios/icon/icon-1024.png" width="1024" />
|
||||
<splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
|
||||
<splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
|
||||
<splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
|
||||
<splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
|
||||
<splash height="1125" src="resources/ios/splash/Default-Landscape-2436h.png" width="2436" />
|
||||
<splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
|
||||
<splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
|
||||
<splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
|
||||
<splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
|
||||
<splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
|
||||
<splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
|
||||
<splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
|
||||
<splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
|
||||
<splash height="2436" src="resources/ios/splash/Default-2436h.png" width="1125" />
|
||||
<splash height="2732" src="resources/ios/splash/Default@2x~universal~anyany.png" width="2732" />
|
||||
</platform>
|
||||
<plugin name="cordova-plugin-whitelist" spec="1.3.3" />
|
||||
<plugin name="cordova-plugin-statusbar" spec="2.4.2" />
|
||||
<plugin name="cordova-plugin-device" spec="2.0.2" />
|
||||
<plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
|
||||
<plugin name="cordova-plugin-ionic-webview" spec="^4.0.0" />
|
||||
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.0.5" />
|
||||
</widget>
|
@ -1,5 +1,7 @@
|
||||
{
|
||||
"name": "IonicTranslator",
|
||||
"integrations": {},
|
||||
"integrations": {
|
||||
"cordova": {}
|
||||
},
|
||||
"type": "angular"
|
||||
}
|
||||
|
61
package-lock.json
generated
@ -1562,6 +1562,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"@ionic/storage": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/storage/-/storage-2.3.1.tgz",
|
||||
"integrity": "sha512-IdYKr6xRatumkhceVbjmySCrA20KKcojQN0MyS857D4OgvcDtQhG9mvTXtfX/tU2hxaFlN6WkUaQOy3oPFcJvA==",
|
||||
"requires": {
|
||||
"localforage": "1.7.1",
|
||||
"localforage-cordovasqlitedriver": "1.7.0",
|
||||
"tslib": "^1.10.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@istanbuljs/schema": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz",
|
||||
@ -3623,6 +3640,21 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"cordova-sqlite-storage": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-sqlite-storage/-/cordova-sqlite-storage-5.1.0.tgz",
|
||||
"integrity": "sha512-UmHe9yQiYblDBToh3z91WHuD6ZgmCm3VX+1QFseYQs4WVQ3+ndj22qyGby/NV0uyCgok91gB1obLjLM+9vYJEw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cordova-sqlite-storage-dependencies": "3.0.0"
|
||||
}
|
||||
},
|
||||
"cordova-sqlite-storage-dependencies": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-sqlite-storage-dependencies/-/cordova-sqlite-storage-dependencies-3.0.0.tgz",
|
||||
"integrity": "sha512-A7gV5lQZc0oPrJ/a+lsZmMZr7vYou4MXyQFOY+b/dwuCMsagLT0EsL7oY54tqzpvjtzLfh0aZGGm9i8DMAIFSA==",
|
||||
"dev": true
|
||||
},
|
||||
"core-js": {
|
||||
"version": "3.6.4",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
|
||||
@ -6128,8 +6160,7 @@
|
||||
"immediate": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
||||
"integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=",
|
||||
"dev": true
|
||||
"integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
|
||||
},
|
||||
"import-cwd": {
|
||||
"version": "2.1.0",
|
||||
@ -7340,6 +7371,32 @@
|
||||
"json5": "^2.1.2"
|
||||
}
|
||||
},
|
||||
"localforage": {
|
||||
"version": "1.7.1",
|
||||
"resolved": "https://registry.npmjs.org/localforage/-/localforage-1.7.1.tgz",
|
||||
"integrity": "sha1-5JJ+BCMCuGTbMPMhHxO1xvDell0=",
|
||||
"requires": {
|
||||
"lie": "3.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"lie": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
|
||||
"integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
|
||||
"requires": {
|
||||
"immediate": "~3.0.5"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"localforage-cordovasqlitedriver": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/localforage-cordovasqlitedriver/-/localforage-cordovasqlitedriver-1.7.0.tgz",
|
||||
"integrity": "sha1-i5OVd1nuaI06WNW6fAR39sy1ODg=",
|
||||
"requires": {
|
||||
"localforage": ">=1.5.0"
|
||||
}
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||
|
11
package.json
@ -23,6 +23,7 @@
|
||||
"@ionic-native/splash-screen": "^5.0.0",
|
||||
"@ionic-native/status-bar": "^5.0.0",
|
||||
"@ionic/angular": "^5.0.0",
|
||||
"@ionic/storage": "^2.3.1",
|
||||
"rxjs": "~6.5.5",
|
||||
"tslib": "^2.0.0",
|
||||
"zone.js": "~0.10.3"
|
||||
@ -34,10 +35,11 @@
|
||||
"@angular/compiler-cli": "~10.0.0",
|
||||
"@angular/language-service": "~10.0.0",
|
||||
"@ionic/angular-toolkit": "^2.3.0",
|
||||
"@types/node": "^12.11.1",
|
||||
"@types/jasmine": "~3.5.0",
|
||||
"@types/jasminewd2": "~2.0.3",
|
||||
"@types/node": "^12.11.1",
|
||||
"codelyzer": "^6.0.0",
|
||||
"cordova-sqlite-storage": "^5.1.0",
|
||||
"jasmine-core": "~3.5.0",
|
||||
"jasmine-spec-reporter": "~5.0.0",
|
||||
"karma": "~5.0.0",
|
||||
@ -50,5 +52,10 @@
|
||||
"tslint": "~6.1.0",
|
||||
"typescript": "~3.9.5"
|
||||
},
|
||||
"description": "An Ionic project"
|
||||
"description": "An Ionic project",
|
||||
"cordova": {
|
||||
"plugins": {
|
||||
"cordova-sqlite-storage": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
8
resources/README.md
Normal file
@ -0,0 +1,8 @@
|
||||
These are Cordova resources. You can replace icon.png and splash.png and run
|
||||
`ionic cordova resources` to generate custom icons and splash screens for your
|
||||
app. See `ionic cordova resources --help` for details.
|
||||
|
||||
Cordova reference documentation:
|
||||
|
||||
- Icons: https://cordova.apache.org/docs/en/latest/config_ref/images.html
|
||||
- Splash Screens: https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-splashscreen/
|
BIN
resources/android/icon/drawable-hdpi-icon.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
resources/android/icon/drawable-ldpi-icon.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
resources/android/icon/drawable-mdpi-icon.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
resources/android/icon/drawable-xhdpi-icon.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
resources/android/icon/drawable-xxhdpi-icon.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
resources/android/icon/drawable-xxxhdpi-icon.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
resources/android/splash/drawable-land-hdpi-screen.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
resources/android/splash/drawable-land-ldpi-screen.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
resources/android/splash/drawable-land-mdpi-screen.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
resources/android/splash/drawable-land-xhdpi-screen.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
resources/android/splash/drawable-land-xxhdpi-screen.png
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
resources/android/splash/drawable-land-xxxhdpi-screen.png
Normal file
After Width: | Height: | Size: 111 KiB |
BIN
resources/android/splash/drawable-port-hdpi-screen.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
resources/android/splash/drawable-port-ldpi-screen.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
resources/android/splash/drawable-port-mdpi-screen.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
resources/android/splash/drawable-port-xhdpi-screen.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
resources/android/splash/drawable-port-xxhdpi-screen.png
Normal file
After Width: | Height: | Size: 69 KiB |
BIN
resources/android/splash/drawable-port-xxxhdpi-screen.png
Normal file
After Width: | Height: | Size: 99 KiB |
6
resources/android/xml/network_security_config.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<network-security-config>
|
||||
<domain-config cleartextTrafficPermitted="true">
|
||||
<domain includeSubdomains="true">localhost</domain>
|
||||
</domain-config>
|
||||
</network-security-config>
|
BIN
resources/icon.png
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
resources/ios/icon/icon-1024.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
resources/ios/icon/icon-20.png
Normal file
After Width: | Height: | Size: 686 B |
BIN
resources/ios/icon/icon-20@2x.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
resources/ios/icon/icon-20@3x.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
resources/ios/icon/icon-24@2x.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
resources/ios/icon/icon-27.5@2x.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
resources/ios/icon/icon-29.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/ios/icon/icon-29@2x.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
resources/ios/icon/icon-29@3x.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
resources/ios/icon/icon-40.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
resources/ios/icon/icon-40@2x.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
resources/ios/icon/icon-40@3x.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
resources/ios/icon/icon-44@2x.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
resources/ios/icon/icon-50.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
resources/ios/icon/icon-50@2x.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
resources/ios/icon/icon-60.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
resources/ios/icon/icon-60@2x.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
resources/ios/icon/icon-60@3x.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
resources/ios/icon/icon-72.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
resources/ios/icon/icon-72@2x.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
resources/ios/icon/icon-76.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
resources/ios/icon/icon-76@2x.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
resources/ios/icon/icon-83.5@2x.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
resources/ios/icon/icon-86@2x.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
resources/ios/icon/icon-98@2x.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
resources/ios/icon/icon-small.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/ios/icon/icon-small@2x.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
resources/ios/icon/icon-small@3x.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
resources/ios/icon/icon.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
resources/ios/icon/icon@2x.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
resources/ios/splash/Default-2436h.png
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
resources/ios/splash/Default-568h@2x~iphone.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
resources/ios/splash/Default-667h.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
resources/ios/splash/Default-736h.png
Normal file
After Width: | Height: | Size: 106 KiB |
BIN
resources/ios/splash/Default-Landscape-2436h.png
Normal file
After Width: | Height: | Size: 113 KiB |
BIN
resources/ios/splash/Default-Landscape-736h.png
Normal file
After Width: | Height: | Size: 117 KiB |
BIN
resources/ios/splash/Default-Landscape@2x~ipad.png
Normal file
After Width: | Height: | Size: 133 KiB |
BIN
resources/ios/splash/Default-Landscape@~ipadpro.png
Normal file
After Width: | Height: | Size: 93 KiB |
BIN
resources/ios/splash/Default-Landscape~ipad.png
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
resources/ios/splash/Default-Portrait@2x~ipad.png
Normal file
After Width: | Height: | Size: 147 KiB |
BIN
resources/ios/splash/Default-Portrait@~ipadpro.png
Normal file
After Width: | Height: | Size: 99 KiB |
BIN
resources/ios/splash/Default-Portrait~ipad.png
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
resources/ios/splash/Default@2x~iphone.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
resources/ios/splash/Default@2x~universal~anyany.png
Normal file
After Width: | Height: | Size: 120 KiB |
BIN
resources/ios/splash/Default~iphone.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
resources/splash.png
Normal file
After Width: | Height: | Size: 77 KiB |
16
src/app/api/history.service.spec.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { HistoryService } from './history.service';
|
||||
|
||||
describe('HistoryService', () => {
|
||||
let service: HistoryService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(HistoryService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
24
src/app/api/history.service.ts
Normal file
@ -0,0 +1,24 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Storage } from '@ionic/storage';
|
||||
import { HistoryRecord } from '../models/history-record.model';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class HistoryService
|
||||
{
|
||||
historyArray: HistoryRecord[] = []
|
||||
|
||||
constructor(private storage: Storage) { }
|
||||
|
||||
public saveRecord(record: HistoryRecord)
|
||||
{
|
||||
this.historyArray.unshift(record);
|
||||
this.storage.set('history', JSON.stringify(this.historyArray));
|
||||
}
|
||||
|
||||
public getRecord()
|
||||
{
|
||||
return this.historyArray;
|
||||
}
|
||||
}
|
@ -9,11 +9,12 @@ import { StatusBar } from '@ionic-native/status-bar/ngx';
|
||||
import { AppRoutingModule } from './app-routing.module';
|
||||
import { AppComponent } from './app.component';
|
||||
import { HttpClientModule } from '@angular/common/http';
|
||||
import { IonicStorageModule } from '@ionic/storage';
|
||||
|
||||
@NgModule({
|
||||
declarations: [AppComponent],
|
||||
entryComponents: [],
|
||||
imports: [BrowserModule, HttpClientModule, IonicModule.forRoot(), AppRoutingModule],
|
||||
imports: [BrowserModule, HttpClientModule, IonicModule.forRoot(), IonicStorageModule.forRoot(), AppRoutingModule],
|
||||
providers: [
|
||||
StatusBar,
|
||||
SplashScreen,
|
||||
|
11
src/app/models/history-record.model.ts
Normal file
@ -0,0 +1,11 @@
|
||||
export class HistoryRecord
|
||||
{
|
||||
inputHistory: String
|
||||
outputHistory: String
|
||||
|
||||
constructor(inputHistory: String, outputHistory: String)
|
||||
{
|
||||
this.inputHistory = inputHistory;
|
||||
this.outputHistory = outputHistory;
|
||||
}
|
||||
}
|
@ -1,6 +1,8 @@
|
||||
import { Component } from '@angular/core';
|
||||
import {TranslationService} from '../api/translation.service';
|
||||
import { LoadingController } from '@ionic/angular';
|
||||
import { HistoryRecord } from '../models/history-record.model';
|
||||
import { HistoryService } from '../api/history.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-tab1',
|
||||
@ -12,7 +14,7 @@ export class Tab1Page {
|
||||
myinput:String = ''
|
||||
myoutput:String = ''
|
||||
loadingDialog: any;
|
||||
constructor(private translationService: TranslationService, public loadingController: LoadingController)
|
||||
constructor(private translationService: TranslationService, public loadingController: LoadingController, private historyService: HistoryService)
|
||||
{
|
||||
|
||||
}
|
||||
@ -26,6 +28,8 @@ export class Tab1Page {
|
||||
{
|
||||
this.myoutput = data['responseData']['translatedText'];
|
||||
this.loadingDialog.dismiss();
|
||||
let record = new HistoryRecord(this.myinput, this.myoutput);
|
||||
this.historyService.saveRecord(record);
|
||||
console.log(data);
|
||||
});
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { Storage } from '@ionic/storage';
|
||||
|
||||
@Component({
|
||||
selector: 'app-tab2',
|
||||
@ -7,6 +8,6 @@ import { Component } from '@angular/core';
|
||||
})
|
||||
export class Tab2Page {
|
||||
|
||||
constructor() {}
|
||||
constructor(private storage: Storage) {}
|
||||
|
||||
}
|
||||
|