diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index 183675188..3b8741cab 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -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()) diff --git a/app/src/main/java/org/linphone/ui/main/calls/fragment/StartCallFragment.kt b/app/src/main/java/org/linphone/ui/main/calls/fragment/StartCallFragment.kt index 66c31ba51..2543bdf6b 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/fragment/StartCallFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/fragment/StartCallFragment.kt @@ -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() diff --git a/app/src/main/java/org/linphone/ui/main/help/fragment/DebugFragment.kt b/app/src/main/java/org/linphone/ui/main/help/fragment/DebugFragment.kt index b5f807a65..63aa8840e 100644 --- a/app/src/main/java/org/linphone/ui/main/help/fragment/DebugFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/help/fragment/DebugFragment.kt @@ -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 ) } diff --git a/app/src/main/java/org/linphone/ui/main/help/viewmodel/HelpViewModel.kt b/app/src/main/java/org/linphone/ui/main/help/viewmodel/HelpViewModel.kt index 3800fc4ca..121258e17 100644 --- a/app/src/main/java/org/linphone/ui/main/help/viewmodel/HelpViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/help/viewmodel/HelpViewModel.kt @@ -41,6 +41,8 @@ class HelpViewModel @UiThread constructor() : ViewModel() { val version = MutableLiveData() + val sdkVersion = MutableLiveData() + val debugModeEnabled = MutableLiveData() val newVersionAvailableEvent: MutableLiveData> 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) diff --git a/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt b/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt index 5828ca719..e5a7d851d 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt @@ -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() } } diff --git a/app/src/main/java/org/linphone/utils/AppUtils.kt b/app/src/main/java/org/linphone/utils/AppUtils.kt index 677ab4d2a..c29aaf719 100644 --- a/app/src/main/java/org/linphone/utils/AppUtils.kt +++ b/app/src/main/java/org/linphone/utils/AppUtils.kt @@ -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) { diff --git a/app/src/main/res/drawable/shape_squircle_green_disabled_background.xml b/app/src/main/res/drawable/shape_squircle_green_disabled_background.xml new file mode 100644 index 000000000..a6b71d712 --- /dev/null +++ b/app/src/main/res/drawable/shape_squircle_green_disabled_background.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/squircle_green_button_background.xml b/app/src/main/res/drawable/squircle_green_button_background.xml index 0f7435734..34552986e 100644 --- a/app/src/main/res/drawable/squircle_green_button_background.xml +++ b/app/src/main/res/drawable/squircle_green_button_background.xml @@ -1,7 +1,7 @@ + android:drawable="@drawable/shape_squircle_green_disabled_background" /> + android:background="@{model.isDefault ? @color/gray_main2_100 : @color/white, default=@color/gray_main2_100}"> + @@ -421,7 +424,7 @@ app:layout_constraintTop_toBottomOf="@+id/action_settings"/> @@ -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"/> + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/help_fragment.xml b/app/src/main/res/layout/help_fragment.xml index 5d7d4efa8..98e7f86ba 100644 --- a/app/src/main/res/layout/help_fragment.xml +++ b/app/src/main/res/layout/help_fragment.xml @@ -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"/> diff --git a/app/src/main/res/layout/voip_incoming_call_bottom_bar.xml b/app/src/main/res/layout/voip_incoming_call_bottom_bar.xml index bf48ff07f..abc774770 100644 --- a/app/src/main/res/layout/voip_incoming_call_bottom_bar.xml +++ b/app/src/main/res/layout/voip_incoming_call_bottom_bar.xml @@ -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" diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index aee0183f0..71f19db02 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -39,5 +39,4 @@ #4AA8FF #FFA645 - #1ABF4601 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 58f29aa83..579504bcd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -152,18 +152,19 @@ Check update Contribute on &appName; translation Advanced - Troubleshooting - Enable/disable debug logs - Blah - Clean logs - Share logs - Share debug logs link using… A new version is available: %s Your version is up-to-date An error occurred while checking for update - Debug logs have been cleaned - Debug logs URL copied into clipboard - Failed to upload debug logs + Troubleshooting + Enable/disable debug logs + Blah + Clean logs + Share logs + Linphone SDK version + Share debug logs link using… + Debug logs have been cleaned + Debug logs URL copied into clipboard + Failed to upload debug logs Calls Use echo canceller