From b239a5094b7929e06306f1716d5691427407bf7a Mon Sep 17 00:00:00 2001 From: m2049r Date: Sat, 18 Aug 2018 15:50:06 +0200 Subject: [PATCH] Upgrade targetSdkVersion to Oreo (27) (#392) * targetSdkVersion 27 * fix unescaped apostrophes in strings * update Oreo notifications --- app/build.gradle | 16 ++++++------- .../xmrwallet/service/WalletService.java | 23 ++++++++++++++++++- app/src/main/res/values-fr/help.xml | 8 +++---- app/src/main/res/values-it/about.xml | 4 ++-- app/src/main/res/values-it/help.xml | 8 +++---- app/src/main/res/values/about.xml | 10 ++++---- build.gradle | 2 ++ 7 files changed, 47 insertions(+), 24 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 887f11de..ecedc2ad 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 - buildToolsVersion '27.0.3' + compileSdkVersion 27 + buildToolsVersion '28.0.2' defaultConfig { applicationId "com.m2049r.xmrwallet" minSdkVersion 21 - targetSdkVersion 25 + targetSdkVersion 27 versionCode 113 versionName "1.6.3 'Nano S'" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -70,11 +70,11 @@ android { } dependencies { - implementation 'com.android.support:appcompat-v7:25.4.0' - implementation 'com.android.support:design:25.4.0' - implementation 'com.android.support:support-v4:25.4.0' - implementation 'com.android.support:recyclerview-v7:25.4.0' - implementation 'com.android.support:cardview-v7:25.4.0' + implementation "com.android.support:appcompat-v7:$rootProject.ext.supportVersion" + implementation "com.android.support:design:$rootProject.ext.supportVersion" + implementation "com.android.support:support-v4:$rootProject.ext.supportVersion" + implementation "com.android.support:recyclerview-v7:$rootProject.ext.supportVersion" + implementation "com.android.support:cardview-v7:$rootProject.ext.supportVersion" implementation 'me.dm7.barcodescanner:zxing:1.9.8' implementation "com.squareup.okhttp3:okhttp:$rootProject.ext.okHttpVersion" diff --git a/app/src/main/java/com/m2049r/xmrwallet/service/WalletService.java b/app/src/main/java/com/m2049r/xmrwallet/service/WalletService.java index f5d67dfc..cfbcb9bf 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/service/WalletService.java +++ b/app/src/main/java/com/m2049r/xmrwallet/service/WalletService.java @@ -17,17 +17,22 @@ package com.m2049r.xmrwallet.service; import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; import android.os.Binder; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.Message; import android.os.Process; +import android.support.annotation.RequiresApi; +import android.support.v4.app.NotificationCompat; import com.m2049r.xmrwallet.R; import com.m2049r.xmrwallet.WalletActivity; @@ -45,6 +50,7 @@ public class WalletService extends Service { public static boolean Running = false; 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 = "request"; @@ -566,11 +572,26 @@ public class WalletService extends Service { private void startNotfication() { Intent notificationIntent = new Intent(this, WalletActivity.class); 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)) + .setOngoing(true) .setSmallIcon(R.drawable.ic_monerujo) + .setPriority(NotificationCompat.PRIORITY_MIN) + .setCategory(NotificationCompat.CATEGORY_SERVICE) .setContentIntent(pendingIntent) .build(); 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; + } } diff --git a/app/src/main/res/values-fr/help.xml b/app/src/main/res/values-fr/help.xml index f147baad..d235b1e8 100644 --- a/app/src/main/res/values-fr/help.xml +++ b/app/src/main/res/values-fr/help.xml @@ -30,7 +30,7 @@

Entrez votre phrase Mnémonique dans le champ \"Phrase Mnémonique\".

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. - Si vous n'êtes pas sûr, entrer une date / hauteur de block approximative avant que vous + Si vous n\'êtes pas sûr, entrer une date / hauteur de block approximative avant que vous n’ayez utilisé cette adresse de portefeuille pour la première fois.

]]> @@ -43,7 +43,7 @@

Entrez votre adresse Monero dans le champ \"Adresse Publique\" et remplissez \"Clef d’Audit\" et \"Clef de dépense\".

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. - Si vous n'êtes pas sûr, entrer une date / hauteur de block approximative avant que vous + Si vous n\'êtes pas sûr, entrer une date / hauteur de block approximative avant que vous n’ayez utilisé cette adresse de portefeuille pour la première fois.

]]> @@ -56,7 +56,7 @@

Entrez votre adresse Monero dans le champ \"Adresse Publique\" et remplissez la \"Clef d’Audit\".

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. - Si vous n'êtes pas sûr, entrer une date / hauteur de block approximative avant que vous + Si vous n\'êtes pas sûr, entrer une date / hauteur de block approximative avant que vous n’ayez utilisé cette adresse de portefeuille pour la première fois.

]]> @@ -257,7 +257,7 @@ fort, ou mieux, utilisez une phrase de sécurité.

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. - Si vous n'êtes pas sûr, entrer une date / hauteur de block approximative avant que vous + Si vous n\'êtes pas sûr, entrer une date / hauteur de block approximative avant que vous n’ayez utilisé cette adresse de portefeuille pour la première fois.

]]> diff --git a/app/src/main/res/values-it/about.xml b/app/src/main/res/values-it/about.xml index c3bc9e84..4f7db23c 100644 --- a/app/src/main/res/values-it/about.xml +++ b/app/src/main/res/values-it/about.xml @@ -27,8 +27,8 @@

Altri dati personali non sono raccolti dall\'app.

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.

-

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.

+

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.

Permessi app