14
CHANGELOG.md
@ -1,6 +1,20 @@
|
||||
Changelog
|
||||
==========
|
||||
|
||||
Version 6.1.2 *(2018-12-28)*
|
||||
----------------------------
|
||||
|
||||
* Improve the way contacts are fetched, more contacts should show up
|
||||
* Improve contact filtering to fix some glitches
|
||||
* Added a Call menu button for calling not stored numbers from Recents
|
||||
* Some stability improvements
|
||||
|
||||
Version 6.1.1 *(2018-12-12)*
|
||||
----------------------------
|
||||
|
||||
* Fixing a crash on Android Lollipop
|
||||
* Added some translation improvements
|
||||
|
||||
Version 6.1.0 *(2018-11-30)*
|
||||
----------------------------
|
||||
|
||||
|
@ -15,8 +15,8 @@ android {
|
||||
applicationId "com.simplemobiletools.contacts.pro"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 28
|
||||
versionCode 37
|
||||
versionName "6.1.0"
|
||||
versionCode 39
|
||||
versionName "6.1.2"
|
||||
setProperty("archivesBaseName", "contacts")
|
||||
}
|
||||
|
||||
@ -51,9 +51,9 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.simplemobiletools:commons:5.5.1'
|
||||
implementation 'com.simplemobiletools:commons:5.6.2'
|
||||
implementation 'joda-time:joda-time:2.10.1'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
|
||||
implementation 'com.googlecode.ez-vcard:ez-vcard:0.10.4'
|
||||
|
||||
kapt "androidx.room:room-compiler:2.0.0"
|
||||
|
@ -55,7 +55,7 @@ class DialpadActivity : SimpleActivity() {
|
||||
ContactsHelper(this).getContacts { gotContacts(it) }
|
||||
disableKeyboardPopping()
|
||||
|
||||
val callIcon = resources.getColoredDrawableWithColor(R.drawable.ic_phone_big, if (isBlackAndWhiteTheme()) Color.BLACK else Color.WHITE)
|
||||
val callIcon = resources.getColoredDrawableWithColor(R.drawable.ic_phone_huge, if (isBlackAndWhiteTheme()) Color.BLACK else Color.WHITE)
|
||||
dialpad_call_button.setImageDrawable(callIcon)
|
||||
dialpad_call_button.background.applyColorFilter(getAdjustedPrimaryColor())
|
||||
}
|
||||
|
@ -568,15 +568,19 @@ class EditContactActivity : ContactActivity() {
|
||||
}
|
||||
|
||||
private fun setupContactSource() {
|
||||
contact_source.text = getPublicContactSource(contact!!.source)
|
||||
originalContactSource = contact!!.source
|
||||
getPublicContactSource(contact!!.source) {
|
||||
contact_source.text = it
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupNewContact() {
|
||||
supportActionBar?.title = resources.getString(R.string.new_contact)
|
||||
originalContactSource = if (hasContactPermissions()) config.lastUsedContactSource else SMT_PRIVATE
|
||||
contact = getEmptyContact()
|
||||
contact_source.text = getPublicContactSource(contact!!.source)
|
||||
getPublicContactSource(contact!!.source) {
|
||||
contact_source.text = it
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupTypePickers() {
|
||||
@ -831,7 +835,9 @@ class EditContactActivity : ContactActivity() {
|
||||
private fun showSelectContactSourceDialog() {
|
||||
showContactSourcePicker(contact!!.source) {
|
||||
contact!!.source = if (it == getString(R.string.phone_storage_hidden)) SMT_PRIVATE else it
|
||||
contact_source.text = getPublicContactSource(it)
|
||||
getPublicContactSource(it) {
|
||||
contact_source.text = it
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -191,7 +191,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
||||
menu.apply {
|
||||
findItem(R.id.search).isVisible = currentFragment != groups_fragment && currentFragment != recents_fragment
|
||||
findItem(R.id.sort).isVisible = currentFragment != groups_fragment && currentFragment != recents_fragment
|
||||
findItem(R.id.filter).isVisible = currentFragment != groups_fragment
|
||||
findItem(R.id.filter).isVisible = currentFragment != groups_fragment && currentFragment != recents_fragment
|
||||
}
|
||||
setupSearch(menu)
|
||||
return true
|
||||
@ -495,7 +495,8 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
||||
|
||||
val faqItems = arrayListOf(
|
||||
FAQItem(R.string.faq_1_title, R.string.faq_1_text),
|
||||
FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons)
|
||||
FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons),
|
||||
FAQItem(R.string.faq_6_title_commons, R.string.faq_6_text_commons)
|
||||
)
|
||||
|
||||
startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true)
|
||||
@ -585,6 +586,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
||||
add(Release(31, R.string.release_31))
|
||||
add(Release(32, R.string.release_32))
|
||||
add(Release(34, R.string.release_34))
|
||||
add(Release(39, R.string.release_39))
|
||||
checkWhatsNew(this, BuildConfig.VERSION_CODE)
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.telecom.TelecomManager
|
||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||
import com.simplemobiletools.commons.extensions.toast
|
||||
import com.simplemobiletools.contacts.pro.R
|
||||
import com.simplemobiletools.contacts.pro.helpers.KEY_PHONE
|
||||
import com.simplemobiletools.contacts.pro.helpers.REQUEST_CODE_SET_DEFAULT_DIALER
|
||||
@ -54,7 +55,12 @@ open class SimpleActivity : BaseSimpleActivity() {
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.M)
|
||||
protected fun launchSetDefaultDialerIntent() {
|
||||
val intent = Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER).putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, packageName)
|
||||
startActivityForResult(intent, REQUEST_CODE_SET_DEFAULT_DIALER)
|
||||
Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER).putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, packageName).apply {
|
||||
if (resolveActivity(packageManager) != null) {
|
||||
startActivityForResult(this, REQUEST_CODE_SET_DEFAULT_DIALER)
|
||||
} else {
|
||||
toast(R.string.no_app_found)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -446,11 +446,12 @@ class ViewContactActivity : ContactActivity() {
|
||||
|
||||
private fun setupContactSource() {
|
||||
if (showFields and SHOW_CONTACT_SOURCE_FIELD != 0) {
|
||||
val contactSourceValue = getPublicContactSource(contact!!.source)
|
||||
contact_source.text = contactSourceValue
|
||||
getPublicContactSource(contact!!.source) {
|
||||
contact_source.text = it
|
||||
contact_source.copyOnLongClick(it)
|
||||
}
|
||||
contact_source_image.beVisible()
|
||||
contact_source.beVisible()
|
||||
contact_source.copyOnLongClick(contactSourceValue)
|
||||
} else {
|
||||
contact_source_image.beGone()
|
||||
contact_source.beGone()
|
||||
|
@ -62,7 +62,7 @@ class FilterContactSourcesAdapter(val activity: SimpleActivity, private val cont
|
||||
itemView.apply {
|
||||
filter_contact_source_checkbox.isChecked = isSelected
|
||||
filter_contact_source_checkbox.setColors(activity.config.textColor, activity.getAdjustedPrimaryColor(), activity.config.backgroundColor)
|
||||
filter_contact_source_checkbox.text = contactSource.name
|
||||
filter_contact_source_checkbox.text = contactSource.publicName
|
||||
filter_contact_source_holder.setOnClickListener { viewClicked(!isSelected, contactSource) }
|
||||
}
|
||||
|
||||
|
@ -13,6 +13,7 @@ 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.extensions.startCallIntent
|
||||
import com.simplemobiletools.contacts.pro.helpers.ContactsHelper
|
||||
import com.simplemobiletools.contacts.pro.helpers.RECENTS_TAB_MASK
|
||||
import com.simplemobiletools.contacts.pro.interfaces.RefreshContactsListener
|
||||
@ -31,9 +32,15 @@ class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList<Re
|
||||
override fun getActionMenuId() = R.menu.cab_recent_calls
|
||||
|
||||
override fun prepareActionMode(menu: Menu) {
|
||||
val selectedItems = getSelectedItems()
|
||||
if (selectedItems.isEmpty()) {
|
||||
return
|
||||
}
|
||||
|
||||
menu.apply {
|
||||
findItem(R.id.cab_block_number).isVisible = isNougatPlus()
|
||||
findItem(R.id.cab_block_number).title = activity.getString(if (isOneItemSelected()) R.string.block_number else R.string.block_numbers)
|
||||
findItem(R.id.cab_call_number).isVisible = isOneItemSelected() && selectedItems.first().name == null
|
||||
}
|
||||
}
|
||||
|
||||
@ -43,6 +50,7 @@ class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList<Re
|
||||
}
|
||||
|
||||
when (id) {
|
||||
R.id.cab_call_number -> callNumber()
|
||||
R.id.cab_select_all -> selectAll()
|
||||
R.id.cab_delete -> askConfirmDelete()
|
||||
R.id.cab_block_number -> blockNumber()
|
||||
@ -76,6 +84,10 @@ class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList<Re
|
||||
fastScroller?.measureRecyclerView()
|
||||
}
|
||||
|
||||
private fun callNumber() {
|
||||
(activity as SimpleActivity).startCallIntent(getSelectedItems().first().number)
|
||||
}
|
||||
|
||||
private fun askConfirmDelete() {
|
||||
ConfirmationDialog(activity) {
|
||||
deleteRecentCalls()
|
||||
|
@ -36,12 +36,14 @@ class CreateNewGroupDialog(val activity: BaseSimpleActivity, val callback: (newG
|
||||
|
||||
val contactSources = ArrayList<ContactSource>()
|
||||
if (activity.config.localAccountName.isNotEmpty()) {
|
||||
contactSources.add(ContactSource(activity.config.localAccountName, activity.config.localAccountType))
|
||||
val localAccountName = activity.config.localAccountName
|
||||
contactSources.add(ContactSource(localAccountName, activity.config.localAccountType, localAccountName))
|
||||
}
|
||||
|
||||
ContactsHelper(activity).getContactSources {
|
||||
it.filter { it.type.contains("google", true) }.mapTo(contactSources, { ContactSource(it.name, it.type) })
|
||||
contactSources.add(ContactSource(activity.getString(R.string.phone_storage_hidden), SMT_PRIVATE))
|
||||
it.filter { it.type.contains("google", true) }.mapTo(contactSources) { ContactSource(it.name, it.type, it.name) }
|
||||
val phoneSecret = activity.getString(R.string.phone_storage_hidden)
|
||||
contactSources.add(ContactSource(phoneSecret, SMT_PRIVATE, phoneSecret))
|
||||
|
||||
val items = ArrayList<RadioItem>()
|
||||
contactSources.forEachIndexed { index, contactSource ->
|
||||
|
@ -41,12 +41,12 @@ class FilterContactSourcesDialog(val activity: SimpleActivity, private val callb
|
||||
|
||||
private fun confirmEventTypes() {
|
||||
val selectedContactSources = (view.filter_contact_sources_list.adapter as FilterContactSourcesAdapter).getSelectedContactSources()
|
||||
val ignoredContactSourceNames = contactSources.filter { !selectedContactSources.contains(it) }.map {
|
||||
if (it.type == SMT_PRIVATE) SMT_PRIVATE else it.name
|
||||
val ignoredContactSources = contactSources.filter { !selectedContactSources.contains(it) }.map {
|
||||
if (it.type == SMT_PRIVATE) SMT_PRIVATE else it.getFullIdentifier()
|
||||
}.toHashSet()
|
||||
|
||||
if (activity.getVisibleContactSources() != ignoredContactSourceNames) {
|
||||
activity.config.ignoredContactSources = ignoredContactSourceNames
|
||||
if (activity.getVisibleContactSources() != ignoredContactSources) {
|
||||
activity.config.ignoredContactSources = ignoredContactSources
|
||||
callback()
|
||||
}
|
||||
dialog?.dismiss()
|
||||
|
@ -20,11 +20,16 @@ class ImportContactsDialog(val activity: SimpleActivity, val path: String, priva
|
||||
init {
|
||||
val view = (activity.layoutInflater.inflate(R.layout.dialog_import_contacts, null) as ViewGroup).apply {
|
||||
targetContactSource = activity.config.lastUsedContactSource
|
||||
import_contacts_title.text = activity.getPublicContactSource(targetContactSource)
|
||||
activity.getPublicContactSource(targetContactSource) {
|
||||
import_contacts_title.text = it
|
||||
}
|
||||
|
||||
import_contacts_title.setOnClickListener {
|
||||
activity.showContactSourcePicker(targetContactSource) {
|
||||
targetContactSource = if (it == activity.getString(R.string.phone_storage_hidden)) SMT_PRIVATE else it
|
||||
import_contacts_title.text = activity.getPublicContactSource(it)
|
||||
activity.getPublicContactSource(it) {
|
||||
import_contacts_title.text = it
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -65,8 +65,11 @@ fun SimpleActivity.showContactSourcePicker(currentSource: String, callback: (new
|
||||
)
|
||||
|
||||
val items = ArrayList<RadioItem>()
|
||||
val sources = it.filter { !ignoredTypes.contains(it.type) }.map { it.name }
|
||||
var currentSourceIndex = -1
|
||||
val filteredSources = it.filter { !ignoredTypes.contains(it.type) }
|
||||
var sources = filteredSources.map { it.name }
|
||||
var currentSourceIndex = sources.indexOfFirst { it == currentSource }
|
||||
sources = filteredSources.map { it.publicName }
|
||||
|
||||
sources.forEachIndexed { index, account ->
|
||||
var publicAccount = account
|
||||
if (account == config.localAccountName) {
|
||||
@ -74,16 +77,14 @@ fun SimpleActivity.showContactSourcePicker(currentSource: String, callback: (new
|
||||
}
|
||||
|
||||
items.add(RadioItem(index, publicAccount))
|
||||
if (account == currentSource) {
|
||||
currentSourceIndex = index
|
||||
} else if (currentSource == SMT_PRIVATE && account == getString(R.string.phone_storage_hidden)) {
|
||||
if (currentSource == SMT_PRIVATE && account == getString(R.string.phone_storage_hidden)) {
|
||||
currentSourceIndex = index
|
||||
}
|
||||
}
|
||||
|
||||
runOnUiThread {
|
||||
RadioGroupDialog(this, items, currentSourceIndex) {
|
||||
callback(sources[it as Int])
|
||||
callback(filteredSources[it as Int].name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,8 @@ import android.content.Intent
|
||||
import android.database.Cursor
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.provider.BlockedNumberContract
|
||||
import android.provider.BlockedNumberContract.BlockedNumbers
|
||||
import android.provider.ContactsContract
|
||||
@ -15,6 +17,7 @@ import androidx.core.content.FileProvider
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
|
||||
import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_CONTACTS
|
||||
import com.simplemobiletools.commons.helpers.isMarshmallowPlus
|
||||
import com.simplemobiletools.commons.helpers.isNougatPlus
|
||||
import com.simplemobiletools.contacts.pro.BuildConfig
|
||||
import com.simplemobiletools.contacts.pro.R
|
||||
@ -192,11 +195,26 @@ fun Context.getPhotoThumbnailSize(): Int {
|
||||
|
||||
fun Context.hasContactPermissions() = hasPermission(PERMISSION_READ_CONTACTS) && hasPermission(PERMISSION_WRITE_CONTACTS)
|
||||
|
||||
fun Context.getPublicContactSource(source: String): String {
|
||||
return when (source) {
|
||||
config.localAccountName -> getString(R.string.phone_storage)
|
||||
SMT_PRIVATE -> getString(R.string.phone_storage_hidden)
|
||||
else -> source
|
||||
fun Context.getPublicContactSource(source: String, callback: (String) -> Unit) {
|
||||
when (source) {
|
||||
config.localAccountName -> callback(getString(R.string.phone_storage))
|
||||
SMT_PRIVATE -> callback(getString(R.string.phone_storage_hidden))
|
||||
else -> {
|
||||
Thread {
|
||||
ContactsHelper(this).getContactSources {
|
||||
var newSource = source
|
||||
for (contactSource in it) {
|
||||
if (contactSource.name == source && contactSource.type == TELEGRAM_PACKAGE) {
|
||||
newSource += " (${getString(R.string.telegram)})"
|
||||
break
|
||||
}
|
||||
}
|
||||
Handler(Looper.getMainLooper()).post {
|
||||
callback(newSource)
|
||||
}
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -288,9 +306,11 @@ fun Context.getContactPublicUri(contact: Contact): Uri {
|
||||
|
||||
fun Context.getVisibleContactSources(): ArrayList<String> {
|
||||
val sources = ContactsHelper(this).getDeviceContactSources()
|
||||
sources.add(ContactSource(getString(R.string.phone_storage_hidden), SMT_PRIVATE))
|
||||
val sourceNames = ArrayList(sources).map { if (it.type == SMT_PRIVATE) SMT_PRIVATE else it.name }.toMutableList() as ArrayList<String>
|
||||
sourceNames.removeAll(config.ignoredContactSources)
|
||||
val phoneSecret = getString(R.string.phone_storage_hidden)
|
||||
sources.add(ContactSource(phoneSecret, SMT_PRIVATE, phoneSecret))
|
||||
val ignoredContactSources = config.ignoredContactSources
|
||||
val sourceNames = ArrayList(sources).filter { !ignoredContactSources.contains(it.getFullIdentifier()) }
|
||||
.map { if (it.type == SMT_PRIVATE) SMT_PRIVATE else it.name }.toMutableList() as ArrayList<String>
|
||||
return sourceNames
|
||||
}
|
||||
|
||||
@ -331,7 +351,11 @@ fun Context.getBlockedNumbers(): ArrayList<BlockedNumber> {
|
||||
fun Context.addBlockedNumber(number: String) {
|
||||
ContentValues().apply {
|
||||
put(BlockedNumbers.COLUMN_ORIGINAL_NUMBER, number)
|
||||
try {
|
||||
contentResolver.insert(BlockedNumbers.CONTENT_URI, this)
|
||||
} catch (e: Exception) {
|
||||
showErrorToast(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -344,4 +368,4 @@ fun Context.deleteBlockedNumber(number: String) {
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.M)
|
||||
fun Context.isDefaultDialer() = telecomManager.defaultDialerPackage == packageName
|
||||
fun Context.isDefaultDialer() = isMarshmallowPlus() && telecomManager.defaultDialerPackage == packageName
|
||||
|
@ -7,7 +7,7 @@ import com.simplemobiletools.contacts.pro.models.LocalContact
|
||||
const val SHOW_CONTACT_THUMBNAILS = "show_contact_thumbnails"
|
||||
const val SHOW_PHONE_NUMBERS = "show_phone_numbers"
|
||||
const val SHOW_ONLY_CONTACTS_WITH_NUMBERS = "show_only_contacts_with_numbers"
|
||||
const val IGNORED_CONTACT_SOURCES = "ignored_contact_sources"
|
||||
const val IGNORED_CONTACT_SOURCES = "ignored_contact_sources_2"
|
||||
const val START_NAME_WITH_SURNAME = "start_name_with_surname"
|
||||
const val LAST_USED_CONTACT_SOURCE = "last_used_contact_source"
|
||||
const val LOCAL_ACCOUNT_NAME = "local_account_name"
|
||||
|
@ -108,7 +108,12 @@ class ContactsHelper(val context: Context) {
|
||||
do {
|
||||
val name = cursor.getStringValue(ContactsContract.RawContacts.ACCOUNT_NAME) ?: ""
|
||||
val type = cursor.getStringValue(ContactsContract.RawContacts.ACCOUNT_TYPE) ?: ""
|
||||
val source = ContactSource(name, type)
|
||||
var publicName = name
|
||||
if (type == TELEGRAM_PACKAGE) {
|
||||
publicName += " (${context.getString(R.string.telegram)})"
|
||||
}
|
||||
|
||||
val source = ContactSource(name, type, publicName)
|
||||
sources.add(source)
|
||||
} while (cursor.moveToNext())
|
||||
}
|
||||
@ -125,10 +130,12 @@ class ContactsHelper(val context: Context) {
|
||||
return
|
||||
}
|
||||
|
||||
val ignoredSources = context.config.ignoredContactSources
|
||||
val uri = ContactsContract.Data.CONTENT_URI
|
||||
val projection = getContactProjection()
|
||||
val selection = getSourcesSelection(true)
|
||||
val selectionArgs = getSourcesSelectionArgs(CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
|
||||
|
||||
val selection = "${ContactsContract.Data.MIMETYPE} = ?"
|
||||
val selectionArgs = arrayOf(CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
|
||||
val sortOrder = getSortString()
|
||||
|
||||
var cursor: Cursor? = null
|
||||
@ -136,6 +143,12 @@ class ContactsHelper(val context: Context) {
|
||||
cursor = context.contentResolver.query(uri, projection, selection, selectionArgs, sortOrder)
|
||||
if (cursor?.moveToFirst() == true) {
|
||||
do {
|
||||
val accountName = cursor.getStringValue(ContactsContract.RawContacts.ACCOUNT_NAME) ?: ""
|
||||
val accountType = cursor.getStringValue(ContactsContract.RawContacts.ACCOUNT_TYPE) ?: ""
|
||||
if (ignoredSources.contains("$accountName:$accountType")) {
|
||||
continue
|
||||
}
|
||||
|
||||
val id = cursor.getIntValue(ContactsContract.Data.RAW_CONTACT_ID)
|
||||
val prefix = cursor.getStringValue(CommonDataKinds.StructuredName.PREFIX) ?: ""
|
||||
val firstName = cursor.getStringValue(CommonDataKinds.StructuredName.GIVEN_NAME) ?: ""
|
||||
@ -148,7 +161,6 @@ class ContactsHelper(val context: Context) {
|
||||
val emails = ArrayList<Email>()
|
||||
val addresses = ArrayList<Address>()
|
||||
val events = ArrayList<Event>()
|
||||
val accountName = cursor.getStringValue(ContactsContract.RawContacts.ACCOUNT_NAME) ?: ""
|
||||
val starred = cursor.getIntValue(CommonDataKinds.StructuredName.STARRED)
|
||||
val contactId = cursor.getIntValue(ContactsContract.Data.CONTACT_ID)
|
||||
val thumbnailUri = cursor.getStringValue(CommonDataKinds.StructuredName.PHOTO_THUMBNAIL_URI) ?: ""
|
||||
@ -825,7 +837,8 @@ class ContactsHelper(val context: Context) {
|
||||
|
||||
private fun getContactSourcesSync(): ArrayList<ContactSource> {
|
||||
val sources = getDeviceContactSources()
|
||||
sources.add(ContactSource(context.getString(R.string.phone_storage_hidden), SMT_PRIVATE))
|
||||
val phoneSecret = context.getString(R.string.phone_storage_hidden)
|
||||
sources.add(ContactSource(phoneSecret, SMT_PRIVATE, phoneSecret))
|
||||
return ArrayList(sources)
|
||||
}
|
||||
|
||||
@ -838,10 +851,11 @@ class ContactsHelper(val context: Context) {
|
||||
val accounts = AccountManager.get(context).accounts
|
||||
accounts.forEach {
|
||||
if (ContentResolver.getIsSyncable(it, ContactsContract.AUTHORITY) == 1) {
|
||||
val contactSource = ContactSource(it.name, it.type)
|
||||
var publicName = it.name
|
||||
if (it.type == TELEGRAM_PACKAGE) {
|
||||
contactSource.name += " (${context.getString(R.string.telegram)})"
|
||||
publicName += " (${context.getString(R.string.telegram)})"
|
||||
}
|
||||
val contactSource = ContactSource(it.name, it.type, publicName)
|
||||
sources.add(contactSource)
|
||||
}
|
||||
}
|
||||
@ -852,7 +866,7 @@ class ContactsHelper(val context: Context) {
|
||||
sources.addAll(contentResolverAccounts)
|
||||
|
||||
if (sources.isEmpty() && context.config.localAccountName.isEmpty() && context.config.localAccountType.isEmpty()) {
|
||||
sources.add(ContactSource("", ""))
|
||||
sources.add(ContactSource("", "", ""))
|
||||
}
|
||||
|
||||
return sources
|
||||
@ -871,7 +885,8 @@ class ContactsHelper(val context: Context) {
|
||||
CommonDataKinds.StructuredName.PHOTO_URI,
|
||||
CommonDataKinds.StructuredName.PHOTO_THUMBNAIL_URI,
|
||||
CommonDataKinds.StructuredName.STARRED,
|
||||
ContactsContract.RawContacts.ACCOUNT_NAME
|
||||
ContactsContract.RawContacts.ACCOUNT_NAME,
|
||||
ContactsContract.RawContacts.ACCOUNT_TYPE
|
||||
)
|
||||
|
||||
private fun getSortString(): String {
|
||||
|
@ -119,7 +119,7 @@ data class Contact(var id: Int, var prefix: String, var firstName: String, var m
|
||||
|
||||
fun getHashToCompare() = getStringToCompare().hashCode()
|
||||
|
||||
fun getFullCompany(): String {
|
||||
private fun getFullCompany(): String {
|
||||
var fullOrganization = if (organization.company.isEmpty()) "" else "${organization.company}, "
|
||||
fullOrganization += organization.jobPosition
|
||||
return fullOrganization.trim().trimEnd(',')
|
||||
|
@ -1,3 +1,13 @@
|
||||
package com.simplemobiletools.contacts.pro.models
|
||||
|
||||
data class ContactSource(var name: String, var type: String)
|
||||
import com.simplemobiletools.contacts.pro.helpers.SMT_PRIVATE
|
||||
|
||||
data class ContactSource(var name: String, var type: String, var publicName: String) {
|
||||
fun getFullIdentifier(): String {
|
||||
return if (type == SMT_PRIVATE) {
|
||||
type
|
||||
} else {
|
||||
"$name:$type"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
BIN
app/src/main/res/drawable-hdpi/ic_phone.png
Normal file
After Width: | Height: | Size: 316 B |
Before Width: | Height: | Size: 566 B After Width: | Height: | Size: 566 B |
BIN
app/src/main/res/drawable-xhdpi/ic_phone.png
Normal file
After Width: | Height: | Size: 406 B |
Before Width: | Height: | Size: 716 B After Width: | Height: | Size: 716 B |
BIN
app/src/main/res/drawable-xxhdpi/ic_phone.png
Normal file
After Width: | Height: | Size: 566 B |
Before Width: | Height: | Size: 993 B After Width: | Height: | Size: 993 B |
BIN
app/src/main/res/drawable-xxxhdpi/ic_phone.png
Normal file
After Width: | Height: | Size: 716 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@ -238,7 +238,7 @@
|
||||
android:background="@drawable/circle_background"
|
||||
android:elevation="@dimen/medium_margin"
|
||||
android:padding="@dimen/normal_margin"
|
||||
android:src="@drawable/ic_phone_big"
|
||||
android:src="@drawable/ic_phone_huge"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"/>
|
||||
|
@ -64,7 +64,7 @@
|
||||
android:paddingLeft="@dimen/activity_margin"
|
||||
android:paddingRight="@dimen/activity_margin"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_phone"/>
|
||||
android:src="@drawable/ic_phone_big"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/contact_send_sms"
|
||||
@ -196,7 +196,7 @@
|
||||
android:paddingEnd="@dimen/small_margin"
|
||||
android:paddingRight="@dimen/small_margin"
|
||||
android:paddingBottom="@dimen/small_margin"
|
||||
android:src="@drawable/ic_phone"/>
|
||||
android:src="@drawable/ic_phone_big"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/contact_numbers_holder"
|
||||
|
@ -65,7 +65,7 @@
|
||||
android:paddingLeft="@dimen/activity_margin"
|
||||
android:paddingRight="@dimen/activity_margin"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_phone"/>
|
||||
android:src="@drawable/ic_phone_big"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/contact_send_sms"
|
||||
@ -197,7 +197,7 @@
|
||||
android:paddingEnd="@dimen/small_margin"
|
||||
android:paddingRight="@dimen/small_margin"
|
||||
android:paddingBottom="@dimen/small_margin"
|
||||
android:src="@drawable/ic_phone"/>
|
||||
android:src="@drawable/ic_phone_big"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/contact_numbers_holder"
|
||||
|
@ -13,6 +13,6 @@
|
||||
android:layout_centerInParent="true"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:src="@drawable/ic_phone_big"/>
|
||||
android:src="@drawable/ic_phone_huge"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
@ -2,9 +2,9 @@
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/cab_delete"
|
||||
android:icon="@drawable/ic_delete"
|
||||
android:title="@string/delete"
|
||||
android:id="@+id/cab_call_number"
|
||||
android:icon="@drawable/ic_phone"
|
||||
android:title="@string/call_number"
|
||||
app:showAsAction="ifRoom"/>
|
||||
<item
|
||||
android:id="@+id/cab_select_all"
|
||||
@ -16,4 +16,9 @@
|
||||
android:icon="@drawable/ic_block"
|
||||
android:title="@string/block_number"
|
||||
app:showAsAction="ifRoom"/>
|
||||
<item
|
||||
android:id="@+id/cab_delete"
|
||||
android:icon="@drawable/ic_delete"
|
||||
android:title="@string/delete"
|
||||
app:showAsAction="ifRoom"/>
|
||||
</menu>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">Add to an existing contact</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">No contacts found</string>
|
||||
|
@ -17,14 +17,15 @@
|
||||
<string name="request_the_required_permissions">Benötigte Berechtigungen anfordern</string>
|
||||
<string name="create_new_contact">Neuen Kontakt erstellen</string>
|
||||
<string name="add_to_existing_contact">Zu einem existierenden Kontakt hinzufügen</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="must_make_default_dialer">Du musst diese App als Standardtelefonie-App einstellen, um Nummern blockieren zu können.</string>
|
||||
<string name="set_to_default">Als Standard auswählen</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">Keine Kontakte gefunden</string>
|
||||
<string name="no_contacts_with_emails">Keine Kontakte mit E-Mailadressen gefunden</string>
|
||||
<string name="no_contacts_with_phone_numbers">Keine Kontakte mit Telefonnummern gefunden</string>
|
||||
<string name="no_recent_calls_found">No recent calls found</string>
|
||||
<string name="no_recent_calls_found">Keine kürzlichen Anrufe gefunden</string>
|
||||
|
||||
<string name="new_contact">Neuer Kontakt</string>
|
||||
<string name="edit_contact">Kontakt bearbeiten</string>
|
||||
@ -55,7 +56,7 @@
|
||||
<string name="start_name_with_surname">Namen mit Nachnamen beginnen</string>
|
||||
<string name="show_phone_numbers">Telefonnummern im Hauptmenü zeigen</string>
|
||||
<string name="show_contact_thumbnails">Vorschaubilder der Kontakte zeigen</string>
|
||||
<string name="show_dialpad_button">Show a dialpad button on the main screen</string>
|
||||
<string name="show_dialpad_button">Eine Wählfehldschaltfläche auf dem Hauptbildschirm anzeigen</string>
|
||||
<string name="on_contact_click">Beim Klicken auf den Kontakt</string>
|
||||
<string name="call_contact">Kontakt anrufen</string>
|
||||
<string name="view_contact">Kontaktdetails anzeigen</string>
|
||||
@ -113,13 +114,13 @@
|
||||
|
||||
<!-- Dialer -->
|
||||
<string name="dialer">Dialer</string>
|
||||
<string name="calling">Calling</string>
|
||||
<string name="incoming_call">Incoming call</string>
|
||||
<string name="incoming_call_from">Incoming call from…</string>
|
||||
<string name="ongoing_call">Ongoing call</string>
|
||||
<string name="disconnected">Disconnected</string>
|
||||
<string name="decline_call">Decline</string>
|
||||
<string name="answer_call">Answer</string>
|
||||
<string name="calling">Anrufaufbau</string>
|
||||
<string name="incoming_call">Eingehender Anruf</string>
|
||||
<string name="incoming_call_from">Eingehender Anruf von…</string>
|
||||
<string name="ongoing_call">Laufender Anruf</string>
|
||||
<string name="disconnected">Getrennt</string>
|
||||
<string name="decline_call">Ablehnen</string>
|
||||
<string name="answer_call">Antworten</string>
|
||||
|
||||
<!-- Visible fields -->
|
||||
<string name="select_fields_to_show">Sichtbare Felder auswählen</string>
|
||||
@ -137,12 +138,12 @@
|
||||
<string name="instant_messaging">Instant messaging (IM)</string>
|
||||
|
||||
<!-- Blocked numbers -->
|
||||
<string name="manage_blocked_numbers">Manage blocked numbers</string>
|
||||
<string name="not_blocking_anyone">You are not blocking anyone.</string>
|
||||
<string name="add_a_blocked_number">Add a blocked number</string>
|
||||
<string name="block_number">Block number</string>
|
||||
<string name="block_numbers">Block numbers</string>
|
||||
<string name="blocked_numbers">Blocked numbers</string>
|
||||
<string name="manage_blocked_numbers">Blockierte Nummern verwalten</string>
|
||||
<string name="not_blocking_anyone">Du blockierst niemanden.</string>
|
||||
<string name="add_a_blocked_number">Eine blockierte Nummer hinzufügen</string>
|
||||
<string name="block_number">Nummer blockieren</string>
|
||||
<string name="block_numbers">Nummern blockieren</string>
|
||||
<string name="blocked_numbers">Blockierte Nummern</string>
|
||||
|
||||
<!-- FAQ -->
|
||||
<string name="faq_1_title">Ich möchte die sichtbaren Kontaktfelder ändern. Kann ich das machen?</string>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">Προσθήκη σε μια υπάρχουσα Επαφή</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">No contacts found</string>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">Add to an existing contact</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">No contacts found</string>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">Ajouter à un contact existant</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">Aucun contact n\'a été trouvé</string>
|
||||
@ -139,10 +140,10 @@
|
||||
<!-- Blocked numbers -->
|
||||
<string name="manage_blocked_numbers">Manage blocked numbers</string>
|
||||
<string name="not_blocking_anyone">You are not blocking anyone.</string>
|
||||
<string name="add_a_blocked_number">Add a blocked number</string>
|
||||
<string name="block_number">Block number</string>
|
||||
<string name="block_numbers">Block numbers</string>
|
||||
<string name="blocked_numbers">Blocked numbers</string>
|
||||
<string name="add_a_blocked_number">Ajouter un numéro bloqué</string>
|
||||
<string name="block_number">Numéro bloquer</string>
|
||||
<string name="block_numbers">Numéros bloquer</string>
|
||||
<string name="blocked_numbers">Numéros bloquer</string>
|
||||
|
||||
<!-- FAQ -->
|
||||
<string name="faq_1_title">Je veux modifier les champs affichés sur les fiches de mes contacts. Puis-je le faire ?</string>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">Add to an existing contact</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">No contacts found</string>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<resources>
|
||||
<string name="app_name">Simple Contacts</string>
|
||||
<string name="app_name">Semplice Contatti</string>
|
||||
<string name="app_launcher_name">Contatti</string>
|
||||
<string name="address">Indirizzo</string>
|
||||
<string name="inserting">Inserimento in corso…</string>
|
||||
<string name="updating">Aggiornamento in corso…</string>
|
||||
<string name="phone_storage">Memoria del telefono</string>
|
||||
<string name="phone_storage_hidden">Memoria del telefono (non visibile alle altre applicazioni)</string>
|
||||
<string name="company">Compagnia</string>
|
||||
<string name="company">Società</string>
|
||||
<string name="job_position">Posizione lavorativa</string>
|
||||
<string name="website">Sito web</string>
|
||||
<string name="send_sms_to_contacts">Invia un SMS ai contatti</string>
|
||||
@ -16,9 +16,10 @@
|
||||
<string name="call_person">Chiama %s</string>
|
||||
<string name="request_the_required_permissions">Richiedi le permissioni necessarie</string>
|
||||
<string name="create_new_contact">Crea un nuovo contatto</string>
|
||||
<string name="add_to_existing_contact">Aggiungi ad un contatto esistente</string>
|
||||
<string name="add_to_existing_contact">Aggiungi a un contatto esistente</string>
|
||||
<string name="must_make_default_dialer">È necessario impostare quest\'app come predefinita per utilizzare i numeri bloccati.</string>
|
||||
<string name="set_to_default">Imposta come predefinita</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">Nessun contatto trovato</string>
|
||||
@ -47,25 +48,25 @@
|
||||
<string name="create_group_under_account">Crea un gruppo con un account</string>
|
||||
|
||||
<!-- Photo -->
|
||||
<string name="take_photo">Scatta un foto</string>
|
||||
<string name="take_photo">Scatta una foto</string>
|
||||
<string name="choose_photo">Scegli una foto</string>
|
||||
<string name="remove_photo">Rimuovi foto</string>
|
||||
<string name="remove_photo">Rimuovi la foto</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="start_name_with_surname">Prima il nome poi il cognome</string>
|
||||
<string name="show_phone_numbers">Mostra i numeri di telefono nella schermata principale</string>
|
||||
<string name="show_contact_thumbnails">Mostra le anteprime dei contatti</string>
|
||||
<string name="show_dialpad_button">Mostra il pulante per la tastiera nello schermo principale</string>
|
||||
<string name="on_contact_click">Al click sul contatto</string>
|
||||
<string name="show_dialpad_button">Mostra il pulante per il tastierino nello schermo principale</string>
|
||||
<string name="on_contact_click">Alla pressione sul contatto</string>
|
||||
<string name="call_contact">Chiama contatto</string>
|
||||
<string name="view_contact">Visualizza i dettagli del contatto</string>
|
||||
<string name="manage_shown_contact_fields">Gestisci i campi mostrati</string>
|
||||
<string name="filter_duplicates">Prova a filtrare i contatti duplicati</string>
|
||||
<string name="filter_duplicates">Unisci i contatti duplicati</string>
|
||||
<string name="manage_shown_tabs">Gestisci le schede mostrate</string>
|
||||
<string name="contacts">Contatti</string>
|
||||
<string name="favorites">Preferiti</string>
|
||||
<string name="recent_calls">Chiamate recenti</string>
|
||||
<string name="show_call_confirmation_dialog">Mostra un dialogo di conferma prima di iniziare una chiamata</string>
|
||||
<string name="show_call_confirmation_dialog">Mostra un messaggio di conferma prima di iniziare una chiamata</string>
|
||||
<string name="show_only_contacts_with_numbers">Mostra solamente i contatti con almeno un numero telefonico</string>
|
||||
|
||||
<!-- Emails -->
|
||||
@ -88,11 +89,11 @@
|
||||
<string name="anniversary">Anniversario</string>
|
||||
|
||||
<!-- Favorites -->
|
||||
<string name="no_favorites">Sembra che ancora non si ha nessun contatto preferito.</string>
|
||||
<string name="no_favorites">Non si ha ancora nessun contatto preferito.</string>
|
||||
<string name="add_favorites">Aggiungi preferito</string>
|
||||
<string name="add_to_favorites">Aggiungi ai preferiti</string>
|
||||
<string name="remove_from_favorites">Rimuovi dai preferiti</string>
|
||||
<string name="must_be_at_edit">Devi stare nella schermata di modifica per modificare un contatto</string>
|
||||
<string name="must_be_at_edit">Si deve stare nella schermata di modifica per modificare un contatto</string>
|
||||
|
||||
<!-- Search -->
|
||||
<string name="search_contacts">Cerca contatti</string>
|
||||
@ -138,7 +139,7 @@
|
||||
|
||||
<!-- Blocked numbers -->
|
||||
<string name="manage_blocked_numbers">Gestisci i numeri bloccati</string>
|
||||
<string name="not_blocking_anyone">Non si sta blocccando alcun numero.</string>
|
||||
<string name="not_blocking_anyone">Nessun numero bloccato.</string>
|
||||
<string name="add_a_blocked_number">Aggiungi un numero da bloccare</string>
|
||||
<string name="block_number">Blocca numero</string>
|
||||
<string name="block_numbers">Blocca numeri</string>
|
||||
@ -146,19 +147,19 @@
|
||||
|
||||
<!-- FAQ -->
|
||||
<string name="faq_1_title">Voglio cambiare i campi visibili ai contatti. Come posso fare?</string>
|
||||
<string name="faq_1_text">Puoi farlo andando in Impostazioni -> Gestisci i campi mostrati. Qui puoi selezionare i campi che saranno visibili. Alcuni sono anche disabilitati in maniera predefinita, quindi potresti trovare qualche nuovo campo.</string>
|
||||
<string name="faq_1_text">Si può farlo andando in Impostazioni -> Gestisci i campi mostrati. Qui si possono selezionare i campi che saranno visibili, alcuni sono disabilitati in maniera predefinita, quindi si possono trovare campi aggiuntivi.</string>
|
||||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Un\'applicazioni contatti per gestire i propri contatti senza pubblicità.</string>
|
||||
<string name="app_long_description">
|
||||
Una semplice applicazione per creare o gestire i propri contatti da qualsiasi provenienza. I contatti saranno salvati solamente nel dispositivo, ma possono essere sincronizzati con Google, o con altri servizi. Si possono visualizzare i contatti preferiti in una list separata.
|
||||
Una semplice applicazione per creare o gestire i propri contatti di qualsiasi tipo. I contatti saranno salvati nel dispositivo, ma possono essere eventualmente sincronizzati con Google o con altri servizi. Si possono visualizzare i contatti preferiti in una lista separata.
|
||||
|
||||
Si può utilizzare l\'applicazione anche per gestire le email e gli eventi. Può ordinare e filtrare per parametri multipli, ed opzionalmente visualizzare il cognome come nome
|
||||
Si può utilizzare l\'applicazione anche per gestire l\'email e gli eventi. Si possono ordinare e filtrare per diversi criteri, opzionalmente si può visualizzare il cognome come nome.
|
||||
|
||||
Non contiene pubblicità nè chiede permessi non necessari. È completamente open source ed offre colori personalizzabili.
|
||||
L\'applicazione non contiene pubblicità o permessi non necessari; è completamente opensource e la si può personalizzare con i propri colori preferiti.
|
||||
|
||||
Quest\'app fa parte di una serie più grande. Puoi trovare le altre su https://www.simplemobiletools.com
|
||||
Questa è solamente una delle tante applicazioni della serie Simple Mobile Tools. Si possono trovare le altre su https://www.simplemobiletools.com
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">既存の連絡先に追加</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">連絡先が見つかりません</string>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">Add to an existing contact</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">No contacts found</string>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">Add to an existing contact</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">No contacts found</string>
|
||||
|
@ -17,8 +17,9 @@
|
||||
<string name="request_the_required_permissions">Pedir a permissão necessária</string>
|
||||
<string name="create_new_contact">Criar novo contacto</string>
|
||||
<string name="add_to_existing_contact">Adicionar a contacto existente</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="must_make_default_dialer">Tem que tornar esta a aplicação padrão para poder bloquear números.</string>
|
||||
<string name="set_to_default">Definir como padrão</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">Não existem contactos</string>
|
||||
@ -104,7 +105,7 @@
|
||||
<string name="import_contacts_from_vcf">Importar contactos de um ficheiro .vcf</string>
|
||||
<string name="export_contacts_to_vcf">Exportar contactos para um ficheiro .vcf</string>
|
||||
<string name="target_contact_source">Destino da origem do contacto</string>
|
||||
<string name="include_contact_sources">Incluir fontes dos contactos</string>
|
||||
<string name="include_contact_sources">Incluir fonte dos contactos</string>
|
||||
<string name="filename_without_vcf">Nome do ficheiro (sem .vcf)</string>
|
||||
|
||||
<!-- Dialpad -->
|
||||
@ -137,12 +138,12 @@
|
||||
<string name="instant_messaging">Mensagem instantânea (IM)</string>
|
||||
|
||||
<!-- Blocked numbers -->
|
||||
<string name="manage_blocked_numbers">Manage blocked numbers</string>
|
||||
<string name="not_blocking_anyone">You are not blocking anyone.</string>
|
||||
<string name="add_a_blocked_number">Add a blocked number</string>
|
||||
<string name="block_number">Block number</string>
|
||||
<string name="block_numbers">Block numbers</string>
|
||||
<string name="blocked_numbers">Blocked numbers</string>
|
||||
<string name="manage_blocked_numbers">Gerir números bloqueados</string>
|
||||
<string name="not_blocking_anyone">Não existem números bloqueados</string>
|
||||
<string name="add_a_blocked_number">Adicionar um número a bloquear</string>
|
||||
<string name="block_number">Bloquear número</string>
|
||||
<string name="block_numbers">Bloquear números</string>
|
||||
<string name="blocked_numbers">Números bloqueados</string>
|
||||
|
||||
<!-- FAQ -->
|
||||
<string name="faq_1_title">I want to change what fields are visible at contacts. Can I do it?</string>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">Добавить к существующему контакту</string>
|
||||
<string name="must_make_default_dialer">Вы должны сделать \"Simple Contacts\" приложением по умолчанию для набора номера для использования блокировки номеров.</string>
|
||||
<string name="set_to_default">Сделать по умолчанию</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">Контакты не найдены</string>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">Pridať k existujúcemu kontaktu</string>
|
||||
<string name="must_make_default_dialer">Pre použitie blokovania čísel musíte nastaviť aplikáciu ako predvolenú pre správu hovorov.</string>
|
||||
<string name="set_to_default">Nastaviť ako predvolenú</string>
|
||||
<string name="call_number">Zavolať číslo</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">Nenašli sa žiadne kontakty</string>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">Lägg till i en befintlig kontakt</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">Inga kontakter hittades</string>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">Mevcut bir kişiye ekle</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">Kişi bulunamadı</string>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">添加至已存在的聯絡人</string>
|
||||
<string name="must_make_default_dialer">你必須將這應用程式設為預設的撥號程式來使用黑名單。</string>
|
||||
<string name="set_to_default">設為預設</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">未發現聯絡人</string>
|
||||
|
@ -13,6 +13,7 @@
|
||||
<string name="telegram">Telegram</string>
|
||||
|
||||
<!-- Release notes -->
|
||||
<string name="release_39">Changed the way contacts are fetched, please reset your filters.</string>
|
||||
<string name="release_34">Added new options for toggling 24 hour time format and showing only contacts with phone numbers</string>
|
||||
<string name="release_32">Added a simple dialpad, dialer will come soon</string>
|
||||
<string name="release_31">
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="add_to_existing_contact">Add to an existing contact</string>
|
||||
<string name="must_make_default_dialer">You have to make this app the default dialer app to make use of blocked numbers.</string>
|
||||
<string name="set_to_default">Set to default</string>
|
||||
<string name="call_number">Call number</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">No contacts found</string>
|
||||
|
@ -1,7 +1,7 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.3.10'
|
||||
ext.kotlin_version = '1.3.11'
|
||||
|
||||
repositories {
|
||||
google()
|
||||
|