commit
4a7e6edfff
73 changed files with 1319 additions and 437 deletions
23
.editorconfig
Normal file
23
.editorconfig
Normal file
|
@ -0,0 +1,23 @@
|
|||
# Copying and distribution of this file, with or without modification,
|
||||
# are permitted in any medium without royalty provided this notice is
|
||||
# preserved. This file is offered as-is, without any warranty.
|
||||
# Names of contributors must not be used to endorse or promote products
|
||||
# derived from this file without specific prior written permission.
|
||||
|
||||
# EditorConfig
|
||||
# http://EditorConfig.org
|
||||
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# LF end-of-line, insert an empty new line and UTF-8
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
continuation_indent_size = 8
|
||||
|
||||
[*.xml]
|
||||
continuation_indent_size = 4
|
14
CHANGELOG.md
14
CHANGELOG.md
|
@ -1,6 +1,20 @@
|
|||
Changelog
|
||||
==========
|
||||
|
||||
Version 6.7.0 *(2020-02-05)*
|
||||
----------------------------
|
||||
|
||||
* Improved the side scrollbar by adding letters to it on some places
|
||||
* Allow changing the font size in the app settings
|
||||
* Trigger speed dial only if no number has been written yet
|
||||
|
||||
Version 6.6.0 *(2020-01-22)*
|
||||
----------------------------
|
||||
|
||||
* Added an initial Speed dial implementation, can be customized in the app settings
|
||||
* Properly color the status bar icons at light themes
|
||||
* Many different stability, translation and UX improvements
|
||||
|
||||
Version 6.5.2 *(2020-01-04)*
|
||||
----------------------------
|
||||
|
||||
|
|
|
@ -10,15 +10,15 @@ if (keystorePropertiesFile.exists()) {
|
|||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
buildToolsVersion "28.0.3"
|
||||
compileSdkVersion 29
|
||||
buildToolsVersion "29.0.2"
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.simplemobiletools.contacts.pro"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 28
|
||||
versionCode 55
|
||||
versionName "6.5.2"
|
||||
targetSdkVersion 29
|
||||
versionCode 57
|
||||
versionName "6.7.0"
|
||||
setProperty("archivesBaseName", "contacts")
|
||||
}
|
||||
|
||||
|
@ -57,10 +57,11 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.simplemobiletools:commons:5.21.24'
|
||||
implementation 'com.simplemobiletools:commons:5.22.10'
|
||||
implementation 'joda-time:joda-time:2.10.1'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'
|
||||
implementation 'com.googlecode.ez-vcard:ez-vcard:0.10.5'
|
||||
implementation 'com.github.tibbi:IndicatorFastScroll:d615a5c141'
|
||||
|
||||
kapt "androidx.room:room-compiler:2.2.2"
|
||||
implementation "androidx.room:room-runtime:2.2.2"
|
||||
|
|
|
@ -30,9 +30,10 @@
|
|||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_launcher_name"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:roundIcon="@mipmap/ic_launcher"
|
||||
android:theme="@style/AppTheme"
|
||||
android:supportsRtl="true">
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
|
||||
<activity
|
||||
android:name=".activities.SplashActivity"
|
||||
|
|
|
@ -27,10 +27,12 @@ import com.simplemobiletools.contacts.pro.helpers.KEY_PHONE
|
|||
import com.simplemobiletools.contacts.pro.helpers.LOCATION_DIALPAD
|
||||
import com.simplemobiletools.contacts.pro.helpers.REQUEST_CODE_SET_DEFAULT_DIALER
|
||||
import com.simplemobiletools.contacts.pro.models.Contact
|
||||
import com.simplemobiletools.contacts.pro.models.SpeedDial
|
||||
import kotlinx.android.synthetic.main.activity_dialpad.*
|
||||
|
||||
class DialpadActivity : SimpleActivity() {
|
||||
var contacts = ArrayList<Contact>()
|
||||
private var contacts = ArrayList<Contact>()
|
||||
private var speedDialValues = ArrayList<SpeedDial>()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
@ -40,6 +42,8 @@ class DialpadActivity : SimpleActivity() {
|
|||
return
|
||||
}
|
||||
|
||||
speedDialValues = config.getSpeedDialValues()
|
||||
|
||||
dialpad_0_holder.setOnClickListener { dialpadPressed("0", it) }
|
||||
dialpad_1.setOnClickListener { dialpadPressed("1", it) }
|
||||
dialpad_2.setOnClickListener { dialpadPressed("2", it) }
|
||||
|
@ -50,6 +54,17 @@ class DialpadActivity : SimpleActivity() {
|
|||
dialpad_7.setOnClickListener { dialpadPressed("7", it) }
|
||||
dialpad_8.setOnClickListener { dialpadPressed("8", it) }
|
||||
dialpad_9.setOnClickListener { dialpadPressed("9", it) }
|
||||
|
||||
dialpad_1.setOnLongClickListener { speedDial(1); true }
|
||||
dialpad_2.setOnLongClickListener { speedDial(2); true }
|
||||
dialpad_3.setOnLongClickListener { speedDial(3); true }
|
||||
dialpad_4.setOnLongClickListener { speedDial(4); true }
|
||||
dialpad_5.setOnLongClickListener { speedDial(5); true }
|
||||
dialpad_6.setOnLongClickListener { speedDial(6); true }
|
||||
dialpad_7.setOnLongClickListener { speedDial(7); true }
|
||||
dialpad_8.setOnLongClickListener { speedDial(8); true }
|
||||
dialpad_9.setOnLongClickListener { speedDial(9); true }
|
||||
|
||||
dialpad_0_holder.setOnLongClickListener { dialpadPressed("+", null); true }
|
||||
dialpad_asterisk.setOnClickListener { dialpadPressed("*", it) }
|
||||
dialpad_hashtag.setOnClickListener { dialpadPressed("#", it) }
|
||||
|
@ -204,8 +219,7 @@ class DialpadActivity : SimpleActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
private fun initCall() {
|
||||
val number = dialpad_input.value
|
||||
private fun initCall(number: String = dialpad_input.value) {
|
||||
if (number.isNotEmpty()) {
|
||||
if (config.showCallConfirmation) {
|
||||
CallConfirmationDialog(this, number) {
|
||||
|
@ -216,4 +230,13 @@ class DialpadActivity : SimpleActivity() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun speedDial(id: Int) {
|
||||
if (dialpad_input.value.isEmpty()) {
|
||||
val speedDial = speedDialValues.firstOrNull { it.id == id }
|
||||
if (speedDial?.isValid() == true) {
|
||||
initCall(speedDial.number)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,7 +70,7 @@ class GroupContactsActivity : SimpleActivity(), RemoveFromGroupListener, Refresh
|
|||
}
|
||||
|
||||
private fun fabClicked() {
|
||||
SelectContactsDialog(this, allContacts, groupContacts) { addedContacts, removedContacts ->
|
||||
SelectContactsDialog(this, allContacts, true, false, groupContacts) { addedContacts, removedContacts ->
|
||||
ensureBackgroundThread {
|
||||
addContactsToGroup(addedContacts, group.id!!)
|
||||
removeContactsFromGroup(removedContacts, group.id!!)
|
||||
|
|
|
@ -59,6 +59,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||
private var storedShowContactThumbnails = false
|
||||
private var storedShowPhoneNumbers = false
|
||||
private var storedStartNameWithSurname = false
|
||||
private var storedFontSize = 0
|
||||
private var storedShowTabs = 0
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
|
@ -137,6 +138,13 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||
favorites_fragment?.startNameWithSurnameChanged(configStartNameWithSurname)
|
||||
}
|
||||
|
||||
val configFontSize = config.fontSize
|
||||
if (storedFontSize != configFontSize) {
|
||||
getAllFragments().forEach {
|
||||
it?.fontSizeChanged()
|
||||
}
|
||||
}
|
||||
|
||||
if (werePermissionsHandled && !isFirstResume) {
|
||||
if (viewpager.adapter == null) {
|
||||
initFragments()
|
||||
|
@ -218,6 +226,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||
storedShowPhoneNumbers = showPhoneNumbers
|
||||
storedStartNameWithSurname = startNameWithSurname
|
||||
storedShowTabs = showTabs
|
||||
storedFontSize = fontSize
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -512,7 +521,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||
}
|
||||
|
||||
private fun launchAbout() {
|
||||
val licenses = LICENSE_JODA or LICENSE_GLIDE or LICENSE_GSON
|
||||
val licenses = LICENSE_JODA or LICENSE_GLIDE or LICENSE_GSON or LICENSE_INDICATOR_FAST_SCROLL
|
||||
|
||||
val faqItems = arrayListOf(
|
||||
FAQItem(R.string.faq_1_title, R.string.faq_1_text),
|
||||
|
@ -578,6 +587,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
|
|||
add(Release(39, R.string.release_39))
|
||||
add(Release(40, R.string.release_40))
|
||||
add(Release(47, R.string.release_47))
|
||||
add(Release(56, R.string.release_56))
|
||||
checkWhatsNew(this, BuildConfig.VERSION_CODE)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,19 +2,67 @@ package com.simplemobiletools.contacts.pro.activities
|
|||
|
||||
import android.os.Bundle
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.reflect.TypeToken
|
||||
import com.simplemobiletools.commons.extensions.updateTextColors
|
||||
import com.simplemobiletools.contacts.pro.R
|
||||
import com.simplemobiletools.contacts.pro.adapters.SpeedDialAdapter
|
||||
import com.simplemobiletools.contacts.pro.dialogs.SelectContactsDialog
|
||||
import com.simplemobiletools.contacts.pro.extensions.config
|
||||
import com.simplemobiletools.contacts.pro.helpers.ContactsHelper
|
||||
import com.simplemobiletools.contacts.pro.interfaces.RemoveSpeedDialListener
|
||||
import com.simplemobiletools.contacts.pro.models.Contact
|
||||
import com.simplemobiletools.contacts.pro.models.SpeedDial
|
||||
import kotlinx.android.synthetic.main.activity_manage_speed_dial.*
|
||||
|
||||
class ManageSpeedDialActivity : SimpleActivity() {
|
||||
var speedDialValues = ArrayList<SpeedDial>()
|
||||
class ManageSpeedDialActivity : SimpleActivity(), RemoveSpeedDialListener {
|
||||
private var allContacts = ArrayList<Contact>()
|
||||
private var speedDialValues = ArrayList<SpeedDial>()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_manage_speed_dial)
|
||||
|
||||
val speedDialType = object : TypeToken<List<SpeedDial>>() {}.type
|
||||
speedDialValues = Gson().fromJson<ArrayList<SpeedDial>>(config.speedDial, speedDialType) ?: ArrayList(1)
|
||||
speedDialValues = config.getSpeedDialValues()
|
||||
updateAdapter()
|
||||
ContactsHelper(this).getContacts { contacts ->
|
||||
allContacts = contacts
|
||||
}
|
||||
|
||||
updateTextColors(manage_speed_dial_scrollview)
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
config.speedDial = Gson().toJson(speedDialValues)
|
||||
}
|
||||
|
||||
private fun updateAdapter() {
|
||||
SpeedDialAdapter(this, speedDialValues, this, speed_dial_list) {
|
||||
val clickedContact = it as SpeedDial
|
||||
if (allContacts.isEmpty()) {
|
||||
return@SpeedDialAdapter
|
||||
}
|
||||
|
||||
SelectContactsDialog(this, allContacts, false, true) { addedContacts, removedContacts ->
|
||||
val selectedContact = addedContacts.first()
|
||||
speedDialValues.first { it.id == clickedContact.id }.apply {
|
||||
displayName = selectedContact.getNameToDisplay()
|
||||
number = selectedContact.phoneNumbers.first().value
|
||||
}
|
||||
updateAdapter()
|
||||
}
|
||||
}.apply {
|
||||
speed_dial_list.adapter = this
|
||||
}
|
||||
}
|
||||
|
||||
override fun removeSpeedDial(ids: ArrayList<Int>) {
|
||||
ids.forEach {
|
||||
val dialId = it
|
||||
speedDialValues.first { it.id == dialId }.apply {
|
||||
displayName = ""
|
||||
number = ""
|
||||
}
|
||||
}
|
||||
updateAdapter()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -199,7 +199,7 @@ class SelectContactActivity : SimpleActivity() {
|
|||
select_contact_list.adapter = this
|
||||
}
|
||||
|
||||
select_contact_fastscroller.allowBubbleDisplay = baseConfig.showInfoBubble
|
||||
select_contact_fastscroller.allowBubbleDisplay = true
|
||||
select_contact_fastscroller.setViews(select_contact_list) {
|
||||
select_contact_fastscroller.updateBubbleText(contacts[it].getBubbleText())
|
||||
}
|
||||
|
|
|
@ -7,8 +7,9 @@ import android.os.Bundle
|
|||
import android.view.Menu
|
||||
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
|
||||
import com.simplemobiletools.commons.extensions.beVisibleIf
|
||||
import com.simplemobiletools.commons.extensions.getFontSizeText
|
||||
import com.simplemobiletools.commons.extensions.updateTextColors
|
||||
import com.simplemobiletools.commons.helpers.isNougatPlus
|
||||
import com.simplemobiletools.commons.helpers.*
|
||||
import com.simplemobiletools.commons.models.RadioItem
|
||||
import com.simplemobiletools.contacts.pro.R
|
||||
import com.simplemobiletools.contacts.pro.dialogs.ManageVisibleFieldsDialog
|
||||
|
@ -34,8 +35,8 @@ class SettingsActivity : SimpleActivity() {
|
|||
setupManageShownTabs()
|
||||
setupManageBlockedNumbers()
|
||||
setupManageSpeedDial()
|
||||
setupFontSize()
|
||||
setupUseEnglish()
|
||||
setupShowInfoBubble()
|
||||
setupShowContactThumbnails()
|
||||
setupShowPhoneNumbers()
|
||||
setupShowContactsWithNumbers()
|
||||
|
@ -86,6 +87,22 @@ class SettingsActivity : SimpleActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
private fun setupFontSize() {
|
||||
settings_font_size.text = getFontSizeText()
|
||||
settings_font_size_holder.setOnClickListener {
|
||||
val items = arrayListOf(
|
||||
RadioItem(FONT_SIZE_SMALL, getString(R.string.small)),
|
||||
RadioItem(FONT_SIZE_MEDIUM, getString(R.string.medium)),
|
||||
RadioItem(FONT_SIZE_LARGE, getString(R.string.large)),
|
||||
RadioItem(FONT_SIZE_EXTRA_LARGE, getString(R.string.extra_large)))
|
||||
|
||||
RadioGroupDialog(this@SettingsActivity, items, config.fontSize) {
|
||||
config.fontSize = it as Int
|
||||
settings_font_size.text = getFontSizeText()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupUseEnglish() {
|
||||
settings_use_english_holder.beVisibleIf(config.wasUseEnglishToggled || Locale.getDefault().language != "en")
|
||||
settings_use_english.isChecked = config.useEnglish
|
||||
|
@ -96,14 +113,6 @@ class SettingsActivity : SimpleActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
private fun setupShowInfoBubble() {
|
||||
settings_show_info_bubble.isChecked = config.showInfoBubble
|
||||
settings_show_info_bubble_holder.setOnClickListener {
|
||||
settings_show_info_bubble.toggle()
|
||||
config.showInfoBubble = settings_show_info_bubble.isChecked
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupShowContactThumbnails() {
|
||||
settings_show_contact_thumbnails.isChecked = config.showContactThumbnails
|
||||
settings_show_contact_thumbnails_holder.setOnClickListener {
|
||||
|
|
|
@ -36,7 +36,7 @@ class ViewContactActivity : ContactActivity() {
|
|||
private var showFields = 0
|
||||
private var fullContact: Contact? = null // contact with all fields filled from duplicates
|
||||
|
||||
private val COMPARABLE_PHONE_NUMBER_LENGTH = 7
|
||||
private val COMPARABLE_PHONE_NUMBER_LENGTH = 9
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.simplemobiletools.contacts.pro.adapters
|
||||
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.util.TypedValue
|
||||
import android.view.Menu
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
|
@ -12,10 +13,7 @@ import com.bumptech.glide.signature.ObjectKey
|
|||
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
||||
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
||||
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
|
||||
import com.simplemobiletools.commons.extensions.beVisibleIf
|
||||
import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor
|
||||
import com.simplemobiletools.commons.extensions.getColoredDrawableWithColor
|
||||
import com.simplemobiletools.commons.extensions.highlightTextPart
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||
import com.simplemobiletools.commons.models.RadioItem
|
||||
import com.simplemobiletools.commons.views.FastScroller
|
||||
|
@ -33,7 +31,7 @@ import java.util.*
|
|||
|
||||
class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Contact>, private val refreshListener: RefreshContactsListener?,
|
||||
private val location: Int, private val removeListener: RemoveFromGroupListener?, recyclerView: MyRecyclerView,
|
||||
fastScroller: FastScroller, highlightText: String = "", itemClick: (Any) -> Unit) :
|
||||
fastScroller: FastScroller?, highlightText: String = "", itemClick: (Any) -> Unit) :
|
||||
MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) {
|
||||
private val NEW_GROUP_ID = -1
|
||||
|
||||
|
@ -43,9 +41,12 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
|
|||
private var textToHighlight = highlightText
|
||||
|
||||
var adjustedPrimaryColor = activity.getAdjustedPrimaryColor()
|
||||
var startNameWithSurname: Boolean
|
||||
var showContactThumbnails: Boolean
|
||||
var showPhoneNumbers: Boolean
|
||||
var startNameWithSurname = config.startNameWithSurname
|
||||
var showContactThumbnails = config.showContactThumbnails
|
||||
var showPhoneNumbers = config.showPhoneNumbers
|
||||
var fontSize = activity.getTextSize()
|
||||
|
||||
private val itemLayout = if (showPhoneNumbers) R.layout.item_contact_with_number else R.layout.item_contact_without_number
|
||||
|
||||
private var smallPadding = activity.resources.getDimension(R.dimen.small_margin).toInt()
|
||||
private var mediumPadding = activity.resources.getDimension(R.dimen.medium_margin).toInt()
|
||||
|
@ -54,9 +55,6 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
|
|||
init {
|
||||
setupDragListener(true)
|
||||
initDrawables()
|
||||
showContactThumbnails = config.showContactThumbnails
|
||||
showPhoneNumbers = config.showPhoneNumbers
|
||||
startNameWithSurname = config.startNameWithSurname
|
||||
}
|
||||
|
||||
override fun getActionMenuId() = R.menu.cab
|
||||
|
@ -109,12 +107,9 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
|
|||
|
||||
override fun onActionModeDestroyed() {}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
||||
val layout = if (showPhoneNumbers) R.layout.item_contact_with_number else R.layout.item_contact_without_number
|
||||
return createViewHolder(layout, parent)
|
||||
}
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = createViewHolder(itemLayout, parent)
|
||||
|
||||
override fun onBindViewHolder(holder: MyRecyclerViewAdapter.ViewHolder, position: Int) {
|
||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||
val contact = contactItems[position]
|
||||
val allowLongClick = location != LOCATION_INSERT_OR_EDIT
|
||||
holder.bindView(contact, true, allowLongClick) { itemView, layoutPosition ->
|
||||
|
@ -290,7 +285,12 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
|
|||
}
|
||||
|
||||
contact_name.setTextColor(textColor)
|
||||
contact_name.setPadding(if (showContactThumbnails) smallPadding else bigPadding, smallPadding, smallPadding, 0)
|
||||
contact_name.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize)
|
||||
if (!showContactThumbnails && !showPhoneNumbers) {
|
||||
contact_name.setPadding(bigPadding, bigPadding, bigPadding, bigPadding)
|
||||
} else {
|
||||
contact_name.setPadding(if (showContactThumbnails) smallPadding else bigPadding, smallPadding, smallPadding, 0)
|
||||
}
|
||||
|
||||
if (contact_number != null) {
|
||||
val phoneNumberToUse = if (textToHighlight.isEmpty()) {
|
||||
|
@ -303,6 +303,7 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
|
|||
contact_number.text = if (textToHighlight.isEmpty()) numberText else numberText.highlightTextPart(textToHighlight, adjustedPrimaryColor, false, true)
|
||||
contact_number.setTextColor(textColor)
|
||||
contact_number.setPadding(if (showContactThumbnails) smallPadding else bigPadding, 0, smallPadding, 0)
|
||||
contact_number.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize)
|
||||
}
|
||||
|
||||
contact_tmb.beVisibleIf(showContactThumbnails)
|
||||
|
@ -327,7 +328,7 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
|
|||
}
|
||||
contact.photo != null -> {
|
||||
val options = RequestOptions()
|
||||
.signature(ObjectKey(contact.photo!!))
|
||||
.signature(ObjectKey(contact.hashCode()))
|
||||
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
||||
.error(placeholderImage)
|
||||
.centerCrop()
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
package com.simplemobiletools.contacts.pro.adapters
|
||||
|
||||
import android.util.TypedValue
|
||||
import android.view.Menu
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
||||
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
||||
import com.simplemobiletools.commons.extensions.applyColorFilter
|
||||
import com.simplemobiletools.commons.extensions.beVisibleIf
|
||||
import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor
|
||||
import com.simplemobiletools.commons.extensions.highlightTextPart
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||
import com.simplemobiletools.commons.views.FastScroller
|
||||
import com.simplemobiletools.commons.views.MyRecyclerView
|
||||
|
@ -33,6 +31,7 @@ class GroupsAdapter(activity: SimpleActivity, var groups: ArrayList<Group>, val
|
|||
|
||||
var adjustedPrimaryColor = activity.getAdjustedPrimaryColor()
|
||||
var showContactThumbnails = activity.config.showContactThumbnails
|
||||
var fontSize = activity.getTextSize()
|
||||
|
||||
init {
|
||||
setupDragListener(true)
|
||||
|
@ -72,7 +71,7 @@ class GroupsAdapter(activity: SimpleActivity, var groups: ArrayList<Group>, val
|
|||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = createViewHolder(R.layout.item_group, parent)
|
||||
|
||||
override fun onBindViewHolder(holder: MyRecyclerViewAdapter.ViewHolder, position: Int) {
|
||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||
val group = groups[position]
|
||||
holder.bindView(group, true, true) { itemView, layoutPosition ->
|
||||
setupView(itemView, group)
|
||||
|
@ -164,8 +163,14 @@ class GroupsAdapter(activity: SimpleActivity, var groups: ArrayList<Group>, val
|
|||
|
||||
group_name.apply {
|
||||
setTextColor(textColor)
|
||||
setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize)
|
||||
text = groupTitle
|
||||
setPadding(if (showContactThumbnails) smallPadding else bigPadding, smallPadding, smallPadding, 0)
|
||||
|
||||
if (showContactThumbnails) {
|
||||
setPadding(smallPadding, bigPadding, bigPadding, bigPadding)
|
||||
} else {
|
||||
setPadding(bigPadding, bigPadding, bigPadding, bigPadding)
|
||||
}
|
||||
}
|
||||
|
||||
group_tmb.beVisibleIf(showContactThumbnails)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.simplemobiletools.contacts.pro.adapters
|
||||
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.util.SparseArray
|
||||
import android.util.TypedValue
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
@ -10,16 +10,12 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy
|
|||
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
|
||||
import com.bumptech.glide.request.RequestOptions
|
||||
import com.bumptech.glide.signature.ObjectKey
|
||||
import com.simplemobiletools.commons.extensions.beVisibleIf
|
||||
import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor
|
||||
import com.simplemobiletools.commons.extensions.getColoredDrawableWithColor
|
||||
import com.simplemobiletools.commons.extensions.highlightTextPart
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
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.config
|
||||
import com.simplemobiletools.contacts.pro.helpers.Config
|
||||
import com.simplemobiletools.contacts.pro.helpers.highlightTextFromNumbers
|
||||
import com.simplemobiletools.contacts.pro.models.Contact
|
||||
import kotlinx.android.synthetic.main.item_add_favorite_with_number.view.*
|
||||
|
@ -33,13 +29,16 @@ class SelectContactsAdapter(val activity: SimpleActivity, var contacts: ArrayLis
|
|||
private val config = activity.config
|
||||
private val textColor = config.textColor
|
||||
private val adjustedPrimaryColor = activity.getAdjustedPrimaryColor()
|
||||
private val fontSize = activity.getTextSize()
|
||||
|
||||
private val contactDrawable = activity.resources.getColoredDrawableWithColor(R.drawable.ic_person_vector, textColor)
|
||||
private val showContactThumbnails = config.showContactThumbnails
|
||||
private val itemLayout = if (config.showPhoneNumbers) R.layout.item_add_favorite_with_number else R.layout.item_add_favorite_without_number
|
||||
private val showPhoneNumbers = config.showPhoneNumbers
|
||||
private val itemLayout = if (showPhoneNumbers) R.layout.item_add_favorite_with_number else R.layout.item_add_favorite_without_number
|
||||
private var textToHighlight = ""
|
||||
|
||||
private var smallPadding = activity.resources.getDimension(R.dimen.small_margin).toInt()
|
||||
private var mediumPadding = activity.resources.getDimension(R.dimen.medium_margin).toInt()
|
||||
private var bigPadding = activity.resources.getDimension(R.dimen.normal_margin).toInt()
|
||||
|
||||
init {
|
||||
|
@ -78,8 +77,8 @@ class SelectContactsAdapter(val activity: SimpleActivity, var contacts: ArrayLis
|
|||
}
|
||||
|
||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||
val eventType = contacts[position]
|
||||
itemViews.put(position, holder.bindView(eventType, contactDrawable, config, showContactThumbnails, smallPadding, bigPadding))
|
||||
val contact = contacts[position]
|
||||
itemViews.put(position, holder.bindView(contact))
|
||||
toggleItemSelection(selectedPositions.contains(position), position)
|
||||
}
|
||||
|
||||
|
@ -105,8 +104,7 @@ class SelectContactsAdapter(val activity: SimpleActivity, var contacts: ArrayLis
|
|||
}
|
||||
|
||||
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
|
||||
fun bindView(contact: Contact, contactDrawable: Drawable, config: Config, showContactThumbnails: Boolean,
|
||||
smallPadding: Int, bigPadding: Int): View {
|
||||
fun bindView(contact: Contact): View {
|
||||
itemView.apply {
|
||||
contact_checkbox.beVisibleIf(allowPickMultiple)
|
||||
contact_checkbox.setColors(config.textColor, context.getAdjustedPrimaryColor(), config.backgroundColor)
|
||||
|
@ -122,7 +120,12 @@ class SelectContactsAdapter(val activity: SimpleActivity, var contacts: ArrayLis
|
|||
}
|
||||
|
||||
contact_name.setTextColor(textColor)
|
||||
contact_name.setPadding(if (showContactThumbnails) smallPadding else bigPadding, smallPadding, smallPadding, 0)
|
||||
contact_name.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize)
|
||||
if (!showContactThumbnails && !showPhoneNumbers) {
|
||||
contact_name.setPadding(bigPadding, bigPadding, bigPadding, bigPadding)
|
||||
} else {
|
||||
contact_name.setPadding(if (showContactThumbnails) smallPadding else bigPadding, smallPadding, smallPadding, 0)
|
||||
}
|
||||
|
||||
if (contact_number != null) {
|
||||
val phoneNumberToUse = if (textToHighlight.isEmpty()) {
|
||||
|
@ -135,6 +138,7 @@ class SelectContactsAdapter(val activity: SimpleActivity, var contacts: ArrayLis
|
|||
contact_number.text = if (textToHighlight.isEmpty()) numberText else numberText.highlightTextPart(textToHighlight, adjustedPrimaryColor, false, true)
|
||||
contact_number.setTextColor(textColor)
|
||||
contact_number.setPadding(if (showContactThumbnails) smallPadding else bigPadding, 0, smallPadding, 0)
|
||||
contact_number.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize)
|
||||
}
|
||||
|
||||
contact_frame.setOnClickListener {
|
||||
|
@ -161,8 +165,24 @@ class SelectContactsAdapter(val activity: SimpleActivity, var contacts: ArrayLis
|
|||
.apply(options)
|
||||
.apply(RequestOptions.circleCropTransform())
|
||||
.into(contact_tmb)
|
||||
contact_tmb.setPadding(smallPadding, smallPadding, smallPadding, smallPadding)
|
||||
}
|
||||
} else if (contact.photo != null) {
|
||||
val options = RequestOptions()
|
||||
.signature(ObjectKey(contact.hashCode()))
|
||||
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
||||
.error(contactDrawable)
|
||||
.centerCrop()
|
||||
|
||||
Glide.with(activity)
|
||||
.load(contact.photo)
|
||||
.transition(DrawableTransitionOptions.withCrossFade())
|
||||
.apply(options)
|
||||
.apply(RequestOptions.circleCropTransform())
|
||||
.into(contact_tmb)
|
||||
contact_tmb.setPadding(smallPadding, smallPadding, smallPadding, smallPadding)
|
||||
} else {
|
||||
contact_tmb.setPadding(mediumPadding, mediumPadding, mediumPadding, mediumPadding)
|
||||
contact_tmb.setImageDrawable(contactDrawable)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
package com.simplemobiletools.contacts.pro.adapters
|
||||
|
||||
import android.view.Menu
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
||||
import com.simplemobiletools.commons.views.MyRecyclerView
|
||||
import com.simplemobiletools.contacts.pro.R
|
||||
import com.simplemobiletools.contacts.pro.activities.SimpleActivity
|
||||
import com.simplemobiletools.contacts.pro.interfaces.RemoveSpeedDialListener
|
||||
import com.simplemobiletools.contacts.pro.models.SpeedDial
|
||||
import kotlinx.android.synthetic.main.item_speed_dial.view.*
|
||||
import java.util.*
|
||||
|
||||
class SpeedDialAdapter(activity: SimpleActivity, var speedDialValues: ArrayList<SpeedDial>, private val removeListener: RemoveSpeedDialListener,
|
||||
recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) {
|
||||
|
||||
init {
|
||||
setupDragListener(true)
|
||||
}
|
||||
|
||||
override fun getActionMenuId() = R.menu.cab_speed_dial
|
||||
|
||||
override fun prepareActionMode(menu: Menu) {}
|
||||
|
||||
override fun actionItemPressed(id: Int) {
|
||||
if (selectedKeys.isEmpty()) {
|
||||
return
|
||||
}
|
||||
|
||||
when (id) {
|
||||
R.id.cab_delete -> deleteSpeedDial()
|
||||
}
|
||||
}
|
||||
|
||||
override fun getSelectableItemCount() = speedDialValues.size
|
||||
|
||||
override fun getIsItemSelectable(position: Int) = speedDialValues[position].isValid()
|
||||
|
||||
override fun getItemSelectionKey(position: Int) = speedDialValues.getOrNull(position)?.hashCode()
|
||||
|
||||
override fun getItemKeyPosition(key: Int) = speedDialValues.indexOfFirst { it.hashCode() == key }
|
||||
|
||||
override fun onActionModeCreated() {}
|
||||
|
||||
override fun onActionModeDestroyed() {}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = createViewHolder(R.layout.item_speed_dial, parent)
|
||||
|
||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||
val speedDial = speedDialValues[position]
|
||||
holder.bindView(speedDial, true, true) { itemView, layoutPosition ->
|
||||
setupView(itemView, speedDial)
|
||||
}
|
||||
bindViewHolder(holder)
|
||||
}
|
||||
|
||||
override fun getItemCount() = speedDialValues.size
|
||||
|
||||
private fun getSelectedItems() = speedDialValues.filter { selectedKeys.contains(it.hashCode()) } as ArrayList<SpeedDial>
|
||||
|
||||
private fun deleteSpeedDial() {
|
||||
val ids = getSelectedItems().map { it.id }.toMutableList() as ArrayList<Int>
|
||||
removeListener.removeSpeedDial(ids)
|
||||
finishActMode()
|
||||
}
|
||||
|
||||
private fun setupView(view: View, speedDial: SpeedDial) {
|
||||
view.apply {
|
||||
var displayName = "${speedDial.id}. "
|
||||
displayName += if (speedDial.isValid()) speedDial.displayName else ""
|
||||
|
||||
speed_dial_label.apply {
|
||||
text = displayName
|
||||
isSelected = selectedKeys.contains(speedDial.hashCode())
|
||||
setTextColor(textColor)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,7 +1,6 @@
|
|||
package com.simplemobiletools.contacts.pro.dialogs
|
||||
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import com.simplemobiletools.commons.extensions.baseConfig
|
||||
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||
import com.simplemobiletools.contacts.pro.R
|
||||
|
@ -11,8 +10,9 @@ import com.simplemobiletools.contacts.pro.extensions.getVisibleContactSources
|
|||
import com.simplemobiletools.contacts.pro.models.Contact
|
||||
import kotlinx.android.synthetic.main.layout_select_contact.view.*
|
||||
|
||||
class SelectContactsDialog(val activity: SimpleActivity, initialContacts: ArrayList<Contact>, selectContacts: ArrayList<Contact>? = null,
|
||||
val callback: (addedContacts: ArrayList<Contact>, removedContacts: ArrayList<Contact>) -> Unit) {
|
||||
class SelectContactsDialog(val activity: SimpleActivity, initialContacts: ArrayList<Contact>, val allowSelectMultiple: Boolean, val showOnlyContactsWithNumber: Boolean,
|
||||
selectContacts: ArrayList<Contact>? = null, val callback: (addedContacts: ArrayList<Contact>, removedContacts: ArrayList<Contact>) -> Unit) {
|
||||
private var dialog: AlertDialog? = null
|
||||
private var view = activity.layoutInflater.inflate(R.layout.layout_select_contact, null)
|
||||
private var initiallySelectedContacts = ArrayList<Contact>()
|
||||
|
||||
|
@ -22,27 +22,42 @@ class SelectContactsDialog(val activity: SimpleActivity, initialContacts: ArrayL
|
|||
val contactSources = activity.getVisibleContactSources()
|
||||
allContacts = allContacts.filter { contactSources.contains(it.source) } as ArrayList<Contact>
|
||||
|
||||
if (showOnlyContactsWithNumber) {
|
||||
allContacts = allContacts.filter { it.phoneNumbers.isNotEmpty() }.toMutableList() as ArrayList<Contact>
|
||||
}
|
||||
|
||||
initiallySelectedContacts = allContacts.filter { it.starred == 1 } as ArrayList<Contact>
|
||||
} else {
|
||||
initiallySelectedContacts = selectContacts
|
||||
}
|
||||
|
||||
activity.runOnUiThread {
|
||||
// if selecting multiple contacts is disabled, react on first contact click and dismiss the dialog
|
||||
val contactClickCallback: ((Contact) -> Unit)? = if (allowSelectMultiple) null else { contact ->
|
||||
callback(arrayListOf(contact), arrayListOf())
|
||||
dialog!!.dismiss()
|
||||
}
|
||||
|
||||
view.apply {
|
||||
select_contact_list.adapter = SelectContactsAdapter(activity, allContacts, initiallySelectedContacts, true, select_contact_list, select_contact_fastscroller)
|
||||
select_contact_fastscroller.allowBubbleDisplay = activity.baseConfig.showInfoBubble
|
||||
select_contact_list.adapter = SelectContactsAdapter(activity, allContacts, initiallySelectedContacts, allowSelectMultiple,
|
||||
select_contact_list, select_contact_fastscroller, contactClickCallback)
|
||||
|
||||
select_contact_fastscroller.allowBubbleDisplay = true
|
||||
select_contact_fastscroller.setViews(select_contact_list) {
|
||||
select_contact_fastscroller.updateBubbleText(allContacts[it].getBubbleText())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AlertDialog.Builder(activity)
|
||||
.setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed() }
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.create().apply {
|
||||
activity.setupDialogStuff(view, this)
|
||||
}
|
||||
val builder = AlertDialog.Builder(activity)
|
||||
if (allowSelectMultiple) {
|
||||
builder.setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed() }
|
||||
}
|
||||
builder.setNegativeButton(R.string.cancel, null)
|
||||
|
||||
dialog = builder.create().apply {
|
||||
activity.setupDialogStuff(view, this)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun dialogConfirmed() {
|
||||
|
|
|
@ -19,7 +19,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
|
|||
}
|
||||
|
||||
private fun showAddFavoritesDialog() {
|
||||
SelectContactsDialog(activity!!, allContacts) { addedContacts, removedContacts ->
|
||||
SelectContactsDialog(activity!!, allContacts, true, false) { addedContacts, removedContacts ->
|
||||
ContactsHelper(activity as SimpleActivity).apply {
|
||||
addFavorites(addedContacts)
|
||||
removeFavorites(removedContacts)
|
||||
|
|
|
@ -2,9 +2,11 @@ package com.simplemobiletools.contacts.pro.fragments
|
|||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.res.ColorStateList
|
||||
import android.util.AttributeSet
|
||||
import android.view.ViewGroup
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
import com.reddit.indicatorfastscroll.FastScrollItemIndicator
|
||||
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.commons.helpers.SORT_BY_FIRST_NAME
|
||||
|
@ -23,6 +25,14 @@ import com.simplemobiletools.contacts.pro.interfaces.RefreshContactsListener
|
|||
import com.simplemobiletools.contacts.pro.models.Contact
|
||||
import com.simplemobiletools.contacts.pro.models.Group
|
||||
import kotlinx.android.synthetic.main.fragment_layout.view.*
|
||||
import kotlinx.android.synthetic.main.fragment_layout.view.fragment_fab
|
||||
import kotlinx.android.synthetic.main.fragment_layout.view.fragment_list
|
||||
import kotlinx.android.synthetic.main.fragment_layout.view.fragment_placeholder
|
||||
import kotlinx.android.synthetic.main.fragment_layout.view.fragment_placeholder_2
|
||||
import kotlinx.android.synthetic.main.fragment_layout.view.fragment_wrapper
|
||||
import kotlinx.android.synthetic.main.fragment_letters_layout.view.*
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) : CoordinatorLayout(context, attributeSet) {
|
||||
protected var activity: SimpleActivity? = null
|
||||
|
@ -35,6 +45,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
|
|||
|
||||
var skipHashComparing = false
|
||||
var forceListRedraw = false
|
||||
var wasLetterFastScrollerSetup = false
|
||||
|
||||
fun setupFragment(activity: SimpleActivity) {
|
||||
config = activity.config
|
||||
|
@ -79,8 +90,8 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
|
|||
}
|
||||
|
||||
fun primaryColorChanged() {
|
||||
fragment_fastscroller.updatePrimaryColor()
|
||||
fragment_fastscroller.updateBubblePrimaryColor()
|
||||
fragment_fastscroller?.updatePrimaryColor()
|
||||
fragment_fastscroller?.updateBubblePrimaryColor()
|
||||
(fragment_list.adapter as? ContactsAdapter)?.apply {
|
||||
adjustedPrimaryColor = context.getAdjustedPrimaryColor()
|
||||
}
|
||||
|
@ -139,6 +150,39 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
|
|||
} else {
|
||||
setupContactsFavoritesAdapter(contacts)
|
||||
contactsIgnoringSearch = (fragment_list?.adapter as? ContactsAdapter)?.contactItems ?: ArrayList()
|
||||
|
||||
if (!wasLetterFastScrollerSetup) {
|
||||
wasLetterFastScrollerSetup = true
|
||||
|
||||
val states = arrayOf(intArrayOf(android.R.attr.state_enabled),
|
||||
intArrayOf(-android.R.attr.state_enabled),
|
||||
intArrayOf(-android.R.attr.state_checked),
|
||||
intArrayOf(android.R.attr.state_pressed)
|
||||
)
|
||||
|
||||
val textColor = config.textColor
|
||||
val colors = intArrayOf(textColor, textColor, textColor, textColor)
|
||||
|
||||
val myList = ColorStateList(states, colors)
|
||||
letter_fastscroller.textColor = myList
|
||||
|
||||
letter_fastscroller.setupWithRecyclerView(fragment_list, { position ->
|
||||
try {
|
||||
val name = contacts[position].getNameToDisplay()
|
||||
var character = if (name.isNotEmpty()) name.substring(0, 1) else ""
|
||||
if (!character.areLettersOnly()) {
|
||||
character = "#"
|
||||
}
|
||||
|
||||
FastScrollItemIndicator.Text(character.toUpperCase(Locale.getDefault()))
|
||||
} catch (e: Exception) {
|
||||
FastScrollItemIndicator.Text("")
|
||||
}
|
||||
})
|
||||
|
||||
letter_fastscroller_thumb.setupWithFastScroller(letter_fastscroller)
|
||||
letter_fastscroller_thumb.textColor = config.primaryColor.getContrastColor()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -197,17 +241,11 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
|
|||
else -> LOCATION_CONTACTS_TAB
|
||||
}
|
||||
|
||||
ContactsAdapter(activity as SimpleActivity, contacts, activity as RefreshContactsListener, location, null, fragment_list, fragment_fastscroller) {
|
||||
ContactsAdapter(activity as SimpleActivity, contacts, activity as RefreshContactsListener, location, null, fragment_list, null) {
|
||||
(activity as RefreshContactsListener).contactClicked(it as Contact)
|
||||
}.apply {
|
||||
fragment_list.adapter = this
|
||||
}
|
||||
|
||||
fragment_fastscroller.setScrollToY(0)
|
||||
fragment_fastscroller.setViews(fragment_list) {
|
||||
val item = (fragment_list.adapter as ContactsAdapter).contactItems.getOrNull(it)
|
||||
fragment_fastscroller.updateBubbleText(item?.getBubbleText() ?: "")
|
||||
}
|
||||
} else {
|
||||
(currAdapter as ContactsAdapter).apply {
|
||||
startNameWithSurname = config.startNameWithSurname
|
||||
|
@ -232,6 +270,20 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
|
|||
}
|
||||
}
|
||||
|
||||
fun fontSizeChanged() {
|
||||
if (this is GroupsFragment) {
|
||||
(fragment_list.adapter as? GroupsAdapter)?.apply {
|
||||
fontSize = activity.getTextSize()
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
} else {
|
||||
(fragment_list.adapter as? ContactsAdapter)?.apply {
|
||||
fontSize = activity.getTextSize()
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun onActivityResume() {
|
||||
updateViewStuff()
|
||||
}
|
||||
|
@ -304,9 +356,10 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
|
|||
|
||||
private fun updateViewStuff() {
|
||||
context.updateTextColors(fragment_wrapper.parent as ViewGroup)
|
||||
fragment_fastscroller.updateBubbleColors()
|
||||
fragment_fastscroller.allowBubbleDisplay = config.showInfoBubble
|
||||
fragment_fastscroller?.updateBubbleColors()
|
||||
fragment_fastscroller?.allowBubbleDisplay = true
|
||||
fragment_placeholder_2?.setTextColor(context.getAdjustedPrimaryColor())
|
||||
letter_fastscroller_thumb?.fontSize = context.getTextSize()
|
||||
}
|
||||
|
||||
private fun setupViewVisibility(hasItemsToShow: Boolean) {
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
package com.simplemobiletools.contacts.pro.helpers
|
||||
|
||||
import android.content.Context
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.reflect.TypeToken
|
||||
import com.simplemobiletools.commons.helpers.BaseConfig
|
||||
import com.simplemobiletools.contacts.pro.models.SpeedDial
|
||||
|
||||
class Config(context: Context) : BaseConfig(context) {
|
||||
companion object {
|
||||
|
@ -60,4 +63,18 @@ class Config(context: Context) : BaseConfig(context) {
|
|||
var speedDial: String
|
||||
get() = prefs.getString(SPEED_DIAL, "")!!
|
||||
set(speedDial) = prefs.edit().putString(SPEED_DIAL, speedDial).apply()
|
||||
|
||||
fun getSpeedDialValues(): ArrayList<SpeedDial> {
|
||||
val speedDialType = object : TypeToken<List<SpeedDial>>() {}.type
|
||||
val speedDialValues = Gson().fromJson<ArrayList<SpeedDial>>(speedDial, speedDialType) ?: ArrayList(1)
|
||||
|
||||
for (i in 1..9) {
|
||||
val speedDial = SpeedDial(i, "", "")
|
||||
if (speedDialValues.firstOrNull { it.id == i } == null) {
|
||||
speedDialValues.add(speedDial)
|
||||
}
|
||||
}
|
||||
|
||||
return speedDialValues
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
package com.simplemobiletools.contacts.pro.interfaces
|
||||
|
||||
interface RemoveSpeedDialListener {
|
||||
fun removeSpeedDial(ids: ArrayList<Int>)
|
||||
}
|
|
@ -1,3 +1,5 @@
|
|||
package com.simplemobiletools.contacts.pro.models
|
||||
|
||||
data class SpeedDial(val id: Int, var number: String, var displayName: String)
|
||||
data class SpeedDial(val id: Int, var number: String, var displayName: String) {
|
||||
fun isValid() = number.trim().isNotEmpty()
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<ScrollView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/manage_speed_dial_scrollview"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -20,86 +22,13 @@
|
|||
android:text="@string/speed_dial_label"
|
||||
android:textSize="@dimen/bigger_text_size" />
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/speed_dial_1"
|
||||
<com.simplemobiletools.commons.views.MyRecyclerView
|
||||
android:id="@+id/speed_dial_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:text="1."
|
||||
android:textSize="@dimen/bigger_text_size" />
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/speed_dial_2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:text="2."
|
||||
android:textSize="@dimen/bigger_text_size" />
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/speed_dial_3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:text="3."
|
||||
android:textSize="@dimen/bigger_text_size" />
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/speed_dial_4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:text="4."
|
||||
android:textSize="@dimen/bigger_text_size" />
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/speed_dial_5"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:text="5."
|
||||
android:textSize="@dimen/bigger_text_size" />
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/speed_dial_6"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:text="6."
|
||||
android:textSize="@dimen/bigger_text_size" />
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/speed_dial_7"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:text="7."
|
||||
android:textSize="@dimen/bigger_text_size" />
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/speed_dial_8"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:text="8."
|
||||
android:textSize="@dimen/bigger_text_size" />
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/speed_dial_9"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:text="9."
|
||||
android:textSize="@dimen/bigger_text_size" />
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:scrollbars="none"
|
||||
app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager" />
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
|
|
@ -117,6 +117,38 @@
|
|||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_font_size_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/medium_margin"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:paddingLeft="@dimen/normal_margin"
|
||||
android:paddingTop="@dimen/activity_margin"
|
||||
android:paddingRight="@dimen/normal_margin"
|
||||
android:paddingBottom="@dimen/activity_margin">
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/settings_font_size_label"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toStartOf="@+id/settings_font_size"
|
||||
android:paddingLeft="@dimen/medium_margin"
|
||||
android:paddingRight="@dimen/medium_margin"
|
||||
android:text="@string/font_size"/>
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/settings_font_size"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginEnd="@dimen/medium_margin"
|
||||
android:background="@null"
|
||||
android:clickable="false"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_use_english_holder"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -140,29 +172,6 @@
|
|||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_show_info_bubble_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/medium_margin"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:paddingStart="@dimen/normal_margin"
|
||||
android:paddingTop="@dimen/activity_margin"
|
||||
android:paddingEnd="@dimen/normal_margin"
|
||||
android:paddingBottom="@dimen/activity_margin">
|
||||
|
||||
<com.simplemobiletools.commons.views.MySwitchCompat
|
||||
android:id="@+id/settings_show_info_bubble"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@null"
|
||||
android:clickable="false"
|
||||
android:paddingStart="@dimen/medium_margin"
|
||||
android:text="@string/show_info_bubble"
|
||||
app:switchPadding="@dimen/medium_margin"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_show_contact_thumbnails_holder"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -5,6 +5,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<include layout="@layout/fragment_layout"/>
|
||||
<include layout="@layout/fragment_letters_layout"/>
|
||||
|
||||
</com.simplemobiletools.contacts.pro.fragments.ContactsFragment>
|
||||
|
|
|
@ -5,6 +5,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<include layout="@layout/fragment_layout"/>
|
||||
<include layout="@layout/fragment_letters_layout"/>
|
||||
|
||||
</com.simplemobiletools.contacts.pro.fragments.FavoritesFragment>
|
||||
|
|
72
app/src/main/res/layout/fragment_letters_layout.xml
Normal file
72
app/src/main/res/layout/fragment_letters_layout.xml
Normal file
|
@ -0,0 +1,72 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/fragment_wrapper"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/fragment_placeholder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="@dimen/activity_margin"
|
||||
android:gravity="center"
|
||||
android:paddingLeft="@dimen/activity_margin"
|
||||
android:paddingRight="@dimen/activity_margin"
|
||||
android:text="@string/no_contacts_found"
|
||||
android:textSize="@dimen/bigger_text_size"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/fragment_placeholder_2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/fragment_placeholder"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:gravity="center"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:text="@string/change_filter"
|
||||
android:textSize="@dimen/bigger_text_size"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<com.simplemobiletools.commons.views.MyRecyclerView
|
||||
android:id="@+id/fragment_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:scrollbars="none"
|
||||
app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager"/>
|
||||
|
||||
<com.reddit.indicatorfastscroll.FastScrollerView
|
||||
android:id="@+id/letter_fastscroller"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:paddingTop="@dimen/big_margin"
|
||||
android:paddingBottom="@dimen/big_margin" />
|
||||
|
||||
<com.reddit.indicatorfastscroll.FastScrollerThumbView
|
||||
android:id="@+id/letter_fastscroller_thumb"
|
||||
android:layout_width="@dimen/fab_size"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignTop="@+id/letter_fastscroller"
|
||||
android:layout_alignBottom="@+id/letter_fastscroller"
|
||||
android:layout_marginEnd="@dimen/activity_margin"
|
||||
android:layout_toStartOf="@+id/letter_fastscroller" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<com.simplemobiletools.commons.views.MyFloatingActionButton
|
||||
android:id="@+id/fragment_fab"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_margin="@dimen/activity_margin"
|
||||
android:src="@drawable/ic_plus_vector"/>
|
||||
|
||||
</merge>
|
|
@ -45,7 +45,7 @@
|
|||
android:layout_toEndOf="@+id/contact_tmb"
|
||||
android:alpha="0.6"
|
||||
android:maxLines="1"
|
||||
android:textSize="@dimen/bigger_text_size"
|
||||
android:textSize="@dimen/big_text_size"
|
||||
tools:text="0123 456 789" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
|
15
app/src/main/res/layout/item_speed_dial.xml
Normal file
15
app/src/main/res/layout/item_speed_dial.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/speed_dial_label"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:ellipsize="end"
|
||||
android:foreground="@drawable/selector"
|
||||
android:lines="1"
|
||||
android:maxLines="1"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:singleLine="true"
|
||||
android:textSize="@dimen/bigger_text_size" />
|
9
app/src/main/res/menu/cab_speed_dial.xml
Normal file
9
app/src/main/res/menu/cab_speed_dial.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<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_vector"
|
||||
android:title="@string/delete"
|
||||
app:showAsAction="ifRoom" />
|
||||
</menu>
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Contains no ads or unnecessary permissions. It is fully opensource, provides customizable colors.
|
||||
|
||||
This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Contains no ads or unnecessary permissions. It is fully opensource, provides customizable colors.
|
||||
|
||||
This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
202
app/src/main/res/values-cs/strings.xml
Normal file
202
app/src/main/res/values-cs/strings.xml
Normal file
|
@ -0,0 +1,202 @@
|
|||
<resources>
|
||||
<string name="app_name">Jednoduché kontakty</string>
|
||||
<string name="app_launcher_name">Kontakty</string>
|
||||
<string name="address">Adresa</string>
|
||||
<string name="inserting">Vytváří se…</string>
|
||||
<string name="updating">Upravuje se…</string>
|
||||
<string name="phone_storage">Úložiště telefonu</string>
|
||||
<string name="phone_storage_hidden">Úložiště telefonu (neviditelné pro ostatní apky)</string>
|
||||
<string name="company">Firma</string>
|
||||
<string name="job_position">Pracovní pozice</string>
|
||||
<string name="website">Webová stránka</string>
|
||||
<string name="send_sms_to_contacts">Poslat kontaktům SMS</string>
|
||||
<string name="send_email_to_contacts">Poslat kontaktům e-mail</string>
|
||||
<string name="send_sms_to_group">Poslat skupině SMS</string>
|
||||
<string name="send_email_to_group">Poslat skupině e-mail</string>
|
||||
<string name="call_person">Zavolat %s</string>
|
||||
<string name="request_the_required_permissions">Vyžádat potřebná oprávnění</string>
|
||||
<string name="create_new_contact">Vytvořit nový kontakt</string>
|
||||
<string name="add_to_existing_contact">Přidat k existujícímu kontaktu</string>
|
||||
<string name="must_make_default_dialer">Pro použití blokování čísel musíte nastavit aplikaci jako výchozí pro správu hovorů.</string>
|
||||
<string name="set_as_default">Nastavit jako výchozí</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">Nenalezeny žádné kontakty.</string>
|
||||
<string name="no_contacts_with_emails">Nenalezeny žádné kontakty s e-maily</string>
|
||||
<string name="no_contacts_with_phone_numbers">Nenalezeny žádné kontakty s telefonními čísly</string>
|
||||
|
||||
<string name="new_contact">Nový kontakt</string>
|
||||
<string name="edit_contact">Upravit kontakt</string>
|
||||
<string name="select_contact">Zvolte kontakt</string>
|
||||
<string name="select_contacts">Zvolte kontakty</string>
|
||||
<string name="first_name">Křestní jméno</string>
|
||||
<string name="middle_name">Prostřední jméno</string>
|
||||
<string name="surname">Příjmení</string>
|
||||
<string name="nickname">Přezdívka</string>
|
||||
|
||||
<!-- Groups -->
|
||||
<string name="no_groups">Žádné skupiny</string>
|
||||
<string name="create_new_group">Vytvořit novou skupinu</string>
|
||||
<string name="remove_from_group">Odebrat ze skupiny</string>
|
||||
<string name="no_group_participants">Skupina je prázdná</string>
|
||||
<string name="add_contacts">Přidat kontakty</string>
|
||||
<string name="no_group_created">Nemáte v zařízení vytvořeny žádné skupiny kontaktů</string>
|
||||
<string name="create_group">Vytvořit skupinu</string>
|
||||
<string name="add_to_group">Přidat do skupiny</string>
|
||||
<string name="create_group_under_account">Vytvořit skupinu pod účet</string>
|
||||
|
||||
<!-- Photo -->
|
||||
<string name="take_photo">Pořídit fotku</string>
|
||||
<string name="choose_photo">Zvolit fotku</string>
|
||||
<string name="remove_photo">Odstranit fotku</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="start_name_with_surname">Nejprve příjmení</string>
|
||||
<string name="show_phone_numbers">Zobrazit telefonní čísla na hlavní obrazovce</string>
|
||||
<string name="show_contact_thumbnails">Zobrazit obrázky kontaktů</string>
|
||||
<string name="show_dialpad_button">Zobrazit tlačítko číselníku na hlavní obrazovce</string>
|
||||
<string name="on_contact_click">Po klepnutí na kontakt</string>
|
||||
<string name="call_contact">Zavolat kontakt</string>
|
||||
<string name="view_contact">Zobrazit údaje kontaktu</string>
|
||||
<string name="manage_shown_contact_fields">Spravovat zobrazená pole kontaktů</string>
|
||||
<string name="filter_duplicates">Pokusit se vyfiltrovat duplicitní kontakty</string>
|
||||
<string name="manage_shown_tabs">Spravovat zobrazené karty</string>
|
||||
<string name="contacts">Kontakty</string>
|
||||
<string name="favorites">Oblíbené</string>
|
||||
<string name="show_call_confirmation_dialog">Před zahájením hovoru zobrazit potvrzovací dialog</string>
|
||||
<string name="show_only_contacts_with_numbers">Zobrazit jen kontakty s telefonními čísly</string>
|
||||
<string name="show_dialpad_letters">Zobrazit na číselníku písmena</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">E-mail</string>
|
||||
<string name="home">Domov</string>
|
||||
<string name="work">Práce</string>
|
||||
<string name="other">Jiné</string>
|
||||
|
||||
<!-- Phone numbers -->
|
||||
<string name="number">Číslo</string>
|
||||
<string name="mobile">Mobil</string>
|
||||
<string name="main_number">Hlavní</string>
|
||||
<string name="work_fax">Pracovní fax</string>
|
||||
<string name="home_fax">Domácí fax</string>
|
||||
<string name="pager">Pager</string>
|
||||
<string name="no_phone_number_found">Nenalezeno žádné telefonní číslo</string>
|
||||
|
||||
<!-- Events -->
|
||||
<string name="birthday">Narozeniny</string>
|
||||
<string name="anniversary">Výročí</string>
|
||||
|
||||
<!-- Favorites -->
|
||||
<string name="no_favorites">Vypadá to, že jste ještě nepřidali žádné oblíbené kontakty.</string>
|
||||
<string name="add_favorites">Přidat oblíbené</string>
|
||||
<string name="add_to_favorites">Přidat mezi oblíbené</string>
|
||||
<string name="remove_from_favorites">Odebrat z oblíbených</string>
|
||||
<string name="must_be_at_edit">Pro úpravu kontaktu musíte být v Editoru kontaktu</string>
|
||||
|
||||
<!-- Search -->
|
||||
<string name="search_contacts">Hledat v kontaktech</string>
|
||||
<string name="search_favorites">Hledat mezi oblíbenými</string>
|
||||
<string name="search_groups">Hledat mezi skupinami</string>
|
||||
|
||||
<!-- Export / Import -->
|
||||
<string name="import_contacts">Importovat kontakty</string>
|
||||
<string name="export_contacts">Exportovat kontakty</string>
|
||||
<string name="import_contacts_from_vcf">Importovat kontakty z .vcf souboru</string>
|
||||
<string name="export_contacts_to_vcf">Exportovat kontakty do .vcf souboru</string>
|
||||
<string name="target_contact_source">Cílový zdroj kontaktů</string>
|
||||
<string name="include_contact_sources">Zahrnout zdroje kontaktů</string>
|
||||
<string name="filename_without_vcf">Název souboru (bez .vcf)</string>
|
||||
|
||||
<!-- Dialpad -->
|
||||
<string name="dialpad">Číselník</string>
|
||||
<string name="add_number_to_contact">Přidat číslo kontaktu</string>
|
||||
|
||||
<!-- Dialer -->
|
||||
<string name="dialer">Telefon</string>
|
||||
<string name="calling">Vytáčí se</string>
|
||||
<string name="incoming_call">Příchozí hovor</string>
|
||||
<string name="incoming_call_from">Příchozí hovor od…</string>
|
||||
<string name="ongoing_call">Probíhající hovor</string>
|
||||
<string name="disconnected">Ukončený hovor</string>
|
||||
<string name="decline_call">Odmítnout</string>
|
||||
<string name="answer_call">Přijmout</string>
|
||||
|
||||
<!-- Speed dial -->
|
||||
<string name="speed_dial">Rychlé vytáčení</string>
|
||||
<string name="manage_speed_dial">Spravovat rychlé vytáčení</string>
|
||||
<string name="speed_dial_label">Pro přiřazení kontaktu klepněte na číslo. Následně můžete daný kontakt rychle vytočit dlouhým podržením čísla na číselníku.</string>
|
||||
|
||||
<!-- Visible fields -->
|
||||
<string name="select_fields_to_show">Zvolte pole k zobrazení</string>
|
||||
<string name="prefix">Titul před jménem</string>
|
||||
<string name="suffix">Titul za příjmením</string>
|
||||
<string name="phone_numbers">Telefonní čísla</string>
|
||||
<string name="emails">E-maily</string>
|
||||
<string name="addresses">Adresy</string>
|
||||
<string name="events">Události (narozeniny, výročí)</string>
|
||||
<string name="notes">Poznámky</string>
|
||||
<string name="organization">Firma</string>
|
||||
<string name="websites">Webové stránky</string>
|
||||
<string name="groups">Skupiny</string>
|
||||
<string name="contact_source">Zdroje kontaktů</string>
|
||||
<string name="instant_messaging">Rychlé zprávy (IM)</string>
|
||||
|
||||
<!-- Blocked numbers -->
|
||||
<string name="manage_blocked_numbers">Spravovat blokovaná čísla</string>
|
||||
<string name="not_blocking_anyone">Neblokujete nikoho.</string>
|
||||
<string name="add_a_blocked_number">Přidat blokované číslo</string>
|
||||
<string name="block_number">Blokovat číslo</string>
|
||||
<string name="block_numbers">Blokovat čísla</string>
|
||||
<string name="blocked_numbers">Blokovaná čísla</string>
|
||||
|
||||
<!-- Confirmation dialog -->
|
||||
<string name="delete_contacts_confirmation">Opravdu chcete vymazat %s?</string> <!-- Are you sure you want to delete 5 contacts? -->
|
||||
<string name="delete_from_all_sources">Kontakt bude vymazán ze všech zdrojů kontaktů.</string>
|
||||
|
||||
<!-- Are you sure you want to delete 5 contacts? -->
|
||||
<plurals name="delete_contacts">
|
||||
<item quantity="one">%d kontakt</item>
|
||||
<item quantity="few">%d kontakty</item>
|
||||
<item quantity="other">%d kontaktů</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="delete_groups">
|
||||
<item quantity="one">%d skupinu</item>
|
||||
<item quantity="few">%d skupiny</item>
|
||||
<item quantity="other">%d skupin</item>
|
||||
</plurals>
|
||||
|
||||
<!-- FAQ -->
|
||||
<string name="faq_1_title">Chci upravit viditelná pole kontaktů. Lze to?</string>
|
||||
<string name="faq_1_text">Ano, stačí jít do Nastavení -> Spravovat zobrazená pole kontaktů. Tam si můžete zvolit, která pole mají být viditelná. Některá jsou ve výchozím stavu vypnutá, takže tam můžete objevit i nová pole.</string>
|
||||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
|
||||
<string name="app_title">Jednoduché kontakty Pro - Rychlá správa kontaktů</string>
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Aplikace pro správu vašich kontaktů bez reklam, respektující vaše soukromí.</string>
|
||||
<string name="app_long_description">
|
||||
Jednoduchá aplikace na vytváření nebo správu vašich kontaktů z různých zdrojů. Mohou být uloženy buď jen ve vašem zařízení, nebo je můžete i synchronizovat přes Google či jiný účet. Své oblíbené položky si můžete zobrazit ve vlastním seznamu.
|
||||
|
||||
Můžete ji používat i na správu e-mailů a událostí kontaktů. Nabízí možnost řazení/filtrování pomocí různých parametrů, volitelné je zobrazování příjmení před jménem.
|
||||
|
||||
Neobsahuje žádné reklamy, ani nepotřebná oprávnění. Má plně otevřený zdrojový kód a možnost změny barev.
|
||||
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
Haven't found some strings? There's more at
|
||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||
-->
|
||||
</resources>
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Does dim hysbysebion na dim angen arno unrhyw ganiatâd diangen. Mae\'n gwbl cod agored ac mae modd addasu lliwiau\'r ap.
|
||||
|
||||
Mae\'r ap hwn yn un ymhlith nifer o apiau gennym. Mae\'r gweddill i\'w gweld ar https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Indeholder ingen annoncer eller unødvendige tilladelser. Det er fuldstændigt opensource. Appens farver kan tilpasses.
|
||||
|
||||
Denne app er kun en af en større række af apps. Du kan finde resten af dem på https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Enthält keine Werbung oder unnötige Berechtigungen. Vollständig quelloffen. Die Farben sind anpassbar.
|
||||
|
||||
Diese App ist nur ein Teil einer größeren App-Familie. Die übrigen finden Sie unter https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -122,9 +122,9 @@
|
|||
<string name="answer_call">Απάντηση</string>
|
||||
|
||||
<!-- Speed dial -->
|
||||
<string name="speed_dial">Speed dial</string>
|
||||
<string name="manage_speed_dial">Manage speed dial</string>
|
||||
<string name="speed_dial_label">Click on a number to assign a contact to it. You can then quickly call the given contact by long pressing the given number at the dialer.</string>
|
||||
<string name="speed_dial">Ταχεία Κλήση</string>
|
||||
<string name="manage_speed_dial">Διαχείριση Ταχείας Κλήσης</string>
|
||||
<string name="speed_dial_label">Κάντε κλικ σε έναν αριθμό για να αντιστοιχίσετε μια επαφή σε αυτόν. Στη συνέχεια, μπορείτε να καλέσετε γρήγορα τη δεδομένη επαφή πατώντας τον αριθμό αυτόν στο πληκτρολόγιο.</string>
|
||||
|
||||
<!-- Visible fields -->
|
||||
<string name="select_fields_to_show">Επιλογή εμφάνισης πεδίων</string>
|
||||
|
@ -180,7 +180,17 @@
|
|||
|
||||
Δεν περιέχει διαφημίσεις ή περιττές άδειες. Έιναι όλη ανοιχτού κώδικα και παρέχει προσαρμόσιμα χρώματα για την εφαρμογή.
|
||||
|
||||
Αυτή η εφαρμογή είναι μέρος μιας σειράς εφαρμογών. Μπορείτε να βρείτε τις υπόλοιπες στο https://www.simplemobiletools.com
|
||||
<b>Δείτε την πλήρη σειρά των Απλών Εργαλείων εδώ:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Αποκλειστική ιστοσελίδα της Απλές Επαφές Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
No contiene anuncios o permisos innecesarios. Es complétamente de código abierto, provee colores personalziables.
|
||||
|
||||
Esta es solo una aplicación de una serie de aplicaciones más grande. Puedes encontrar el resto en https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -178,7 +178,19 @@
|
|||
|
||||
Erabiltzaileen emailak eta ekitaldiak kudeatzeko erabili dezakezu ere. Aukera duzu parametro askoren arabera sailkatzeko, tartean abizena izen gisa erakustea.
|
||||
|
||||
Ez ditu iragarkirik ezta beharrezkoak ez diren baimenak. Guztiz kode irekikoa da eta koloreak pertsonalizagarriak dira. Aplikazio hau sorta handiago bateko zati bat baino ez da. Gainontzekoak ikusteko, jo https://www.simplemobiletools.com webgunera
|
||||
Ez ditu iragarkirik ezta beharrezkoak ez diren baimenak. Guztiz kode irekikoa da eta koloreak pertsonalizagarriak dira. Aplikazio hau sorta handiago bateko zati bat baino ez da.
|
||||
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Contains no ads or unnecessary permissions. It is fully opensource, provides customizable colors.
|
||||
|
||||
This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
L\'application ne contient ni publicité, ni autorisation inutile. Elle est totalement opensource et est également fournie avec des couleurs personnalisables.
|
||||
|
||||
Cette application fait partie d\'une plus grande suite. Vous pouvez trouver les autres applications sur https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Ne sadrži oglase ili nepotrebne dozvole. Aplikacije je otvorenog koda, pruža prilagodljive boje.
|
||||
|
||||
Ova je aplikacija samo dio većeg broja aplikacija. Možete pronaći ostatak na https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Nem kér szükségtelen jogosultságokat és nincs benne reklám. Teljes egészében nyílt forráskódú szoftver.
|
||||
|
||||
Ez az app egy nagyobb sorozat része. A többi app elérhető a https://www.simplemobiletools.com weboldalon.
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Tanpa iklan dan perizinan yang tidak perlu. Sepenuhnya sumber terbuka, dengan warna yang bisa disesuaikan.
|
||||
|
||||
Aplikasi ini hanya salah satu bagian dari rangkaian aplikasi yang lebih besar. Anda bisa menemukan yang lainnya di https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Tanpa iklan dan perizinan yang tidak perlu. Sepenuhnya sumber terbuka, dengan warna yang bisa disesuaikan.
|
||||
|
||||
Aplikasi ini hanya salah satu bagian dari rangkaian aplikasi yang lebih besar. Anda bisa menemukan yang lainnya di https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
L\'applicazione non contiene pubblicità o permessi non necessari; è completamente opensource e la si può personalizzare con i propri colori preferiti.
|
||||
|
||||
Questa è solamente una delle tante applicazioni della serie Simple Mobile Tools. Si possono trovare le altre su https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
広告や不要なアクセス許可は含まれていません。完全にオープンソースで、色のカスタマイズも可能です。
|
||||
|
||||
このアプリは大きな一連のアプリの一つです。 その他のアプリは https://www.simplemobiletools.com で見つけることができます。
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
광고가 포함되어 있거나, 불필요한 권한을 요청하지 않습니다. 이 앱의 모든 소스는 오픈소스이며, 사용자가 직접 애플리케이션의 컬러를 설정 할 수 있습니다.
|
||||
|
||||
이 앱은 다양한 시리즈의 모바일앱 중 하나입니다. 나머지는 https://www.simplemobiletools.com 에서 찾아 보실 수 있습니다.
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Neturi reklamų ar nereikalingų leidimų. Programėlė visiškai atviro kodo, yra galimybė keisti spalvas.
|
||||
|
||||
Ši programėle yra vienintelė iš keletos mūsų programėlių. Likusias Jūs galite rasti čia https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -122,9 +122,9 @@
|
|||
<string name="answer_call">Opnemen</string>
|
||||
|
||||
<!-- Speed dial -->
|
||||
<string name="speed_dial">Speed dial</string>
|
||||
<string name="manage_speed_dial">Manage speed dial</string>
|
||||
<string name="speed_dial_label">Click on a number to assign a contact to it. You can then quickly call the given contact by long pressing the given number at the dialer.</string>
|
||||
<string name="speed_dial">Snelkiezer</string>
|
||||
<string name="manage_speed_dial">Snelkiezer bewerken</string>
|
||||
<string name="speed_dial_label">Klik op een cijfer om er een contact aan te koppelen. Vervolgens kan dit contact direct gebeld worden door in de kiezer lang op het gekoppelde cijfer te drukken.</string>
|
||||
|
||||
<!-- Visible fields -->
|
||||
<string name="select_fields_to_show">Kies zichtbare velden</string>
|
||||
|
@ -180,7 +180,17 @@
|
|||
|
||||
Bevat geen advertenties of onnodige machtigingen. Volledig open-source. Kleuren van de app kunnen worden aangepast.
|
||||
|
||||
Deze app is onderdeel van een grotere verzameling. Vind de andere apps op https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -1,190 +1,200 @@
|
|||
<resources>
|
||||
<string name="app_name">Proste Kontakty</string>
|
||||
<string name="app_launcher_name">Kontakty</string>
|
||||
<string name="address">Adres</string>
|
||||
<string name="inserting">Dodawanie…</string>
|
||||
<string name="updating">Aktualizowanie…</string>
|
||||
<string name="phone_storage">Pamięć telefonu</string>
|
||||
<string name="phone_storage_hidden">Pamięć telefonu (niewidoczna dla innych aplikacji)</string>
|
||||
<string name="company">Firma</string>
|
||||
<string name="job_position">Stanowisko</string>
|
||||
<string name="website">Strona internetowa</string>
|
||||
<string name="send_sms_to_contacts">Wyślij SMS-a do kontaktów</string>
|
||||
<string name="send_email_to_contacts">Wyślij e-maila do kontaktów</string>
|
||||
<string name="send_sms_to_group">Wyślij SMS-a do grupy</string>
|
||||
<string name="send_email_to_group">Wyślij e-maila do grupy</string>
|
||||
<string name="call_person">Zadzwoń do: %s</string>
|
||||
<string name="request_the_required_permissions">Wymagaj koniecznych uprawnień</string>
|
||||
<string name="create_new_contact">Utwórz nowy kontakt</string>
|
||||
<string name="add_to_existing_contact">Dodaj do istniejącego kontaktu</string>
|
||||
<string name="must_make_default_dialer">Musisz ustawić tę aplikację jako domyślną aplikację telefoniczną, aby móc korzystać z funkcji blokowania numerów.</string>
|
||||
<string name="set_as_default">Ustaw jako domyślną</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">Nie znaleziono kontaktów.</string>
|
||||
<string name="no_contacts_with_emails">Nie znaleziono kontaktów z adresami e-mail</string>
|
||||
<string name="no_contacts_with_phone_numbers">Nie znaleziono kontaktów z numerami telefonów</string>
|
||||
|
||||
<string name="new_contact">Nowy kontakt</string>
|
||||
<string name="edit_contact">Edytuj kontakt</string>
|
||||
<string name="select_contact">Wybierz kontakt</string>
|
||||
<string name="select_contacts">Wybierz kontakty</string>
|
||||
<string name="first_name">Pierwsze imię</string>
|
||||
<string name="middle_name">Drugie imię</string>
|
||||
<string name="surname">Nazwisko</string>
|
||||
<string name="nickname">Pseudonim</string>
|
||||
|
||||
<!-- Groups -->
|
||||
<string name="no_groups">Brak grup</string>
|
||||
<string name="create_new_group">Utwórz nową grupę</string>
|
||||
<string name="remove_from_group">Usuń z grupy</string>
|
||||
<string name="no_group_participants">Ta grupa jest pusta</string>
|
||||
<string name="add_contacts">Dodaj kontakty</string>
|
||||
<string name="no_group_created">Nie ma grup kontaktów na urządzeniu</string>
|
||||
<string name="create_group">Utwórz grupę</string>
|
||||
<string name="add_to_group">Dodaj do grupy</string>
|
||||
<string name="create_group_under_account">Utwórz grupę na koncie</string>
|
||||
|
||||
<!-- Photo -->
|
||||
<string name="take_photo">Zrób zdjęcie</string>
|
||||
<string name="choose_photo">Wybierz zdjęcie</string>
|
||||
<string name="remove_photo">Usuń zdjęcie</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="start_name_with_surname">Zacznij nazwę od nazwiska</string>
|
||||
<string name="show_phone_numbers">Pokazuj numery telefonów na ekranie głównym</string>
|
||||
<string name="show_contact_thumbnails">Pokazuj miniatury kontaktów</string>
|
||||
<string name="show_dialpad_button">Pokazuj przycisk panelu wybierania numeru na ekranie głównym</string>
|
||||
<string name="on_contact_click">Przy naciśnięciu kontaktu</string>
|
||||
<string name="call_contact">Zadzwoń do konataktu</string>
|
||||
<string name="view_contact">Pokaż szczegóły kontaktu</string>
|
||||
<string name="manage_shown_contact_fields">Zarządzaj pokazywanymi polami kontaktu</string>
|
||||
<string name="filter_duplicates">Spróbuj odfiltrować zduplikowane kontakty</string>
|
||||
<string name="manage_shown_tabs">Zarządzaj pokazywanymi sekcjami</string>
|
||||
<string name="contacts">Kontakty</string>
|
||||
<string name="favorites">Ulubione</string>
|
||||
<string name="show_call_confirmation_dialog">Pokazuj okno potwierdzenia zadzwonienia przed zainicjonowaniem połączenia</string>
|
||||
<string name="show_only_contacts_with_numbers">Pokazuj wyłącznie kontakty z numerami telefonów</string>
|
||||
<string name="show_dialpad_letters">Pokazuj litery na panelu wybierania</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">E-mail</string>
|
||||
<string name="home">Dom</string>
|
||||
<string name="work">Praca</string>
|
||||
<string name="other">Inny</string>
|
||||
|
||||
<!-- Phone numbers -->
|
||||
<string name="number">Numer</string>
|
||||
<string name="mobile">Komórkowy</string>
|
||||
<string name="main_number">Główny</string>
|
||||
<string name="work_fax">Służbowy faks</string>
|
||||
<string name="home_fax">Domowy faks</string>
|
||||
<string name="pager">Pager</string>
|
||||
<string name="no_phone_number_found">Nie znaleziono numeru telefonu</string>
|
||||
|
||||
<!-- Events -->
|
||||
<string name="birthday">Urodziny</string>
|
||||
<string name="anniversary">Rocznica</string>
|
||||
|
||||
<!-- Favorites -->
|
||||
<string name="no_favorites">Wygląda na to, że nie dodałeś jeszcze żadnego ulubionego kontaktu.</string>
|
||||
<string name="add_favorites">Dodaj ulubione</string>
|
||||
<string name="add_to_favorites">Dodaj do ulubionych</string>
|
||||
<string name="remove_from_favorites">Usuń z ulubionych</string>
|
||||
<string name="must_be_at_edit">Musisz wejść do ekranu edycji, aby zmodyfikować kontakt</string>
|
||||
|
||||
<!-- Search -->
|
||||
<string name="search_contacts">Szukaj kontaktów</string>
|
||||
<string name="search_favorites">Szukaj ulubionych</string>
|
||||
<string name="search_groups">Search groups</string>
|
||||
|
||||
<!-- Export / Import -->
|
||||
<string name="import_contacts">Importuj kontakty</string>
|
||||
<string name="export_contacts">Eksportuj kontakty</string>
|
||||
<string name="import_contacts_from_vcf">Importuj kontakty z pliku .vcf</string>
|
||||
<string name="export_contacts_to_vcf">Eksportuj kontakty do pliku .vcf</string>
|
||||
<string name="target_contact_source">Wybierz miejsce przechowywania kontaktów</string>
|
||||
<string name="include_contact_sources">Obejmuj kontakty z następujących źródeł:</string>
|
||||
<string name="filename_without_vcf">Nazwa pliku (bez .vcf)</string>
|
||||
|
||||
<!-- Dialpad -->
|
||||
<string name="dialpad">Panel wybierania</string>
|
||||
<string name="add_number_to_contact">Dodaj numer do kontaktu</string>
|
||||
|
||||
<!-- Dialer -->
|
||||
<string name="dialer">Dialer</string>
|
||||
<string name="calling">Dzwonienie</string>
|
||||
<string name="incoming_call">Połączenie przychodzące</string>
|
||||
<string name="incoming_call_from">Połączenie przychodzące od…</string>
|
||||
<string name="ongoing_call">Połączenie wychodzące</string>
|
||||
<string name="disconnected">Rozłączony</string>
|
||||
<string name="decline_call">Odrzuć</string>
|
||||
<string name="answer_call">Odpowiedz</string>
|
||||
|
||||
<!-- Speed dial -->
|
||||
<string name="speed_dial">Speed dial</string>
|
||||
<string name="manage_speed_dial">Manage speed dial</string>
|
||||
<string name="speed_dial_label">Click on a number to assign a contact to it. You can then quickly call the given contact by long pressing the given number at the dialer.</string>
|
||||
|
||||
<!-- Visible fields -->
|
||||
<string name="select_fields_to_show">Wybierz pola do pokazywania</string>
|
||||
<string name="prefix">Prefiks</string>
|
||||
<string name="suffix">Sufiks</string>
|
||||
<string name="phone_numbers">Numery telefonów</string>
|
||||
<string name="emails">E-maile</string>
|
||||
<string name="addresses">Adresy</string>
|
||||
<string name="events">Wydarzenia (urodziny, rocznice)</string>
|
||||
<string name="notes">Notatki</string>
|
||||
<string name="organization">Organizacja</string>
|
||||
<string name="websites">Strony internetowe</string>
|
||||
<string name="groups">Grupy</string>
|
||||
<string name="contact_source">Miejsce przechowywania kontaktu</string>
|
||||
<string name="instant_messaging">Komunikator</string>
|
||||
|
||||
<!-- Blocked numbers -->
|
||||
<string name="manage_blocked_numbers">Zarządzaj zablokowanymi numerami</string>
|
||||
<string name="not_blocking_anyone">Nie blokujesz nikogo.</string>
|
||||
<string name="add_a_blocked_number">Dodaj numer do blokowania</string>
|
||||
<string name="block_number">Zablokuj numer</string>
|
||||
<string name="block_numbers">Zablokuj numery</string>
|
||||
<string name="blocked_numbers">Zablokowane numery</string>
|
||||
|
||||
<!-- Confirmation dialog -->
|
||||
<string name="delete_contacts_confirmation">Are you sure you want to delete %s?</string> <!-- Are you sure you want to delete 5 contacts? -->
|
||||
<string name="delete_from_all_sources">The contact will be removed from all contact sources.</string>
|
||||
|
||||
<!-- Are you sure you want to delete 5 contacts? -->
|
||||
<plurals name="delete_contacts">
|
||||
<item quantity="one">%d contact</item>
|
||||
<item quantity="other">%d contacts</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="delete_groups">
|
||||
<item quantity="one">%d group</item>
|
||||
<item quantity="other">%d groups</item>
|
||||
</plurals>
|
||||
|
||||
<!-- FAQ -->
|
||||
<string name="faq_1_title">Chcę zmienić, które pola są widoczne w kontaktach. Czy mogę to zrobić?</string>
|
||||
<string name="faq_1_text">Tak, wszystko, co musisz zrobić, to wejść do Ustawień -> Zarządzaj pokazywanymi polami kontaktu. Możesz tam wybrać, które pola mają być wyświetlane. Niektóre z nich są nawet domyślnie wyłączone, więc możesz znaleźć tam wiele z nich nowych.</string>
|
||||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
|
||||
<string name="app_title">Simple Contacts Pro - Manage your contacts easily</string>
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Aplikacja do zarządzania Twoimi kontaktami, bez reklam, szanująca prywatność.</string>
|
||||
<string name="app_long_description">
|
||||
Prosta aplikacja do tworzenia lub zarządzania Twoimi kontaktami przechowywanymi w różnych miejscach. Kontakty mogą być przechowywane tylko na Twoim urządzeniu, ale również synchronizowane przez konto Google lub inne konta. Możesz wyświetlać Twoje ulubione kontakty na oddzielnej liście.
|
||||
|
||||
Możesz użyć jej także do zarządzania e-mailami użytkowników i wydarzeniami. Jest zdolna do sortowania/filtrowania według wielu parametrów, opcjonalnie do wyświetlania nazwiska jako imienia.
|
||||
|
||||
Nie zawiera reklam oraz niekoniecznych uprawnień. Jest w pełni otwartoźródłowa i w pełni podatna na kolorowanie.
|
||||
|
||||
Ta aplikacja jesst tylko częścią większej serii aplikacji. Możesz znaleźć pozostałe na https://www.simplemobiletools.com
|
||||
</string>
|
||||
|
||||
<!--
|
||||
Haven't found some strings? There's more at
|
||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||
-->
|
||||
</resources>
|
||||
<resources>
|
||||
<string name="app_name">Proste Kontakty</string>
|
||||
<string name="app_launcher_name">Kontakty</string>
|
||||
<string name="address">Adres</string>
|
||||
<string name="inserting">Dodawanie…</string>
|
||||
<string name="updating">Aktualizowanie…</string>
|
||||
<string name="phone_storage">Pamięć telefonu</string>
|
||||
<string name="phone_storage_hidden">Pamięć telefonu (niewidoczna dla innych aplikacji)</string>
|
||||
<string name="company">Firma</string>
|
||||
<string name="job_position">Stanowisko</string>
|
||||
<string name="website">Strona internetowa</string>
|
||||
<string name="send_sms_to_contacts">Wyślij SMS-a do kontaktów</string>
|
||||
<string name="send_email_to_contacts">Wyślij e-maila do kontaktów</string>
|
||||
<string name="send_sms_to_group">Wyślij SMS-a do grupy</string>
|
||||
<string name="send_email_to_group">Wyślij e-maila do grupy</string>
|
||||
<string name="call_person">Zadzwoń do: %s</string>
|
||||
<string name="request_the_required_permissions">Wymagaj koniecznych uprawnień</string>
|
||||
<string name="create_new_contact">Utwórz nowy kontakt</string>
|
||||
<string name="add_to_existing_contact">Dodaj do istniejącego kontaktu</string>
|
||||
<string name="must_make_default_dialer">Musisz ustawić tę aplikację jako domyślną aplikację telefoniczną, aby móc korzystać z funkcji blokowania numerów.</string>
|
||||
<string name="set_as_default">Ustaw jako domyślną</string>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<string name="no_contacts_found">Nie znaleziono kontaktów.</string>
|
||||
<string name="no_contacts_with_emails">Nie znaleziono kontaktów z adresami e-mail</string>
|
||||
<string name="no_contacts_with_phone_numbers">Nie znaleziono kontaktów z numerami telefonów</string>
|
||||
|
||||
<string name="new_contact">Nowy kontakt</string>
|
||||
<string name="edit_contact">Edytuj kontakt</string>
|
||||
<string name="select_contact">Wybierz kontakt</string>
|
||||
<string name="select_contacts">Wybierz kontakty</string>
|
||||
<string name="first_name">Pierwsze imię</string>
|
||||
<string name="middle_name">Drugie imię</string>
|
||||
<string name="surname">Nazwisko</string>
|
||||
<string name="nickname">Pseudonim</string>
|
||||
|
||||
<!-- Groups -->
|
||||
<string name="no_groups">Brak grup</string>
|
||||
<string name="create_new_group">Utwórz nową grupę</string>
|
||||
<string name="remove_from_group">Usuń z grupy</string>
|
||||
<string name="no_group_participants">Ta grupa jest pusta</string>
|
||||
<string name="add_contacts">Dodaj kontakty</string>
|
||||
<string name="no_group_created">Nie ma grup kontaktów na urządzeniu</string>
|
||||
<string name="create_group">Utwórz grupę</string>
|
||||
<string name="add_to_group">Dodaj do grupy</string>
|
||||
<string name="create_group_under_account">Utwórz grupę na koncie</string>
|
||||
|
||||
<!-- Photo -->
|
||||
<string name="take_photo">Zrób zdjęcie</string>
|
||||
<string name="choose_photo">Wybierz zdjęcie</string>
|
||||
<string name="remove_photo">Usuń zdjęcie</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="start_name_with_surname">Zacznij nazwę od nazwiska</string>
|
||||
<string name="show_phone_numbers">Pokazuj numery telefonów na ekranie głównym</string>
|
||||
<string name="show_contact_thumbnails">Pokazuj miniatury kontaktów</string>
|
||||
<string name="show_dialpad_button">Pokazuj przycisk panelu wybierania numeru na ekranie głównym</string>
|
||||
<string name="on_contact_click">Przy naciśnięciu kontaktu</string>
|
||||
<string name="call_contact">Zadzwoń do konataktu</string>
|
||||
<string name="view_contact">Pokaż szczegóły kontaktu</string>
|
||||
<string name="manage_shown_contact_fields">Zarządzaj pokazywanymi polami kontaktu</string>
|
||||
<string name="filter_duplicates">Spróbuj odfiltrować zduplikowane kontakty</string>
|
||||
<string name="manage_shown_tabs">Zarządzaj pokazywanymi sekcjami</string>
|
||||
<string name="contacts">Kontakty</string>
|
||||
<string name="favorites">Ulubione</string>
|
||||
<string name="show_call_confirmation_dialog">Pokazuj okno potwierdzenia zadzwonienia przed zainicjonowaniem połączenia</string>
|
||||
<string name="show_only_contacts_with_numbers">Pokazuj wyłącznie kontakty z numerami telefonów</string>
|
||||
<string name="show_dialpad_letters">Pokazuj litery na panelu wybierania</string>
|
||||
|
||||
<!-- Emails -->
|
||||
<string name="email">E-mail</string>
|
||||
<string name="home">Dom</string>
|
||||
<string name="work">Praca</string>
|
||||
<string name="other">Inny</string>
|
||||
|
||||
<!-- Phone numbers -->
|
||||
<string name="number">Numer</string>
|
||||
<string name="mobile">Komórkowy</string>
|
||||
<string name="main_number">Główny</string>
|
||||
<string name="work_fax">Służbowy faks</string>
|
||||
<string name="home_fax">Domowy faks</string>
|
||||
<string name="pager">Pager</string>
|
||||
<string name="no_phone_number_found">Nie znaleziono numeru telefonu</string>
|
||||
|
||||
<!-- Events -->
|
||||
<string name="birthday">Urodziny</string>
|
||||
<string name="anniversary">Rocznica</string>
|
||||
|
||||
<!-- Favorites -->
|
||||
<string name="no_favorites">Wygląda na to, że nie dodałeś jeszcze żadnego ulubionego kontaktu.</string>
|
||||
<string name="add_favorites">Dodaj ulubione</string>
|
||||
<string name="add_to_favorites">Dodaj do ulubionych</string>
|
||||
<string name="remove_from_favorites">Usuń z ulubionych</string>
|
||||
<string name="must_be_at_edit">Musisz wejść do ekranu edycji, aby zmodyfikować kontakt</string>
|
||||
|
||||
<!-- Search -->
|
||||
<string name="search_contacts">Szukaj kontaktów</string>
|
||||
<string name="search_favorites">Szukaj ulubionych</string>
|
||||
<string name="search_groups">Search groups</string>
|
||||
|
||||
<!-- Export / Import -->
|
||||
<string name="import_contacts">Importuj kontakty</string>
|
||||
<string name="export_contacts">Eksportuj kontakty</string>
|
||||
<string name="import_contacts_from_vcf">Importuj kontakty z pliku .vcf</string>
|
||||
<string name="export_contacts_to_vcf">Eksportuj kontakty do pliku .vcf</string>
|
||||
<string name="target_contact_source">Wybierz miejsce przechowywania kontaktów</string>
|
||||
<string name="include_contact_sources">Obejmuj kontakty z następujących źródeł:</string>
|
||||
<string name="filename_without_vcf">Nazwa pliku (bez .vcf)</string>
|
||||
|
||||
<!-- Dialpad -->
|
||||
<string name="dialpad">Panel wybierania</string>
|
||||
<string name="add_number_to_contact">Dodaj numer do kontaktu</string>
|
||||
|
||||
<!-- Dialer -->
|
||||
<string name="dialer">Dialer</string>
|
||||
<string name="calling">Dzwonienie</string>
|
||||
<string name="incoming_call">Połączenie przychodzące</string>
|
||||
<string name="incoming_call_from">Połączenie przychodzące od…</string>
|
||||
<string name="ongoing_call">Połączenie wychodzące</string>
|
||||
<string name="disconnected">Rozłączony</string>
|
||||
<string name="decline_call">Odrzuć</string>
|
||||
<string name="answer_call">Odpowiedz</string>
|
||||
|
||||
<!-- Speed dial -->
|
||||
<string name="speed_dial">Speed dial</string>
|
||||
<string name="manage_speed_dial">Manage speed dial</string>
|
||||
<string name="speed_dial_label">Click on a number to assign a contact to it. You can then quickly call the given contact by long pressing the given number at the dialer.</string>
|
||||
|
||||
<!-- Visible fields -->
|
||||
<string name="select_fields_to_show">Wybierz pola do pokazywania</string>
|
||||
<string name="prefix">Prefiks</string>
|
||||
<string name="suffix">Sufiks</string>
|
||||
<string name="phone_numbers">Numery telefonów</string>
|
||||
<string name="emails">E-maile</string>
|
||||
<string name="addresses">Adresy</string>
|
||||
<string name="events">Wydarzenia (urodziny, rocznice)</string>
|
||||
<string name="notes">Notatki</string>
|
||||
<string name="organization">Organizacja</string>
|
||||
<string name="websites">Strony internetowe</string>
|
||||
<string name="groups">Grupy</string>
|
||||
<string name="contact_source">Miejsce przechowywania kontaktu</string>
|
||||
<string name="instant_messaging">Komunikator</string>
|
||||
|
||||
<!-- Blocked numbers -->
|
||||
<string name="manage_blocked_numbers">Zarządzaj zablokowanymi numerami</string>
|
||||
<string name="not_blocking_anyone">Nie blokujesz nikogo.</string>
|
||||
<string name="add_a_blocked_number">Dodaj numer do blokowania</string>
|
||||
<string name="block_number">Zablokuj numer</string>
|
||||
<string name="block_numbers">Zablokuj numery</string>
|
||||
<string name="blocked_numbers">Zablokowane numery</string>
|
||||
|
||||
<!-- Confirmation dialog -->
|
||||
<string name="delete_contacts_confirmation">Are you sure you want to delete %s?</string> <!-- Are you sure you want to delete 5 contacts? -->
|
||||
<string name="delete_from_all_sources">The contact will be removed from all contact sources.</string>
|
||||
|
||||
<!-- Are you sure you want to delete 5 contacts? -->
|
||||
<plurals name="delete_contacts">
|
||||
<item quantity="one">%d contact</item>
|
||||
<item quantity="other">%d contacts</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="delete_groups">
|
||||
<item quantity="one">%d group</item>
|
||||
<item quantity="other">%d groups</item>
|
||||
</plurals>
|
||||
|
||||
<!-- FAQ -->
|
||||
<string name="faq_1_title">Chcę zmienić, które pola są widoczne w kontaktach. Czy mogę to zrobić?</string>
|
||||
<string name="faq_1_text">Tak, wszystko, co musisz zrobić, to wejść do Ustawień -> Zarządzaj pokazywanymi polami kontaktu. Możesz tam wybrać, które pola mają być wyświetlane. Niektóre z nich są nawet domyślnie wyłączone, więc możesz znaleźć tam wiele z nich nowych.</string>
|
||||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
|
||||
<string name="app_title">Simple Contacts Pro - Manage your contacts easily</string>
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Aplikacja do zarządzania Twoimi kontaktami, bez reklam, szanująca prywatność.</string>
|
||||
<string name="app_long_description">
|
||||
Prosta aplikacja do tworzenia lub zarządzania Twoimi kontaktami przechowywanymi w różnych miejscach. Kontakty mogą być przechowywane tylko na Twoim urządzeniu, ale również synchronizowane przez konto Google lub inne konta. Możesz wyświetlać Twoje ulubione kontakty na oddzielnej liście.
|
||||
|
||||
Możesz użyć jej także do zarządzania e-mailami użytkowników i wydarzeniami. Jest zdolna do sortowania/filtrowania według wielu parametrów, opcjonalnie do wyświetlania nazwiska jako imienia.
|
||||
|
||||
Nie zawiera reklam oraz niekoniecznych uprawnień. Jest w pełni otwartoźródłowa i w pełni podatna na kolorowanie.
|
||||
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
Haven't found some strings? There's more at
|
||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||
-->
|
||||
</resources>
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Não contém anúncios e permissões desnecessárias. É totalmente open source e permite a personalização das cores.
|
||||
|
||||
Este aplicativo é apenas uma parte de um enorme conjunto de aplicativos. Você poderá encontrar todos os outros em https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -122,9 +122,9 @@
|
|||
<string name="answer_call">Atender</string>
|
||||
|
||||
<!-- Speed dial -->
|
||||
<string name="speed_dial">Speed dial</string>
|
||||
<string name="manage_speed_dial">Manage speed dial</string>
|
||||
<string name="speed_dial_label">Click on a number to assign a contact to it. You can then quickly call the given contact by long pressing the given number at the dialer.</string>
|
||||
<string name="speed_dial">Ligação rápida</string>
|
||||
<string name="manage_speed_dial">Gerir ligações rápidas</string>
|
||||
<string name="speed_dial_label">Clique no número para atribuir um contacto a uma ligação rápida. Posteriormente, poderá ligar diretamente ao contacto através da tecla de ligação rápida.</string>
|
||||
|
||||
<!-- Visible fields -->
|
||||
<string name="select_fields_to_show">Selecione os campos a mostrar</string>
|
||||
|
@ -180,7 +180,17 @@
|
|||
|
||||
Não contém anúncios ou permissões desnecessárias. É totalmente open source e permite personalização de cores.
|
||||
|
||||
Esta aplicação é apenas parte de um conjunto mais vasto de aplicações. Saiba mais em https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -182,7 +182,17 @@
|
|||
|
||||
Не содержит рекламы или ненужных разрешений, полностью с открытым исходным кодом. Есть возможность настраивать цвета.
|
||||
|
||||
Это приложение — всего лишь частица из большой серии приложений. Вы можете найти остальные на https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -182,7 +182,17 @@
|
|||
|
||||
Neobsahuje žiadne reklamy a nepotrebné oprávnenia. Je opensource, poskytuje možnosť zmeny farieb.
|
||||
|
||||
Táto aplikácia je iba jednou zo skupiny aplikácií. Ostatné viete nájsť na https://www.simplemobiletools.com
|
||||
<b>Pozrite si celú sadu aplikácií na:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Vlastná stránka Jednoduchých Kontaktov Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Innehåller ingen reklam eller onödiga behörigheter. Den har helt öppen källkod och anpassningsbara färger.
|
||||
|
||||
Denna app är bara en del av en större serie appar. Du hittar resten av dem på https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
|
||||
<!-- Dialer -->
|
||||
<string name="dialer">Çevirici</string>
|
||||
<string name="calling">Çağırı yapılıyor</string>
|
||||
<string name="calling">Çağrı yapılıyor</string>
|
||||
<string name="incoming_call">Gelen çağrı</string>
|
||||
<string name="incoming_call_from">Gelen çağrı şundan…</string>
|
||||
<string name="ongoing_call">Devam eden çağrı</string>
|
||||
|
@ -122,9 +122,9 @@
|
|||
<string name="answer_call">Cevapla</string>
|
||||
|
||||
<!-- Speed dial -->
|
||||
<string name="speed_dial">Speed dial</string>
|
||||
<string name="manage_speed_dial">Manage speed dial</string>
|
||||
<string name="speed_dial_label">Click on a number to assign a contact to it. You can then quickly call the given contact by long pressing the given number at the dialer.</string>
|
||||
<string name="speed_dial">Hızlı arama</string>
|
||||
<string name="manage_speed_dial">Hızlı aramayı yönet</string>
|
||||
<string name="speed_dial_label">Bir kişiyi bir numaraya atamak için numaraya tıklayın. Daha sonra atanan kişiyi çeviricide atanan numaraya uzun basarak hızlıca arayabilirsiniz.</string>
|
||||
|
||||
<!-- Visible fields -->
|
||||
<string name="select_fields_to_show">Görüntülenecek alanları seç</string>
|
||||
|
@ -170,9 +170,9 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
|
||||
<string name="app_title">Simple Contacts Pro - Manage your contacts easily</string>
|
||||
<string name="app_title">Basit Kişiler Pro - Kişilerinizi kolayca yönetin</string>
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">An app for managing your contacts without ads, respecting your privacy.</string>
|
||||
<string name="app_short_description">Reklamsız, gizliliğinize saygı duyan, kişilerinizi yönetmek için bir uygulama.</string>
|
||||
<string name="app_long_description">
|
||||
Kişilerinizi herhangi bir kaynaktan oluşturmak veya yönetmek için basit bir uygulama. Kişiler yalnızca cihazınızda saklanabilir, aynı zamanda Google veya diğer hesaplarla senkronize edilebilir. Favori kişilerinizi ayrı bir listede görüntüleyebilirsiniz.
|
||||
|
||||
|
@ -180,7 +180,17 @@
|
|||
|
||||
Reklam veya gereksiz izinler içermez. Tamamen açık kaynaktır, özelleştirilebilir renkler sağlar.
|
||||
|
||||
Bu uygulama, daha büyük bir uygulama serisinden sadece bir parça. Geri kalanı https://www.simplemobiletools.com adresinde bulabilirsiniz
|
||||
<b>Basit Araçlar paketinin tamamını buradan inceleyin:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Basit Kişiler Pro'nun bağımsız web sitesi:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Цей додаток не буде показувати рекламу, потрібні лише найнеобхідніші дозволи. Додаток має повністю відкритий програмний код, кольори оформлення можна легко налаштувати.
|
||||
|
||||
Просто Контакти - це один із ряду додатків від Simple Mobile Tools. Інші додатки можна знайти тут: https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
不包含广告及非必要的权限,而且完全开放源代码,并提供自定义颜色。
|
||||
|
||||
这程序只是一系列众多应用程序的其中一项,你可以在这发现更多 https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -122,9 +122,9 @@
|
|||
<string name="answer_call">回撥</string>
|
||||
|
||||
<!-- Speed dial -->
|
||||
<string name="speed_dial">Speed dial</string>
|
||||
<string name="manage_speed_dial">Manage speed dial</string>
|
||||
<string name="speed_dial_label">Click on a number to assign a contact to it. You can then quickly call the given contact by long pressing the given number at the dialer.</string>
|
||||
<string name="speed_dial">快速撥號</string>
|
||||
<string name="manage_speed_dial">管理快速撥號</string>
|
||||
<string name="speed_dial_label">點擊一個數字以分配一個聯絡人給它。然後你可以在撥號器上,長按指定的數字來快速撥號給指定的聯絡人。</string>
|
||||
|
||||
<!-- Visible fields -->
|
||||
<string name="select_fields_to_show">選擇要顯示的欄位</string>
|
||||
|
@ -180,7 +180,17 @@
|
|||
|
||||
不包含廣告及非必要的權限,而且完全開放原始碼,並提供自訂顏色。
|
||||
|
||||
這程式只是一系列眾多應用程式的其中一項,你可以在這發現更多 https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
<string name="telegram">Telegram</string>
|
||||
|
||||
<!-- Release notes -->
|
||||
<string name="release_56">Added an initial implementation of Speed Dial, contacts can be set in the app settings</string>
|
||||
<string name="release_47">Removed the setting for merging duplicate contacts, merge them always</string>
|
||||
<string name="release_40">
|
||||
Removed the Recents tab due to Googles\' latest security policies being stricter than initiall thought\n
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
<resources>
|
||||
<integer name="default_sorting">128</integer>
|
||||
<integer name="default_font_size">2</integer>
|
||||
</resources>
|
||||
|
|
|
@ -180,7 +180,17 @@
|
|||
|
||||
Contains no ads or unnecessary permissions. It is fully opensource, provides customizable colors.
|
||||
|
||||
This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
|
||||
<b>Check out the full suite of Simple Tools here:</b>
|
||||
https://www.simplemobiletools.com
|
||||
|
||||
<b>Standalone website of Simple Contacts Pro:</b>
|
||||
https://www.simplemobiletools.com/contacts
|
||||
|
||||
<b>Facebook:</b>
|
||||
https://www.facebook.com/simplemobiletools
|
||||
|
||||
<b>Reddit:</b>
|
||||
https://www.reddit.com/r/SimpleMobileTools
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
7
fastlane/metadata/android/cs/full_description.txt
Normal file
7
fastlane/metadata/android/cs/full_description.txt
Normal file
|
@ -0,0 +1,7 @@
|
|||
Jednoduchá aplikace na vytváření nebo správu vašich kontaktů z různých zdrojů. Mohou být uloženy buď jen ve vašem zařízení, nebo je můžete i synchronizovat přes Google či jiný účet. Své oblíbené položky si můžete zobrazit ve vlastním seznamu.
|
||||
|
||||
Můžete ji používat i na správu e-mailů a událostí kontaktů. Nabízí možnost řazení/filtrování pomocí různých parametrů, volitelné je zobrazování příjmení před jménem.
|
||||
|
||||
Neobsahuje žádné reklamy, ani nepotřebná oprávnění. Má plně otevřený zdrojový kód a možnost změny barev.
|
||||
|
||||
Tato aplikace je jen jednou z většího celku aplikací. Ostatní z nich naleznete na https://www.simplemobiletools.com
|
1
fastlane/metadata/android/cs/short_description.txt
Normal file
1
fastlane/metadata/android/cs/short_description.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Aplikace pro správu vašich kontaktů bez reklam, respektující vaše soukromí.
|
1
fastlane/metadata/android/cs/title.txt
Normal file
1
fastlane/metadata/android/cs/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Jednoduché kontakty Pro - Rychlá správa kontaktů
|
3
fastlane/metadata/android/en-US/changelogs/56.txt
Normal file
3
fastlane/metadata/android/en-US/changelogs/56.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
* Added an initial Speed dial implementation, can be customized in the app settings
|
||||
* Properly color the status bar icons at light themes
|
||||
* Many different stability, translation and UX improvements
|
3
fastlane/metadata/android/en-US/changelogs/57.txt
Normal file
3
fastlane/metadata/android/en-US/changelogs/57.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
* Improved the side scrollbar by adding letters to it on some places
|
||||
* Allow changing the font size in the app settings
|
||||
* Trigger speed dial only if no number has been written yet
|
Binary file not shown.
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 123 KiB |
Binary file not shown.
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 109 KiB |
Binary file not shown.
|
@ -1 +1 @@
|
|||
Simple Contacts
|
||||
Simple Contacts Pro - легко управляйте контактами
|
||||
|
|
|
@ -1 +1 @@
|
|||
An app for managing your contacts without ads, respecting your privacy.
|
||||
Reklamsız, gizliliğinize saygı duyan, kişilerinizi yönetmek için bir uygulama.
|
||||
|
|
|
@ -1 +1 @@
|
|||
Basit Kişiler
|
||||
Basit Kişiler Pro - Kişilerinizi kolayca yönetin
|
||||
|
|
Loading…
Reference in a new issue