Various changes

This commit is contained in:
Sylvain Berfini 2023-09-21 11:14:10 +02:00
parent e90aa13890
commit c4f666fdd6
15 changed files with 118 additions and 46 deletions

View file

@ -56,6 +56,14 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C
val telecomManager = TelecomManager(context)
@get:AnyThread
val sdkVersion: String by lazy {
val sdkVersion = context.getString(R.string.linphone_sdk_version)
val sdkBranch = context.getString(R.string.linphone_sdk_branch)
val sdkBuildType = org.linphone.core.BuildConfig.BUILD_TYPE
"$sdkVersion ($sdkBranch, $sdkBuildType)"
}
private val activityMonitor = ActivityMonitor()
private val mainThread = Handler(Looper.getMainLooper())

View file

@ -26,6 +26,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.annotation.UiThread
import androidx.core.view.doOnPreDraw
import androidx.navigation.fragment.findNavController
import androidx.navigation.navGraphViewModels
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.bottomsheet.BottomSheetBehavior
@ -89,6 +90,14 @@ class StartCallFragment : GenericFragment() {
return binding.root
}
override fun goBack(): Boolean {
val standardBottomSheetBehavior = BottomSheetBehavior.from(binding.numpadLayout.root)
standardBottomSheetBehavior.state = BottomSheetBehavior.STATE_COLLAPSED
findNavController().popBackStack()
return true
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
postponeEnterTransition()

View file

@ -66,7 +66,7 @@ class DebugFragment : GenericFragment() {
viewModel.debugLogsCleanedEvent.observe(viewLifecycleOwner) {
it.consume {
(requireActivity() as MainActivity).showGreenToast(
getString(R.string.help_advanced_debug_logs_cleaned_toast_message),
getString(R.string.help_troubleshooting_debug_logs_cleaned_toast_message),
R.drawable.info
)
}
@ -81,7 +81,7 @@ class DebugFragment : GenericFragment() {
(requireActivity() as MainActivity).showGreenToast(
getString(
R.string.help_advanced_debug_logs_url_copied_into_clipboard_toast_message
R.string.help_troubleshooting_debug_logs_url_copied_into_clipboard_toast_message
),
R.drawable.info
)
@ -93,7 +93,7 @@ class DebugFragment : GenericFragment() {
viewModel.uploadDebugLogsErrorEvent.observe(viewLifecycleOwner) {
it.consume {
(requireActivity() as MainActivity).showRedToast(
getString(R.string.help_advanced_debug_logs_upload_error_toast_message),
getString(R.string.help_troubleshooting_debug_logs_upload_error_toast_message),
R.drawable.warning_circle
)
}

View file

@ -41,6 +41,8 @@ class HelpViewModel @UiThread constructor() : ViewModel() {
val version = MutableLiveData<String>()
val sdkVersion = MutableLiveData<String>()
val debugModeEnabled = MutableLiveData<Boolean>()
val newVersionAvailableEvent: MutableLiveData<Event<String>> by lazy {
@ -111,6 +113,7 @@ class HelpViewModel @UiThread constructor() : ViewModel() {
init {
val currentVersion = BuildConfig.VERSION_NAME
version.value = currentVersion
sdkVersion.value = coreContext.sdkVersion
coreContext.postOnCoreThread { core ->
core.addListener(coreListener)

View file

@ -92,31 +92,34 @@ class AccountProfileFragment : GenericFragment() {
// TODO: account settings feature
}
binding.setDeleteAccountClickListener {
val model = ConfirmationDialogModel()
val dialog = DialogUtils.getConfirmAccountRemovalDialog(
requireActivity(),
model,
viewModel.displayName.value.orEmpty()
)
model.dismissEvent.observe(viewLifecycleOwner) {
it.consume {
dialog.dismiss()
}
}
model.confirmRemovalEvent.observe(viewLifecycleOwner) {
it.consume {
viewModel.deleteAccount()
dialog.dismiss()
}
}
dialog.show()
}
viewModel.accountRemovedEvent.observe(viewLifecycleOwner) {
it.consume {
val model = ConfirmationDialogModel()
val dialog = DialogUtils.getConfirmAccountRemovalDialog(
requireActivity(),
model,
viewModel.displayName.value.orEmpty()
)
model.dismissEvent.observe(viewLifecycleOwner) {
it.consume {
dialog.dismiss()
}
}
model.confirmRemovalEvent.observe(viewLifecycleOwner) {
it.consume {
Log.i("$TAG Account has been removed, leaving profile")
findNavController().popBackStack()
dialog.dismiss()
}
}
dialog.show()
Log.i("$TAG Account has been removed, leaving profile")
findNavController().popBackStack()
}
}

View file

@ -171,7 +171,7 @@ class AppUtils {
activity.startActivity(
Intent.createChooser(
intent,
activity.getString(R.string.help_advanced_share_logs_dialog_title)
activity.getString(R.string.help_troubleshooting_share_logs_dialog_title)
)
)
} catch (ex: ActivityNotFoundException) {

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="71dp" />
<solid android:color="@color/green_success_200"/>
</shape>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false"
android:drawable="@drawable/shape_squircle_red_disabled_background" />
android:drawable="@drawable/shape_squircle_green_disabled_background" />
<item android:state_pressed="true"
android:drawable="@drawable/shape_squircle_green_pressed_background" />
<item

View file

@ -15,7 +15,7 @@
android:onClick="@{() -> model.setAsDefault()}"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@{model.isDefault ? @color/transparent_light_orange : @color/white, default=@color/transparent_light_orange}">
android:background="@{model.isDefault ? @color/gray_main2_100 : @color/white, default=@color/gray_main2_100}">
<androidx.constraintlayout.widget.Barrier
android:id="@+id/left_barrier"

View file

@ -17,6 +17,9 @@
<variable
name="settingsClickListener"
type="View.OnClickListener" />
<variable
name="deleteAccountClickListener"
type="View.OnClickListener" />
<variable
name="viewModel"
type="org.linphone.ui.main.settings.viewmodel.AccountProfileViewModel" />
@ -421,7 +424,7 @@
app:layout_constraintTop_toBottomOf="@+id/action_settings"/>
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{() -> viewModel.deleteAccount()}"
android:onClick="@{deleteAccountClickListener}"
style="@style/context_menu_danger_action_label_style"
android:id="@+id/action_delete"
android:layout_width="0dp"

View file

@ -38,7 +38,7 @@
android:layout_height="@dimen/top_bar_height"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:text="@string/help_debug_title"
android:text="@string/help_troubleshooting_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent"/>
@ -51,7 +51,7 @@
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="24dp"
android:text="@string/help_advanced_debug_title"
android:text="@string/help_troubleshooting_debug_title"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/debug_mode_switch"/>
@ -63,7 +63,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/help_advanced_debug_subtitle"
android:text="@string/help_troubleshooting_debug_subtitle"
android:textSize="14sp"
android:textColor="@color/gray_main2_600"
app:layout_constraintTop_toBottomOf="@id/debug_title"
@ -100,7 +100,7 @@
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:gravity="center"
android:text="@string/help_advanced_clean_logs"
android:text="@string/help_troubleshooting_clean_logs"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintStart_toStartOf="parent"
@ -122,12 +122,51 @@
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:gravity="center"
android:text="@string/help_advanced_share_logs"
android:text="@string/help_troubleshooting_share_logs"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintStart_toEndOf="@id/clean_logs"
app:layout_constraintTop_toBottomOf="@id/debug_subtitle"/>
<ImageView
android:id="@+id/version_icon"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginStart="16dp"
android:src="@drawable/info"
app:tint="@color/orange_main_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/version_title"
app:layout_constraintTop_toTopOf="@id/version_title"
app:layout_constraintBottom_toBottomOf="@id/version_subtitle"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/version_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_troubleshooting_sdk_version_title"
app:layout_constraintTop_toBottomOf="@id/send_logs"
app:layout_constraintStart_toEndOf="@id/version_icon"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/version_subtitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@{viewModel.sdkVersion, default=`5.3.0`}"
android:textSize="14sp"
android:textColor="@color/gray_main2_600"
app:layout_constraintTop_toBottomOf="@id/version_title"
app:layout_constraintStart_toEndOf="@id/version_icon"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View file

@ -278,7 +278,7 @@
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="24dp"
android:text="@string/help_debug_title"
android:text="@string/help_troubleshooting_title"
app:layout_constraintTop_toBottomOf="@id/advanced_title"
app:layout_constraintStart_toEndOf="@id/debug_icon"
app:layout_constraintEnd_toEndOf="parent"/>

View file

@ -20,6 +20,7 @@
android:id="@+id/hang_up"
android:layout_width="wrap_content"
android:layout_height="@dimen/voip_button_size"
android:layout_marginEnd="30dp"
android:background="@drawable/squircle_red_button_background"
android:onClick="@{() -> viewModel.hangUp()}"
android:paddingStart="30dp"
@ -27,6 +28,7 @@
android:paddingEnd="30dp"
android:paddingBottom="15dp"
android:src="@drawable/phone_disconnect"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/answer_call"
app:layout_constraintStart_toStartOf="parent"

View file

@ -39,5 +39,4 @@
<color name="blue_info_500">#4AA8FF</color>
<color name="orange_away">#FFA645</color>
<color name="transparent_light_orange">#1ABF4601</color>
</resources>

View file

@ -152,18 +152,19 @@
<string name="help_about_check_for_update">Check update</string>
<string name="help_about_contribute_translations_title">Contribute on &appName; translation</string>
<string name="help_about_advanced_title">Advanced</string>
<string name="help_debug_title">Troubleshooting</string>
<string name="help_advanced_debug_title">Enable/disable debug logs</string>
<string name="help_advanced_debug_subtitle">Blah</string> <!-- TODO -->
<string name="help_advanced_clean_logs">Clean logs</string>
<string name="help_advanced_share_logs">Share logs</string>
<string name="help_advanced_share_logs_dialog_title">Share debug logs link using…</string>
<string name="help_update_available_toast_message">A new version is available: %s</string>
<string name="help_version_up_to_date_toast_message">Your version is up-to-date</string>
<string name="help_error_checking_version_toast_message">An error occurred while checking for update</string>
<string name="help_advanced_debug_logs_cleaned_toast_message">Debug logs have been cleaned</string>
<string name="help_advanced_debug_logs_url_copied_into_clipboard_toast_message">Debug logs URL copied into clipboard</string>
<string name="help_advanced_debug_logs_upload_error_toast_message">Failed to upload debug logs</string>
<string name="help_troubleshooting_title">Troubleshooting</string>
<string name="help_troubleshooting_debug_title">Enable/disable debug logs</string>
<string name="help_troubleshooting_debug_subtitle">Blah</string> <!-- TODO -->
<string name="help_troubleshooting_clean_logs">Clean logs</string>
<string name="help_troubleshooting_share_logs">Share logs</string>
<string name="help_troubleshooting_sdk_version_title">Linphone SDK version</string>
<string name="help_troubleshooting_share_logs_dialog_title">Share debug logs link using…</string>
<string name="help_troubleshooting_debug_logs_cleaned_toast_message">Debug logs have been cleaned</string>
<string name="help_troubleshooting_debug_logs_url_copied_into_clipboard_toast_message">Debug logs URL copied into clipboard</string>
<string name="help_troubleshooting_debug_logs_upload_error_toast_message">Failed to upload debug logs</string>
<string name="settings_calls_title">Calls</string>
<string name="settings_calls_echo_canceller_title">Use echo canceller</string>