mirror of https://github.com/m2049r/xmrwallet.git
Upgrade targetSdkVersion to Oreo (27) (#392)
* targetSdkVersion 27 * fix unescaped apostrophes in strings * update Oreo notifications
This commit is contained in:
parent
6a2de36578
commit
b239a5094b
|
@ -1,12 +1,12 @@
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 25
|
compileSdkVersion 27
|
||||||
buildToolsVersion '27.0.3'
|
buildToolsVersion '28.0.2'
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "com.m2049r.xmrwallet"
|
applicationId "com.m2049r.xmrwallet"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 25
|
targetSdkVersion 27
|
||||||
versionCode 113
|
versionCode 113
|
||||||
versionName "1.6.3 'Nano S'"
|
versionName "1.6.3 'Nano S'"
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
|
@ -70,11 +70,11 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.android.support:appcompat-v7:25.4.0'
|
implementation "com.android.support:appcompat-v7:$rootProject.ext.supportVersion"
|
||||||
implementation 'com.android.support:design:25.4.0'
|
implementation "com.android.support:design:$rootProject.ext.supportVersion"
|
||||||
implementation 'com.android.support:support-v4:25.4.0'
|
implementation "com.android.support:support-v4:$rootProject.ext.supportVersion"
|
||||||
implementation 'com.android.support:recyclerview-v7:25.4.0'
|
implementation "com.android.support:recyclerview-v7:$rootProject.ext.supportVersion"
|
||||||
implementation 'com.android.support:cardview-v7:25.4.0'
|
implementation "com.android.support:cardview-v7:$rootProject.ext.supportVersion"
|
||||||
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
|
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
|
||||||
|
|
||||||
implementation "com.squareup.okhttp3:okhttp:$rootProject.ext.okHttpVersion"
|
implementation "com.squareup.okhttp3:okhttp:$rootProject.ext.okHttpVersion"
|
||||||
|
|
|
@ -17,17 +17,22 @@
|
||||||
package com.m2049r.xmrwallet.service;
|
package com.m2049r.xmrwallet.service;
|
||||||
|
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
|
import android.app.NotificationChannel;
|
||||||
|
import android.app.NotificationManager;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.Process;
|
import android.os.Process;
|
||||||
|
import android.support.annotation.RequiresApi;
|
||||||
|
import android.support.v4.app.NotificationCompat;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.WalletActivity;
|
import com.m2049r.xmrwallet.WalletActivity;
|
||||||
|
@ -45,6 +50,7 @@ public class WalletService extends Service {
|
||||||
public static boolean Running = false;
|
public static boolean Running = false;
|
||||||
|
|
||||||
final static int NOTIFICATION_ID = 2049;
|
final static int NOTIFICATION_ID = 2049;
|
||||||
|
final static String CHANNEL_ID = "m_service";
|
||||||
|
|
||||||
public static final String REQUEST_WALLET = "wallet";
|
public static final String REQUEST_WALLET = "wallet";
|
||||||
public static final String REQUEST = "request";
|
public static final String REQUEST = "request";
|
||||||
|
@ -566,11 +572,26 @@ public class WalletService extends Service {
|
||||||
private void startNotfication() {
|
private void startNotfication() {
|
||||||
Intent notificationIntent = new Intent(this, WalletActivity.class);
|
Intent notificationIntent = new Intent(this, WalletActivity.class);
|
||||||
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
|
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
|
||||||
Notification notification = new Notification.Builder(this)
|
|
||||||
|
String channelId = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? createNotificationChannel() : "";
|
||||||
|
Notification notification = new NotificationCompat.Builder(this, channelId)
|
||||||
.setContentTitle(getString(R.string.service_description))
|
.setContentTitle(getString(R.string.service_description))
|
||||||
|
.setOngoing(true)
|
||||||
.setSmallIcon(R.drawable.ic_monerujo)
|
.setSmallIcon(R.drawable.ic_monerujo)
|
||||||
|
.setPriority(NotificationCompat.PRIORITY_MIN)
|
||||||
|
.setCategory(NotificationCompat.CATEGORY_SERVICE)
|
||||||
.setContentIntent(pendingIntent)
|
.setContentIntent(pendingIntent)
|
||||||
.build();
|
.build();
|
||||||
startForeground(NOTIFICATION_ID, notification);
|
startForeground(NOTIFICATION_ID, notification);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequiresApi(Build.VERSION_CODES.O)
|
||||||
|
private String createNotificationChannel() {
|
||||||
|
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
|
||||||
|
NotificationChannel channel = new NotificationChannel(CHANNEL_ID, getString(R.string.service_description),
|
||||||
|
NotificationManager.IMPORTANCE_LOW);
|
||||||
|
channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
|
||||||
|
notificationManager.createNotificationChannel(channel);
|
||||||
|
return CHANNEL_ID;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
<p>Entrez votre phrase Mnémonique dans le champ \"Phrase Mnémonique\".<p>
|
<p>Entrez votre phrase Mnémonique dans le champ \"Phrase Mnémonique\".<p>
|
||||||
<p>Entrez le numéro du bloc de la première transaction utilisée pour cette adresse dans le
|
<p>Entrez le numéro du bloc de la première transaction utilisée pour cette adresse dans le
|
||||||
champ \"Hauteur de restauration\". Vous pouvez également utiliser une date au format AAA-MM-JJ.
|
champ \"Hauteur de restauration\". Vous pouvez également utiliser une date au format AAA-MM-JJ.
|
||||||
Si vous n'êtes pas sûr, entrer une date / hauteur de block approximative <em>avant</em> que vous
|
Si vous n\'êtes pas sûr, entrer une date / hauteur de block approximative <em>avant</em> que vous
|
||||||
n’ayez utilisé cette adresse de portefeuille pour la première fois.</p>
|
n’ayez utilisé cette adresse de portefeuille pour la première fois.</p>
|
||||||
]]></string>
|
]]></string>
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
<p>Entrez votre adresse Monero dans le champ \"Adresse Publique\" et remplissez \"Clef d’Audit\" et \"Clef de dépense\".</p>
|
<p>Entrez votre adresse Monero dans le champ \"Adresse Publique\" et remplissez \"Clef d’Audit\" et \"Clef de dépense\".</p>
|
||||||
<p>Entrez le numéro du bloc de la première transaction utilisée pour cette adresse dans le
|
<p>Entrez le numéro du bloc de la première transaction utilisée pour cette adresse dans le
|
||||||
champ \"Hauteur de restauration\". Vous pouvez également utiliser une date au format AAA-MM-JJ.
|
champ \"Hauteur de restauration\". Vous pouvez également utiliser une date au format AAA-MM-JJ.
|
||||||
Si vous n'êtes pas sûr, entrer une date / hauteur de block approximative <em>avant</em> que vous
|
Si vous n\'êtes pas sûr, entrer une date / hauteur de block approximative <em>avant</em> que vous
|
||||||
n’ayez utilisé cette adresse de portefeuille pour la première fois.</p>
|
n’ayez utilisé cette adresse de portefeuille pour la première fois.</p>
|
||||||
]]></string>
|
]]></string>
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
<p>Entrez votre adresse Monero dans le champ \"Adresse Publique\" et remplissez la \"Clef d’Audit\".</p>
|
<p>Entrez votre adresse Monero dans le champ \"Adresse Publique\" et remplissez la \"Clef d’Audit\".</p>
|
||||||
<p>Entrez le numéro du bloc de la première transaction utilisée pour cette adresse dans le
|
<p>Entrez le numéro du bloc de la première transaction utilisée pour cette adresse dans le
|
||||||
champ \"Hauteur de restauration\". Vous pouvez également utiliser une date au format AAA-MM-JJ.
|
champ \"Hauteur de restauration\". Vous pouvez également utiliser une date au format AAA-MM-JJ.
|
||||||
Si vous n'êtes pas sûr, entrer une date / hauteur de block approximative <em>avant</em> que vous
|
Si vous n\'êtes pas sûr, entrer une date / hauteur de block approximative <em>avant</em> que vous
|
||||||
n’ayez utilisé cette adresse de portefeuille pour la première fois.</p>
|
n’ayez utilisé cette adresse de portefeuille pour la première fois.</p>
|
||||||
]]></string>
|
]]></string>
|
||||||
|
|
||||||
|
@ -257,7 +257,7 @@
|
||||||
fort, ou mieux, utilisez une phrase de sécurité.</p>
|
fort, ou mieux, utilisez une phrase de sécurité.</p>
|
||||||
<p>Entrez le numéro du bloc de la première transaction utilisée pour cette adresse dans le
|
<p>Entrez le numéro du bloc de la première transaction utilisée pour cette adresse dans le
|
||||||
champ \"Hauteur de restauration\". Vous pouvez également utiliser une date au format AAA-MM-JJ.
|
champ \"Hauteur de restauration\". Vous pouvez également utiliser une date au format AAA-MM-JJ.
|
||||||
Si vous n'êtes pas sûr, entrer une date / hauteur de block approximative <em>avant</em> que vous
|
Si vous n\'êtes pas sûr, entrer une date / hauteur de block approximative <em>avant</em> que vous
|
||||||
n’ayez utilisé cette adresse de portefeuille pour la première fois.</p>
|
n’ayez utilisé cette adresse de portefeuille pour la première fois.</p>
|
||||||
]]></string>
|
]]></string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -27,8 +27,8 @@
|
||||||
<p>Altri dati personali non sono raccolti dall\'app.</p>
|
<p>Altri dati personali non sono raccolti dall\'app.</p>
|
||||||
<p>Se usi la funzionalità (opzionale) del cambio, monerujo recupera il tasso di cambio attraverso le API pubbliche di coinmarketcap.com.
|
<p>Se usi la funzionalità (opzionale) del cambio, monerujo recupera il tasso di cambio attraverso le API pubbliche di coinmarketcap.com.
|
||||||
Controlla la loro politica per la privacy (in lingua inglese) su https://coinmarketcap.com/privacy per conoscere i dettagli su come vengono raccolti i dati nelle tue richieste.</p>
|
Controlla la loro politica per la privacy (in lingua inglese) su https://coinmarketcap.com/privacy per conoscere i dettagli su come vengono raccolti i dati nelle tue richieste.</p>
|
||||||
<p>Se utilizzi l'app per effettuare pagamenti ad indirizzi BTC, stai usando il servizio XMR.TO.
|
<p>Se utilizzi l\'app per effettuare pagamenti ad indirizzi BTC, stai usando il servizio XMR.TO.
|
||||||
Controlla la loro politica per la privacy (in lingua inglese) su https://xmr.to/ per conoscere i dettagli. Monerujo invia a loro l'indirizzo di destinazione BTC e l'ammontare della transazione. Anche il tuo IP potrebbe essere raccolto.</p>
|
Controlla la loro politica per la privacy (in lingua inglese) su https://xmr.to/ per conoscere i dettagli. Monerujo invia a loro l\'indirizzo di destinazione BTC e l\'ammontare della transazione. Anche il tuo IP potrebbe essere raccolto.</p>
|
||||||
<h2>Permessi app</h2>
|
<h2>Permessi app</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>INTERNET : Connessione alla rete Monero attraverso un nodo </li>
|
<li>INTERNET : Connessione alla rete Monero attraverso un nodo </li>
|
||||||
|
|
|
@ -58,24 +58,24 @@
|
||||||
E' molto importante mantenerlo privato e conservarlo in un luogo sicuro, poiché può concedere a <em>chiunque</em>
|
E' molto importante mantenerlo privato e conservarlo in un luogo sicuro, poiché può concedere a <em>chiunque</em>
|
||||||
pieno accesso ai tuoi Moneroj! Se non lo hai già fatto, annotati il Seed Mnemonico e conservalo in un luogo sicuro!
|
pieno accesso ai tuoi Moneroj! Se non lo hai già fatto, annotati il Seed Mnemonico e conservalo in un luogo sicuro!
|
||||||
<h2>Password di ripristino dei file del portafoglio</h2>
|
<h2>Password di ripristino dei file del portafoglio</h2>
|
||||||
Assicurati di aver salvato questa password. Se resetti il tuo dispositivo o disinstalli l'app
|
Assicurati di aver salvato questa password. Se resetti il tuo dispositivo o disinstalli l\'app
|
||||||
ne avrai bisogno per accedere di nuovo al tuo portafoglio.<br/>
|
ne avrai bisogno per accedere di nuovo al tuo portafoglio.<br/>
|
||||||
<h3>CrAzYpass</h3>
|
<h3>CrAzYpass</h3>
|
||||||
Se la password visualizzata qui contiene 52 caratteri alfanumerici in gruppi di 4 - Congratulazioni!
|
Se la password visualizzata qui contiene 52 caratteri alfanumerici in gruppi di 4 - Congratulazioni!
|
||||||
I file del tuo portafoglio sono criptati con una chiave a 256-bit generata dal tuo dispositivo
|
I file del tuo portafoglio sono criptati con una chiave a 256-bit generata dal tuo dispositivo
|
||||||
e basata sulla passphrase che hai scelto (alla creazione o quando l'hai modificata). Questo la rende estremamente
|
e basata sulla passphrase che hai scelto (alla creazione o quando l\'hai modificata). Questo la rende estremamente
|
||||||
difficile da hackerare!<br/>
|
difficile da hackerare!<br/>
|
||||||
Questa funzionalità è obbligatoria per tutti i nuovi portafogli.
|
Questa funzionalità è obbligatoria per tutti i nuovi portafogli.
|
||||||
<h3>Password precedente</h3>
|
<h3>Password precedente</h3>
|
||||||
Se vedi la tua passphrase qui, i file del tuo portaglio non sono così sicuri come
|
Se vedi la tua passphrase qui, i file del tuo portaglio non sono così sicuri come
|
||||||
quelli criptati da CrAzYpass. Per adeguare la tua password semplicemente seleziona \"Cambia Passphrase\" dal menu.
|
quelli criptati da CrAzYpass. Per adeguare la tua password semplicemente seleziona \"Cambia Passphrase\" dal menu.
|
||||||
Dopo aver inserito una nuova passphrase (eventualmente la stessa usata in precedenza) l'applicazione genererà
|
Dopo aver inserito una nuova passphrase (eventualmente la stessa usata in precedenza) l\'applicazione genererà
|
||||||
una CrAzYpass per te e la userà per mettere al sicuro i file del tuo wallet. Annotala!
|
una CrAzYpass per te e la userà per mettere al sicuro i file del tuo wallet. Annotala!
|
||||||
<h3>Portafogli CrAzYpass</h3>
|
<h3>Portafogli CrAzYpass</h3>
|
||||||
Se dovessi avere bisogno di reinstallare Monerujo (per esempio dopo aver resettato il tuo telefono
|
Se dovessi avere bisogno di reinstallare Monerujo (per esempio dopo aver resettato il tuo telefono
|
||||||
o dopo averlo sostituito) o vuoi usare i file del tuo portafoglio su un diverso dispositivo o PC, devi
|
o dopo averlo sostituito) o vuoi usare i file del tuo portafoglio su un diverso dispositivo o PC, devi
|
||||||
usare questa password di recupero per poter accedere nuovamente al tuo portafoglio.<br/>
|
usare questa password di recupero per poter accedere nuovamente al tuo portafoglio.<br/>
|
||||||
Selezionando \'Cambia Passphrase\' dal menu, potrai scegliere un'altra passphrase. Questa azione
|
Selezionando \'Cambia Passphrase\' dal menu, potrai scegliere un\'altra passphrase. Questa azione
|
||||||
creerà una nuova password di recupero. Ricordati di annotarla!
|
creerà una nuova password di recupero. Ricordati di annotarla!
|
||||||
<h2>Chiave di Visualizzazione</h2>
|
<h2>Chiave di Visualizzazione</h2>
|
||||||
La tua chiave di visualizzazione può essere usata per monitorare le transazioni in ingresso al tuo portafoglio senza concedere il permesso di spendere i fondi.
|
La tua chiave di visualizzazione può essere usata per monitorare le transazioni in ingresso al tuo portafoglio senza concedere il permesso di spendere i fondi.
|
||||||
|
|
|
@ -392,7 +392,7 @@
|
||||||
included with this distribution is covered by the same copyright terms
|
included with this distribution is covered by the same copyright terms
|
||||||
except that the holder is Tim Hudson (tjh@cryptsoft.com).<br/>
|
except that the holder is Tim Hudson (tjh@cryptsoft.com).<br/>
|
||||||
<br/>
|
<br/>
|
||||||
Copyright remains Eric Young's, and as such any Copyright notices in
|
Copyright remains Eric Young\'s, and as such any Copyright notices in
|
||||||
the code are not to be removed.
|
the code are not to be removed.
|
||||||
If this package is used in a product, Eric Young should be given attribution
|
If this package is used in a product, Eric Young should be given attribution
|
||||||
as the author of the parts of the library used.
|
as the author of the parts of the library used.
|
||||||
|
@ -411,13 +411,13 @@
|
||||||
must display the following acknowledgement:<br/>
|
must display the following acknowledgement:<br/>
|
||||||
\"This product includes cryptographic software written by
|
\"This product includes cryptographic software written by
|
||||||
Eric Young (eay@cryptsoft.com)\"
|
Eric Young (eay@cryptsoft.com)\"
|
||||||
The word 'cryptographic' can be left out if the rouines from the library
|
The word \'cryptographic\' can be left out if the rouines from the library
|
||||||
being used are not cryptographic related :-).<br/>
|
being used are not cryptographic related :-).<br/>
|
||||||
4. If you include any Windows specific code (or a derivative thereof) from
|
4. If you include any Windows specific code (or a derivative thereof) from
|
||||||
the apps directory (application code) you must include an acknowledgement:
|
the apps directory (application code) you must include an acknowledgement:
|
||||||
\"This product includes software written by Tim Hudson (tjh@cryptsoft.com)\"<br/>
|
\"This product includes software written by Tim Hudson (tjh@cryptsoft.com)\"<br/>
|
||||||
<br/>
|
<br/>
|
||||||
THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
THIS SOFTWARE IS PROVIDED BY ERIC YOUNG "AS IS" AND
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||||
|
@ -545,7 +545,7 @@
|
||||||
terms of any subsequent revision of the license.<br/>
|
terms of any subsequent revision of the license.<br/>
|
||||||
<br/>
|
<br/>
|
||||||
THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS
|
THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS
|
||||||
CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
CONTRIBUTORS "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
||||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
||||||
SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S)
|
SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S)
|
||||||
|
@ -595,7 +595,7 @@
|
||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
<h2>'Poppins' Font</h2>
|
<h2>\'Poppins\' Font</h2>
|
||||||
<h3>SIL Open Font License</h3>
|
<h3>SIL Open Font License</h3>
|
||||||
<p>Copyright (c) 2014, Indian Type Foundry (info@indiantypefoundry.com).</p>
|
<p>Copyright (c) 2014, Indian Type Foundry (info@indiantypefoundry.com).</p>
|
||||||
<p>This Font Software is licensed under the SIL Open Font License, Version 1.1.<br />
|
<p>This Font Software is licensed under the SIL Open Font License, Version 1.1.<br />
|
||||||
|
|
|
@ -16,6 +16,7 @@ allprojects {
|
||||||
maven {
|
maven {
|
||||||
url "https://maven.google.com"
|
url "https://maven.google.com"
|
||||||
}
|
}
|
||||||
|
google()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,4 +30,5 @@ ext {
|
||||||
junitVersion = '4.12'
|
junitVersion = '4.12'
|
||||||
mockitoVersion = '1.10.19'
|
mockitoVersion = '1.10.19'
|
||||||
timberVersion = '4.7.0'
|
timberVersion = '4.7.0'
|
||||||
|
supportVersion = '27.1.1'
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue