From de096cb8c862c3cca99de1950850c3fedaa0372f Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 30 Nov 2018 14:37:52 +0100 Subject: [PATCH] allow blocking numbers directly from Recents screen --- .../pro/adapters/RecentCallsAdapter.kt | 20 +++++++++++++++++- .../contacts/pro/extensions/Context.kt | 10 +++++++++ app/src/main/res/drawable-hdpi/ic_block.png | Bin 0 -> 495 bytes app/src/main/res/drawable-xhdpi/ic_block.png | Bin 0 -> 624 bytes app/src/main/res/drawable-xxhdpi/ic_block.png | Bin 0 -> 928 bytes .../main/res/drawable-xxxhdpi/ic_block.png | Bin 0 -> 1240 bytes app/src/main/res/menu/cab_recent_calls.xml | 5 +++++ 7 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_block.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_block.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_block.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_block.png diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/RecentCallsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/RecentCallsAdapter.kt index 5a871563..a6479f67 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/RecentCallsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/RecentCallsAdapter.kt @@ -10,6 +10,7 @@ import com.simplemobiletools.commons.views.FastScroller import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.contacts.pro.R import com.simplemobiletools.contacts.pro.activities.SimpleActivity +import com.simplemobiletools.contacts.pro.extensions.addBlockedNumber import com.simplemobiletools.contacts.pro.extensions.config import com.simplemobiletools.contacts.pro.helpers.ContactsHelper import com.simplemobiletools.contacts.pro.helpers.RECENTS_TAB_MASK @@ -28,7 +29,11 @@ class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList selectAll() R.id.cab_delete -> askConfirmDelete() + R.id.cab_block_number -> blockNumber() } } @@ -92,6 +98,18 @@ class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList private fun setupView(view: View, recentCall: RecentCall) { diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Context.kt index 0926d25d..6f590ccc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/extensions/Context.kt @@ -1,9 +1,11 @@ package com.simplemobiletools.contacts.pro.extensions +import android.content.ContentValues import android.content.Context import android.content.Intent import android.database.Cursor import android.net.Uri +import android.provider.BlockedNumberContract.BlockedNumbers import android.provider.ContactsContract import android.telecom.TelecomManager import androidx.core.content.FileProvider @@ -25,6 +27,7 @@ import com.simplemobiletools.contacts.pro.models.ContactSource import com.simplemobiletools.contacts.pro.models.Organization import java.io.File + val Context.config: Config get() = Config.newInstance(applicationContext) val Context.contactsDB: ContactsDao get() = ContactsDatabase.getInstance(applicationContext).ContactsDao() @@ -283,3 +286,10 @@ fun Context.getVisibleContactSources(): ArrayList { sourceNames.removeAll(config.ignoredContactSources) return sourceNames } + +fun Context.addBlockedNumber(number: String) { + ContentValues().apply { + put(BlockedNumbers.COLUMN_ORIGINAL_NUMBER, number) + contentResolver.insert(BlockedNumbers.CONTENT_URI, this) + } +} diff --git a/app/src/main/res/drawable-hdpi/ic_block.png b/app/src/main/res/drawable-hdpi/ic_block.png new file mode 100644 index 0000000000000000000000000000000000000000..1c541fe50a9571c3f2e2d9e84919cf5ec57ec132 GIT binary patch literal 495 zcmVqBX*SXL1%0JKR z5)4SxI;q|}eY(9@@GIjxOCeMRP-vPUlLY4v!2Z_jW6#z@)SE>ozk(I1*9nb+9 z6=eo(1D_P9(A+gh3)q$!_7yBhrO6E^;%g8^HF%R!^AiQSKy@^54>*)c^B3p9o@nS3 zFe!y5#2oM>8vFu`iqYhXYC;SJ&!geppgcx%7jRu}v`z`=iWYW)(qxUCj7Ca9XWY<6 zq|k&I1zto8pMu#bG$AH{r_sW_;9Lq#h=XyU~s6pDp^zHGuRqe)d)I5P4ab;As| zU}unwlYj_kP0>tv&m=imayKE74^LzN2H94 zOk^NkiIJoy<5|HiY7sde`g72N`~1OIrjqdZ={J(iAKa&9n0#YyBT&s&lEw#d)>4kZ zEt;4h97iCJQ6>bo@dw9@Kc*n?n(m?U3&}Lqc%wN*NH(3U@=!zz)1{m za>%%&HI>NX$oa{}a0IEOjr)Pk$QNQE^0PAX-;p94*=(GsPYyC8dR|zKWK-XHWE4_K zJbGSeK^ZdAd1yIu-7YU&MwU5`T}0+s=k>$O1?R!X$OOB*FdTX09OWSW?eanoB*!_b zLz>y;g)~y@991ESz&y&kA%#>qM|nv1!2B%ZiM~jlbMz1yVV4&sAP>F&rt|Ic!c63% zbF>V(Y%(x8Twb`2EOm}XBc-&+$k&C>6Q>dx{ zq4J~1L*TRtLKAKwP{tbn1%MH(AbDdXXYQ z7Y6cek-)O+J9_h-)*TS~ccCcn1l|I50%_BYT?7=7VHgr%6aWC&PAEc#xltwn0000< KMNUMnLSTZCeH~H& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_block.png b/app/src/main/res/drawable-xxhdpi/ic_block.png new file mode 100644 index 0000000000000000000000000000000000000000..d6dc2222fb8f1e31088e5cc19e554a6f40e5ae32 GIT binary patch literal 928 zcmV;R17G}!P)c1HD@MsNKUfoID^R~TEh>V7I0_2U=@ibai&E>Nz&0-%Qu{8A#e)yNHmfX z3y*BN6K?|NSp?k66ykLw+rr{&;LLI;VI(%Nw$+5dB%d{WR@fFznSA4 zSjNc~6m=2k==A7FT?>Xg5ST!zvz!)8N8nBif`P~eE_asGoE+{&puhR!Ap}0QNGMFo zX-kgnz&{8)WPa#|%%&h>PS2#AT-$|G79ia%JufH{>nz zLT%)A_cOO z==Nb7Qsh2IC_%QG7d9a!?sJ5EWRrPe8FHcf9N{EnnR#Ira)jKE)Ra)gf%c*y+GAA!4_=3K@Gq`w8hoe0dJrL&w;CWII^2z3yg&JL<8hCi;>btmU*bJ#;qZ;aoDw<^@0%$5)QxykxYr`!JSJo?78Xhv zN1}S1Vj*xc->^2r!MSh-lSs6Z&x1|#Ig=k)L!wEXVbO6CBT2S~Z@JXc;3{gd$$#<1 z?ef$t>QK#XT*he>?0HY!#>+Hh3aQnl++5%RW|OJeJaA+#aSBz;B#N0-+5SNe)eIwy zp;WVd%(R}p*ZJQ?#6p5wpoIj(eyIiJU=)mkQ2+qZQ#c3ie=sWm0000+qP|6h1e-RyA;fBY}+iwwv%VuT0Q(RPH*q@bkFVk)L&Us|Fm_) zoJb@Ri9~3?Sgt3|D}2VU?B*2N>|qU`@d|OSXDs#PTtsoEaz9&0#%3O1G9~0(K`ZX$ z1b!XkZd%LPMFFPpF{${NsT7d2fif&)4<_tl5oN?CV$9_LChcP$F|mW@d`1{Pqq&5S zv1AgKOvXx>xP%pW$>Brp;W~!Uh8h(9dy}ijIF|D|JMprTn1qAEyharPko4AZ35&#v+;3V$WQ&-HP3R`h= zh78~F3iWvjcU!4yZsS>to6YnR1L(_6+^nIZnO*lA+&oWlgJ<>kaPy6U-I)yXI>j6@ zh}ImzU52EF{^WIn{$davocYQ?36ApY!zq(?hVze+$X?1zP&`UrBW>g>k4P}|Ca-0- z@|8Z~A8BmF=?!9`=jZY@P8%p7esMWYYbb6Ze}LMD+AzvXKr=F559zi=saSQnh zbvPaHd_Xa>(N^2ecij)NC??5Z98PsDcM|25FFmh%LaX63KRd;Ig*s@P z{2xZUSk71IfcCxr6WL75`3lp}-V`sy(NZakTFP)WT8D}DPLhVS~kTbIXr}RnrhbbOLGkEAxRcJA@K=>0p{~H7UR?-mB;IuR8jf4 zA?KIoFxr|_UvNAfa=yZyIL#41NMi?1{jKG<tmGHxC!DSnzbL@3 zIDKOwKgL@){YsknM^`+U&DR&uN*4)+N37?MOZ8I&h4Snrkt2rlJCKdjKFUjQ3{05c zS`4B;N6D+dq=pPj`Lj7?>VqeR!hDUJ_bDxgP?AS*^EHJfb(CWbZg$a644@~QakGYU zVg^;&in|x6D=DBDan6MN*`>#aueqdCK?0yCm$4alo2h5>)8pgZLId%E=B(x*`T2qh zXXE4Vcesu^p1;wXC9EZpS1ByvAjS&3?BsQpF`oLwXF{Le3SGU@G@n z7zVXAj{EAru2Jy$vXFED0000 +