diff --git a/.gitignore b/.gitignore index 5528da384..e1a04cb82 100644 --- a/.gitignore +++ b/.gitignore @@ -51,5 +51,6 @@ src/assets/www/pdfjs/web/compressed.tracemonkey-pldi-09.pdf.pdf node_modules_ node_modules__ plugins_ +android ios src/plugin/beast-orm diff --git a/android-copy/.gitignore b/android-copy/.gitignore deleted file mode 100644 index 63c86fe30..000000000 --- a/android-copy/.gitignore +++ /dev/null @@ -1,96 +0,0 @@ -# Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore - -# Built application files -*.apk -*.aar -*.ap_ -*.aab - -# Files for the ART/Dalvik VM -*.dex - -# Java class files -*.class - -# Generated files -bin/ -gen/ -out/ -# Uncomment the following line in case you need and you don't have the release build type files in your app -# release/ - -# Gradle files -.gradle/ -build/ - -# Local configuration file (sdk path, etc) -local.properties - -# Proguard folder generated by Eclipse -proguard/ - -# Log Files -*.log - -# Android Studio Navigation editor temp files -.navigation/ - -# Android Studio captures folder -captures/ - -# IntelliJ -*.iml -.idea/workspace.xml -.idea/tasks.xml -.idea/gradle.xml -.idea/assetWizardSettings.xml -.idea/dictionaries -.idea/libraries -# Android Studio 3 in .gitignore file. -.idea/caches -.idea/modules.xml -# Comment next line if keeping position of elements in Navigation Editor is relevant for you -.idea/navEditor.xml - -# Keystore files -# Uncomment the following lines if you do not want to check your keystore files in. -#*.jks -#*.keystore - -# External native build folder generated in Android Studio 2.2 and later -.externalNativeBuild -.cxx/ - -# Google Services (e.g. APIs or Firebase) -# google-services.json - -# Freeline -freeline.py -freeline/ -freeline_project_description.json - -# fastlane -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots -fastlane/test_output -fastlane/readme.md - -# Version control -vcs.xml - -# lint -lint/intermediates/ -lint/generated/ -lint/outputs/ -lint/tmp/ -# lint/reports/ - -# Android Profiling -*.hprof - -# Cordova plugins for Capacitor -capacitor-cordova-android-plugins - -# Copied web assets -app/src/main/assets/public diff --git a/android-copy/app/.gitignore b/android-copy/app/.gitignore deleted file mode 100644 index 043df802a..000000000 --- a/android-copy/app/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build/* -!/build/.npmkeep diff --git a/android-copy/app/build.gradle b/android-copy/app/build.gradle deleted file mode 100644 index 4b03508bb..000000000 --- a/android-copy/app/build.gradle +++ /dev/null @@ -1,51 +0,0 @@ -apply plugin: 'com.android.application' - -android { - compileSdkVersion rootProject.ext.compileSdkVersion - defaultConfig { - applicationId "com.capacitorjs.app.testapp" - minSdkVersion rootProject.ext.minSdkVersion - targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - aaptOptions { - // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. - // Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61 - ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' - } - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } -} - -repositories { - flatDir{ - dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs' - } -} - -dependencies { - implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion" - implementation project(':capacitor-android') - testImplementation "junit:junit:$junitVersion" - androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion" - androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion" - implementation project(':capacitor-cordova-android-plugins') -} - -apply from: 'capacitor.build.gradle' - -try { - def servicesJSON = file('google-services.json') - if (servicesJSON.text) { - apply plugin: 'com.google.gms.google-services' - } -} catch(Exception e) { - logger.warn("google-services.json not found, google-services plugin not applied. Push Notifications won't work") -} diff --git a/android-copy/app/capacitor.build.gradle b/android-copy/app/capacitor.build.gradle deleted file mode 100644 index 6795d7e61..000000000 --- a/android-copy/app/capacitor.build.gradle +++ /dev/null @@ -1,37 +0,0 @@ -// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN - -android { - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } -} - -apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" -dependencies { - implementation project(':byteowls-capacitor-filesharer') - implementation project(':capacitor-community-camera-preview') - implementation project(':capacitor-app') - implementation project(':capacitor-browser') - implementation project(':capacitor-camera') - implementation project(':capacitor-device') - implementation project(':capacitor-filesystem') - implementation project(':capacitor-haptics') - implementation project(':capacitor-keyboard') - implementation project(':capacitor-local-notifications') - implementation project(':capacitor-network') - implementation project(':capacitor-push-notifications') - implementation project(':capacitor-share') - implementation project(':capacitor-storage') - implementation project(':capacitor-voice-recorder') - implementation project(':capacitor2-file-picker') - implementation "com.soundcloud.android:android-crop:1.0.0@aar" - implementation "com.squareup.okhttp:okhttp-urlconnection:2+" -} -apply from: "../../node_modules/com-sarriaroman-photoviewer/src/android/photoviewer.gradle" -apply from: "../../node_modules/cordova-android-support-gradle-release/cordova-android-support-gradle-release.gradle" -apply from: "../../node_modules/cordova-plugin-fingerprint-aio/src/android/build.gradle" - -if (hasProperty('postBuildExtras')) { - postBuildExtras() -} diff --git a/android-copy/app/proguard-rules.pro b/android-copy/app/proguard-rules.pro deleted file mode 100644 index f1b424510..000000000 --- a/android-copy/app/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/android-copy/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java b/android-copy/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java deleted file mode 100644 index f2c2217ef..000000000 --- a/android-copy/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.getcapacitor.myapp; - -import static org.junit.Assert.*; - -import android.content.Context; -import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.platform.app.InstrumentationRegistry; -import org.junit.Test; -import org.junit.runner.RunWith; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - - @Test - public void useAppContext() throws Exception { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); - - assertEquals("com.getcapacitor.app", appContext.getPackageName()); - } -} diff --git a/android-copy/app/src/main/AndroidManifest.xml b/android-copy/app/src/main/AndroidManifest.xml deleted file mode 100644 index 66301e3a7..000000000 --- a/android-copy/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/android-copy/app/src/main/AndroidManifest.xml.orig b/android-copy/app/src/main/AndroidManifest.xml.orig deleted file mode 100644 index 8d27de2b1..000000000 --- a/android-copy/app/src/main/AndroidManifest.xml.orig +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/android-copy/app/src/main/assets/capacitor.config.json b/android-copy/app/src/main/assets/capacitor.config.json deleted file mode 100644 index 2399c4927..000000000 --- a/android-copy/app/src/main/assets/capacitor.config.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "appId": "com.capacitorjs.app.testapp", - "appName": "capacitor-testapp", - "webDir": "www", - "plugins": { - "SplashScreen": { - "launchAutoHide": false - }, - "LocalNotifications": { - "smallIcon": "ic_stat_icon_config_sample", - "iconColor": "#CE0B7C" - }, - "PushNotifications": { - "presentationOptions": [ - "alert", - "sound" - ] - } - } -} diff --git a/android-copy/app/src/main/assets/capacitor.plugins.json b/android-copy/app/src/main/assets/capacitor.plugins.json deleted file mode 100644 index 36daaa9bc..000000000 --- a/android-copy/app/src/main/assets/capacitor.plugins.json +++ /dev/null @@ -1,66 +0,0 @@ -[ - { - "pkg": "@byteowls/capacitor-filesharer", - "classpath": "com.byteowls.capacitor.filesharer.FileSharerPlugin" - }, - { - "pkg": "@capacitor-community/camera-preview", - "classpath": "com.ahm.capacitor.camera.preview.CameraPreview" - }, - { - "pkg": "@capacitor/app", - "classpath": "com.capacitorjs.plugins.app.AppPlugin" - }, - { - "pkg": "@capacitor/browser", - "classpath": "com.capacitorjs.plugins.browser.BrowserPlugin" - }, - { - "pkg": "@capacitor/camera", - "classpath": "com.capacitorjs.plugins.camera.CameraPlugin" - }, - { - "pkg": "@capacitor/device", - "classpath": "com.capacitorjs.plugins.device.DevicePlugin" - }, - { - "pkg": "@capacitor/filesystem", - "classpath": "com.capacitorjs.plugins.filesystem.FilesystemPlugin" - }, - { - "pkg": "@capacitor/haptics", - "classpath": "com.capacitorjs.plugins.haptics.HapticsPlugin" - }, - { - "pkg": "@capacitor/keyboard", - "classpath": "com.capacitorjs.plugins.keyboard.KeyboardPlugin" - }, - { - "pkg": "@capacitor/local-notifications", - "classpath": "com.capacitorjs.plugins.localnotifications.LocalNotificationsPlugin" - }, - { - "pkg": "@capacitor/network", - "classpath": "com.capacitorjs.plugins.network.NetworkPlugin" - }, - { - "pkg": "@capacitor/push-notifications", - "classpath": "com.capacitorjs.plugins.pushnotifications.PushNotificationsPlugin" - }, - { - "pkg": "@capacitor/share", - "classpath": "com.capacitorjs.plugins.share.SharePlugin" - }, - { - "pkg": "@capacitor/storage", - "classpath": "com.capacitorjs.plugins.storage.StoragePlugin" - }, - { - "pkg": "capacitor-voice-recorder", - "classpath": "com.tchvu3.capacitorvoicerecorder.VoiceRecorder" - }, - { - "pkg": "capacitor2-file-picker", - "classpath": "com.devmantosh.filepicker.FilePicker" - } -] diff --git a/android-copy/app/src/main/java/com/capacitorjs/app/testapp/MainActivity.java b/android-copy/app/src/main/java/com/capacitorjs/app/testapp/MainActivity.java deleted file mode 100644 index 6ce0f538f..000000000 --- a/android-copy/app/src/main/java/com/capacitorjs/app/testapp/MainActivity.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.capacitorjs.app.testapp; - -import com.getcapacitor.BridgeActivity; - -public class MainActivity extends BridgeActivity {} diff --git a/android-copy/app/src/main/res/drawable-land-hdpi/splash.png b/android-copy/app/src/main/res/drawable-land-hdpi/splash.png deleted file mode 100644 index e31573b4f..000000000 Binary files a/android-copy/app/src/main/res/drawable-land-hdpi/splash.png and /dev/null differ diff --git a/android-copy/app/src/main/res/drawable-land-mdpi/splash.png b/android-copy/app/src/main/res/drawable-land-mdpi/splash.png deleted file mode 100644 index f7a64923e..000000000 Binary files a/android-copy/app/src/main/res/drawable-land-mdpi/splash.png and /dev/null differ diff --git a/android-copy/app/src/main/res/drawable-land-xhdpi/splash.png b/android-copy/app/src/main/res/drawable-land-xhdpi/splash.png deleted file mode 100644 index 807725501..000000000 Binary files a/android-copy/app/src/main/res/drawable-land-xhdpi/splash.png and /dev/null differ diff --git a/android-copy/app/src/main/res/drawable-land-xxhdpi/splash.png b/android-copy/app/src/main/res/drawable-land-xxhdpi/splash.png deleted file mode 100644 index 14c6c8fe3..000000000 Binary files a/android-copy/app/src/main/res/drawable-land-xxhdpi/splash.png and /dev/null differ diff --git a/android-copy/app/src/main/res/drawable-land-xxxhdpi/splash.png b/android-copy/app/src/main/res/drawable-land-xxxhdpi/splash.png deleted file mode 100644 index 244ca2506..000000000 Binary files a/android-copy/app/src/main/res/drawable-land-xxxhdpi/splash.png and /dev/null differ diff --git a/android-copy/app/src/main/res/drawable-port-hdpi/splash.png b/android-copy/app/src/main/res/drawable-port-hdpi/splash.png deleted file mode 100644 index 74faaa583..000000000 Binary files a/android-copy/app/src/main/res/drawable-port-hdpi/splash.png and /dev/null differ diff --git a/android-copy/app/src/main/res/drawable-port-mdpi/splash.png b/android-copy/app/src/main/res/drawable-port-mdpi/splash.png deleted file mode 100644 index e944f4ad4..000000000 Binary files a/android-copy/app/src/main/res/drawable-port-mdpi/splash.png and /dev/null differ diff --git a/android-copy/app/src/main/res/drawable-port-xhdpi/splash.png b/android-copy/app/src/main/res/drawable-port-xhdpi/splash.png deleted file mode 100644 index 564a82ff9..000000000 Binary files a/android-copy/app/src/main/res/drawable-port-xhdpi/splash.png and /dev/null differ diff --git a/android-copy/app/src/main/res/drawable-port-xxhdpi/splash.png b/android-copy/app/src/main/res/drawable-port-xxhdpi/splash.png deleted file mode 100644 index bfabe6871..000000000 Binary files a/android-copy/app/src/main/res/drawable-port-xxhdpi/splash.png and /dev/null differ diff --git a/android-copy/app/src/main/res/drawable-port-xxxhdpi/splash.png b/android-copy/app/src/main/res/drawable-port-xxxhdpi/splash.png deleted file mode 100644 index 692907126..000000000 Binary files a/android-copy/app/src/main/res/drawable-port-xxxhdpi/splash.png and /dev/null differ diff --git a/android-copy/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/android-copy/app/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index c7bd21dbd..000000000 --- a/android-copy/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/android-copy/app/src/main/res/drawable/ic_launcher_background.xml b/android-copy/app/src/main/res/drawable/ic_launcher_background.xml deleted file mode 100644 index d5fccc538..000000000 --- a/android-copy/app/src/main/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/android-copy/app/src/main/res/drawable/splash.png b/android-copy/app/src/main/res/drawable/splash.png deleted file mode 100644 index f7a64923e..000000000 Binary files a/android-copy/app/src/main/res/drawable/splash.png and /dev/null differ diff --git a/android-copy/app/src/main/res/layout/activity_main.xml b/android-copy/app/src/main/res/layout/activity_main.xml deleted file mode 100644 index b5ad13870..000000000 --- a/android-copy/app/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/android-copy/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android-copy/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index 036d09bc5..000000000 --- a/android-copy/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/android-copy/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android-copy/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index 036d09bc5..000000000 --- a/android-copy/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/android-copy/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android-copy/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index c023e5059..000000000 Binary files a/android-copy/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/android-copy/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png deleted file mode 100644 index 2127973b2..000000000 Binary files a/android-copy/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android-copy/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index b441f37d6..000000000 Binary files a/android-copy/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android-copy/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 72905b854..000000000 Binary files a/android-copy/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/android-copy/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png deleted file mode 100644 index 8ed0605c2..000000000 Binary files a/android-copy/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android-copy/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index 9502e47a2..000000000 Binary files a/android-copy/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android-copy/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 4d1e07710..000000000 Binary files a/android-copy/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/android-copy/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png deleted file mode 100644 index df0f15880..000000000 Binary files a/android-copy/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android-copy/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 853db043d..000000000 Binary files a/android-copy/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android-copy/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 6cdf97c11..000000000 Binary files a/android-copy/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android-copy/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 2960cbb61..000000000 Binary files a/android-copy/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android-copy/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index 8e3093a86..000000000 Binary files a/android-copy/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android-copy/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 46de6e255..000000000 Binary files a/android-copy/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/android-copy/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png deleted file mode 100644 index d2ea9abed..000000000 Binary files a/android-copy/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/android-copy/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android-copy/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index a40d73e9c..000000000 Binary files a/android-copy/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/android-copy/app/src/main/res/values/ic_launcher_background.xml b/android-copy/app/src/main/res/values/ic_launcher_background.xml deleted file mode 100644 index c5d5899fd..000000000 --- a/android-copy/app/src/main/res/values/ic_launcher_background.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - #FFFFFF - \ No newline at end of file diff --git a/android-copy/app/src/main/res/values/strings.xml b/android-copy/app/src/main/res/values/strings.xml deleted file mode 100644 index 4b39c98c3..000000000 --- a/android-copy/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - capacitor-testapp - capacitor-testapp - com.capacitorjs.app.testapp - com.capacitorjs.app.testapp - diff --git a/android-copy/app/src/main/res/values/styles.xml b/android-copy/app/src/main/res/values/styles.xml deleted file mode 100644 index bb45498f6..000000000 --- a/android-copy/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android-copy/app/src/main/res/xml/config.xml b/android-copy/app/src/main/res/xml/config.xml deleted file mode 100644 index 62443a749..000000000 --- a/android-copy/app/src/main/res/xml/config.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/android-copy/app/src/main/res/xml/file_paths.xml b/android-copy/app/src/main/res/xml/file_paths.xml deleted file mode 100644 index bd0c4d80d..000000000 --- a/android-copy/app/src/main/res/xml/file_paths.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/android-copy/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java b/android-copy/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java deleted file mode 100644 index 029732784..000000000 --- a/android-copy/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.getcapacitor.myapp; - -import static org.junit.Assert.*; - -import org.junit.Test; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} diff --git a/android-copy/build.gradle b/android-copy/build.gradle deleted file mode 100644 index ad085c345..000000000 --- a/android-copy/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - - repositories { - google() - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' - classpath 'com.google.gms:google-services:4.3.5' - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -apply from: "variables.gradle" - -allprojects { - repositories { - google() - jcenter() - } -} - -task clean(type: Delete) { - delete rootProject.buildDir -} diff --git a/android-copy/capacitor.settings.gradle b/android-copy/capacitor.settings.gradle deleted file mode 100644 index 8284edc48..000000000 --- a/android-copy/capacitor.settings.gradle +++ /dev/null @@ -1,51 +0,0 @@ -// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN -include ':capacitor-android' -project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor') - -include ':byteowls-capacitor-filesharer' -project(':byteowls-capacitor-filesharer').projectDir = new File('../node_modules/@byteowls/capacitor-filesharer/android') - -include ':capacitor-community-camera-preview' -project(':capacitor-community-camera-preview').projectDir = new File('../node_modules/@capacitor-community/camera-preview/android') - -include ':capacitor-app' -project(':capacitor-app').projectDir = new File('../node_modules/@capacitor/app/android') - -include ':capacitor-browser' -project(':capacitor-browser').projectDir = new File('../node_modules/@capacitor/browser/android') - -include ':capacitor-camera' -project(':capacitor-camera').projectDir = new File('../node_modules/@capacitor/camera/android') - -include ':capacitor-device' -project(':capacitor-device').projectDir = new File('../node_modules/@capacitor/device/android') - -include ':capacitor-filesystem' -project(':capacitor-filesystem').projectDir = new File('../node_modules/@capacitor/filesystem/android') - -include ':capacitor-haptics' -project(':capacitor-haptics').projectDir = new File('../node_modules/@capacitor/haptics/android') - -include ':capacitor-keyboard' -project(':capacitor-keyboard').projectDir = new File('../node_modules/@capacitor/keyboard/android') - -include ':capacitor-local-notifications' -project(':capacitor-local-notifications').projectDir = new File('../node_modules/@capacitor/local-notifications/android') - -include ':capacitor-network' -project(':capacitor-network').projectDir = new File('../node_modules/@capacitor/network/android') - -include ':capacitor-push-notifications' -project(':capacitor-push-notifications').projectDir = new File('../node_modules/@capacitor/push-notifications/android') - -include ':capacitor-share' -project(':capacitor-share').projectDir = new File('../node_modules/@capacitor/share/android') - -include ':capacitor-storage' -project(':capacitor-storage').projectDir = new File('../node_modules/@capacitor/storage/android') - -include ':capacitor-voice-recorder' -project(':capacitor-voice-recorder').projectDir = new File('../node_modules/capacitor-voice-recorder/android') - -include ':capacitor2-file-picker' -project(':capacitor2-file-picker').projectDir = new File('../node_modules/capacitor2-file-picker/android') diff --git a/android-copy/gradle.properties b/android-copy/gradle.properties deleted file mode 100644 index 0566c221d..000000000 --- a/android-copy/gradle.properties +++ /dev/null @@ -1,24 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx1536m - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true - -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true diff --git a/android-copy/gradle/wrapper/gradle-wrapper.jar b/android-copy/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index e708b1c02..000000000 Binary files a/android-copy/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/android-copy/gradle/wrapper/gradle-wrapper.properties b/android-copy/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 3c4101c3e..000000000 --- a/android-copy/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/android-copy/gradlew b/android-copy/gradlew deleted file mode 100644 index 4f906e0c8..000000000 --- a/android-copy/gradlew +++ /dev/null @@ -1,185 +0,0 @@ -#!/usr/bin/env sh - -# -# Copyright 2015 the original author or authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -exec "$JAVACMD" "$@" diff --git a/android-copy/gradlew.bat b/android-copy/gradlew.bat deleted file mode 100644 index 107acd32c..000000000 --- a/android-copy/gradlew.bat +++ /dev/null @@ -1,89 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/android-copy/settings.gradle b/android-copy/settings.gradle deleted file mode 100644 index 3b4431d77..000000000 --- a/android-copy/settings.gradle +++ /dev/null @@ -1,5 +0,0 @@ -include ':app' -include ':capacitor-cordova-android-plugins' -project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') - -apply from: 'capacitor.settings.gradle' \ No newline at end of file diff --git a/android-copy/variables.gradle b/android-copy/variables.gradle deleted file mode 100644 index 967549c54..000000000 --- a/android-copy/variables.gradle +++ /dev/null @@ -1,14 +0,0 @@ -ext { - minSdkVersion = 21 - compileSdkVersion = 30 - targetSdkVersion = 30 - androidxActivityVersion = '1.2.0' - androidxAppCompatVersion = '1.2.0' - androidxCoordinatorLayoutVersion = '1.1.0' - androidxCoreVersion = '1.3.2' - androidxFragmentVersion = '1.3.0' - junitVersion = '4.13.1' - androidxJunitVersion = '1.1.2' - androidxEspressoCoreVersion = '3.3.0' - cordovaAndroidVersion = '7.0.0' -} \ No newline at end of file diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle index b2a513877..230e0d62d 100644 --- a/android/app/capacitor.build.gradle +++ b/android/app/capacitor.build.gradle @@ -26,6 +26,7 @@ dependencies { implementation project(':capacitor-voice-recorder') implementation project(':capacitor2-file-picker') implementation "com.soundcloud.android:android-crop:1.0.0@aar" + implementation "androidx.appcompat:appcompat:1.0.0" implementation "com.android.support:support-v4:27.+" implementation "com.squareup.okhttp:okhttp-urlconnection:2+" } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 66301e3a7..e55b6e225 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ - + diff --git a/android/app/src/main/assets/capacitor.config.json b/android/app/src/main/assets/capacitor.config.json index 2399c4927..4f2d5e665 100644 --- a/android/app/src/main/assets/capacitor.config.json +++ b/android/app/src/main/assets/capacitor.config.json @@ -16,5 +16,8 @@ "sound" ] } + }, + "server": { + "url": "http://192.168.0.69:8100" } } diff --git a/android/app/src/main/res/xml/config.xml b/android/app/src/main/res/xml/config.xml index ec1b10509..48aee8664 100644 --- a/android/app/src/main/res/xml/config.xml +++ b/android/app/src/main/res/xml/config.xml @@ -10,6 +10,10 @@ + + + + diff --git a/config.xml b/config.xml index 6375d37c8..17e317687 100644 --- a/config.xml +++ b/config.xml @@ -22,7 +22,7 @@ - + @@ -46,49 +46,6 @@ - - 3077110622 - 3619450036 - - - - - - 1979143311 - 1328564293 - - - - - - - 0 - - - - - - 0 - - - - - - 0 - - - - - 0 - - 8.0.0.00-20210905-154328 - - - - - en - /adapters/MobileAPIProxy - 2 diff --git a/package-lock.json b/package-lock.json index bbedb3ade..3c9b825e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -814,6 +814,21 @@ } } }, + "@awesome-cordova-plugins/document-viewer": { + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/document-viewer/-/document-viewer-5.41.0.tgz", + "integrity": "sha512-90zZvtYuCHTvK55LDoESd7F3OtuDj8AJ0C0Owz+PqZq2J2fUP4fzd7lJE89Cp6vZet7rjiOz7d/8hbTxKMWsdg==", + "requires": { + "@types/cordova": "^0.0.34" + }, + "dependencies": { + "@types/cordova": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", + "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" + } + } + }, "@awesome-cordova-plugins/file": { "version": "5.41.0", "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/file/-/file-5.41.0.tgz", @@ -8549,6 +8564,11 @@ "integrity": "sha512-FUHI6eEVeoz2VkxbF0P56QlUQLGzXcvw3i4xuXyM9gEct6Y+FA3Xzgl2pJTZcTg5wRqLWzN08kgNoHPkom15pw==", "dev": true }, + "cordova-plugin-document-viewer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-document-viewer/-/cordova-plugin-document-viewer-1.0.0.tgz", + "integrity": "sha512-LQZiWVU543rLJ0wYoawSdMrAfoxBLWCx8a2CuQjFeav4U9CN16QAh1VHetHaHicp5ZEwTC7Zq/0TNbak6A7bVw==" + }, "cordova-plugin-file": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/cordova-plugin-file/-/cordova-plugin-file-6.0.2.tgz", diff --git a/package.json b/package.json index 0cfcef2bb..3ea0653a1 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "@angular/platform-browser-dynamic": "~12.1.2", "@angular/router": "~12.1.2", "@awesome-cordova-plugins/core": "^5.40.0", + "@awesome-cordova-plugins/document-viewer": "^5.41.0", "@awesome-cordova-plugins/file": "^5.41.0", "@awesome-cordova-plugins/file-opener": "^5.41.0", "@awesome-cordova-plugins/multiple-document-picker": "^5.40.0", @@ -112,6 +113,7 @@ "cordova": "^10.0.0", "cordova-plugin-crop": "^0.4.0", "cordova-plugin-dbcopy": "git+https://github.com/an-rahulpandey/cordova-plugin-dbcopy.git", + "cordova-plugin-document-viewer": "^1.0.0", "cordova-plugin-file": "^6.0.2", "cordova-plugin-file-opener2": "^3.0.5", "cordova-plugin-filepath": "^1.5.8", diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 3ed60f41f..9a2d12d50 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -33,6 +33,7 @@ import {MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core'; import { NgxMatDateFormats, NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker'; import { Network } from '@ionic-native/network/ngx'; import { MultipleDocumentsPicker } from '@awesome-cordova-plugins/multiple-document-picker/ngx'; +import { DocumentViewer } from '@awesome-cordova-plugins/document-viewer/ngx'; @@ -143,7 +144,8 @@ import { FirebaseX } from '@ionic-native/firebase-x/ngx'; */ NgxImageCompressService, MultipleDocumentsPicker, NgxExtendedPdfViewerModule, - FileOpener + FileOpener, + DocumentViewer ], bootstrap: [AppComponent], diff --git a/src/app/modals/view-media/view-media.page.html b/src/app/modals/view-media/view-media.page.html index 81ca77286..9e3d470b9 100644 --- a/src/app/modals/view-media/view-media.page.html +++ b/src/app/modals/view-media/view-media.page.html @@ -25,7 +25,7 @@
- { console.log(recordData); - if(recordData?.value?.recordDataBase64.includes('data:audio')){ + if (recordData?.value?.recordDataBase64.includes('data:audio')) { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData?.value?.recordDataBase64); } - else{ + else { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`); } }); - } catch (error) {} + } catch (error) { } } @@ -275,7 +279,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { } this.recording = false; VoiceRecorder.stopRecording().then(async (result: RecordingData) => { - console.log('==================================',result); + console.log('==================================', result); this.recording = false; if (result.value && result.value.recordDataBase64) { @@ -283,8 +287,8 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { //console.log(recordData); const fileName = new Date().getTime() + ".mp3"; //Save file - await this.storage.set('fileName',fileName) - this.storage.set('recordData',result).then(() => { + await this.storage.set('fileName', fileName) + this.storage.set('recordData', result).then(() => { console.log('Audio recorded saved', result); setTimeout(async () => { @@ -309,7 +313,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { - async deleteRecording(){ + async deleteRecording() { this.storage.remove('fileName'); this.storage.remove('recordData'); @@ -444,17 +448,17 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { var byteArrays = new Array(slicesCount); for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) { - var begin = sliceIndex * sliceSize; - var end = Math.min(begin + sliceSize, bytesLength); + var begin = sliceIndex * sliceSize; + var end = Math.min(begin + sliceSize, bytesLength); - var bytes = new Array(end - begin); - for (var offset = begin, i = 0; offset < end; ++i, ++offset) { - bytes[i] = byteCharacters[offset].charCodeAt(0); - } - byteArrays[sliceIndex] = new Uint8Array(bytes); + var bytes = new Array(end - begin); + for (var offset = begin, i = 0; offset < end; ++i, ++offset) { + bytes[i] = byteCharacters[offset].charCodeAt(0); + } + byteArrays[sliceIndex] = new Uint8Array(bytes); } return new Blob(byteArrays, { type: contentType }); -} + } async sendAudio(fileName) { @@ -463,35 +467,35 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { this.storage.get('recordData').then((recordData) => { console.log(recordData); audioFile = recordData; - if(recordData?.value?.recordDataBase64.includes('data:audio')){ + if (recordData?.value?.recordDataBase64.includes('data:audio')) { this.audioRecorded = recordData?.value?.recordDataBase64; } - else{ + else { this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`; } - //Converting base64 to blob - const encodedData = btoa(this.audioRecorded); - const blob = this.base64toBlob(encodedData, recordData.value.mimeType) - console.log(blob) - const formData = new FormData(); - formData.append("blobFile", blob); + //Converting base64 to blob + const encodedData = btoa(this.audioRecorded); + const blob = this.base64toBlob(encodedData, recordData.value.mimeType) + console.log(blob) + const formData = new FormData(); + formData.append("blobFile", blob); - this.wsChatMethodsService.getGroupRoom(roomId).send({ - file: { - "type": "application/audio", - "msDuration":audioFile.value.msDuration, - "mimeType":audioFile.value.mimeType, - }, - attachments: [{ - "title": fileName , - "title_link_download": true, - "type": "audio" - }], - temporaryData: formData - }) + this.wsChatMethodsService.getGroupRoom(roomId).send({ + file: { + "type": "application/audio", + "msDuration": audioFile.value.msDuration, + "mimeType": audioFile.value.mimeType, + }, + attachments: [{ + "title": fileName, + "title_link_download": true, + "type": "audio" + }], + temporaryData: formData + }) - }); + }); this.deleteRecording(); } @@ -692,37 +696,60 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { } - async addFileToChat(types: typeof FileType[] ) { + async addFileToChat(types: typeof FileType[]) { const roomId = this.roomId const file: any = await this.fileService.getFileFromDevice(types); - console.log('Add file', file) - /* const imageData = await this.fileToBase64Service.convert(file).then((filee) => { - console.log('Add file', filee) - }) */ - const response = await fetch(file); - const blob = await response.blob(); - console.log('Add file', blob) - const formData = new FormData(); - formData.append("blobFile", blob); + console.log('Add file', JSON.stringify(await this.getBase64(file))) - this.wsChatMethodsService.getGroupRoom(roomId).send({ - file: { - "type": file.type, - "guid": '', - }, - attachments: [{ - "title": file.name , - "name": file.name , - // "text": "description", - //"image_url": file.base64String, // rocketchat - "title_link_download": false, - }], - temporaryData: formData - }) + if (file.type == "application/pdf") { + const encodedData = btoa(JSON.stringify(await this.getBase64(file))); + const blob = this.base64toBlob(encodedData, 'application/pdf') + console.log('Add Blob file', blob) + const formData = new FormData(); + formData.append('blobFile', blob); + console.log(formData) + + this.wsChatMethodsService.getGroupRoom(roomId).send({ + file: { + "type": file.type, + "guid": '', + }, + attachments: [{ + "title": file.name, + "name": file.name, + // "text": "description", + "title_link_download": false, + }], + temporaryData: formData + }); + + } else { + console.log('File type invalid') + } + + } + + getFileReader(): FileReader { + const fileReader = new FileReader(); + const zoneOriginalInstance = (fileReader as any)["__zone_symbol__originalInstance"]; + return zoneOriginalInstance || fileReader; + } + + getBase64(file) { + var reader = this.getFileReader(); + reader.readAsDataURL(file); + return new Promise(resolve => { + reader.onload = function () { + resolve(reader.result) + }; + reader.onerror = function (error) { + console.log('Error: ', error); + }; + }); } @@ -980,27 +1007,86 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { card.el.style['z-index'] = 11; } + b64toBlob(b64Data, contentType) { + contentType = contentType || ''; + var sliceSize = 512; + b64Data = b64Data.replace(/^[^,]+,/, ''); + b64Data = b64Data.replace(/\s/g, ''); + var byteCharacters = window.atob(b64Data); + var byteArrays = []; + + for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) { + var slice = byteCharacters.slice(offset, offset + sliceSize); + + var byteNumbers = new Array(slice.length); + for (var i = 0; i < slice.length; i++) { + byteNumbers[i] = slice.charCodeAt(i); + } + + var byteArray = new Uint8Array(byteNumbers); + + byteArrays.push(byteArray); + } + + var blob = new Blob(byteArrays, { type: contentType }); + return blob; + } + + openFile(pdfString, filename) { + const blob = this.b64toBlob(pdfString, 'application/pdf') + let pathFile = '' + const fileName = filename + const contentFile = blob + if (this.platform.is('ios')) { + pathFile = this.file.documentsDirectory + } else { + pathFile = this.file.externalRootDirectory + } + console.log(pdfString) + console.log(pathFile) + console.log(contentFile) + this.file + .writeFile(pathFile, fileName, contentFile, { replace: true }) + .then(success => { + this.fileOpener + .open(pathFile + fileName, 'application/pdf') + .then(() => console.log('File is opened')) + .catch(e => console.log('Error opening file', e)); + }) + .catch(e => console.log('Error writing file', e)) + } + downloadFileMsg(msg: MessageService) { msg.downloadFileMsg() } async openPreview(msg: MessageService) { - if (!msg.attachments[0].image_url ||msg.attachments[0].image_url === null || msg.attachments[0].image_url === '') { + if (!msg.attachments[0].image_url || msg.attachments[0].image_url === null || msg.attachments[0].image_url === '') { this.downloadFileMsg(msg) } else { - const modal = await this.modalController.create({ - component: ViewMediaPage, - cssClass: 'modal modal-desktop', - componentProps: { - image: msg.attachments[0].image_url, - type: msg.file.type, - username: msg.u.name, - _updatedAt: msg._updatedAt - } - }); - modal.present(); + + var str = msg.attachments[0].image_url; + str = str.substring(1, ((str.length) - 1)); + + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + + const modal = await this.modalController.create({ + component: ViewMediaPage, + cssClass: 'modal modal-desktop', + componentProps: { + image: str, + type: msg.file.type, + username: msg.u.name, + _updatedAt: msg._updatedAt + } + }); + modal.present(); + + } else { + this.openFile(str, msg.attachments[0].name); + } } } @@ -1009,7 +1095,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { console.log(msg); if (!msg.attachments[0].title_link || msg.attachments[0].title_link === null || msg.attachments[0].title_link === '') { this.downloadFileMsg(msg) - } else {} + } else { } } } diff --git a/src/app/pages/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts index 53053bd4d..f18b456ac 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -46,6 +46,7 @@ import { DomSanitizer } from '@angular/platform-browser'; import { StringDecoder } from 'string_decoder'; import { File } from '@awesome-cordova-plugins/file/ngx'; import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; +import { DocumentViewer } from '@awesome-cordova-plugins/document-viewer/ngx'; const IMAGE_DIR = 'stored-images'; @@ -137,6 +138,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { private file: File, private fileOpener: FileOpener, private sanitiser: DomSanitizer, + private document: DocumentViewer ) { this.loggedUser = authService.ValidatedUserChat['data']; this.roomId = this.navParams.get('roomId'); @@ -772,82 +774,38 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { async addFileToChat(types: typeof FileType[]) { - /* this.multipleDocumentsPicker.pick(2) - .then(async (res: any) => { - this.files = JSON.parse(res) - console.log('1 Add file', this.files[0].uri) - console.log('1 Add file', JSON.stringify(this.files[0].uri)) - - - - const downloadPath = ( - this.platform.is('android') - ) ? this.file.externalDataDirectory : this.file.documentsDirectory; - - this.file.writeFile(downloadPath, 'YHaaa2.pdf', 'Eudes Inácio').then((fil)=> { - console.log('write file', fil) - }) - - - this.fileToBase64('GS_FOLHETO_AUTOMOVEL_AC.pdf',this.files[0].uri).then( - (data) => console.log(data) - ); - - - const blob = new Blob([res]) - console.log('Add Blob file', blob) - - const formData = new FormData(); - formData.append("blobFile", blob); - console.log(formData) - - this.wsChatMethodsService.getDmRoom(this.roomId).send({ - file: { - "type": 'application/pdf', - "guid": '', - }, - attachments: [{ - "title": 'pdf1', - "name": 'pdf1', - // "text": "description", - "title_link_download": false, - }], - temporaryData: formData - }) - }) - .catch((error: any) => console.error(error)); */ - const roomId = this.roomId const file: any = await this.fileService.getFileFromDevice(types); console.log('Add file', JSON.stringify(await this.getBase64(file))) - const encodedData = btoa(JSON.stringify(await this.getBase64(file))); - const blob = this.base64toBlob(encodedData, 'application/pdf') - console.log('Add Blob file', blob) - //console.log('Add Blob file', await this.blobToBase64(blob)) - //console.log('Add Blob file', await this.fileToByteArray(file)) + if (file.type == "application/pdf") { + const encodedData = btoa(JSON.stringify(await this.getBase64(file))); + const blob = this.base64toBlob(encodedData, 'application/pdf') + console.log('Add Blob file', blob) + const formData = new FormData(); + formData.append('blobFile', blob); + console.log(formData) - const formData = new FormData(); - formData.append('blobFile', blob); - console.log(formData) - - this.wsChatMethodsService.getDmRoom(roomId).send({ - file: { - "type": file.type, - "guid": '', - }, - attachments: [{ - "title": file.name, - "name": file.name, - // "text": "description", - "title_link_download": false, - }], - temporaryData: formData - }); + this.wsChatMethodsService.getDmRoom(roomId).send({ + file: { + "type": file.type, + "guid": '', + }, + attachments: [{ + "title": file.name, + "name": file.name, + // "text": "description", + "title_link_download": false, + }], + temporaryData: formData + }); + } else { + console.log('File type invalid') + } @@ -867,34 +825,6 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { } - fileToByteArray(file) { - return new Promise((resolve, reject) => { - try { - let reader = this.getFileReader(); - //var file = new File([filepath], filename); - reader.readAsBinaryString(file); - reader.onloadend = (evt) => { - console.log(evt.target.result) - resolve(evt.target.result); // Convert data to base64 - reader.readAsDataURL(file); - } - } - catch (e) { - reject(e); - } - }) - } - - blobToBase64 = blob => { - const reader = this.getFileReader(); - reader.readAsDataURL(blob); - return new Promise(resolve => { - reader.onloadend = () => { - resolve(reader.result); - }; - }); - }; - async openChatOptions(ev?: any) { const roomId = this.roomId console.log('MOBILE CHAT OPTION', this.members); @@ -1016,82 +946,47 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { downloadFileMsg(msg: MessageService) { - console.log('FILE TYPE', msg.file.type) - this.downloadFile = ""; - //if (msg.file.type == "application/img") { - this.AttachmentsService.downloadFile(msg.file.guid).subscribe(async (event) => { - console.log('FILE TYPE 22', msg.file.guid) - var name = msg.file.guid; - - if (event.type === HttpEventType.DownloadProgress) { - this.downloadProgess = Math.round((100 * event.loaded) / event.total); - console.log(this.downloadProgess) - console.log('FILE TYPE 33', msg.file.type) - } else if (event.type === HttpEventType.Response) { - if (msg.file.type == "application/img") { - this.downloadFile = 'data:image/jpeg;base64,' + btoa(new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), '')); - } else if (msg.file.type == "application/pdf") { - //console.log('TRY THIS LIBRARY ',fromByteArray(event.body)); - this.downloadFile = new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), ''); - //this.downloadFile = event.body - console.log(this.downloadFile) - } - - msg.attachments[0] = { - image_url: this.downloadFile, - name: msg.attachments[0].name, - title: msg.attachments[0].title, - title_link_download: msg.attachments[0].title_link_download, - ts: msg.attachments[0].ts - } - this.sqlservice.updateChatMsg(msg._id, this.downloadFile); - } - - }); - - //} - + msg.downloadFileMsg(); } - _arrayBufferToBase64(buffer) { - var binary = ''; - var bytes = new Uint8Array(buffer); - var len = bytes.byteLength; - for (var i = 0; i < len; i++) { - binary += String.fromCharCode(bytes[i]); - } - return window.btoa(binary); - } - - b64toBlob(b64Data, contentType, sliceSize) { + b64toBlob(b64Data, contentType) { contentType = contentType || ''; - sliceSize = sliceSize || 512; - const encodedData = btoa(b64Data); - var byteCharacters = atob(encodedData); + var sliceSize = 512; + b64Data = b64Data.replace(/^[^,]+,/, ''); + b64Data = b64Data.replace(/\s/g, ''); + var byteCharacters = window.atob(b64Data); var byteArrays = []; + for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) { var slice = byteCharacters.slice(offset, offset + sliceSize); + var byteNumbers = new Array(slice.length); for (var i = 0; i < slice.length; i++) { byteNumbers[i] = slice.charCodeAt(i); } + var byteArray = new Uint8Array(byteNumbers); + byteArrays.push(byteArray); } + var blob = new Blob(byteArrays, { type: contentType }); return blob; } - getUserDataSheet(pdfString) { - const blob = this.b64toBlob(pdfString, 'application/pdf', 512) + openFile(pdfString, filename) { + const blob = this.b64toBlob(pdfString, 'application/pdf') let pathFile = '' - const fileName = 'myPdf.pdf' + const fileName = filename const contentFile = blob if (this.platform.is('ios')) { pathFile = this.file.documentsDirectory } else { pathFile = this.file.externalRootDirectory } + console.log(pdfString) + console.log(pathFile) + console.log(contentFile) this.file .writeFile(pathFile, fileName, contentFile, { replace: true }) .then(success => { @@ -1115,7 +1010,24 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { var str = msg.attachments[0].image_url; str = str.substring(1, ((str.length) - 1)); - this.getUserDataSheet(str); + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + + const modal = await this.modalController.create({ + component: ViewMediaPage, + cssClass: 'modal modal-desktop', + componentProps: { + image: str, + type: msg.file.type, + username: msg.u.name, + _updatedAt: msg._updatedAt + } + }); + modal.present(); + + } else { + this.openFile(str, msg.attachments[0].name); + } + } } diff --git a/src/app/services/chat/message.service.ts b/src/app/services/chat/message.service.ts index de1e78de2..94439411b 100644 --- a/src/app/services/chat/message.service.ts +++ b/src/app/services/chat/message.service.ts @@ -235,7 +235,8 @@ export class MessageService { downloadFile = 'data:image/jpeg;base64,' + btoa(new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), '')); } else if (this.file.type === 'application/pdf') { - downloadFile = event.body as any; + downloadFile = new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), ''); + console.log(downloadFile) } else if (this.file.type == 'application/audio') { downloadFile = new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), ''); } diff --git a/src/app/shared/chat/group-messages/group-messages.page.html b/src/app/shared/chat/group-messages/group-messages.page.html index 2e0a784e4..61ac8afd6 100644 --- a/src/app/shared/chat/group-messages/group-messages.page.html +++ b/src/app/shared/chat/group-messages/group-messages.page.html @@ -217,9 +217,9 @@ - + diff --git a/src/app/shared/chat/group-messages/group-messages.page.ts b/src/app/shared/chat/group-messages/group-messages.page.ts index 46f3658e9..283ddeefa 100644 --- a/src/app/shared/chat/group-messages/group-messages.page.ts +++ b/src/app/shared/chat/group-messages/group-messages.page.ts @@ -94,8 +94,8 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe allowTyping = true; storedFileNames = []; lastAudioRecorded = ''; - audioRecorded:any = ""; - audioDownloaded:any = ""; + audioRecorded: any = ""; + audioDownloaded: any = ""; durationDisplay = ''; duration = 0; @@ -142,7 +142,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe this.showAvatar = false - setTimeout(()=>{ + setTimeout(() => { this.scrollToBottomClicked() this.showAvatar = true }, 50) @@ -152,7 +152,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe } ngOnInit() { - this.loggedUser=this.loggedUserChat; + this.loggedUser = this.loggedUserChat; setTimeout(() => { this.getRoomInfo(); }, 1000); @@ -260,7 +260,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe }, 1000) } - async getFile(fileName?:any){ + async getFile(fileName?: any) { const audioFile = await Filesystem.readFile({ path: fileName, directory: Directory.Data @@ -278,14 +278,14 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe this.storage.get('recordData').then((recordData) => { console.log(recordData); - if(recordData?.value?.recordDataBase64.includes('data:audio')){ + if (recordData?.value?.recordDataBase64.includes('data:audio')) { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData?.value?.recordDataBase64); } - else{ + else { this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`); } }); - } catch (error) {} + } catch (error) { } } @@ -317,8 +317,8 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe //console.log(recordData); const fileName = new Date().getTime() + ".mp3"; //Save file - this.storage.set('fileName',fileName); - this.storage.set('recordData',result).then(() => { + this.storage.set('fileName', fileName); + this.storage.set('recordData', result).then(() => { console.log('Audio recorded saved'); }) } @@ -328,7 +328,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe }, 1000); } - async deleteRecording(){ + async deleteRecording() { this.storage.remove('fileName'); this.storage.remove('recordData'); @@ -426,17 +426,17 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe var byteArrays = new Array(slicesCount); for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) { - var begin = sliceIndex * sliceSize; - var end = Math.min(begin + sliceSize, bytesLength); + var begin = sliceIndex * sliceSize; + var end = Math.min(begin + sliceSize, bytesLength); - var bytes = new Array(end - begin); - for (var offset = begin, i = 0; offset < end; ++i, ++offset) { - bytes[i] = byteCharacters[offset].charCodeAt(0); - } - byteArrays[sliceIndex] = new Uint8Array(bytes); + var bytes = new Array(end - begin); + for (var offset = begin, i = 0; offset < end; ++i, ++offset) { + bytes[i] = byteCharacters[offset].charCodeAt(0); + } + byteArrays[sliceIndex] = new Uint8Array(bytes); } return new Blob(byteArrays, { type: contentType }); -} + } async sendAudio(fileName) { const roomId = this.roomId @@ -444,36 +444,36 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe this.storage.get('recordData').then((recordData) => { console.log(recordData); audioFile = recordData; - if(recordData?.value?.recordDataBase64.includes('data:audio')){ + if (recordData?.value?.recordDataBase64.includes('data:audio')) { this.audioRecorded = recordData?.value?.recordDataBase64; } - else{ + else { this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`; } - //Converting base64 to blob - const encodedData = btoa(this.audioRecorded); - const blob = this.base64toBlob(encodedData, recordData.value.mimeType) - console.log(blob) - const formData = new FormData(); - formData.append("blobFile", blob); + //Converting base64 to blob + const encodedData = btoa(this.audioRecorded); + const blob = this.base64toBlob(encodedData, recordData.value.mimeType) + console.log(blob) + const formData = new FormData(); + formData.append("blobFile", blob); - this.wsChatMethodsService.getGroupRoom(roomId).send({ - file: { - "type": "application/audio", - "msDuration":audioFile.value.msDuration, - "mimeType":audioFile.value.mimeType, - }, - attachments: [{ - "title": fileName , - "title_link_download": true, - "type": "audio" - }], - temporaryData: formData - }) + this.wsChatMethodsService.getGroupRoom(roomId).send({ + file: { + "type": "application/audio", + "msDuration": audioFile.value.msDuration, + "mimeType": audioFile.value.mimeType, + }, + attachments: [{ + "title": fileName, + "title_link_download": true, + "type": "audio" + }], + temporaryData: formData + }) - }); + }); this.deleteRecording(); } @@ -724,7 +724,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe //const imageData = await this.fileToBase64Service.convert(file) //console.log('ADDFILECHAT', imageData) - const response = await fetch('data:image/jpeg;base64,'+ file.base64String!); + const response = await fetch('data:image/jpeg;base64,' + file.base64String!); const blob = await response.blob(); const formData = new FormData(); @@ -737,8 +737,8 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe }, temporaryData: formData, attachments: [{ - "title": file.path , - "image_url": 'data:image/jpeg;base64,' +file.base64String, + "title": file.path, + "image_url": 'data:image/jpeg;base64,' + file.base64String, "text": "description", "title_link_download": false, }] @@ -752,7 +752,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe const image = await this.CameraService.takePicture(); await this.fileService.saveImage(image) const lastphoto: any = await this.fileService.loadFiles(); - const { capturedImage, capturedImageTitle} = await this.fileService.loadFileData(lastphoto); + const { capturedImage, capturedImageTitle } = await this.fileService.loadFileData(lastphoto); const base64 = await fetch(capturedImage); const blob = await base64.blob(); @@ -765,7 +765,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe "guid": '' }, attachments: [{ - "title": capturedImageTitle , + "title": capturedImageTitle, "image_url": capturedImage, "text": "description", "title_link_download": false, @@ -796,13 +796,13 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe } }); await modal.present(); - modal.onDidDismiss().then(async res=>{ + modal.onDidDismiss().then(async res => { const data = res.data; - if(data.selected) { + if (data.selected) { this.wsChatMethodsService.getGroupRoom(roomId).send({ - file:{ + file: { "name": res.data.selected.Assunto, "type": "application/webtrix", "ApplicationId": res.data.selected.ApplicationType, @@ -828,7 +828,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe } }); } - async addFileToChatMobile(types: typeof FileType[] ) { + async addFileToChatMobile(types: typeof FileType[]) { const roomId = this.roomId const file = await Camera.getPhoto({ @@ -841,7 +841,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe //const imageData = await this.fileToBase64Service.convert(file) //console.log('ADDFILECHAT', imageData) - const response = await fetch('data:image/jpeg;base64,'+ file.base64String!); + const response = await fetch('data:image/jpeg;base64,' + file.base64String!); const blob = await response.blob(); const formData = new FormData(); @@ -854,8 +854,8 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe }, temporaryData: formData, attachments: [{ - "title": file.path , - "image_url": 'data:image/jpeg;base64,' +file.base64String, + "title": file.path, + "image_url": 'data:image/jpeg;base64,' + file.base64String, "text": "description", "title_link_download": false, }] @@ -864,39 +864,38 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe } - async addFileToChat(types: typeof FileType[] ) { + async addFileToChat(types: typeof FileType[]) { const roomId = this.roomId const file: any = await this.fileService.getFileFromDevice(types); console.log('Add file', file) - /* const imageData = await this.fileToBase64Service.convert(file).then((filee) => { - console.log('Add file', filee) - }) */ - const blob = new Blob([file],{type: file.type}) - console.log('Add file', blob) - const formData = new FormData(); - formData.append("blobFile", blob); + if (file.type == "application/pdf") { + + const blob = new Blob([file], { type: file.type }) + console.log('Add file', blob) + + const formData = new FormData(); + formData.append("blobFile", blob); - let pdfBase64; - this.blobToBase64(blob).then(res => { - console.log('Base64 pdf', res); this.wsChatMethodsService.getGroupRoom(roomId).send({ file: { "type": file.type, "guid": '', }, attachments: [{ - "title": file.name , - "name": file.name , - "image_url": res, + "title": file.name, + "name": file.name, + /* "image_url": res, */ // "text": "description", "title_link_download": false, }], temporaryData: formData }) - }); + } else { + console.log('File type invalid') + } } @@ -955,7 +954,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe } }); await modal.present(); - modal.onDidDismiss().then( async (res) => { + modal.onDidDismiss().then(async (res) => { console.log(res['data']); const roomId = this.roomId; @@ -999,15 +998,19 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe async openPreview(msg) { - if (!msg.attachments[0].image_url || msg.attachments[0].image_url === null || msg.attachments[0].image_url === '' ) { + if (!msg.attachments[0].image_url || msg.attachments[0].image_url === null || msg.attachments[0].image_url === '') { this.downloadFileMsg(msg) } else { + + var str = msg.attachments[0].image_url; + str = str.substring(1, ((str.length) - 1)); + const modal = await this.modalController.create({ component: ViewMediaPage, cssClass: 'modal modal-desktop', componentProps: { - image: msg.attachments[0].image_url, + image: str, type: msg.file.type, username: msg.u.name, _updatedAt: msg._updatedAt @@ -1022,7 +1025,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe console.log(msg); if (!msg.attachments[0].title_link || msg.attachments[0].title_link === null || msg.attachments[0].title_link === '') { this.downloadFileMsg(msg) - } else {} + } else { } } } diff --git a/src/app/shared/chat/messages/messages.page.html b/src/app/shared/chat/messages/messages.page.html index 7ec469275..8b88fc645 100644 --- a/src/app/shared/chat/messages/messages.page.html +++ b/src/app/shared/chat/messages/messages.page.html @@ -198,9 +198,9 @@ - + diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts index b13432140..1f401f016 100644 --- a/src/app/shared/chat/messages/messages.page.ts +++ b/src/app/shared/chat/messages/messages.page.ts @@ -375,31 +375,31 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy if (recordData.value.recordDataBase64.includes('data:audio')) { this.audioRecorded = recordData.value.recordDataBase64; } - else{ + else { this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`; } - //Converting base64 to blob - const encodedData = btoa(this.audioRecorded); - const blob = this.base64toBlob(encodedData, recordData.value.mimeType) - console.log(blob) - const formData = new FormData(); - formData.append("blobFile", blob); + //Converting base64 to blob + const encodedData = btoa(this.audioRecorded); + const blob = this.base64toBlob(encodedData, recordData.value.mimeType) + console.log(blob) + const formData = new FormData(); + formData.append("blobFile", blob); - this.wsChatMethodsService.getDmRoom(roomId).send({ - file: { - "type": "application/audio", - "msDuration": audioFile.value.msDuration, - "mimeType": audioFile.value.mimeType, - }, - attachments: [{ - "title": fileName, - "title_link_download": true, - "type": "audio" - }], - temporaryData: formData - }) + this.wsChatMethodsService.getDmRoom(roomId).send({ + file: { + "type": "application/audio", + "msDuration": audioFile.value.msDuration, + "mimeType": audioFile.value.mimeType, + }, + attachments: [{ + "title": fileName, + "title_link_download": true, + "type": "audio" + }], + temporaryData: formData + }) - }); + }); this.deleteRecording(); } @@ -768,19 +768,18 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy const file: any = await this.fileService.getFileFromDevice(types); - console.log('Add file', file) - /* const imageData = await this.fileToBase64Service.convert(file).then((filee) => { - console.log('Add file', filee) - }) */ - const blob = new Blob([file], { type: file.type }) - console.log('Add file', blob) + if (file.type == "application/pdf") { - const formData = new FormData(); - formData.append("blobFile", blob); + console.log('Add file', file) + /* const imageData = await this.fileToBase64Service.convert(file).then((filee) => { + console.log('Add file', filee) + }) */ + const blob = new Blob([file], { type: file.type }) + console.log('Add file', blob) + + const formData = new FormData(); + formData.append("blobFile", blob); - let pdfBase64; - this.blobToBase64(blob).then(res => { - console.log('Base64 pdf', res); this.wsChatMethodsService.getDmRoom(roomId).send({ file: { "type": file.type, @@ -795,7 +794,10 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy }], temporaryData: formData }) - }); + + } else { + console.log('File type invalid') + } } @@ -903,44 +905,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy downloadFileMsg(msg: MessageService) { - console.log('FILE TYPE', msg.file.type) - this.downloadFile = ""; - //if (msg.file.type == "application/img") { - this.AttachmentsService.downloadFile(msg.file.guid).subscribe(async (event) => { - console.log('FILE TYPE 22', msg.file.guid) - var name = msg.file.guid; - - if (event.type === HttpEventType.DownloadProgress) { - //this.downloadProgess = Math.round((100 * event.loaded) / event.total); - console.log('FILE TYPE 33', msg.file.type) - } else if (event.type === HttpEventType.Response) { - if (msg.file.type == "application/img") { - this.downloadFile = 'data:image/jpeg;base64,' + btoa(new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), '')); - } else if (msg.file.type === 'application/pdf') { - - this.downloadFile = new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), ''); - //console.log(this._arrayBufferToBase64(event.body)) - console.log(eval(this.downloadFile)) - } - - msg.attachments[0] = { - image_url: this.downloadFile, - name: msg.attachments[0].name, - title: msg.attachments[0].title, - title_link_download: msg.attachments[0].title_link_download, - ts: msg.attachments[0].ts - } - - // save the changes to the storage - //msg.save() - - - } - - }); - - // } - + msg.downloadFileMsg() } pdfPreview() {