From 3dd1605ea67413bfe3ab735d0c6660be343dc034 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 14 Apr 2021 15:46:34 +0200 Subject: [PATCH] Using SDK 4.5.2 feature to vibrate during an incoming call --- app/build.gradle | 4 ++-- app/src/main/AndroidManifest.xml | 6 ++++++ .../main/java/org/linphone/LinphoneManager.java | 6 ++++++ .../linphone/compatibility/ApiTwentyOnePlus.java | 6 ------ .../linphone/compatibility/ApiTwentySixPlus.java | 14 -------------- .../org/linphone/compatibility/Compatibility.java | 9 --------- .../org/linphone/settings/LinphonePreferences.java | 7 +++---- 7 files changed, 17 insertions(+), 35 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 272e09b4c..3dcc79e6f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,7 +10,7 @@ static def firebaseEnabled() { } task getGitVersion() { - def gitVersion = "4.4.1" + def gitVersion = "4.4.2" def gitVersionStream = new ByteArrayOutputStream() def gitCommitsCount = new ByteArrayOutputStream() def gitCommitHash = new ByteArrayOutputStream() @@ -100,7 +100,7 @@ android { defaultConfig { minSdkVersion 23 targetSdkVersion 29 - versionCode 4401 + versionCode 4402 versionName "${project.version}" applicationId getPackageName() multiDexEnabled true diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 05f552aef..807bd1582 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -215,6 +215,12 @@ android:name=".service.LinphoneService" android:label="@string/service_name" /> + + diff --git a/app/src/main/java/org/linphone/LinphoneManager.java b/app/src/main/java/org/linphone/LinphoneManager.java index d71104c9c..82e47236e 100644 --- a/app/src/main/java/org/linphone/LinphoneManager.java +++ b/app/src/main/java/org/linphone/LinphoneManager.java @@ -371,6 +371,12 @@ public class LinphoneManager implements SensorEventListener { mCore.migrateLogsFromRcToDb(); + // Migration code + if (mCore.getConfig().getBool("app", "incoming_call_vibration", true)) { + mCore.setVibrationOnIncomingCallEnabled(true); + mCore.getConfig().setBool("app", "incoming_call_vibration", false); + } + // Migrate existing linphone accounts to have conference factory uri and LIME X3Dh url set String uri = getString(R.string.default_conference_factory_uri); for (ProxyConfig lpc : mCore.getProxyConfigList()) { diff --git a/app/src/main/java/org/linphone/compatibility/ApiTwentyOnePlus.java b/app/src/main/java/org/linphone/compatibility/ApiTwentyOnePlus.java index f72a344dd..761830adb 100644 --- a/app/src/main/java/org/linphone/compatibility/ApiTwentyOnePlus.java +++ b/app/src/main/java/org/linphone/compatibility/ApiTwentyOnePlus.java @@ -26,7 +26,6 @@ import android.app.PendingIntent; import android.content.ContentProviderClient; import android.content.Context; import android.graphics.Bitmap; -import android.os.Vibrator; import android.view.WindowManager; import androidx.core.content.ContextCompat; import org.linphone.R; @@ -243,9 +242,4 @@ class ApiTwentyOnePlus { activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); } } - - public static void vibrate(Vibrator vibrator) { - long[] pattern = {0, 1000, 1000}; - vibrator.vibrate(pattern, 1); - } } diff --git a/app/src/main/java/org/linphone/compatibility/ApiTwentySixPlus.java b/app/src/main/java/org/linphone/compatibility/ApiTwentySixPlus.java index 8d58f9e71..edac738a4 100644 --- a/app/src/main/java/org/linphone/compatibility/ApiTwentySixPlus.java +++ b/app/src/main/java/org/linphone/compatibility/ApiTwentySixPlus.java @@ -33,10 +33,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Bitmap; -import android.media.AudioAttributes; import android.os.Build; -import android.os.VibrationEffect; -import android.os.Vibrator; import android.provider.Settings; import android.widget.RemoteViews; import org.linphone.R; @@ -334,15 +331,4 @@ class ApiTwentySixPlus { activity.enterPictureInPictureMode(); } } - - public static void vibrate(Vibrator vibrator) { - long[] timings = {0, 1000, 1000}; - int[] amplitudes = {0, VibrationEffect.DEFAULT_AMPLITUDE, 0}; - VibrationEffect effect = VibrationEffect.createWaveform(timings, amplitudes, 1); - AudioAttributes audioAttrs = - new AudioAttributes.Builder() - .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE) - .build(); - vibrator.vibrate(effect, audioAttrs); - } } diff --git a/app/src/main/java/org/linphone/compatibility/Compatibility.java b/app/src/main/java/org/linphone/compatibility/Compatibility.java index 9b421d576..f8d189bc8 100644 --- a/app/src/main/java/org/linphone/compatibility/Compatibility.java +++ b/app/src/main/java/org/linphone/compatibility/Compatibility.java @@ -30,7 +30,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.os.Build; -import android.os.Vibrator; import android.provider.Settings; import android.service.notification.StatusBarNotification; import org.linphone.core.Address; @@ -327,12 +326,4 @@ public class Compatibility { return new StatusBarNotification[0]; } - - public static void vibrate(Vibrator vibrator) { - if (Version.sdkAboveOrEqual(Version.API26_O_80)) { - ApiTwentySixPlus.vibrate(vibrator); - } else { - ApiTwentyOnePlus.vibrate(vibrator); - } - } } diff --git a/app/src/main/java/org/linphone/settings/LinphonePreferences.java b/app/src/main/java/org/linphone/settings/LinphonePreferences.java index 48fb666e9..1e412c1bc 100644 --- a/app/src/main/java/org/linphone/settings/LinphonePreferences.java +++ b/app/src/main/java/org/linphone/settings/LinphonePreferences.java @@ -1152,13 +1152,12 @@ public class LinphonePreferences { } public boolean isIncomingCallVibrationEnabled() { - if (getConfig() == null) return true; - return getConfig().getBool("app", "incoming_call_vibration", true); + if (getLc() == null) return false; + return getLc().isVibrationOnIncomingCallEnabled(); } public void enableIncomingCallVibration(boolean enable) { - if (getConfig() == null) return; - getConfig().setBool("app", "incoming_call_vibration", enable); + getLc().setVibrationOnIncomingCallEnabled(enable); } public boolean isBisFeatureEnabled() {