diff --git a/app/build.gradle b/app/build.gradle index 8921c6669..9c043d493 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -88,7 +88,7 @@ android { defaultConfig { minSdkVersion 21 targetSdkVersion 29 - versionCode 4212 + versionCode 4213 versionName "${project.version}" applicationId getPackageName() multiDexEnabled true diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 039affcec..403bcdf2b 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -64,7 +64,8 @@ android:largeHeap="true" android:roundIcon="@mipmap/ic_launcher_round" android:resizeableActivity="true" - android:theme="@style/LinphoneStyle"> + android:theme="@style/LinphoneStyle" + android:requestLegacyExternalStorage="true"> diff --git a/app/src/main/java/org/linphone/assistant/PhoneAccountLinkingAssistantActivity.java b/app/src/main/java/org/linphone/assistant/PhoneAccountLinkingAssistantActivity.java index 29aac4daa..c768a346f 100644 --- a/app/src/main/java/org/linphone/assistant/PhoneAccountLinkingAssistantActivity.java +++ b/app/src/main/java/org/linphone/assistant/PhoneAccountLinkingAssistantActivity.java @@ -58,6 +58,7 @@ public class PhoneAccountLinkingAssistantActivity extends AssistantActivity { if (core == null) { Log.e("[Account Linking Assistant] Core not available"); unexpectedError(); + return; } ProxyConfig[] proxyConfigs = core.getProxyConfigList(); @@ -69,12 +70,14 @@ public class PhoneAccountLinkingAssistantActivity extends AssistantActivity { if (identity == null) { Log.e("[Account Linking Assistant] Proxy doesn't have an identity address"); unexpectedError(); + return; } if (!mProxyConfig.getDomain().equals(getString(R.string.default_domain))) { Log.e( "[Account Linking Assistant] Can't link account on domain " + mProxyConfig.getDomain()); unexpectedError(); + return; } accountCreator.setUsername(identity.getUsername()); @@ -82,6 +85,7 @@ public class PhoneAccountLinkingAssistantActivity extends AssistantActivity { if (authInfo == null) { Log.e("[Account Linking Assistant] Auth info not found"); unexpectedError(); + return; } accountCreator.setHa1(authInfo.getHa1()); accountCreator.setAlgorithm((authInfo.getAlgorithm())); @@ -90,10 +94,12 @@ public class PhoneAccountLinkingAssistantActivity extends AssistantActivity { "[Account Linking Assistant] Proxy config index out of bounds: " + proxyConfigIndex); unexpectedError(); + return; } } else { Log.e("[Account Linking Assistant] Proxy config index not found"); unexpectedError(); + return; } mCountryPicker = findViewById(R.id.select_country); diff --git a/app/src/main/java/org/linphone/history/HistoryFragment.java b/app/src/main/java/org/linphone/history/HistoryFragment.java index cdffb6414..f2f150a09 100644 --- a/app/src/main/java/org/linphone/history/HistoryFragment.java +++ b/app/src/main/java/org/linphone/history/HistoryFragment.java @@ -197,15 +197,18 @@ public class HistoryFragment extends Fragment if (mHistoryAdapter.isEditionEnabled()) { mHistoryAdapter.toggleSelection(position); } else { - CallLog log = mLogs.get(position); - Address address; - if (log.getDir() == Call.Dir.Incoming) { - address = log.getFromAddress(); - } else { - address = log.getToAddress(); - } - if (address != null) { - LinphoneManager.getCallManager().newOutgoingCall(address.asStringUriOnly(), null); + if (position >= 0 && position < mLogs.size()) { + CallLog log = mLogs.get(position); + Address address; + if (log.getDir() == Call.Dir.Incoming) { + address = log.getFromAddress(); + } else { + address = log.getToAddress(); + } + if (address != null) { + LinphoneManager.getCallManager() + .newOutgoingCall(address.asStringUriOnly(), null); + } } } } diff --git a/build.gradle b/build.gradle index e2b619b41..fa0a6b06f 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.5.2' + classpath 'com.android.tools.build:gradle:3.5.3' classpath 'com.google.gms:google-services:4.3.2' classpath "com.diffplug.spotless:spotless-plugin-gradle:3.24.2"