diff --git a/app/build.gradle b/app/build.gradle
index 6eb98b50..a6030711 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -57,7 +57,7 @@ android {
}
dependencies {
- implementation 'com.simplemobiletools:commons:5.28.2'
+ implementation 'com.simplemobiletools:commons:5.28.10'
implementation 'joda-time:joda-time:2.10.1'
implementation 'com.googlecode.ez-vcard:ez-vcard:0.10.5'
implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9d3a040a..5e6d20a1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -299,6 +299,11 @@
android:resource="@xml/provider_paths"/>
+
+
?, selection: String?, selectionArgs: Array?, sortOrder: String?): Cursor? {
+ if (context == null || !context!!.config.showPrivateContacts) {
+ return null
+ } else {
+ val matrixCursor = MatrixCursor(arrayOf(
+ MyContactsContentProvider.COL_RAW_ID,
+ MyContactsContentProvider.COL_CONTACT_ID,
+ MyContactsContentProvider.COL_NAME,
+ MyContactsContentProvider.COL_PHOTO_URI,
+ MyContactsContentProvider.COL_PHONE_NUMBER)
+ )
+
+ LocalContactsHelper(context!!).getPrivateSimpleContactsSync().forEach {
+ matrixCursor.newRow()
+ .add(MyContactsContentProvider.COL_RAW_ID, it.rawId)
+ .add(MyContactsContentProvider.COL_CONTACT_ID, it.contactId)
+ .add(MyContactsContentProvider.COL_NAME, it.name)
+ .add(MyContactsContentProvider.COL_PHOTO_URI, it.photoUri)
+ .add(MyContactsContentProvider.COL_PHONE_NUMBER, it.phoneNumber)
+ }
+
+ return matrixCursor
+ }
+ }
+
+ override fun onCreate() = true
+
+ override fun update(uri: Uri, values: ContentValues?, selection: String?, selectionArgs: Array?) = 1
+
+ override fun delete(uri: Uri, selection: String?, selectionArgs: Array?): Int = 0
+
+ override fun getType(uri: Uri) = ""
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Config.kt
index b931a9ee..097447b3 100644
--- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Config.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Config.kt
@@ -73,6 +73,10 @@ class Config(context: Context) : BaseConfig(context) {
get() = prefs.getString(SPEED_DIAL, "")!!
set(speedDial) = prefs.edit().putString(SPEED_DIAL, speedDial).apply()
+ var showPrivateContacts: Boolean
+ get() = prefs.getBoolean(SHOW_PRIVATE_CONTACTS, true)
+ set(showPrivateContacts) = prefs.edit().putBoolean(SHOW_PRIVATE_CONTACTS, showPrivateContacts).apply()
+
fun saveCustomSIM(number: String, SIMlabel: String) {
prefs.edit().putString(REMEMBER_SIM_PREFIX + number, Uri.encode(SIMlabel)).apply()
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Constants.kt
index 3fdf1044..b1ff52cc 100644
--- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/Constants.kt
@@ -21,6 +21,7 @@ const val SPEED_DIAL = "speed_dial"
const val LAST_EXPORT_PATH = "last_export_path"
const val WAS_LOCAL_ACCOUNT_INITIALIZED = "was_local_account_initialized"
const val REMEMBER_SIM_PREFIX = "remember_sim_"
+const val SHOW_PRIVATE_CONTACTS = "show_private_contacts"
const val CONTACT_ID = "contact_id"
const val SMT_PRIVATE = "smt_private" // used at the contact source of local contacts hidden from other apps
diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/LocalContactsHelper.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/LocalContactsHelper.kt
index d4bf5d95..977c82ce 100644
--- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/LocalContactsHelper.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/LocalContactsHelper.kt
@@ -6,6 +6,7 @@ import android.graphics.BitmapFactory
import android.net.Uri
import android.provider.MediaStore
import com.simplemobiletools.commons.extensions.getChoppedList
+import com.simplemobiletools.commons.models.SimpleContact
import com.simplemobiletools.contacts.pro.extensions.contactsDB
import com.simplemobiletools.contacts.pro.extensions.getByteArray
import com.simplemobiletools.contacts.pro.extensions.getEmptyContact
@@ -104,7 +105,6 @@ class LocalContactsHelper(val context: Context) {
surname = localContact.surname
suffix = localContact.suffix
nickname = localContact.nickname
- photoUri = ""
phoneNumbers = localContact.phoneNumbers
emails = localContact.emails
addresses = localContact.addresses
@@ -152,4 +152,14 @@ class LocalContactsHelper(val context: Context) {
IMs = contact.IMs
}
}
+
+ private fun convertContactToSimpleContact(contact: Contact?): SimpleContact? {
+ return if (contact == null || contact.phoneNumbers.isEmpty()) {
+ null
+ } else {
+ SimpleContact(contact.id, 0, contact.getNameToDisplay(), contact.photoUri, contact.phoneNumbers.first().value)
+ }
+ }
+
+ fun getPrivateSimpleContactsSync() = getAllContacts().mapNotNull { convertContactToSimpleContact(it) }
}
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index fbfd5d15..86855c88 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -1,6 +1,5 @@
-
+ android:text="@string/customize_colors" />
@@ -52,7 +51,7 @@
android:clickable="false"
android:paddingStart="@dimen/medium_margin"
android:text="@string/use_english_language"
- app:switchPadding="@dimen/medium_margin"/>
+ app:switchPadding="@dimen/medium_margin" />
@@ -73,7 +72,7 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingStart="@dimen/medium_margin"
- android:text="@string/manage_shown_contact_fields"/>
+ android:text="@string/manage_shown_contact_fields" />
@@ -94,7 +93,7 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingStart="@dimen/medium_margin"
- android:text="@string/manage_shown_tabs"/>
+ android:text="@string/manage_shown_tabs" />
@@ -115,7 +114,7 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingStart="@dimen/medium_margin"
- android:text="@string/manage_blocked_numbers"/>
+ android:text="@string/manage_blocked_numbers" />
@@ -136,7 +135,7 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingStart="@dimen/medium_margin"
- android:text="@string/manage_speed_dial"/>
+ android:text="@string/manage_speed_dial" />
@@ -159,7 +158,7 @@
android:layout_toStartOf="@+id/settings_font_size"
android:paddingLeft="@dimen/medium_margin"
android:paddingRight="@dimen/medium_margin"
- android:text="@string/font_size"/>
+ android:text="@string/font_size" />
+ android:clickable="false" />
@@ -191,7 +190,7 @@
android:clickable="false"
android:paddingStart="@dimen/medium_margin"
android:text="@string/show_contact_thumbnails"
- app:switchPadding="@dimen/medium_margin"/>
+ app:switchPadding="@dimen/medium_margin" />
@@ -214,7 +213,7 @@
android:clickable="false"
android:paddingStart="@dimen/medium_margin"
android:text="@string/show_phone_numbers"
- app:switchPadding="@dimen/medium_margin"/>
+ app:switchPadding="@dimen/medium_margin" />
@@ -237,7 +236,7 @@
android:clickable="false"
android:paddingStart="@dimen/medium_margin"
android:text="@string/show_only_contacts_with_numbers"
- app:switchPadding="@dimen/medium_margin"/>
+ app:switchPadding="@dimen/medium_margin" />
@@ -260,7 +259,7 @@
android:clickable="false"
android:paddingStart="@dimen/medium_margin"
android:text="@string/start_name_with_surname"
- app:switchPadding="@dimen/medium_margin"/>
+ app:switchPadding="@dimen/medium_margin" />
@@ -283,7 +282,7 @@
android:clickable="false"
android:paddingStart="@dimen/medium_margin"
android:text="@string/show_call_confirmation_dialog"
- app:switchPadding="@dimen/medium_margin"/>
+ app:switchPadding="@dimen/medium_margin" />
@@ -306,7 +305,7 @@
android:clickable="false"
android:paddingStart="@dimen/medium_margin"
android:text="@string/show_dialpad_button"
- app:switchPadding="@dimen/medium_margin"/>
+ app:switchPadding="@dimen/medium_margin" />
@@ -329,7 +328,30 @@
android:clickable="false"
android:paddingStart="@dimen/medium_margin"
android:text="@string/show_dialpad_letters"
- app:switchPadding="@dimen/medium_margin"/>
+ app:switchPadding="@dimen/medium_margin" />
+
+
+
+
+
+
@@ -352,7 +374,7 @@
android:layout_toStartOf="@+id/settings_on_contact_click"
android:paddingStart="@dimen/medium_margin"
android:paddingEnd="@dimen/medium_margin"
- android:text="@string/on_contact_click"/>
+ android:text="@string/on_contact_click" />
+ android:clickable="false" />