From a29777eebcfb60c898b9bd8a17f8ee81e1e0d782 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 28 Aug 2024 12:09:09 +0200 Subject: [PATCH] Added back kill app button --- .../java/org/linphone/core/CoreContext.kt | 6 ++-- .../ui/main/help/fragment/HelpFragment.kt | 11 +++++++ app/src/main/res/drawable/power.xml | 9 ++++++ app/src/main/res/layout/help_fragment.xml | 31 +++++++++++++++++++ app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 6 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable/power.xml diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index e4cb1f437..575792d89 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -35,6 +35,7 @@ import androidx.annotation.UiThread import androidx.annotation.WorkerThread import androidx.lifecycle.MutableLiveData import com.google.firebase.crashlytics.FirebaseCrashlytics +import kotlin.system.exitProcess import org.linphone.BuildConfig import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.contacts.ContactsManager @@ -494,14 +495,15 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager audioManager.unregisterAudioDeviceCallback(audioDeviceCallback) - core.stopAsync() + core.stop() contactsManager.onCoreStopped(core) telecomManager.onCoreStopped(core) notificationsManager.onCoreStopped(core) // It's very unlikely the process will survive until the Core reaches GlobalStateOff sadly - Log.w("$TAG Core is shutting down but probably won't reach Off state") + Log.w("$TAG Core has been shut down") + exitProcess(0) } @AnyThread diff --git a/app/src/main/java/org/linphone/ui/main/help/fragment/HelpFragment.kt b/app/src/main/java/org/linphone/ui/main/help/fragment/HelpFragment.kt index 5080f47a7..4c6cf8bf3 100644 --- a/app/src/main/java/org/linphone/ui/main/help/fragment/HelpFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/help/fragment/HelpFragment.kt @@ -28,6 +28,7 @@ import android.view.ViewGroup import androidx.annotation.UiThread import androidx.navigation.fragment.findNavController import androidx.navigation.navGraphViewModels +import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.R import org.linphone.core.tools.Log import org.linphone.databinding.HelpFragmentBinding @@ -73,6 +74,16 @@ class HelpFragment : GenericMainFragment() { findNavController().navigate(action) } + binding.setQuitClickListener { + coreContext.postOnCoreThread { + Log.i("$TAG Stopping Core Context") + coreContext.quitSafely() + } + + Log.i("$TAG Quitting app") + requireActivity().finishAffinity() + } + binding.setPrivacyPolicyClickListener { val url = getString(R.string.website_privacy_policy_url) try { diff --git a/app/src/main/res/drawable/power.xml b/app/src/main/res/drawable/power.xml new file mode 100644 index 000000000..73dd8f930 --- /dev/null +++ b/app/src/main/res/drawable/power.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/help_fragment.xml b/app/src/main/res/layout/help_fragment.xml index 6f13c154c..a97412ab5 100644 --- a/app/src/main/res/layout/help_fragment.xml +++ b/app/src/main/res/layout/help_fragment.xml @@ -20,6 +20,9 @@ + @@ -306,6 +309,34 @@ app:layout_constraintStart_toEndOf="@id/debug_icon" app:layout_constraintEnd_toEndOf="parent"/> + + + + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index d6267e454..18080583a 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -160,6 +160,7 @@ Une erreur est survenue Mise à jour disponible Une nouvelle version %s est disponible. Voulez-vous mettre à jour ? + Quitter l\'application Dépannage Nettoyer les journaux Partager les journaux diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 984cd6b60..e2ff4d1c2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -197,6 +197,7 @@ An error occurred while checking for update Update available A new version %s is available. Do you want to update? + Quit app Troubleshooting Clean logs Share logs