From c14e1f5b958d2ad52df15b1110dcc6743cf73c47 Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Sat, 18 Sep 2021 19:23:55 +0200 Subject: [PATCH 1/4] Added pinning conversations (#197) --- .../smsmessenger/activities/MainActivity.kt | 11 +++-- .../smsmessenger/activities/ThreadActivity.kt | 22 ++++++++++ .../adapters/ConversationsAdapter.kt | 38 ++++++++++++++++-- .../smsmessenger/helpers/Config.kt | 22 ++++++++++ .../smsmessenger/helpers/Constants.kt | 1 + app/src/main/res/drawable-hdpi/ic_pin.png | Bin 0 -> 882 bytes app/src/main/res/drawable-mdpi/ic_pin.png | Bin 0 -> 532 bytes app/src/main/res/drawable-xhdpi/ic_pin.png | Bin 0 -> 1025 bytes app/src/main/res/drawable-xxhdpi/ic_pin.png | Bin 0 -> 1983 bytes app/src/main/res/drawable-xxxhdpi/ic_pin.png | Bin 0 -> 2012 bytes app/src/main/res/layout/item_conversation.xml | 18 +++++++++ app/src/main/res/menu/cab_conversations.xml | 8 ++++ app/src/main/res/menu/menu_thread.xml | 8 ++++ app/src/main/res/values-cs/strings.xml | 2 + app/src/main/res/values-da/strings.xml | 2 + app/src/main/res/values-de/strings.xml | 2 + app/src/main/res/values-el/strings.xml | 2 + app/src/main/res/values-es/strings.xml | 2 + app/src/main/res/values-fi/strings.xml | 2 + app/src/main/res/values-fr/strings.xml | 2 + app/src/main/res/values-gl/strings.xml | 2 + app/src/main/res/values-id/strings.xml | 2 + app/src/main/res/values-it/strings.xml | 2 + app/src/main/res/values-ja/strings.xml | 2 + app/src/main/res/values-lt/strings.xml | 2 + app/src/main/res/values-ml/strings.xml | 2 + app/src/main/res/values-nl/strings.xml | 2 + app/src/main/res/values-pl/strings.xml | 2 + app/src/main/res/values-pt/strings.xml | 2 + app/src/main/res/values-ru/strings.xml | 2 + app/src/main/res/values-sk/strings.xml | 2 + app/src/main/res/values-tr/strings.xml | 2 + app/src/main/res/values-uk/strings.xml | 2 + app/src/main/res/values-zh-rCN/strings.xml | 2 + app/src/main/res/values/dimens.xml | 1 + app/src/main/res/values/strings.xml | 2 + 36 files changed, 166 insertions(+), 7 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_pin.png create mode 100644 app/src/main/res/drawable-mdpi/ic_pin.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_pin.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_pin.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_pin.png diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt index 513e50ac..ff16f5d1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt @@ -28,6 +28,7 @@ import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode import java.util.* +import kotlin.collections.ArrayList class MainActivity : SimpleActivity() { private val MAKE_DEFAULT_APP_REQUEST = 1 @@ -170,7 +171,7 @@ class MainActivity : SimpleActivity() { private fun getCachedConversations() { ensureBackgroundThread { val conversations = try { - conversationsDB.getAll().sortedByDescending { it.date }.toMutableList() as ArrayList + conversationsDB.getAll().toMutableList() as ArrayList } catch (e: Exception) { ArrayList() } @@ -226,6 +227,10 @@ class MainActivity : SimpleActivity() { private fun setupConversations(conversations: ArrayList) { val hasConversations = conversations.isNotEmpty() + val sortedConversations = conversations.sortedWith( + compareByDescending{ config.pinnedConversations.contains(it.threadId.toString()) } + .thenByDescending{ it.date } + ).toMutableList() as ArrayList conversations_list.beVisibleIf(hasConversations) no_conversations_placeholder.beVisibleIf(!hasConversations) no_conversations_placeholder_2.beVisibleIf(!hasConversations) @@ -237,7 +242,7 @@ class MainActivity : SimpleActivity() { val currAdapter = conversations_list.adapter if (currAdapter == null) { - ConversationsAdapter(this, conversations, conversations_list, conversations_fastscroller) { + ConversationsAdapter(this, sortedConversations, conversations_list, conversations_fastscroller) { Intent(this, ThreadActivity::class.java).apply { putExtra(THREAD_ID, (it as Conversation).threadId) putExtra(THREAD_TITLE, it.title) @@ -254,7 +259,7 @@ class MainActivity : SimpleActivity() { } } else { try { - (currAdapter as ConversationsAdapter).updateConversations(conversations) + (currAdapter as ConversationsAdapter).updateConversations(sortedConversations) } catch (ignored: Exception) { } } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt index 28c5b7ef..5fd42606 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -146,6 +146,7 @@ class ThreadActivity : SimpleActivity() { } updateMenuItemColors(menu) + checkPinBtnVisibility(menu) return true } @@ -159,6 +160,8 @@ class ThreadActivity : SimpleActivity() { R.id.delete -> askConfirmDelete() R.id.manage_people -> managePeople() R.id.mark_as_unread -> markAsUnread() + R.id.pin_conversation -> pinConversation(true) + R.id.unpin_conversation -> pinConversation(false) else -> return super.onOptionsItemSelected(item) } return true @@ -852,6 +855,25 @@ class ThreadActivity : SimpleActivity() { return participants } + private fun pinConversation(pin: Boolean) { + if (pin) { + config.addPinnedConversationByThreadId(threadId) + } + else { + config.removePinnedConversationByThreadId(threadId) + } + + runOnUiThread { + refreshMessages() + } + } + + private fun checkPinBtnVisibility(menu: Menu) { + val pinnedConversations = config.pinnedConversations + menu.findItem(R.id.pin_conversation).isVisible = !pinnedConversations.contains(threadId.toString()) + menu.findItem(R.id.unpin_conversation).isVisible = pinnedConversations.contains(threadId.toString()) + } + @SuppressLint("MissingPermission") @Subscribe(threadMode = ThreadMode.ASYNC) fun refreshMessages(event: Events.RefreshMessages) { diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt index cbccb4b1..14853821 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -22,10 +22,7 @@ import com.simplemobiletools.commons.views.FastScroller import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.activities.SimpleActivity -import com.simplemobiletools.smsmessenger.extensions.deleteConversation -import com.simplemobiletools.smsmessenger.extensions.getSmsDraft -import com.simplemobiletools.smsmessenger.extensions.markThreadMessagesRead -import com.simplemobiletools.smsmessenger.extensions.markThreadMessagesUnread +import com.simplemobiletools.smsmessenger.extensions.* import com.simplemobiletools.smsmessenger.helpers.refreshMessages import com.simplemobiletools.smsmessenger.models.Conversation import kotlinx.android.synthetic.main.item_conversation.view.* @@ -48,6 +45,8 @@ class ConversationsAdapter( findItem(R.id.cab_add_number_to_contact).isVisible = isOneItemSelected() && getSelectedItems().firstOrNull()?.isGroupConversation == false findItem(R.id.cab_dial_number).isVisible = isOneItemSelected() && getSelectedItems().firstOrNull()?.isGroupConversation == false findItem(R.id.cab_copy_number).isVisible = isOneItemSelected() && getSelectedItems().firstOrNull()?.isGroupConversation == false + + checkPinBtnVisibility(this) } } @@ -64,6 +63,8 @@ class ConversationsAdapter( R.id.cab_delete -> askConfirmDelete() R.id.cab_mark_as_read -> markAsRead() R.id.cab_mark_as_unread -> markAsUnread() + R.id.cab_pin_conversation -> pinConversation(true) + R.id.cab_unpin_conversation -> pinConversation(false) R.id.cab_select_all -> selectAll() } } @@ -237,6 +238,33 @@ class ConversationsAdapter( private fun getSelectedItems() = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList + private fun pinConversation(pin: Boolean) { + val conversations = getSelectedItems() + + if (conversations.size == 0) { + return + } + + if (pin) { + activity.config.addPinnedConversations(conversations) + } + else { + activity.config.removePinnedConversations(conversations) + } + + activity.runOnUiThread { + refreshMessages() + finishActMode() + } + } + + private fun checkPinBtnVisibility(menu: Menu) { + val pinnedConversations = activity.config.pinnedConversations + val selectedConversations = getSelectedItems() + menu.findItem(R.id.cab_pin_conversation).isVisible = selectedConversations.any { !pinnedConversations.contains(it.threadId.toString()) } + menu.findItem(R.id.cab_unpin_conversation).isVisible = selectedConversations.any { pinnedConversations.contains(it.threadId.toString()) } + } + override fun onViewRecycled(holder: ViewHolder) { super.onViewRecycled(holder) if (!activity.isDestroyed && !activity.isFinishing) { @@ -265,6 +293,8 @@ class ConversationsAdapter( draft_indicator.beVisibleIf(smsDraft != null) draft_indicator.setTextColor(adjustedPrimaryColor) + pin_indicator.beVisibleIf(activity.config.pinnedConversations.contains(conversation.threadId.toString())) + conversation_frame.isSelected = selectedKeys.contains(conversation.hashCode()) conversation_address.apply { diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Config.kt index 78670daf..a0dcc48e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Config.kt @@ -2,6 +2,8 @@ package com.simplemobiletools.smsmessenger.helpers import android.content.Context import com.simplemobiletools.commons.helpers.BaseConfig +import com.simplemobiletools.smsmessenger.models.Conversation +import java.util.HashSet class Config(context: Context) : BaseConfig(context) { companion object { @@ -33,4 +35,24 @@ class Config(context: Context) : BaseConfig(context) { var mmsFileSizeLimit: Long get() = prefs.getLong(MMS_FILE_SIZE_LIMIT, FILE_SIZE_1_MB) set(mmsFileSizeLimit) = prefs.edit().putLong(MMS_FILE_SIZE_LIMIT, mmsFileSizeLimit).apply() + + var pinnedConversations: Set + get() = prefs.getStringSet(PINNED_CONVERSATIONS, HashSet())!! + set(pinnedConversations) = prefs.edit().putStringSet(PINNED_CONVERSATIONS, pinnedConversations).apply() + + fun addPinnedConversationByThreadId(threadId: Long) { + pinnedConversations = pinnedConversations.plus(threadId.toString()) + } + + fun addPinnedConversations(conversations: List) { + pinnedConversations = pinnedConversations.plus(conversations.map { it.threadId.toString() }) + } + + fun removePinnedConversationByThreadId(threadId: Long) { + pinnedConversations = pinnedConversations.minus(threadId.toString()) + } + + fun removePinnedConversations(conversations: List) { + pinnedConversations = pinnedConversations.minus(conversations.map { it.threadId.toString() }) + } } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt index 9e1ec619..c036bfb9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/Constants.kt @@ -17,6 +17,7 @@ const val USE_SIMPLE_CHARACTERS = "use_simple_characters" const val LOCK_SCREEN_VISIBILITY = "lock_screen_visibility" const val ENABLE_DELIVERY_REPORTS = "enable_delivery_reports" const val MMS_FILE_SIZE_LIMIT = "mms_file_size_limit" +const val PINNED_CONVERSATIONS = "pinned_conversations" private const val PATH = "com.simplemobiletools.smsmessenger.action." const val MARK_AS_READ = PATH + "mark_as_read" diff --git a/app/src/main/res/drawable-hdpi/ic_pin.png b/app/src/main/res/drawable-hdpi/ic_pin.png new file mode 100644 index 0000000000000000000000000000000000000000..0f32c2eb7ddaf0c501119318e7055d927e33ef22 GIT binary patch literal 882 zcmV-&1C9KNP)o>vEs_-1ohTiZV$==7L`E06YR0zNa~NLj$XAjE3GW#{c-Pi7%m zBe+S;oM#_PY?}!F0gh)95;aTVC#~yeKd5DIoZPr!jujOK%oN-HwOBXUCica=a7mR8 z9;?FhCHzd4sv)t>ZWXvIw)OkMjLu9_GrBRVM|bG<=$YiF2rA^d^|ZSt+*W z5Zvj^n(&CkTph$-X*EAriCsayxjc8kVX-U88}JVFgUw(Zk1r4m7hR(5po%@k1b-8F z>T)~-jZsY3&NQ*NkUT41Fy3;>7IVCqv@m$$#_L*XVP7hVE#{DL1ILR=M$R+kJ!oT3 zYKgtqko1Nmtdlsw`_PT;0+sAZEhL!%-nzug*pno&D{2_m%kj(-`@H?s|I?KdzIHe6 z9LF;~u;r+&8e>|;?weH_mvvD4V^CAa_96ykfG{~*V6N$k?q=L&?GO1uY4;mN;} zu!RNXO`HJpo=;*qbL0}@WmBWbT{4uR)}3mKe$*o z=glOsX7tPn_g(#0f7cn)^XZ-|n#5y?Ir~ye?403d4(M~|(Z4Qsi2Yd{d>%bC7y7)J zBsK#_W#l3jnu$GF@q7|k4UU8BVt=*vfL8XVR@BT1*UWdZ1)YD}&mt7w>YCAoyjv1x zrtCuD@nRRH&`cM5##CsaEqXn>G9~KHumH+?%07*qo IM6N<$f=bJ_mH+?% literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_pin.png b/app/src/main/res/drawable-mdpi/ic_pin.png new file mode 100644 index 0000000000000000000000000000000000000000..eb56bb8a5066745c75ba28634a026abb73f469ac GIT binary patch literal 532 zcmV+v0_**WP)>Mh=duz8Rf0S4rFaBAI-jvH zWJ(5ZfKt!|R-F$T)18cj0V^`7MXd+Hhj>G-myuAOmLcN_ye{!xL5=qRBosq31|nAbiF>lNZZXfI9(6oGa!+inJvQe^s7wo1L{%%{8dBN%01fy{NZ z11;|$sPY5gnasUu0ke`ladS3Y2X38#J75tUk-6ppmFJVAzXbCJ+T5%y*dw?}zqg&Q z-UldlKSsa=SSGWBMmPH-7#C7#(4H$EKxRjr{dHWE3gK-jb!yKQna2X>A|OxuNk!%u zaxtnsS7aV^oXhOlgF+#=k@B$it>BGGCZxTzLaCKvH!to;T48-o{66ia6-qvEDFc|W z^1a|*yjs^wD-`@-U&{Pv!app2eFb{SoF2Zhytb?RDTP7_IF#}+nP)wpb$2(G7f`Qf zB$W(1lkx%ZJ6-|k25aCPY=I89pHc`HJHz*YPiJxx28LyL6nM3tvoLfWjQ-2;|JFBm Wo4H&C3Uq(~0000q`|u7{<-OD7z66R39qAibSlW5CbcvC?V(q5<;0>{7@Lt2m4S+H>4s;iV6!VghDXt zLsVqZ#cp=_pWdFg*%Q;VvuD>mJI5pRg9q`h}X`V6S(ObS)J!#2y#$RYN1x_XSkRUaufw1@xH;sb!xFaoAA6HPF-EyPQ;^`Gn71ew-^|{ma4c?5jF_cC9n=B!LRX!0I0~}S zc1J&z?j2MEj<&p4>n~z%7riw&KoSi?^EsxCL>He=PoWtc%ZY?vKso6Hs^885XeHDX z{NEq6$4--yuJ~6_6~}S{;|fOrRU3P4&_10%W5n!>d3iAgoe}plrfnA_=8FDX%TCh~j(Lmk9`bk`l#kMDii#q=AdS0+q8j6A*YSB`atFC1yuu$GZ11Kvls;RALe#%AXydksgOZP_qFU&kqiB}SR(rU=BH<;(9rk!Z%(0-J({rIm#q73t z5GsB7=}T)bv;HPYruZ4iwqoC|>9NPl@mw+L$F@J4z%300000NkvXXu0mjfKtbOr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_pin.png b/app/src/main/res/drawable-xxhdpi/ic_pin.png new file mode 100644 index 0000000000000000000000000000000000000000..4a1a3dd29e9c07ef276bc110745b27d2414f2be0 GIT binary patch literal 1983 zcmV;w2SE6VP)pn!<65fyA$f<}nlM57WERDMuVv0*IOu=n~N z*vtR)_50=Q)tkea-M#nizP+z}lTSjHGv%J0J9FmD>>Dzq4+_9YGL4)^?j)PY7V-eO zmdqnZkx{;EzZW0+XmUGwkNiRY3HY77M(!Y|kpq1_{Z4ww+QaUs;~0LX+4>Fo;4j#5Fa?<-` zv2Ux-3HE9&AwLEWDn2F;lEZ5DTD>$!y&Bkhz`8%Silu z6j@iZ@#XS#)$GRlI{Jjz@k!+Q;K9T?Z|_B$Ddd%)tas8~=!+9KJAFL)FnFjP-nO1# zlf0IDUr(M}$!K4;(yH@dg&ZWY%-lp>8Q+r?WVkO|S+TPxkdK0gDeNE#=I}3q`h@1W z-Q*-+uCiihk3>9&d`jkc`({+D^EsrW@fXQKzFZ~6j*cad1P>t^PSPpCHoA(1e4Rog zX(jr?qz&7DX?Olx@F04?X}(Oeg1v6O&J1mIC;Kv$6gxT_77+S}5Uag?5wZLn#LoYf ztRcgEnMw&3NzX*Q)MxZ$6dg{U3hERulPSJTr38zE6eudc;~yYnlP_09uu-H*-`A^A zG~e4-LhRTu*pB<_pyPRV`LboidbS32i~GE7$Hh*KAm@`0f(~bBrO|TSl2?HBoD#Gl z-t@K|7dy2K7R*H()QpGF;#DSSL+tT(9TP0(xf+&+@Ey(2R$-|x+X@A3?Zex(T(FgB z3@n134vRmglJR6j%|`!Lg1y^!Fo&Eo*Vo@F1?{!ZL9hT%sfJasY@hzV1?j zW&PC1PeCI+LEDSuHy=s%sGsu@FTql=La)95{|wbL)3?#IV6W6d)ZYe_L35EN>~X%$ zdP4opXHkBEouQ5N?KCA898MOY*jd%j7u1Mx7UmRwu$Xh|0%gpFfkcFT6WPbFWnqwBnYJ&|v}HV?o7vG)m6!WmAG}FAASe z!JPeV(7wY-MgNA4 zI9;F7E3T;inA&GOcT6T$c8%*y#ujheF2RnBeft@Dov!p{dQGrk%Xdnw^tSB~+gTp8 zouLrnHk6ppS|&Dreb6zn!P~Z4Fz0jyZD(lzb*L}btAb5Fv>0|9!gp4j>Frw~q>qag@P!wtIwp2#9PCuV zcUHXP?OP$(QIK}|zP)eA0&m}Ou~TOuoi)@Q!Is~0M;wDGFucgyc3kY#P^43py3f4G zm+7ez4$_Kxskg0!*s-%=L)>>-6wW0#QXL1a^0t)_EODmmDN$UM(K06?c98PPOT2Am z#Li71j|UykD4ckY1X~z%LgDLIR&$=WuasaZgnAbZdi=V|T<#VICp%Dr)?Qa6yBf7{!U#1d*CBSclok04I3yqG=WC7xv@*X);j?!`PHnNu7 z3_Ep5ZD+QkYP)y|b_$?$M=F7(?4Eujy6-1OdI+)+jaRrL>_*9(_H7j`7o>{{x&i7t zE#x%ig~zyZ2g9z`>0VI1t98ww@>ij1KdFS>65D`uW>3zM^TH(@77CnLvuS2-O7SGB z_Om6}#i&P-{sD+al#XqiN^!uhTC9325ytK+>PG=8nLWa}HQ#!*XeN)HW-kW(Y4n_LIC zln)re@-CkQj>(*(YbOJ56|$yEmvo4Qf#P>tCM#*D+mn R2C@JE002ovPDHLkV1hLO;$i>* literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_pin.png b/app/src/main/res/drawable-xxxhdpi/ic_pin.png new file mode 100644 index 0000000000000000000000000000000000000000..c516e08f8d19cdd8fcce3420a9ec31197cb94f31 GIT binary patch literal 2012 zcmV<22P622P)PdI6vx$k8%2htW^W!lIWu$S3m=4g_F8+bHJ&-M_w3m-YSaKrL}r4OU@dq8 zJPy`@Rp3G}hHV;kDHL@AcmNy(|7P$zcn&OU4n_eI```YfQ|J)B0=I*)?6*;dP_*%2 zyHnIo_zv7D%{L-UDAYvofm6tC`50Wp{WVGm1v(Avaf(+Ie}jj?IPSaAs8a_(uWq<# zG582f=l%y;D99}Ems6}*{0bIx90My9;~A$&XQ%0FODGLC^1iZB`c=@f`r z#I{M{^J$Jv2ZK|Yf7B^R3v3f2*d1X%89WO{v!B`v zNx$S2V;F9qSL`o?jci|gA?bZiA%@}horryAa4Xx_T1faErwGGv`%cAv+n|@j^Vz<( zLbAJ^A{2fARPgr+`%mE;Fp=$RDY3bIE1EAtQQutg3VSFHV1BH`Ma+qz3kkgOHa<;3TkmN=u@fO&o zC~-dypGw^aXh`sUC-D)mT@jLuamWzM*seB0a^t`YPSPItv3(J8`eEK=n_38oP0{3> zgi~Q3MF@VEazBJ#5lv;gN=t0|_%kQjRMgk! zaU$(V_SI`~EW}A}-xG?`0s=d)C}@4SMKcf0Y!@eoJ3eN>^t zi^UenhAbKB8ty-@#J-71pDVddJBcmU8WC55-E0#@=xCvY&5slY$BF@}BS@hu|{ zp2z)cSE$5Brq6?uPUq3!I64vgY{Q7TeW#6wuA+;#o>c4{pY;_intdEcCvyD8AkKJ1 z>?-9cr^DE+=2$wB<2MGntbHE$-L=FnCtr0sjLjU5r4u=RV{tF{-L>F!s)R4mNaHYg z5G)Z}+n+hD%yD!o_8SrXO)UOym~>YB6YQs*(EdQuo07r{}djfb{- zOk&^plCWjlYuT=!LOj!*7(I@G1!Sv(G#%C7Ew&VXhuG@4*Tn8c>(lnvg7HbaC=&be z<)B+&n=*)FOhE@r*RyS@gaEI00x$Ie;P_I|(fca4Eu9eLO-}GhHnUAX<;0i9I<_sP zB>MoA=G^bZmc|ygEv>|M65#}r9AKM%$cZbBmnFuvdMqK>xlR%-uuZSU@w7qrl$gNw zrIy(IPuuBcw&|rLd`9*VIFs!wA<15i7XNxUMNTXpKZBWUTNxqvO-@oRuuZQdHjo+- zPXe7{D1K_VmqG$pIf<3x0H`BOE+f+_s8{u(c%p|t! zg~ZkxaV$wTuubJ8wnND;PI4`sKV+NQNUZp~oTNi2p~@V{(s#`I2Y_Uk0g65F+KfM_eM;b#HJ*I24jI7;XXp-_+j?2P3488PM0_@ zOi;FSe`#`TJ+5K9N(%{{A-0!3C+hKs#j%icsH~98*|@1A1eHPkp$dVE&x3}P2v74DI_ujeCs6Xp_?hqVjoF~UApRe`&i!w zz3i;V53kr0BcU%v({ISR>?2KL8+WwbfV)GAe>$-r65Af^CnrIVLz39-B#&TsrPx$L z+og|z)MLt7Y%y-;>W3k8$>Le;Bd^4^tkJ!hk2`&2p{E^vp+oiG^(Fa=zh4TTWfU9a z-6nRQA?q8cPe1Cj#=)n)QcLm`|9$Dfm4?_jLcbl$!HS`OF9DOeZKWmoimyMO^(sI= zm9zNzm}a#ea455K7GJj$>)UexwUgMkGojb{dX>?<=(tEp_KM=B_%S76BhjY#F(fw9 z%^H0+#g8S)-uP&kix*$}C4BJ!0000 + + + + + + + + + diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index af8271c5..ebfd80d4 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -17,6 +17,8 @@ Odesílá se… Export zpráv Import zpráv + Pin to the top + Unpin Nová konverzace diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 16102277..97decdcf 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -17,6 +17,8 @@ Sender… Eksporter beskeder Importer beskeder + Pin to the top + Unpin Ny Samtale diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 40f69e22..28a67caf 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -17,6 +17,8 @@ Sende… Export messages Import messages + Pin to the top + Unpin Neuer Chat diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index ec01e170..fcb3fb4e 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -17,6 +17,8 @@ Γίνεται αποστολή… Εξαγωγή μηνυμάτων Εισαγωγή μηνυμάτων + Pin to the top + Unpin Νέα συνομιλία diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index a267726e..7e36ffa0 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -17,6 +17,8 @@ Sending… Export messages Import messages + Pin to the top + Unpin Nueva conversación diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index ab3a4416..8baaec9f 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -17,6 +17,8 @@ Lähetetään… Export messages Import messages + Pin to the top + Unpin Uusi keskustelu diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 1625d4fd..0aab6d75 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -17,6 +17,8 @@ Envoi en cours… Export de messages Import de messages + Pin to the top + Unpin Nouvelle conversation diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index d566febf..bc222857 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -17,6 +17,8 @@ Sending… Export messages Import messages + Pin to the top + Unpin Nova conversa diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index e4217469..7bbff46f 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -17,6 +17,8 @@ Sending… Export messages Import messages + Pin to the top + Unpin Percakapan baru diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index b1477e50..481992a3 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -17,6 +17,8 @@ Invio… Export messages Import messages + Pin to the top + Unpin Nuova conversazione diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index b281ca3d..681853ed 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -17,6 +17,8 @@ Sending… Export messages Import messages + Pin to the top + Unpin 新しい会話 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 714051b0..0a5b2567 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -17,6 +17,8 @@ Sending… Export messages Import messages + Pin to the top + Unpin Naujas pokalbis diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index 50c2029f..0be2d7a7 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -17,6 +17,8 @@ Sending… Export messages Import messages + Pin to the top + Unpin പുതിയ സംഭാഷണം diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 759d3c56..6fa59309 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -17,6 +17,8 @@ Versturen… Berichten exporteren Berichten importeren + Pin to the top + Unpin Nieuw gesprek diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index bd91ca19..7de14ed7 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -17,6 +17,8 @@ Wysyłanie… Eksportuj wiadomości Importuj wiadomości + Przypnij na górze + Odepnij Nowa rozmowa diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 4f08f40e..cec92960 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -17,6 +17,8 @@ A enviar… Exportar mensagens Importar mensagens + Pin to the top + Unpin Nova conversa diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index c4ae0a0b..dab9154e 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -17,6 +17,8 @@ Отправка… Экспорт сообщений Импорт сообщений + Pin to the top + Unpin Новая переписка diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 5c922a60..020a6b05 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -17,6 +17,8 @@ Odosiela sa… Exportovať správy Importovať správy + Pin to the top + Unpin Nová konverzácia diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 575b3c20..2e01517e 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -17,6 +17,8 @@ Sending… Export messages Import messages + Pin to the top + Unpin Yeni görüşme diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 8a5a6b46..a15a8fa3 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -17,6 +17,8 @@ Sending… Export messages Import messages + Pin to the top + Unpin Нове листування diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index c2622ff6..bbce7ff9 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -17,6 +17,8 @@ Sending… Export messages Import messages + Pin to the top + Unpin 新的对话 diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index fd6215f3..5411875a 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -5,4 +5,5 @@ 36dp 60dp 24dp + 15dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bb24daff..699ee439 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -17,6 +17,8 @@ Sending… Export messages Import messages + Pin to the top + Unpin New conversation From cc06bfa7f36b53dd5f26e8def61b0cb7cc358cb1 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Fri, 24 Sep 2021 17:57:34 +0200 Subject: [PATCH 2/4] adding some spaces --- .../simplemobiletools/smsmessenger/activities/MainActivity.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt index ff16f5d1..dcfea4ea 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt @@ -228,8 +228,8 @@ class MainActivity : SimpleActivity() { private fun setupConversations(conversations: ArrayList) { val hasConversations = conversations.isNotEmpty() val sortedConversations = conversations.sortedWith( - compareByDescending{ config.pinnedConversations.contains(it.threadId.toString()) } - .thenByDescending{ it.date } + compareByDescending { config.pinnedConversations.contains(it.threadId.toString()) } + .thenByDescending { it.date } ).toMutableList() as ArrayList conversations_list.beVisibleIf(hasConversations) no_conversations_placeholder.beVisibleIf(!hasConversations) From 516131787c351914ad0b8120cac6d41256864d5a Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Fri, 24 Sep 2021 17:58:01 +0200 Subject: [PATCH 3/4] removing a newline --- .../smsmessenger/activities/ThreadActivity.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt index 5fd42606..11532cca 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -858,8 +858,7 @@ class ThreadActivity : SimpleActivity() { private fun pinConversation(pin: Boolean) { if (pin) { config.addPinnedConversationByThreadId(threadId) - } - else { + } else { config.removePinnedConversationByThreadId(threadId) } From 03ff16f6338168cd4a37dead13b544e15c5ad0fe Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Fri, 24 Sep 2021 17:58:28 +0200 Subject: [PATCH 4/4] minor code style update --- .../smsmessenger/adapters/ConversationsAdapter.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt index de66d7a1..40e0eb26 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -243,15 +243,13 @@ class ConversationsAdapter( private fun pinConversation(pin: Boolean) { val conversations = getSelectedItems() - - if (conversations.size == 0) { + if (conversations.isEmpty()) { return } if (pin) { activity.config.addPinnedConversations(conversations) - } - else { + } else { activity.config.removePinnedConversations(conversations) }