chat retry
@@ -1,102 +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
|
|
||||||
variables.gradle
|
|
||||||
settings.gradle
|
|
||||||
gradlew
|
|
||||||
gradle/wrapper/gradle-wrapper.properties
|
|
||||||
gradle.properties
|
|
||||||
build.gradle
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="CompilerConfiguration">
|
|
||||||
<bytecodeTargetLevel target="1.8" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="Encoding">
|
|
||||||
<file url="file://$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" charset="UTF-8" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="RemoteRepositoriesConfiguration">
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="central" />
|
|
||||||
<option name="name" value="Maven Central repository" />
|
|
||||||
<option name="url" value="https://repo1.maven.org/maven2" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="jboss.community" />
|
|
||||||
<option name="name" value="JBoss Community repository" />
|
|
||||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="BintrayJCenter" />
|
|
||||||
<option name="name" value="BintrayJCenter" />
|
|
||||||
<option name="url" value="https://jcenter.bintray.com/" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="Google" />
|
|
||||||
<option name="name" value="Google" />
|
|
||||||
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="MavenRepo" />
|
|
||||||
<option name="name" value="MavenRepo" />
|
|
||||||
<option name="url" value="https://repo.maven.apache.org/maven2/" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="maven" />
|
|
||||||
<option name="name" value="maven" />
|
|
||||||
<option name="url" value="https://maven.google.com" />
|
|
||||||
</remote-repository>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
|
||||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
|
||||||
</component>
|
|
||||||
<component name="ProjectType">
|
|
||||||
<option name="id" value="Android" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
/build/*
|
|
||||||
!/build/.npmkeep
|
|
||||||
@@ -1,40 +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(':sentry-capacitor')
|
|
||||||
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+"
|
|
||||||
}
|
|
||||||
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()
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
@@ -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 <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
|
||||||
*/
|
|
||||||
@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());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
package="com.gpr.gabinetedigital">
|
|
||||||
|
|
||||||
<application
|
|
||||||
android:allowBackup="true"
|
|
||||||
android:icon="@mipmap/ic_launcher"
|
|
||||||
android:label="@string/app_name"
|
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
|
||||||
android:supportsRtl="true"
|
|
||||||
android:theme="@style/AppTheme">
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode"
|
|
||||||
android:name="com.gpr.gabinetedigital.MainActivity"
|
|
||||||
android:label="@string/title_activity_main"
|
|
||||||
android:theme="@style/AppTheme.NoActionBarLaunch"
|
|
||||||
android:launchMode="singleTask">
|
|
||||||
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.MAIN" />
|
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
|
||||||
</intent-filter>
|
|
||||||
|
|
||||||
</activity>
|
|
||||||
|
|
||||||
<provider
|
|
||||||
android:name="androidx.core.content.FileProvider"
|
|
||||||
android:authorities="${applicationId}.fileprovider"
|
|
||||||
android:exported="false"
|
|
||||||
android:grantUriPermissions="true">
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
||||||
android:resource="@xml/file_paths"></meta-data>
|
|
||||||
</provider>
|
|
||||||
</application>
|
|
||||||
|
|
||||||
<!-- Permissions -->
|
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
|
||||||
</manifest>
|
|
||||||
@@ -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"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,70 +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": "@sentry/capacitor",
|
|
||||||
"classpath": "io.sentry.capacitor.SentryCapacitor"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pkg": "capacitor-voice-recorder",
|
|
||||||
"classpath": "com.tchvu3.capacitorvoicerecorder.VoiceRecorder"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pkg": "capacitor2-file-picker",
|
|
||||||
"classpath": "com.devmantosh.filepicker.FilePicker"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
Before Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 17 KiB |
@@ -1,34 +0,0 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:aapt="http://schemas.android.com/aapt"
|
|
||||||
android:width="108dp"
|
|
||||||
android:height="108dp"
|
|
||||||
android:viewportHeight="108"
|
|
||||||
android:viewportWidth="108">
|
|
||||||
<path
|
|
||||||
android:fillType="evenOdd"
|
|
||||||
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
|
|
||||||
android:strokeColor="#00000000"
|
|
||||||
android:strokeWidth="1">
|
|
||||||
<aapt:attr name="android:fillColor">
|
|
||||||
<gradient
|
|
||||||
android:endX="78.5885"
|
|
||||||
android:endY="90.9159"
|
|
||||||
android:startX="48.7653"
|
|
||||||
android:startY="61.0927"
|
|
||||||
android:type="linear">
|
|
||||||
<item
|
|
||||||
android:color="#44000000"
|
|
||||||
android:offset="0.0" />
|
|
||||||
<item
|
|
||||||
android:color="#00000000"
|
|
||||||
android:offset="1.0" />
|
|
||||||
</gradient>
|
|
||||||
</aapt:attr>
|
|
||||||
</path>
|
|
||||||
<path
|
|
||||||
android:fillColor="#FFFFFF"
|
|
||||||
android:fillType="nonZero"
|
|
||||||
android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
|
|
||||||
android:strokeColor="#00000000"
|
|
||||||
android:strokeWidth="1" />
|
|
||||||
</vector>
|
|
||||||
@@ -1,170 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="108dp"
|
|
||||||
android:height="108dp"
|
|
||||||
android:viewportHeight="108"
|
|
||||||
android:viewportWidth="108">
|
|
||||||
<path
|
|
||||||
android:fillColor="#26A69A"
|
|
||||||
android:pathData="M0,0h108v108h-108z" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M9,0L9,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,0L19,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M29,0L29,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M39,0L39,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M49,0L49,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M59,0L59,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M69,0L69,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M79,0L79,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M89,0L89,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M99,0L99,108"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,9L108,9"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,19L108,19"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,29L108,29"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,39L108,39"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,49L108,49"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,59L108,59"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,69L108,69"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,79L108,79"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,89L108,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,99L108,99"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,29L89,29"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,39L89,39"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,49L89,49"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,59L89,59"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,69L89,69"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,79L89,79"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M29,19L29,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M39,19L39,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M49,19L49,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M59,19L59,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M69,19L69,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M79,19L79,89"
|
|
||||||
android:strokeColor="#33FFFFFF"
|
|
||||||
android:strokeWidth="0.8" />
|
|
||||||
</vector>
|
|
||||||
|
Before Width: | Height: | Size: 3.9 KiB |
@@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
tools:context=".MainActivity">
|
|
||||||
|
|
||||||
<WebView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent" />
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<background android:drawable="@color/ic_launcher_background"/>
|
|
||||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
|
||||||
</adaptive-icon>
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<background android:drawable="@color/ic_launcher_background"/>
|
|
||||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
|
||||||
</adaptive-icon>
|
|
||||||
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 16 KiB |
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<color name="ic_launcher_background">#FFFFFF</color>
|
|
||||||
</resources>
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<resources>
|
|
||||||
<string name="app_name">capacitor-testapp</string>
|
|
||||||
<string name="title_activity_main">capacitor-testapp</string>
|
|
||||||
<string name="package_name">com.capacitorjs.app.testapp</string>
|
|
||||||
<string name="custom_url_scheme">com.capacitorjs.app.testapp</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
|
|
||||||
<!-- Base application theme. -->
|
|
||||||
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
|
||||||
<!-- Customize your theme here. -->
|
|
||||||
<item name="colorPrimary">@color/colorPrimary</item>
|
|
||||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
|
||||||
<item name="colorAccent">@color/colorAccent</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
|
|
||||||
<item name="windowActionBar">false</item>
|
|
||||||
<item name="windowNoTitle">true</item>
|
|
||||||
<item name="android:background">@null</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
|
|
||||||
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
|
|
||||||
<item name="android:background">@drawable/splash</item>
|
|
||||||
</style>
|
|
||||||
</resources>
|
|
||||||
@@ -1,95 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<widget version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
|
||||||
<access origin="*" />
|
|
||||||
|
|
||||||
<feature name="CropPlugin">
|
|
||||||
<param name="android-package" value="com.jeduan.crop.CropPlugin"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="sqlDB">
|
|
||||||
<param name="android-package" value="me.rahul.plugins.sqlDB.sqlDB"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="SitewaertsDocumentViewer">
|
|
||||||
<param name="android-package" value="de.sitewaerts.cordova.documentviewer.DocumentViewerPlugin"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="File">
|
|
||||||
<param name="android-package" value="org.apache.cordova.file.FileUtils"/>
|
|
||||||
<param name="onload" value="true"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="FileOpener2">
|
|
||||||
<param name="android-package" value="io.github.pwlin.cordova.plugins.fileopener2.FileOpener2"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="FilePath">
|
|
||||||
<param name="android-package" value="com.hiddentao.cordova.filepath.FilePath"/>
|
|
||||||
<param name="onload" value="true"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="MultipleDocumentsPicker">
|
|
||||||
<param name="android-package" value="com.akeo.cordova.plugin.MultipleDocumentsPicker"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="OkHttpPlugin">
|
|
||||||
<param name="android-package" value="com.google.cordova.OkHttpPlugin"/>
|
|
||||||
<param name="onload" value="true"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="CDVOrientation">
|
|
||||||
<param name="android-package" value="cordova.plugins.screenorientation.CDVOrientation"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="SQLitePlugin">
|
|
||||||
<param name="android-package" value="io.sqlc.SQLitePlugin"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="PhotoViewer">
|
|
||||||
<param name="android-package" value="com.sarriaroman.PhotoViewer.PhotoViewer"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Device">
|
|
||||||
<param name="android-package" value="org.apache.cordova.device.Device"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Notification">
|
|
||||||
<param name="android-package" value="org.apache.cordova.dialogs.Notification"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Fingerprint">
|
|
||||||
<param name="android-package" value="de.niklasmerz.cordova.biometric.Fingerprint"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Globalization">
|
|
||||||
<param name="android-package" value="org.apache.cordova.globalization.Globalization"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="InAppBrowser">
|
|
||||||
<param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Media">
|
|
||||||
<param name="android-package" value="org.apache.cordova.media.AudioHandler"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Capture">
|
|
||||||
<param name="android-package" value="org.apache.cordova.mediacapture.Capture"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="NetworkStatus">
|
|
||||||
<param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="StatusBar">
|
|
||||||
<param name="android-package" value="org.apache.cordova.statusbar.StatusBar"/>
|
|
||||||
<param name="onload" value="true"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Whitelist">
|
|
||||||
<param name="android-package" value="org.apache.cordova.whitelist.WhitelistPlugin"/>
|
|
||||||
<param name="onload" value="true"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
|
|
||||||
</widget>
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<paths xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<external-path name="my_images" path="." />
|
|
||||||
<cache-path name="my_cache_images" path="." />
|
|
||||||
</paths>
|
|
||||||
@@ -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 <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
|
||||||
*/
|
|
||||||
public class ExampleUnitTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void addition_isCorrect() throws Exception {
|
|
||||||
assertEquals(4, 2 + 2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,54 +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 ':sentry-capacitor'
|
|
||||||
project(':sentry-capacitor').projectDir = new File('../node_modules/@sentry/capacitor/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')
|
|
||||||
@@ -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
|
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
"@awesome-cordova-plugins/multiple-document-picker": "^5.40.0",
|
"@awesome-cordova-plugins/multiple-document-picker": "^5.40.0",
|
||||||
"@byteowls/capacitor-filesharer": "^3.0.0",
|
"@byteowls/capacitor-filesharer": "^3.0.0",
|
||||||
"@capacitor-community/camera-preview": "^1.2.1",
|
"@capacitor-community/camera-preview": "^1.2.1",
|
||||||
"@capacitor/android": "3.6.0",
|
"@capacitor/android": "^3.3.2",
|
||||||
"@capacitor/app": "^1.0.5",
|
"@capacitor/app": "^1.0.5",
|
||||||
"@capacitor/browser": "1.0.6",
|
"@capacitor/browser": "1.0.6",
|
||||||
"@capacitor/camera": "^1.2.0",
|
"@capacitor/camera": "^1.2.0",
|
||||||
@@ -3281,10 +3281,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@capacitor/android": {
|
"node_modules/@capacitor/android": {
|
||||||
"version": "3.6.0",
|
"version": "3.3.2",
|
||||||
"license": "MIT",
|
"resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.3.2.tgz",
|
||||||
|
"integrity": "sha512-TG+tGz0KxkT/BgvSLQfbQwQ9c4Budub5TRijIGdmMbB1ZYB76TFhwvVuwWZ52HFSlKS3sx/UYLlbULL7UQ2aug==",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@capacitor/core": "^3.6.0"
|
"@capacitor/core": "^3.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@capacitor/app": {
|
"node_modules/@capacitor/app": {
|
||||||
@@ -40044,7 +40045,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@capacitor/android": {
|
"@capacitor/android": {
|
||||||
"version": "3.6.0",
|
"version": "3.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.3.2.tgz",
|
||||||
|
"integrity": "sha512-TG+tGz0KxkT/BgvSLQfbQwQ9c4Budub5TRijIGdmMbB1ZYB76TFhwvVuwWZ52HFSlKS3sx/UYLlbULL7UQ2aug==",
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"@capacitor/app": {
|
"@capacitor/app": {
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
"@awesome-cordova-plugins/multiple-document-picker": "^5.40.0",
|
"@awesome-cordova-plugins/multiple-document-picker": "^5.40.0",
|
||||||
"@byteowls/capacitor-filesharer": "^3.0.0",
|
"@byteowls/capacitor-filesharer": "^3.0.0",
|
||||||
"@capacitor-community/camera-preview": "^1.2.1",
|
"@capacitor-community/camera-preview": "^1.2.1",
|
||||||
"@capacitor/android": "3.6.0",
|
"@capacitor/android": "^3.3.2",
|
||||||
"@capacitor/app": "^1.0.5",
|
"@capacitor/app": "^1.0.5",
|
||||||
"@capacitor/browser": "1.0.6",
|
"@capacitor/browser": "1.0.6",
|
||||||
"@capacitor/camera": "^1.2.0",
|
"@capacitor/camera": "^1.2.0",
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export class AuthGuard implements CanActivate {
|
|||||||
route: ActivatedRouteSnapshot,
|
route: ActivatedRouteSnapshot,
|
||||||
state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
|
state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
|
||||||
|
|
||||||
console.log('hire inactinity!', state.url)
|
console.log('hire auth!', state.url)
|
||||||
|
|
||||||
// if user not active or no session
|
// if user not active or no session
|
||||||
if(!SessionStore.user.Inactivity || !SessionStore.exist) {
|
if(!SessionStore.user.Inactivity || !SessionStore.exist) {
|
||||||
@@ -31,6 +31,7 @@ export class AuthGuard implements CanActivate {
|
|||||||
this.router.navigate(['/pin']);
|
this.router.navigate(['/pin']);
|
||||||
} else {
|
} else {
|
||||||
this.router.navigate(['/']);
|
this.router.navigate(['/']);
|
||||||
|
// console.log('goto login page')
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { Observable } from 'rxjs';
|
|||||||
import { SessionStore } from '../store/session.service';
|
import { SessionStore } from '../store/session.service';
|
||||||
import { AlertController, Platform } from '@ionic/angular';
|
import { AlertController, Platform } from '@ionic/angular';
|
||||||
import { PermissionService } from '../services/permission.service';
|
import { PermissionService } from '../services/permission.service';
|
||||||
|
import { FirstEnterService } from '../services/first-enter.service';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@@ -14,7 +15,8 @@ export class InactivityGuard implements CanActivate {
|
|||||||
private router:Router,
|
private router:Router,
|
||||||
private platform: Platform,
|
private platform: Platform,
|
||||||
public p: PermissionService,
|
public p: PermissionService,
|
||||||
private alertController: AlertController
|
private alertController: AlertController,
|
||||||
|
private FirstEnterService: FirstEnterService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
canActivate(
|
canActivate(
|
||||||
@@ -24,30 +26,8 @@ export class InactivityGuard implements CanActivate {
|
|||||||
console.log('hire inactinity!', state.url)
|
console.log('hire inactinity!', state.url)
|
||||||
|
|
||||||
if ( (this.platform.is('desktop') || this.platform.is('mobileweb')) ) {
|
if ( (this.platform.is('desktop') || this.platform.is('mobileweb')) ) {
|
||||||
if(this.p.userPermission(this.p.permissionList.Agenda.access) || this.p.userPermission(this.p.permissionList.Gabinete.access)){
|
|
||||||
|
|
||||||
}
|
this.FirstEnterService.enter()
|
||||||
else if(this.p.userPermission(this.p.permissionList.Chat.access) && this.p.userPermission(this.p.permissionList.Actions.access)){
|
|
||||||
this.router.navigate(['/home/chat']);
|
|
||||||
}
|
|
||||||
else if(this.p.userPermission(this.p.permissionList.Actions.access)) {
|
|
||||||
this.router.navigate(['/home/publications']);
|
|
||||||
} else {
|
|
||||||
|
|
||||||
this.alertController.create({
|
|
||||||
cssClass: 'my-custom-class',
|
|
||||||
header: 'Utilizador sem acesso a aplicação',
|
|
||||||
buttons: [{
|
|
||||||
text: 'Ok',
|
|
||||||
handler: () => {
|
|
||||||
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
}).then( async (alertPopup) => {
|
|
||||||
await alertPopup.present();
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return false
|
return false
|
||||||
} else if(SessionStore.exist && SessionStore.user.Inactivity && !SessionStore.hasPin ) {
|
} else if(SessionStore.exist && SessionStore.user.Inactivity && !SessionStore.hasPin ) {
|
||||||
@@ -68,28 +48,8 @@ export class InactivityGuard implements CanActivate {
|
|||||||
else {
|
else {
|
||||||
|
|
||||||
if((SessionStore?.user?.Inactivity)) {
|
if((SessionStore?.user?.Inactivity)) {
|
||||||
if(this.p.userPermission(this.p.permissionList.Agenda.access) || this.p.userPermission(this.p.permissionList.Gabinete.access)){
|
this.FirstEnterService.enter()
|
||||||
this.router.navigate(['/home/events']);
|
|
||||||
}
|
|
||||||
else if(this.p.userPermission(this.p.permissionList.Chat.access) && this.p.userPermission(this.p.permissionList.Actions.access)){
|
|
||||||
this.router.navigate(['/home/chat']);
|
|
||||||
}
|
|
||||||
else if(this.p.userPermission(this.p.permissionList.Actions.access)){
|
|
||||||
this.router.navigate(['/home/publications']);
|
|
||||||
} else {
|
|
||||||
this.alertController.create({
|
|
||||||
cssClass: 'my-custom-class',
|
|
||||||
header: 'Utilizador sem acesso a aplicação',
|
|
||||||
buttons: [{
|
|
||||||
text: 'Ok',
|
|
||||||
handler: () => {
|
|
||||||
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
}).then( async (alertPopup)=>{
|
|
||||||
await alertPopup.present();
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,11 @@ import { NgModule } from '@angular/core';
|
|||||||
import { Routes, RouterModule } from '@angular/router';
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
import { AuthGuard } from '../guards/auth.guard';
|
import { AuthGuard } from '../guards/auth.guard';
|
||||||
import { InactivityGuard } from '../guards/inactivity.guard';
|
import { InactivityGuard } from '../guards/inactivity.guard';
|
||||||
|
import { AgendaPageModule } from '../pages/agenda/agenda.module';
|
||||||
|
import { ChatPageModule } from '../pages/chat/chat.module';
|
||||||
|
import { EventsPageModule } from '../pages/events/events.module';
|
||||||
|
import { GabineteDigitalPageModule } from '../pages/gabinete-digital/gabinete-digital.module';
|
||||||
|
import { PublicationsPageModule } from '../pages/publications/publications.module';
|
||||||
import { UserDataResolver } from '../resolvers/userData.resolver';
|
import { UserDataResolver } from '../resolvers/userData.resolver';
|
||||||
import { HomePage } from './home.page';
|
import { HomePage } from './home.page';
|
||||||
|
|
||||||
@@ -18,7 +23,7 @@ const routes: Routes = [
|
|||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path:'',
|
path:'',
|
||||||
loadChildren: ()=> import('../pages/events/events.module').then(m => m.EventsPageModule)
|
loadChildren: ()=> EventsPageModule
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path:':eventId/:caller',
|
path:':eventId/:caller',
|
||||||
@@ -80,7 +85,7 @@ const routes: Routes = [
|
|||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path:'',
|
path:'',
|
||||||
loadChildren: ()=> import('../pages/agenda/agenda.module').then(m => m.AgendaPageModule)
|
loadChildren: () => AgendaPageModule
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path:':eventId/:caller',
|
path:':eventId/:caller',
|
||||||
@@ -128,7 +133,7 @@ const routes: Routes = [
|
|||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path:'',
|
path:'',
|
||||||
loadChildren: ()=> import('../pages/gabinete-digital/gabinete-digital.module').then(m => m.GabineteDigitalPageModule)
|
loadChildren: ()=> GabineteDigitalPageModule
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path:'expediente',
|
path:'expediente',
|
||||||
@@ -290,7 +295,7 @@ const routes: Routes = [
|
|||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path:'',
|
path:'',
|
||||||
loadChildren: ()=> import('../pages/publications/publications.module').then(m => m.PublicationsPageModule)
|
loadChildren: ()=> PublicationsPageModule
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path:':folderId',
|
path:':folderId',
|
||||||
@@ -321,7 +326,7 @@ const routes: Routes = [
|
|||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path:'',
|
path:'',
|
||||||
loadChildren: ()=> import('../pages/chat/chat.module').then(m => m.ChatPageModule)
|
loadChildren: ()=> ChatPageModule
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path:'messages',
|
path:'messages',
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
/* eslint-disable */
|
|
||||||
/* tslint:disable */
|
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { Event } from '../models/event.model';
|
import { Event } from '../models/event.model';
|
||||||
import { NotificationsService } from '../services/notifications.service';
|
import { NotificationsService } from '../services/notifications.service';
|
||||||
@@ -97,7 +95,7 @@ export class HomePage implements OnInit {
|
|||||||
this.router.events.subscribe((val) => {
|
this.router.events.subscribe((val) => {
|
||||||
document.querySelectorAll('ion-modal').forEach((e: any) => e.remove())
|
document.querySelectorAll('ion-modal').forEach((e: any) => e.remove())
|
||||||
document.querySelectorAll('popover-viewport').forEach((e: any) => e.remove())
|
document.querySelectorAll('popover-viewport').forEach((e: any) => e.remove())
|
||||||
document.querySelectorAll('.notification').forEach((e: any) => e.remove())
|
document.querySelectorAll('.loading-blocker').forEach((e: any) => e.remove())
|
||||||
});
|
});
|
||||||
|
|
||||||
window['platform'] = platform
|
window['platform'] = platform
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ export class MessageModel extends models.Model {
|
|||||||
channels = ArrayField()
|
channels = ArrayField()
|
||||||
mentions = ArrayField()
|
mentions = ArrayField()
|
||||||
msg = models.CharField()
|
msg = models.CharField()
|
||||||
|
sendAttempt = models.IntegerField()
|
||||||
rid = models.CharField()
|
rid = models.CharField()
|
||||||
ts = JsonField({blank:true})
|
ts = JsonField({blank:true})
|
||||||
u = JsonField()
|
u = JsonField()
|
||||||
@@ -37,7 +38,7 @@ export class DeleteMessageModel extends models.Model {
|
|||||||
models.register({
|
models.register({
|
||||||
databaseName: 'chat-storage',
|
databaseName: 'chat-storage',
|
||||||
type: 'indexedDB',
|
type: 'indexedDB',
|
||||||
version: 4,
|
version: 5,
|
||||||
models: [MessageModel, DeleteMessageModel]
|
models: [MessageModel, DeleteMessageModel]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -63,10 +63,11 @@
|
|||||||
|
|
||||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||||
|
|
||||||
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
||||||
|
<div *ngIf="msg.manualRetry" class="try">Tentar</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
{{last ? scrollToBottom() : ''}}
|
{{last ? scrollToBottom() : ''}}
|
||||||
</div>
|
</div>
|
||||||
@@ -101,10 +102,11 @@
|
|||||||
<img *ngIf="msg.attachments[0].image_url" src="{{msg.attachments[0].image_url}}" alt="image" >
|
<img *ngIf="msg.attachments[0].image_url" src="{{msg.attachments[0].image_url}}" alt="image" >
|
||||||
<ion-icon *ngIf="msg.attachments[0].image_url == null" name="download-outline"></ion-icon>
|
<ion-icon *ngIf="msg.attachments[0].image_url == null" name="download-outline"></ion-icon>
|
||||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||||
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
||||||
|
<div *ngIf="msg.manualRetry" class="try">Tentar</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="msg.file.type != 'application/img'">
|
<div *ngIf="msg.file.type != 'application/img'">
|
||||||
@@ -158,6 +160,7 @@
|
|||||||
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
||||||
|
<div *ngIf="msg.manualRetry" class="try">Tentar</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -387,3 +387,11 @@
|
|||||||
.float-status-all {
|
.float-status-all {
|
||||||
font-size: 10pt !important;
|
font-size: 10pt !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.try {
|
||||||
|
color: red;
|
||||||
|
background: #f3414159;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
@@ -60,10 +60,11 @@
|
|||||||
|
|
||||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||||
|
|
||||||
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
||||||
|
<div *ngIf="msg.manualRetry" class="try">Tentar</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</div>
|
</div>
|
||||||
{{last ? scrollToBottom() : ''}}
|
{{last ? scrollToBottom() : ''}}
|
||||||
@@ -96,10 +97,11 @@
|
|||||||
<img *ngIf="msg.attachments[0].image_url" src="{{msg.attachments[0].image_url}}" alt="image">
|
<img *ngIf="msg.attachments[0].image_url" src="{{msg.attachments[0].image_url}}" alt="image">
|
||||||
|
|
||||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||||
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
||||||
|
<div *ngIf="msg.manualRetry" class="try">Tentar</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -161,10 +163,11 @@
|
|||||||
|
|
||||||
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
|
||||||
|
|
||||||
<!-- <span *ngIf="msg.messageSend == false" >{{ msg.sendAttempt }}</span> -->
|
<ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
||||||
|
<div *ngIf="msg.manualRetry" class="try">Tentar</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -356,3 +356,11 @@ button::-moz-focus-inner {
|
|||||||
.float-status-all {
|
.float-status-all {
|
||||||
font-size: 10pt !important;
|
font-size: 10pt !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.try {
|
||||||
|
color: red;
|
||||||
|
background: #f3414159;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
@@ -280,9 +280,11 @@ export class EventsPage implements OnInit {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.listToPresent = todayEvents
|
this.listToPresent = todayEvents
|
||||||
this.totalEvent = this.listToPresent.length
|
if(this.listToPresent?.length) {
|
||||||
this.currentEvent = this.listToPresent[0].Subject
|
this.totalEvent = this.listToPresent.length
|
||||||
this.currentHoursMinutes = this.listToPresent[0].StartDate
|
this.currentEvent = this.listToPresent[0].Subject
|
||||||
|
this.currentHoursMinutes = this.listToPresent[0].StartDate
|
||||||
|
}
|
||||||
//
|
//
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import { RochetChatConnectorService } from 'src/app/services/chat/rochet-chat-co
|
|||||||
import { ChatSystemService } from 'src/app/services/chat/chat-system.service';
|
import { ChatSystemService } from 'src/app/services/chat/chat-system.service';
|
||||||
import { ChatService } from 'src/app/services/chat.service';
|
import { ChatService } from 'src/app/services/chat.service';
|
||||||
import { Platform } from '@ionic/angular';
|
import { Platform } from '@ionic/angular';
|
||||||
|
import { FirstEnterService } from '../../services/first-enter.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-login',
|
selector: 'app-login',
|
||||||
@@ -52,10 +52,13 @@ export class LoginPage implements OnInit {
|
|||||||
public ChatSystemService: ChatSystemService,
|
public ChatSystemService: ChatSystemService,
|
||||||
private ChatService: ChatService,
|
private ChatService: ChatService,
|
||||||
private platform: Platform,
|
private platform: Platform,
|
||||||
) {}
|
private FirstEnterService: FirstEnterService
|
||||||
|
) {
|
||||||
|
console.log('constructor')
|
||||||
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
console.log('ngOngInit')
|
||||||
}
|
}
|
||||||
|
|
||||||
togglePassword() {
|
togglePassword() {
|
||||||
@@ -68,7 +71,6 @@ export class LoginPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//
|
|
||||||
|
|
||||||
//Function to validade the login inputs
|
//Function to validade the login inputs
|
||||||
validateUsername() {
|
validateUsername() {
|
||||||
@@ -134,7 +136,7 @@ export class LoginPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.changeProfileService.runLogin();
|
this.changeProfileService.runLogin();
|
||||||
this.getToken();
|
// this.getToken();
|
||||||
SessionStore.setInativity(true);
|
SessionStore.setInativity(true);
|
||||||
|
|
||||||
this.goback();
|
this.goback();
|
||||||
@@ -160,7 +162,7 @@ export class LoginPage implements OnInit {
|
|||||||
this.ChatSystemService.loadChat();
|
this.ChatSystemService.loadChat();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.getToken();
|
// this.getToken();
|
||||||
|
|
||||||
if(!this.platform.is('desktop') && !this.platform.is('mobileweb')) {
|
if(!this.platform.is('desktop') && !this.platform.is('mobileweb')) {
|
||||||
if(this.sessionStore.hasPin) {
|
if(this.sessionStore.hasPin) {
|
||||||
@@ -196,22 +198,7 @@ export class LoginPage implements OnInit {
|
|||||||
if(pathName) {
|
if(pathName) {
|
||||||
this.router.navigate([pathName]);
|
this.router.navigate([pathName]);
|
||||||
} else {
|
} else {
|
||||||
if(this.p.userPermission(this.p.permissionList.Agenda.access) || this.p.userPermission(this.p.permissionList.Gabinete.access)){
|
this.FirstEnterService.enter()
|
||||||
//When user has got access to Agenda but does not have their own calendar, goes to Agenda
|
|
||||||
if(this.p.userPermission(this.p.permissionList.Agenda.access) && SessionStore.user.OwnerCalendars.length == 0){
|
|
||||||
this.router.navigate(['/home/agenda']);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
this.router.navigate(['/home/events']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//If user has access permission to both Chat and Action, goes to Chat by default.
|
|
||||||
else if((this.p.userPermission(this.p.permissionList.Chat.access) && this.p.userPermission(this.p.permissionList.Actions.access)) || this.p.userPermission(this.p.permissionList.Chat.access)){
|
|
||||||
this.router.navigate(['/home/chat']);
|
|
||||||
}
|
|
||||||
else if(this.p.userPermission(this.p.permissionList.Actions.access)){
|
|
||||||
this.router.navigate(['/home/publications']);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ export class MessageService {
|
|||||||
downloadAttachments = false;
|
downloadAttachments = false;
|
||||||
downloadAttachmentsTemp = 0;
|
downloadAttachmentsTemp = 0;
|
||||||
UploadAttachmentsTemp = 0;
|
UploadAttachmentsTemp = 0;
|
||||||
|
manualRetry = false
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private NfService: NfService,
|
private NfService: NfService,
|
||||||
@@ -215,6 +216,9 @@ export class MessageService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
functionTimer = null;
|
||||||
|
|
||||||
async sendRequest(params) {
|
async sendRequest(params) {
|
||||||
|
|
||||||
if(params?.attachments) {
|
if(params?.attachments) {
|
||||||
@@ -228,16 +232,41 @@ export class MessageService {
|
|||||||
this.RochetChatConnectorService.send(params).then(
|
this.RochetChatConnectorService.send(params).then(
|
||||||
(ChatMessage: any) => {
|
(ChatMessage: any) => {
|
||||||
ChatMessage = ChatMessage.message.result
|
ChatMessage = ChatMessage.message.result
|
||||||
|
clearTimeout(this.functionTimer);
|
||||||
|
|
||||||
this.messageSend = true
|
this.messageSend = true
|
||||||
this.redefinedMessage(ChatMessage)
|
this.redefinedMessage(ChatMessage)
|
||||||
|
|
||||||
}
|
}
|
||||||
).catch((error) => {
|
).catch((error) => {
|
||||||
|
clearTimeout(this.functionTimer);
|
||||||
console.error(error)
|
console.error(error)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
this.functionTimer = setTimeout(() => {
|
||||||
|
|
||||||
|
this.RochetChatConnectorService.registerCallback({
|
||||||
|
type:'Onmessage',
|
||||||
|
key:'ping-pong-message',
|
||||||
|
funx:(message: any) => {
|
||||||
|
if(message.msg == "ping") {
|
||||||
|
if(this.sendAttempt >= 3) {
|
||||||
|
this.manualRetry = true
|
||||||
|
} else {
|
||||||
|
this.send()
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
this.save()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
this.RochetChatConnectorService.wsSend({message:{msg:"pong"}, loginRequired: false})
|
||||||
|
|
||||||
|
}, 8000)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// console.log("reconnect")
|
|
||||||
this.RochetChatConnectorService.registerCallback({
|
this.RochetChatConnectorService.registerCallback({
|
||||||
type: 'reConnect',
|
type: 'reConnect',
|
||||||
funx: async ()=> {
|
funx: async ()=> {
|
||||||
@@ -335,6 +364,7 @@ export class MessageService {
|
|||||||
channels: this.channels,
|
channels: this.channels,
|
||||||
mentions: this.mentions,
|
mentions: this.mentions,
|
||||||
//msg: this.AESEncrypt.encrypt(this.msg, SessionStore.user.UserName),
|
//msg: this.AESEncrypt.encrypt(this.msg, SessionStore.user.UserName),
|
||||||
|
sendAttempt: this.sendAttempt,
|
||||||
msg:this.msg,
|
msg:this.msg,
|
||||||
rid: this.rid,
|
rid: this.rid,
|
||||||
ts: this.ts,
|
ts: this.ts,
|
||||||
|
|||||||
@@ -46,6 +46,10 @@ export class RochetChatConnectorService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wsSend({message, requestId = uuidv4(), loginRequired = true}:send) {
|
||||||
|
this.ws.send({message:{msg:"pong"}, loginRequired: false})
|
||||||
|
}
|
||||||
|
|
||||||
login() {
|
login() {
|
||||||
// dont login if is already login
|
// dont login if is already login
|
||||||
if(this.isLogin == true) {
|
if(this.isLogin == true) {
|
||||||
@@ -739,7 +743,7 @@ export class RochetChatConnectorService {
|
|||||||
} else {
|
} else {
|
||||||
let messageStr = JSON.stringify(message)
|
let messageStr = JSON.stringify(message)
|
||||||
//
|
//
|
||||||
// console.log(messageStr)
|
console.log(messageStr)
|
||||||
this.socket.send(messageStr)
|
this.socket.send(messageStr)
|
||||||
}
|
}
|
||||||
return requestId
|
return requestId
|
||||||
@@ -748,6 +752,8 @@ export class RochetChatConnectorService {
|
|||||||
onmessage: async (event: any)=> {
|
onmessage: async (event: any)=> {
|
||||||
const data = JSON.parse(event.data)
|
const data = JSON.parse(event.data)
|
||||||
|
|
||||||
|
console.log('data', data)
|
||||||
|
|
||||||
for (const [key, value] of Object.entries(this.wsCallbacks)) {
|
for (const [key, value] of Object.entries(this.wsCallbacks)) {
|
||||||
if(value.type== 'Onmessage') {
|
if(value.type== 'Onmessage') {
|
||||||
const dontRepeat = await value.funx(data)
|
const dontRepeat = await value.funx(data)
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { FirstEnterService } from './first-enter.service';
|
||||||
|
|
||||||
|
describe('FirstEnterService', () => {
|
||||||
|
let service: FirstEnterService;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
TestBed.configureTestingModule({});
|
||||||
|
service = TestBed.inject(FirstEnterService);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be created', () => {
|
||||||
|
expect(service).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';
|
||||||
|
|
||||||
|
import { AlertController, Platform } from '@ionic/angular';
|
||||||
|
import { PermissionService } from '../services/permission.service';
|
||||||
|
import { SessionStore } from '../store/session.service';
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class FirstEnterService {
|
||||||
|
|
||||||
|
constructor(private router:Router,
|
||||||
|
private platform: Platform,
|
||||||
|
public p: PermissionService,
|
||||||
|
private alertController: AlertController) { }
|
||||||
|
|
||||||
|
|
||||||
|
enter( ) {
|
||||||
|
if(this.p.userPermission(this.p.permissionList.Agenda.access) || this.p.userPermission(this.p.permissionList.Gabinete.access)){
|
||||||
|
//When user has got access to Agenda but does not have their own calendar, goes to Agenda
|
||||||
|
if(this.p.userPermission(this.p.permissionList.Agenda.access) && SessionStore.user.OwnerCalendars.length == 0){
|
||||||
|
this.router.navigate(['/home/agenda']);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.router.navigate(['/home/events']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if((this.p.userPermission(this.p.permissionList.Chat.access) && this.p.userPermission(this.p.permissionList.Actions.access)) || this.p.userPermission(this.p.permissionList.Chat.access)){
|
||||||
|
this.router.navigate(['/home/chat']);
|
||||||
|
}
|
||||||
|
else if(this.p.userPermission(this.p.permissionList.Actions.access)) {
|
||||||
|
this.router.navigate(['/home/publications']);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
this.alertController.create({
|
||||||
|
cssClass: 'my-custom-class',
|
||||||
|
header: 'Utilizador sem acesso a aplicação',
|
||||||
|
buttons: [{
|
||||||
|
text: 'Ok',
|
||||||
|
handler: () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
}).then( async (alertPopup) => {
|
||||||
|
await alertPopup.present();
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -59,10 +59,11 @@
|
|||||||
|
|
||||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||||
|
|
||||||
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
||||||
|
<div *ngIf="msg.manualRetry" class="try">Tentar</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
{{last ? scrollToBottom() : ''}}
|
{{last ? scrollToBottom() : ''}}
|
||||||
</div>
|
</div>
|
||||||
@@ -104,10 +105,11 @@
|
|||||||
<img *ngIf="msg.attachments[0].image_url" src="{{msg.attachments[0].image_url}}" alt="image">
|
<img *ngIf="msg.attachments[0].image_url" src="{{msg.attachments[0].image_url}}" alt="image">
|
||||||
<ion-icon *ngIf="msg.attachments[0].image_url == null" name="download-outline"></ion-icon>
|
<ion-icon *ngIf="msg.attachments[0].image_url == null" name="download-outline"></ion-icon>
|
||||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||||
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
||||||
|
<div *ngIf="msg.manualRetry" class="try">Tentar</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -158,10 +160,11 @@
|
|||||||
</ion-label>
|
</ion-label>
|
||||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||||
|
|
||||||
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
||||||
|
<div *ngIf="msg.manualRetry" class="try">Tentar</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -321,3 +321,12 @@
|
|||||||
.float-status-all {
|
.float-status-all {
|
||||||
font-size: 10pt !important;
|
font-size: 10pt !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.try {
|
||||||
|
color: red;
|
||||||
|
background: #f3414159;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
@@ -60,10 +60,11 @@
|
|||||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||||
|
|
||||||
|
|
||||||
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
||||||
|
<div *ngIf="msg.manualRetry" class="try">Tentar</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
{{last ? scrollToBottom() : ''}}
|
{{last ? scrollToBottom() : ''}}
|
||||||
</div>
|
</div>
|
||||||
@@ -103,10 +104,11 @@
|
|||||||
<img *ngIf="msg.attachments[0].image_url" src={{msg.attachments[0].image_url}} alt="image">
|
<img *ngIf="msg.attachments[0].image_url" src={{msg.attachments[0].image_url}} alt="image">
|
||||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||||
|
|
||||||
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
||||||
|
<div *ngIf="msg.manualRetry" class="try">Tentar</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="msg.file.type != 'application/img'">
|
<div *ngIf="msg.file.type != 'application/img'">
|
||||||
@@ -168,10 +170,11 @@
|
|||||||
</ion-label>
|
</ion-label>
|
||||||
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
<ion-label class="float-status-all float-status" *ngIf="msg.u.username==sessionStore.user.UserName">
|
||||||
|
|
||||||
<ion-icon *ngIf="msg.messageSend == false" src="assets/images/clock-regular.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == false && !msg.manualRetry" src="assets/images/clock-regular.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend == true && msg.received.length == 0" src="assets/images/check-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
<ion-icon *ngIf="msg.messageSend && msg.received.length >= 1 && msg.viewed.length == 0" src="assets/images/check-double-solid.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
<ion-icon *ngIf="msg.viewed.length >= 1" src="assets/images/check-double-solid -viewed.svg"></ion-icon>
|
||||||
|
<div *ngIf="msg.manualRetry" class="try">Tentar</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -389,3 +389,12 @@ ion-footer {
|
|||||||
margin-bottom: 100%;
|
margin-bottom: 100%;
|
||||||
right: 50%;
|
right: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.try {
|
||||||
|
color: red;
|
||||||
|
background: #f3414159;
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
@@ -32,7 +32,6 @@ import { File } from '@awesome-cordova-plugins/file/ngx';
|
|||||||
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
|
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
|
||||||
import { SessionStore } from 'src/app/store/session.service';
|
import { SessionStore } from 'src/app/store/session.service';
|
||||||
import { Howl } from 'howler';
|
import { Howl } from 'howler';
|
||||||
import { runInThisContext } from 'vm';
|
|
||||||
import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page';
|
import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page';
|
||||||
import { ChatMessageDebuggingPage } from 'src/app/shared/popover/chat-message-debugging/chat-message-debugging.page';
|
import { ChatMessageDebuggingPage } from 'src/app/shared/popover/chat-message-debugging/chat-message-debugging.page';
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
import { versionData } from '../../version/git-version'
|
import { versionData } from '../../version/git-version'
|
||||||
export const environment = {
|
export const environment = {
|
||||||
// apiURL: 'https://gabinetedigital.dyndns.info/GabineteDigital.Services/V5/api/',
|
// apiURL: 'https://gabinetedigital.dyndns.info/GabineteDigital.Services/V5/api/',
|
||||||
apiURL: 'https://gd-api.oapr.gov.ao/api/',
|
//apiURL: 'https://gd-api.oapr.gov.ao/api/',
|
||||||
|
apiURL: 'https://gdapi-dev.dyndns.info/GabineteDigital.Services/V5/api/',
|
||||||
// apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V5/api/',
|
// apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V5/api/',
|
||||||
// apiChatUrl: 'http://192.168.0.29:3000/api/v1/',
|
// apiChatUrl: 'http://192.168.0.29:3000/api/v1/',
|
||||||
// apiWsChatUrl: 'wss://192.168.0.29:3000/websocket',
|
// apiWsChatUrl: 'wss://192.168.0.29:3000/websocket',
|
||||||
apiChatUrl: 'https://gd-chat.oapr.gov.ao/api/v1/',
|
apiChatUrl: 'https://gdchat-dev.dyndns.info/api/v1/',
|
||||||
apiWsChatUrl: 'wss://gd-chat.oapr.gov.ao/websocket',
|
apiWsChatUrl: 'wss://gdchat-dev.dyndns.info/websocket',
|
||||||
|
//apiChatUrl: 'https://gd-chat.oapr.gov.ao/api/v1/',
|
||||||
|
//apiWsChatUrl: 'wss://gd-chat.oapr.gov.ao/websocket',
|
||||||
// apiChatUrl: 'https://gdchat-dev.dyndns.info/api/v1/',
|
// apiChatUrl: 'https://gdchat-dev.dyndns.info/api/v1/',
|
||||||
// apiWsChatUrl: 'wss://gdchat-dev.dyndns.info/websocket',
|
// apiWsChatUrl: 'wss://gdchat-dev.dyndns.info/websocket',
|
||||||
/* apiChatUrl: 'https://www.tabularium.pt/api/v1/',
|
/* apiChatUrl: 'https://www.tabularium.pt/api/v1/',
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ export const environment = {
|
|||||||
apiWsChatUrl: 'wss://www.tabularium.pt/websocket', */
|
apiWsChatUrl: 'wss://www.tabularium.pt/websocket', */
|
||||||
// apiChatUrl: 'https://www.tabularium.pt/api/v1/',
|
// apiChatUrl: 'https://www.tabularium.pt/api/v1/',
|
||||||
production: true,
|
production: true,
|
||||||
domain: 'gabinetedigital.local',
|
domain: 'paulo.pinto@gabinetedigital.local',
|
||||||
defaultuser: 'eqformacao@oapr.gov.ao',//paulo.pinto@gabinetedigital.local
|
defaultuser: 'eqformacao@oapr.gov.ao',//paulo.pinto@gabinetedigital.local
|
||||||
defaultuserpwd: 'M@p2022', //tabteste@006,
|
defaultuserpwd: 'tabteste@006', //tabteste@006,
|
||||||
chatOffline: true,
|
chatOffline: true,
|
||||||
presidencia: false,
|
presidencia: false,
|
||||||
version: versionData,
|
version: versionData,
|
||||||
|
|||||||
@@ -30,4 +30,4 @@ const versionInfo = {
|
|||||||
const versionInfoJson = JSON.stringify(versionInfo, null, 2);
|
const versionInfoJson = JSON.stringify(versionInfo, null, 2);
|
||||||
//console.log("versionInfo", versionInfo.diff)
|
//console.log("versionInfo", versionInfo.diff)
|
||||||
writeFileSync('./version/git-version.ts', "export let versionData = "+versionInfoJson);
|
writeFileSync('./version/git-version.ts', "export let versionData = "+versionInfoJson);
|
||||||
writeFileSync('./version/git-version.json', versionInfoJson);
|
// writeFileSync('./version/git-version.json', versionInfoJson);
|
||||||