From d6d705a975d882cce56aea2bd036c04adc2f654c Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 10 Mar 2025 11:45:17 +0100 Subject: [PATCH] Code cleanup --- .../compatibility/Api29Compatibility.kt | 2 - .../compatibility/Api33Compatibility.kt | 2 - .../linphone/compatibility/Compatibility.kt | 1 - .../org/linphone/contacts/AvatarGenerator.kt | 6 +- app/src/main/java/org/linphone/core/VFS.kt | 11 +-- .../java/org/linphone/ui/GenericFragment.kt | 4 -- .../main/java/org/linphone/ui/NotoSansFont.kt | 4 +- .../ui/call/conference/view/GridBoxLayout.kt | 3 +- .../ui/call/fragment/TransferCallFragment.kt | 4 +- .../ui/call/model/ZrtpAlertDialogModel.kt | 4 -- .../ui/fileviewer/view/RatioTextureView.kt | 11 --- .../ui/fileviewer/viewmodel/FileViewModel.kt | 9 +-- .../ui/main/chat/model/ConversationModel.kt | 4 -- .../main/contacts/fragment/ContactFragment.kt | 2 +- .../ui/main/help/fragment/DebugFragment.kt | 4 -- .../linphone/ui/main/model/AccountModel.kt | 2 + .../ui/main/model/SelectedAddressModel.kt | 4 -- .../fragment/SettingsAdvancedFragment.kt | 4 -- .../org/linphone/utils/DataBindingUtils.kt | 6 -- app/src/main/java/org/linphone/utils/Event.kt | 5 -- .../java/org/linphone/utils/ImageUtils.kt | 4 +- .../utils/RecyclerViewHeaderDecoration.kt | 68 ++++++++++--------- .../java/org/linphone/utils/TimestampUtils.kt | 2 - .../main/res/color/primary_color_selector.xml | 5 -- .../main/res/drawable/action_background.xml | 9 --- app/src/main/res/drawable/color_main2_500.xml | 4 -- app/src/main/res/drawable/image_square.xml | 9 --- app/src/main/res/drawable/plus.xml | 9 --- ...ant_register_confirm_sms_code_fragment.xml | 2 +- app/src/main/res/layout/call_numpad_digit.xml | 1 + .../layout/call_numpad_digit_with_letters.xml | 1 + .../layout/call_numpad_digit_with_plus.xml | 7 +- .../call_numpad_digit_with_voicemail.xml | 2 + app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values/dimen.xml | 2 - app/src/main/res/values/strings.xml | 2 +- app/src/main/res/values/styles.xml | 10 +-- 37 files changed, 72 insertions(+), 159 deletions(-) delete mode 100644 app/src/main/res/color/primary_color_selector.xml delete mode 100644 app/src/main/res/drawable/action_background.xml delete mode 100644 app/src/main/res/drawable/color_main2_500.xml delete mode 100644 app/src/main/res/drawable/image_square.xml delete mode 100644 app/src/main/res/drawable/plus.xml diff --git a/app/src/main/java/org/linphone/compatibility/Api29Compatibility.kt b/app/src/main/java/org/linphone/compatibility/Api29Compatibility.kt index 6ef9f7163..200e8c9f6 100644 --- a/app/src/main/java/org/linphone/compatibility/Api29Compatibility.kt +++ b/app/src/main/java/org/linphone/compatibility/Api29Compatibility.kt @@ -31,8 +31,6 @@ import androidx.annotation.RequiresApi @RequiresApi(Build.VERSION_CODES.Q) class Api29Compatibility { companion object { - private const val TAG = "[API 29 Compatibility]" - fun getMediaCollectionUri(isImage: Boolean, isVideo: Boolean, isAudio: Boolean): Uri { return when { isImage -> { diff --git a/app/src/main/java/org/linphone/compatibility/Api33Compatibility.kt b/app/src/main/java/org/linphone/compatibility/Api33Compatibility.kt index 0f2ee06fd..020698073 100644 --- a/app/src/main/java/org/linphone/compatibility/Api33Compatibility.kt +++ b/app/src/main/java/org/linphone/compatibility/Api33Compatibility.kt @@ -26,8 +26,6 @@ import androidx.annotation.RequiresApi @RequiresApi(Build.VERSION_CODES.TIRAMISU) class Api33Compatibility { companion object { - private const val TAG = "[API 33 Compatibility]" - fun getAllRequiredPermissionsArray(): Array { return arrayOf( Manifest.permission.POST_NOTIFICATIONS, diff --git a/app/src/main/java/org/linphone/compatibility/Compatibility.kt b/app/src/main/java/org/linphone/compatibility/Compatibility.kt index ee005791d..c4cc48734 100644 --- a/app/src/main/java/org/linphone/compatibility/Compatibility.kt +++ b/app/src/main/java/org/linphone/compatibility/Compatibility.kt @@ -38,7 +38,6 @@ class Compatibility { companion object { private const val TAG = "[Compatibility]" - const val FOREGROUND_SERVICE_TYPE_DATA_SYNC = 1 // ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC const val FOREGROUND_SERVICE_TYPE_PHONE_CALL = 4 // ServiceInfo.FOREGROUND_SERVICE_TYPE_PHONE_CALL const val FOREGROUND_SERVICE_TYPE_CAMERA = 64 // ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA const val FOREGROUND_SERVICE_TYPE_MICROPHONE = 128 // ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE diff --git a/app/src/main/java/org/linphone/contacts/AvatarGenerator.kt b/app/src/main/java/org/linphone/contacts/AvatarGenerator.kt index dfeadb58f..704e5543d 100644 --- a/app/src/main/java/org/linphone/contacts/AvatarGenerator.kt +++ b/app/src/main/java/org/linphone/contacts/AvatarGenerator.kt @@ -33,6 +33,8 @@ import androidx.core.content.res.ResourcesCompat import androidx.core.graphics.drawable.IconCompat import org.linphone.R import org.linphone.utils.AppUtils +import androidx.core.graphics.createBitmap +import androidx.core.graphics.drawable.toDrawable class AvatarGenerator(private val context: Context) { private var textSize: Float = AppUtils.getDimension(R.dimen.avatar_initials_text_size) @@ -74,7 +76,7 @@ class AvatarGenerator(private val context: Context) { val textPainter = getTextPainter() val painter = if (useTransparentBackground) getTransparentPainter() else getBackgroundPainter() - val bitmap = Bitmap.createBitmap(avatarSize, avatarSize, Bitmap.Config.ARGB_8888) + val bitmap = createBitmap(avatarSize, avatarSize) val canvas = Canvas(bitmap) val areaRect = Rect(0, 0, avatarSize, avatarSize) val bounds = RectF(areaRect) @@ -91,7 +93,7 @@ class AvatarGenerator(private val context: Context) { } fun buildDrawable(): BitmapDrawable { - return BitmapDrawable(context.resources, buildBitmap(true)) + return buildBitmap(true).toDrawable(context.resources) } fun buildIcon(): IconCompat { diff --git a/app/src/main/java/org/linphone/core/VFS.kt b/app/src/main/java/org/linphone/core/VFS.kt index 837cf30d0..4425b4857 100644 --- a/app/src/main/java/org/linphone/core/VFS.kt +++ b/app/src/main/java/org/linphone/core/VFS.kt @@ -39,6 +39,7 @@ import javax.crypto.KeyGenerator import javax.crypto.SecretKey import javax.crypto.spec.GCMParameterSpec import org.linphone.core.tools.Log +import androidx.core.content.edit class VFS { companion object { @@ -73,7 +74,7 @@ class VFS { return false } - preferences.edit().putBoolean("vfs_enabled", true).apply() + preferences.edit { putBoolean("vfs_enabled", true) } if (corePreferences.makePublicMediaFilesDownloaded) { Log.w("$TAG VFS is now enabled, disabling auto export of media files to native gallery") @@ -98,10 +99,10 @@ class VFS { generateSecretKey() encryptToken(generateToken()).let { data -> preferences - .edit() - .putString(VFS_IV, data.first) - .putString(VFS_KEY, data.second) - .commit() + .edit(commit = true) { + putString(VFS_IV, data.first) + .putString(VFS_KEY, data.second) + } } } diff --git a/app/src/main/java/org/linphone/ui/GenericFragment.kt b/app/src/main/java/org/linphone/ui/GenericFragment.kt index 324a50106..7062f1c30 100644 --- a/app/src/main/java/org/linphone/ui/GenericFragment.kt +++ b/app/src/main/java/org/linphone/ui/GenericFragment.kt @@ -24,10 +24,6 @@ import androidx.fragment.app.Fragment @UiThread abstract class GenericFragment : Fragment() { - companion object { - private const val TAG = "[Generic Fragment]" - } - protected fun observeToastEvents(viewModel: GenericViewModel) { viewModel.showRedToastEvent.observe(viewLifecycleOwner) { it.consume { pair -> diff --git a/app/src/main/java/org/linphone/ui/NotoSansFont.kt b/app/src/main/java/org/linphone/ui/NotoSansFont.kt index 13fc31d33..cd51e00a0 100644 --- a/app/src/main/java/org/linphone/ui/NotoSansFont.kt +++ b/app/src/main/java/org/linphone/ui/NotoSansFont.kt @@ -23,10 +23,10 @@ import androidx.annotation.FontRes import org.linphone.R enum class NotoSansFont(@FontRes val fontRes: Int) { - NotoSansLight(R.font.noto_sans_light), // 300 + // NotoSansLight(R.font.noto_sans_light), // 300 NotoSansRegular(R.font.noto_sans_regular), // 400 NotoSansMedium(R.font.noto_sans_medium), // 500 - NotoSansSemiBold(R.font.noto_sans_semi_bold), // 600 + // NotoSansSemiBold(R.font.noto_sans_semi_bold), // 600 NotoSansBold(R.font.noto_sans_bold), // 700 NotoSansExtraBold(R.font.noto_sans_extra_bold) // 800 } diff --git a/app/src/main/java/org/linphone/ui/call/conference/view/GridBoxLayout.kt b/app/src/main/java/org/linphone/ui/call/conference/view/GridBoxLayout.kt index 2507c6d10..eb3529c6d 100644 --- a/app/src/main/java/org/linphone/ui/call/conference/view/GridBoxLayout.kt +++ b/app/src/main/java/org/linphone/ui/call/conference/view/GridBoxLayout.kt @@ -26,6 +26,7 @@ import android.widget.GridLayout import androidx.annotation.UiThread import androidx.core.view.children import org.linphone.core.tools.Log +import androidx.core.view.isEmpty @UiThread class GridBoxLayout : GridLayout { @@ -58,7 +59,7 @@ class GridBoxLayout : GridLayout { @SuppressLint("DrawAllocation") override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) { - if (childCount == 0 || (!changed && previousChildCount == childCount)) { + if (isEmpty() || (!changed && previousChildCount == childCount)) { super.onLayout(changed, left, top, right, bottom) // To prevent display issue the first time conference is locally paused children.forEach { child -> diff --git a/app/src/main/java/org/linphone/ui/call/fragment/TransferCallFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/TransferCallFragment.kt index e27cb2df1..fa086dde0 100644 --- a/app/src/main/java/org/linphone/ui/call/fragment/TransferCallFragment.kt +++ b/app/src/main/java/org/linphone/ui/call/fragment/TransferCallFragment.kt @@ -242,7 +242,7 @@ class TransferCallFragment : GenericCallFragment() { private fun showConfirmAttendedTransferDialog(callModel: CallModel) { val label = AppUtils.getFormattedString( - org.linphone.R.string.call_transfer_confirm_dialog_message, + R.string.call_transfer_confirm_dialog_message, callViewModel.displayedName.value.orEmpty(), callModel.displayName.value.orEmpty() ) @@ -278,7 +278,7 @@ class TransferCallFragment : GenericCallFragment() { private fun showConfirmBlindTransferDialog(contactModel: ConversationContactOrSuggestionModel) { val label = AppUtils.getFormattedString( - org.linphone.R.string.call_transfer_confirm_dialog_message, + R.string.call_transfer_confirm_dialog_message, callViewModel.displayedName.value.orEmpty(), contactModel.name ) diff --git a/app/src/main/java/org/linphone/ui/call/model/ZrtpAlertDialogModel.kt b/app/src/main/java/org/linphone/ui/call/model/ZrtpAlertDialogModel.kt index f879fbb90..9b5bfae52 100644 --- a/app/src/main/java/org/linphone/ui/call/model/ZrtpAlertDialogModel.kt +++ b/app/src/main/java/org/linphone/ui/call/model/ZrtpAlertDialogModel.kt @@ -27,10 +27,6 @@ import org.linphone.utils.Event class ZrtpAlertDialogModel @UiThread constructor(val allowTryAgain: Boolean) : GenericViewModel() { - companion object { - private const val TAG = "[ZRTP Alert Dialog]" - } - val tryAgainEvent = MutableLiveData>() val hangUpEvent = MutableLiveData>() diff --git a/app/src/main/java/org/linphone/ui/fileviewer/view/RatioTextureView.kt b/app/src/main/java/org/linphone/ui/fileviewer/view/RatioTextureView.kt index 256a51eaf..bd8c69ed4 100644 --- a/app/src/main/java/org/linphone/ui/fileviewer/view/RatioTextureView.kt +++ b/app/src/main/java/org/linphone/ui/fileviewer/view/RatioTextureView.kt @@ -24,10 +24,6 @@ import android.util.AttributeSet import android.view.TextureView class RatioTextureView : TextureView { - companion object { - private const val TAG = "[Ratio TextureView]" - } - constructor(context: Context) : super(context) constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) @@ -38,13 +34,6 @@ class RatioTextureView : TextureView { defStyleAttr ) - constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super( - context, - attrs, - defStyleAttr, - defStyleRes - ) - private var ratioWidth = 0 private var rationHeight = 0 diff --git a/app/src/main/java/org/linphone/ui/fileviewer/viewmodel/FileViewModel.kt b/app/src/main/java/org/linphone/ui/fileviewer/viewmodel/FileViewModel.kt index 2c40b153a..d11a82b40 100644 --- a/app/src/main/java/org/linphone/ui/fileviewer/viewmodel/FileViewModel.kt +++ b/app/src/main/java/org/linphone/ui/fileviewer/viewmodel/FileViewModel.kt @@ -19,7 +19,6 @@ */ package org.linphone.ui.fileviewer.viewmodel -import android.graphics.Bitmap import android.graphics.pdf.PdfRenderer import android.net.Uri import android.os.ParcelFileDescriptor @@ -31,7 +30,6 @@ import java.io.BufferedReader import java.io.File import java.io.FileReader import java.lang.IllegalStateException -import java.lang.StringBuilder import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -42,6 +40,7 @@ import org.linphone.utils.Event import org.linphone.utils.FileUtils import org.linphone.utils.TimestampUtils import androidx.core.net.toUri +import androidx.core.graphics.createBitmap class FileViewModel @UiThread @@ -181,11 +180,7 @@ class FileViewModel Log.d( "$TAG Page size is ${page.width}/${page.height}, screen size is $screenWidth/$screenHeight" ) - val bm = Bitmap.createBitmap( - page.width, - page.height, - Bitmap.Config.ARGB_8888 - ) + val bm = createBitmap(page.width, page.height) page.render(bm, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY) page.close() diff --git a/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt b/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt index 514ec947c..d6a09e53b 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt @@ -50,10 +50,6 @@ class ConversationModel val id = LinphoneUtils.getConversationId(chatRoom) - val localSipUri = chatRoom.localAddress.asStringUriOnly() - - val remoteSipUri = chatRoom.peerAddress.asStringUriOnly() - val isGroup = !chatRoom.hasCapability(Capabilities.OneToOne.toInt()) && chatRoom.hasCapability( Capabilities.Conference.toInt() ) diff --git a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt index 26d591560..7b6901abc 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt @@ -319,7 +319,7 @@ class ContactFragment : SlidingPaneChildFragment() { private fun showConfirmTrustCallDialog(contactName: String, deviceSipUri: String) { val label = AppUtils.getFormattedString( - org.linphone.R.string.contact_dialog_increase_trust_level_message, + R.string.contact_dialog_increase_trust_level_message, contactName, deviceSipUri ) 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 06dcf1ec3..d2c85be68 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 @@ -39,10 +39,6 @@ import org.linphone.ui.main.fragment.GenericMainFragment import org.linphone.ui.main.help.viewmodel.HelpViewModel class DebugFragment : GenericMainFragment() { - companion object { - private const val TAG = "[Debug Fragment]" - } - private lateinit var binding: HelpDebugFragmentBinding val viewModel: HelpViewModel by navGraphViewModels( diff --git a/app/src/main/java/org/linphone/ui/main/model/AccountModel.kt b/app/src/main/java/org/linphone/ui/main/model/AccountModel.kt index 588a49e87..1d030e215 100644 --- a/app/src/main/java/org/linphone/ui/main/model/AccountModel.kt +++ b/app/src/main/java/org/linphone/ui/main/model/AccountModel.kt @@ -17,6 +17,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +@file:Suppress("SameReturnValue") + package org.linphone.ui.main.model import android.view.View diff --git a/app/src/main/java/org/linphone/ui/main/model/SelectedAddressModel.kt b/app/src/main/java/org/linphone/ui/main/model/SelectedAddressModel.kt index 2c8562076..8868bb8ca 100644 --- a/app/src/main/java/org/linphone/ui/main/model/SelectedAddressModel.kt +++ b/app/src/main/java/org/linphone/ui/main/model/SelectedAddressModel.kt @@ -31,10 +31,6 @@ class SelectedAddressModel val avatarModel: ContactAvatarModel?, private val onRemovedFromSelection: ((model: SelectedAddressModel) -> Unit)? = null ) { - companion object { - private const val TAG = "[Selected Address Model]" - } - @UiThread fun removeFromSelection() { onRemovedFromSelection?.invoke(this) diff --git a/app/src/main/java/org/linphone/ui/main/settings/fragment/SettingsAdvancedFragment.kt b/app/src/main/java/org/linphone/ui/main/settings/fragment/SettingsAdvancedFragment.kt index 92a310759..9c92dbd74 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/fragment/SettingsAdvancedFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/fragment/SettingsAdvancedFragment.kt @@ -35,10 +35,6 @@ import org.linphone.ui.main.settings.viewmodel.SettingsViewModel @UiThread class SettingsAdvancedFragment : GenericMainFragment() { - companion object { - private const val TAG = "[Advanced Settings Fragment]" - } - private lateinit var binding: SettingsAdvancedFragmentBinding private lateinit var viewModel: SettingsViewModel diff --git a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt index 3e79408bd..fff752750 100644 --- a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt +++ b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt @@ -227,12 +227,6 @@ fun ImageView.setSourceImageResource(resource: Int) { this.setImageResource(resource) } -@UiThread -@BindingAdapter("android:textStyle") -fun AppCompatTextView.setTypeface(typeface: Int) { - this.setTypeface(null, typeface) -} - @UiThread @BindingAdapter("android:drawableTint") fun AppCompatTextView.setDrawableTint(@ColorInt color: Int) { diff --git a/app/src/main/java/org/linphone/utils/Event.kt b/app/src/main/java/org/linphone/utils/Event.kt index 90ee17d40..07c3f3182 100644 --- a/app/src/main/java/org/linphone/utils/Event.kt +++ b/app/src/main/java/org/linphone/utils/Event.kt @@ -39,9 +39,4 @@ open class Event handleContent(content) } } - - @UiThread - fun consumed(): Boolean { - return handled.get() - } } diff --git a/app/src/main/java/org/linphone/utils/ImageUtils.kt b/app/src/main/java/org/linphone/utils/ImageUtils.kt index 746016d7b..52144be88 100644 --- a/app/src/main/java/org/linphone/utils/ImageUtils.kt +++ b/app/src/main/java/org/linphone/utils/ImageUtils.kt @@ -34,6 +34,7 @@ import java.io.FileNotFoundException import org.linphone.contacts.AvatarGenerator import org.linphone.core.tools.Log import androidx.core.net.toUri +import androidx.core.graphics.createBitmap class ImageUtils { companion object { @@ -91,8 +92,7 @@ class ImageUtils { @AnyThread private fun getRoundBitmap(bitmap: Bitmap): Bitmap { - val output = - Bitmap.createBitmap(bitmap.width, bitmap.height, Bitmap.Config.ARGB_8888) + val output = createBitmap(bitmap.width, bitmap.height) val canvas = Canvas(output) val color = -0xbdbdbe val paint = Paint() diff --git a/app/src/main/java/org/linphone/utils/RecyclerViewHeaderDecoration.kt b/app/src/main/java/org/linphone/utils/RecyclerViewHeaderDecoration.kt index 429fa1416..6ce5e53d2 100644 --- a/app/src/main/java/org/linphone/utils/RecyclerViewHeaderDecoration.kt +++ b/app/src/main/java/org/linphone/utils/RecyclerViewHeaderDecoration.kt @@ -26,6 +26,7 @@ import android.util.SparseArray import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView +import androidx.core.graphics.withSave class RecyclerViewHeaderDecoration( private val context: Context, @@ -90,16 +91,17 @@ class RecyclerViewHeaderDecoration( // Maps the visible view position to the item index in the adapter val position = parent.getChildAdapterPosition(child) if (position != RecyclerView.NO_POSITION && adapter.displayHeaderForPosition(position)) { - canvas.save() - val headerView: View = headers.get(position) ?: adapter.getHeaderViewForPosition( - context, - position - ) - if (position != 0 || child.y < headerView.height) { - canvas.translate(0f, child.y - headerView.height) + canvas.withSave { + val headerView: View = + headers.get(position) ?: adapter.getHeaderViewForPosition( + context, + position + ) + if (position != 0 || child.y < headerView.height) { + translate(0f, child.y - headerView.height) + } + headerView.draw(this) } - headerView.draw(canvas) - canvas.restore() } } } @@ -114,20 +116,21 @@ class RecyclerViewHeaderDecoration( val child = parent.getChildAt(index) val position = parent.getChildAdapterPosition(child) if (position != RecyclerView.NO_POSITION && adapter.displayHeaderForPosition(position)) { - canvas.save() - val headerView: View = headers.get(position) ?: adapter.getHeaderViewForPosition( - context, - position - ) + canvas.withSave { + val headerView: View = + headers.get(position) ?: adapter.getHeaderViewForPosition( + context, + position + ) - val top = child.y - headerView.height - if (top >= 0) { // don't move the first header - canvas.translate(0f, top) + val top = child.y - headerView.height + if (top >= 0) { // don't move the first header + translate(0f, top) + } + + headerView.draw(this) } - headerView.draw(canvas) - canvas.restore() - latestPositionHeaderFound = position nextHeaderTopPosition = child.y } @@ -140,20 +143,21 @@ class RecyclerViewHeaderDecoration( val topVisibleChildPosition = parent.getChildAdapterPosition(topVisibleChild) for (position in topVisibleChildPosition downTo 0) { if (adapter.displayHeaderForPosition(position)) { - canvas.save() - val headerView: View = headers.get(position) ?: adapter.getHeaderViewForPosition( - context, - position - ) + canvas.withSave { + val headerView: View = + headers.get(position) ?: adapter.getHeaderViewForPosition( + context, + position + ) - // Do not translate it as we want it sticky to the top unless in contact with next header - if (nextHeaderTopPosition > 0 && nextHeaderTopPosition <= (headerView.height * 2)) { - val top = nextHeaderTopPosition - (headerView.height * 2) - canvas.translate(0f, top) + // Do not translate it as we want it sticky to the top unless in contact with next header + if (nextHeaderTopPosition > 0 && nextHeaderTopPosition <= (headerView.height * 2)) { + val top = nextHeaderTopPosition - (headerView.height * 2) + translate(0f, top) + } + + headerView.draw(this) } - - headerView.draw(canvas) - canvas.restore() break } } diff --git a/app/src/main/java/org/linphone/utils/TimestampUtils.kt b/app/src/main/java/org/linphone/utils/TimestampUtils.kt index 3564e94de..098300030 100644 --- a/app/src/main/java/org/linphone/utils/TimestampUtils.kt +++ b/app/src/main/java/org/linphone/utils/TimestampUtils.kt @@ -31,8 +31,6 @@ import org.linphone.R class TimestampUtils { companion object { - private const val TAG = "[Timestamp Utils]" - @AnyThread fun isToday(timestamp: Long, timestampInSecs: Boolean = true): Boolean { val cal = getCalendar() diff --git a/app/src/main/res/color/primary_color_selector.xml b/app/src/main/res/color/primary_color_selector.xml deleted file mode 100644 index ef163e8da..000000000 --- a/app/src/main/res/color/primary_color_selector.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/action_background.xml b/app/src/main/res/drawable/action_background.xml deleted file mode 100644 index 7c5b2c70e..000000000 --- a/app/src/main/res/drawable/action_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/color_main2_500.xml b/app/src/main/res/drawable/color_main2_500.xml deleted file mode 100644 index 41f327408..000000000 --- a/app/src/main/res/drawable/color_main2_500.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/image_square.xml b/app/src/main/res/drawable/image_square.xml deleted file mode 100644 index 104b4f3f1..000000000 --- a/app/src/main/res/drawable/image_square.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/plus.xml b/app/src/main/res/drawable/plus.xml deleted file mode 100644 index 71b33fefc..000000000 --- a/app/src/main/res/drawable/plus.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/layout-sw600dp/assistant_register_confirm_sms_code_fragment.xml b/app/src/main/res/layout-sw600dp/assistant_register_confirm_sms_code_fragment.xml index 7b1c03453..6f3941395 100644 --- a/app/src/main/res/layout-sw600dp/assistant_register_confirm_sms_code_fragment.xml +++ b/app/src/main/res/layout-sw600dp/assistant_register_confirm_sms_code_fragment.xml @@ -32,7 +32,7 @@ android:src="@drawable/confirm_sms_code_logo" app:layout_constraintStart_toEndOf="@id/message" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintBottom_toTopOf="@id/header" + app:layout_constraintBottom_toTopOf="@id/mountains" app:layout_constraintTop_toBottomOf="@id/title" /> - @@ -21,6 +22,7 @@ + app:layout_constraintEnd_toEndOf="parent" + tools:ignore="HardcodedText" /> diff --git a/app/src/main/res/layout/call_numpad_digit_with_voicemail.xml b/app/src/main/res/layout/call_numpad_digit_with_voicemail.xml index e66479501..1ad9112da 100644 --- a/app/src/main/res/layout/call_numpad_digit_with_voicemail.xml +++ b/app/src/main/res/layout/call_numpad_digit_with_voicemail.xml @@ -24,6 +24,7 @@ politique de confidentialité En continuant, vous acceptez nos %1$s et %2$s. Confirmez votre numéro de téléphone - Êtes-vous sûr de vouloir utiliser ce numéro de téléphone ? + Êtes-vous sûr que le %s est votre numéro de téléphone ? Connexion Scanner un QR code Ce QR code est invalide ! diff --git a/app/src/main/res/values/dimen.xml b/app/src/main/res/values/dimen.xml index 6ca3ee344..f46aad053 100644 --- a/app/src/main/res/values/dimen.xml +++ b/app/src/main/res/values/dimen.xml @@ -100,8 +100,6 @@ 425dp 340dp - 200dp - 15dp 30dp 15dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f5a9d8c22..9c5efe8e8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -44,7 +44,6 @@ SIP address Device ID - username@domain Display name Domain Username @@ -922,6 +921,7 @@ Go to conversation Copy text to clipboard Voice message are available + Long press to dial voicemail diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index adab3cc5b..5b54e32e7 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -149,15 +149,7 @@ ?attr/color_danger_500 8dp - +