Added back kill app button

This commit is contained in:
Sylvain Berfini 2024-08-28 12:09:09 +02:00
parent 1f604d54f2
commit a29777eebc
6 changed files with 57 additions and 2 deletions

View file

@ -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

View file

@ -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 {

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="256"
android:viewportHeight="256">
<path
android:pathData="M120,128L120,48a8,8 0,0 1,16 0v80a8,8 0,0 1,-16 0ZM180.37,49.3a8,8 0,0 0,-8.74 13.4C194.74,77.77 208,101.57 208,128a80,80 0,0 1,-160 0c0,-26.43 13.26,-50.23 36.37,-65.3a8,8 0,0 0,-8.74 -13.4C47.9,67.38 32,96.06 32,128a96,96 0,0 0,192 0C224,96.06 208.1,67.38 180.37,49.3Z"
android:fillColor="#4e6074"/>
</vector>

View file

@ -20,6 +20,9 @@
<variable
name="debugClickListener"
type="View.OnClickListener" />
<variable
name="quitClickListener"
type="View.OnClickListener" />
<variable
name="viewModel"
type="org.linphone.ui.main.help.viewmodel.HelpViewModel" />
@ -306,6 +309,34 @@
app:layout_constraintStart_toEndOf="@id/debug_icon"
app:layout_constraintEnd_toEndOf="parent"/>
<ImageView
android:onClick="@{quitClickListener}"
android:id="@+id/quit_icon"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginStart="16dp"
android:src="@drawable/power"
android:contentDescription="@null"
app:tint="?attr/color_main1_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/quit_title"
app:layout_constraintTop_toTopOf="@id/quit_title"
app:layout_constraintBottom_toBottomOf="@id/quit_title" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:onClick="@{quitClickListener}"
android:id="@+id/quit_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="24dp"
android:text="@string/help_quit_title"
app:layout_constraintTop_toBottomOf="@id/debug_icon"
app:layout_constraintStart_toEndOf="@id/quit_icon"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

View file

@ -160,6 +160,7 @@
<string name="help_error_checking_version_toast_message">Une erreur est survenue</string>
<string name="help_dialog_update_available_title">Mise à jour disponible</string>
<string name="help_dialog_update_available_message">Une nouvelle version %s est disponible. Voulez-vous mettre à jour ?</string>
<string name="help_quit_title">Quitter l\'application</string>
<string name="help_troubleshooting_title">Dépannage</string>
<string name="help_troubleshooting_clean_logs">Nettoyer les journaux</string>
<string name="help_troubleshooting_share_logs">Partager les journaux</string>

View file

@ -197,6 +197,7 @@
<string name="help_error_checking_version_toast_message">An error occurred while checking for update</string>
<string name="help_dialog_update_available_title">Update available</string>
<string name="help_dialog_update_available_message">A new version %s is available. Do you want to update?</string>
<string name="help_quit_title">Quit app</string>
<string name="help_troubleshooting_title">Troubleshooting</string>
<string name="help_troubleshooting_clean_logs">Clean logs</string>
<string name="help_troubleshooting_share_logs">Share logs</string>