mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-05-03 06:46:25 +00:00
Prevent crash if fails to go to outside activity because it doesn't exists or it isn't found
This commit is contained in:
parent
dc4619a7d7
commit
3045378eb0
3 changed files with 35 additions and 19 deletions
|
|
@ -20,6 +20,7 @@
|
||||||
package org.linphone.ui
|
package org.linphone.ui
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.ActivityNotFoundException
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
|
|
@ -40,6 +41,7 @@ import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.compatibility.Compatibility
|
import org.linphone.compatibility.Compatibility
|
||||||
import org.linphone.core.tools.Log
|
import org.linphone.core.tools.Log
|
||||||
|
import org.linphone.ui.main.settings.fragment.SettingsFragment
|
||||||
import org.linphone.utils.ToastUtils
|
import org.linphone.utils.ToastUtils
|
||||||
import org.linphone.utils.slideInToastFromTop
|
import org.linphone.utils.slideInToastFromTop
|
||||||
import org.linphone.utils.slideInToastFromTopForDuration
|
import org.linphone.utils.slideInToastFromTopForDuration
|
||||||
|
|
@ -224,15 +226,19 @@ open class GenericActivity : AppCompatActivity() {
|
||||||
|
|
||||||
fun goToAndroidPermissionSettings() {
|
fun goToAndroidPermissionSettings() {
|
||||||
Log.i("$TAG Going into Android settings for our app")
|
Log.i("$TAG Going into Android settings for our app")
|
||||||
val intent = Intent(
|
try {
|
||||||
Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
|
val intent = Intent(
|
||||||
Uri.fromParts(
|
Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
|
||||||
"package",
|
Uri.fromParts(
|
||||||
packageName, null
|
"package",
|
||||||
|
packageName, null
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
startActivity(intent)
|
||||||
startActivity(intent)
|
} catch (anfe: ActivityNotFoundException) {
|
||||||
|
Log.e("$TAG Failed to go to android settings: $anfe")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected fun enableWindowSecureMode(enable: Boolean) {
|
protected fun enableWindowSecureMode(enable: Boolean) {
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
package org.linphone.ui.main.contacts.fragment
|
package org.linphone.ui.main.contacts.fragment
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
|
import android.content.ActivityNotFoundException
|
||||||
import android.content.ClipData
|
import android.content.ClipData
|
||||||
import android.content.ClipboardManager
|
import android.content.ClipboardManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
|
@ -170,11 +171,15 @@ class ContactFragment : SlidingPaneChildFragment() {
|
||||||
|
|
||||||
viewModel.openNativeContactEditor.observe(viewLifecycleOwner) {
|
viewModel.openNativeContactEditor.observe(viewLifecycleOwner) {
|
||||||
it.consume { uri ->
|
it.consume { uri ->
|
||||||
val editIntent = Intent(Intent.ACTION_EDIT).apply {
|
try {
|
||||||
setDataAndType(uri.toUri(), ContactsContract.Contacts.CONTENT_ITEM_TYPE)
|
val editIntent = Intent(Intent.ACTION_EDIT).apply {
|
||||||
putExtra("finishActivityOnSaveCompleted", true)
|
setDataAndType(uri.toUri(), ContactsContract.Contacts.CONTENT_ITEM_TYPE)
|
||||||
|
putExtra("finishActivityOnSaveCompleted", true)
|
||||||
|
}
|
||||||
|
startActivity(editIntent)
|
||||||
|
} catch (anfe: ActivityNotFoundException) {
|
||||||
|
Log.e("$TAG Failed to open native contact editor with URI [$uri]: $anfe")
|
||||||
}
|
}
|
||||||
startActivity(editIntent)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@
|
||||||
*/
|
*/
|
||||||
package org.linphone.ui.main.settings.fragment
|
package org.linphone.ui.main.settings.fragment
|
||||||
|
|
||||||
|
import android.content.ActivityNotFoundException
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
|
|
@ -159,14 +160,18 @@ class SettingsFragment : GenericMainFragment() {
|
||||||
viewModel.goToIncomingCallNotificationChannelSettingsEvent.observe(viewLifecycleOwner) {
|
viewModel.goToIncomingCallNotificationChannelSettingsEvent.observe(viewLifecycleOwner) {
|
||||||
it.consume {
|
it.consume {
|
||||||
Log.w("$TAG Going to incoming call channel settings")
|
Log.w("$TAG Going to incoming call channel settings")
|
||||||
val intent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS).apply {
|
try {
|
||||||
putExtra(Settings.EXTRA_APP_PACKAGE, requireContext().packageName)
|
val intent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS).apply {
|
||||||
putExtra(
|
putExtra(Settings.EXTRA_APP_PACKAGE, requireContext().packageName)
|
||||||
Settings.EXTRA_CHANNEL_ID,
|
putExtra(
|
||||||
getString(R.string.notification_channel_incoming_call_id)
|
Settings.EXTRA_CHANNEL_ID,
|
||||||
)
|
getString(R.string.notification_channel_incoming_call_id)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
startActivity(intent)
|
||||||
|
} catch (anfe: ActivityNotFoundException) {
|
||||||
|
Log.e("$TAG Failed to go to notification channel settings: $anfe")
|
||||||
}
|
}
|
||||||
startActivity(intent)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue