Merge branch 'SimpleMobileTools:master' into master

This commit is contained in:
AmirMohammad Yazdanmanesh
2023-04-22 18:36:29 +03:30
committed by GitHub
137 changed files with 1528 additions and 1012 deletions

View File

@@ -1,6 +1,63 @@
Changelog Changelog
========== ==========
Version 5.17.8 *(2023-04-19)*
----------------------------
* Avoid showing contacts without a phone number
* Fixed multiple contact handling related glitches
* Added some stability, translation and UX improvements
Version 5.17.7 *(2023-04-12)*
----------------------------
* Added some stability, translation and UX improvements
Version 5.17.6 *(2023-04-07)*
----------------------------
* Fixed number presses during call
* Added some stability, translation and UX improvements
Version 5.17.5 *(2023-03-29)*
----------------------------
* Allow filtering contacts
* Fix displaying contacts, if name starts with surname
* Fixed some right-to-left layout glitches
* Added some stability, translation and UX improvements
Version 5.17.4 *(2023-03-21)*
----------------------------
* Allow filtering contacts
* Fix displaying contacts, if name starts with surname
* Fixed some right-to-left layout glitches
* Added some stability, translation and UX improvements
Version 5.17.3 *(2023-01-12)*
----------------------------
* Fixed a search glitch on some devices
Version 5.17.2 *(2023-01-10)*
----------------------------
* Fixed a glitch with dialpad button not being visible on some devices
Version 5.17.1 *(2023-01-04)*
----------------------------
* Added the new search bar at the top menu
Version 5.17.0 *(2022-12-30)*
----------------------------
* Do not allow calling blocked numbers
* Allow hiding numbers on the dialpad
* Use Material You theme by default on Android 12+
* Added some UI, translation and stability improvements
Version 5.16.0 *(2022-11-12)* Version 5.16.0 *(2022-11-12)*
---------------------------- ----------------------------

8
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,8 @@
### Reporting
Before you report something, read the reporting rules [here](https://github.com/SimpleMobileTools/General-Discussion#how-do-i-suggest-an-improvement-ask-a-question-or-report-an-issue) please.
### Contributing as a developer
Some instructions about code style and everything that has to be done to increase the change of your code getting accepted can be found at the [General Discussion](https://github.com/SimpleMobileTools/General-Discussion#contribution-rules-for-developers) section.
### Contributing as a non developer
In case you just want to for example improve a translation, you can find the way of doing it [here](https://github.com/SimpleMobileTools/General-Discussion#how-can-i-suggest-an-edit-to-a-file).

View File

@@ -15,8 +15,8 @@ android {
applicationId "com.simplemobiletools.dialer" applicationId "com.simplemobiletools.dialer"
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 33 targetSdkVersion 33
versionCode 46 versionCode 55
versionName "5.16.0" versionName "5.17.8"
setProperty("archivesBaseName", "dialer") setProperty("archivesBaseName", "dialer")
} }
@@ -62,7 +62,7 @@ android {
} }
dependencies { dependencies {
implementation 'com.github.SimpleMobileTools:Simple-Commons:5b5a6b083f' implementation 'com.github.SimpleMobileTools:Simple-Commons:ee2e127758'
implementation 'com.github.tibbi:IndicatorFastScroll:4524cd0b61' implementation 'com.github.tibbi:IndicatorFastScroll:4524cd0b61'
implementation 'me.grantland:autofittextview:0.2.1' implementation 'me.grantland:autofittextview:0.2.1'
} }

View File

@@ -8,6 +8,7 @@
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.CALL_PRIVILEGED" />
<uses-permission android:name="android.permission.READ_CALL_LOG" /> <uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_CALL_LOG" /> <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
@@ -20,6 +21,7 @@
<uses-permission android:name="android.telecom.action.CONFIGURE_PHONE_ACCOUNT" /> <uses-permission android:name="android.telecom.action.CONFIGURE_PHONE_ACCOUNT" />
<uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission <uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:name="android.permission.WRITE_EXTERNAL_STORAGE"
@@ -62,36 +64,42 @@
<activity <activity
android:name="com.simplemobiletools.commons.activities.AboutActivity" android:name="com.simplemobiletools.commons.activities.AboutActivity"
android:configChanges="orientation"
android:exported="false" android:exported="false"
android:label="@string/about" android:label="@string/about"
android:parentActivityName=".activities.MainActivity" /> android:parentActivityName=".activities.MainActivity" />
<activity <activity
android:name="com.simplemobiletools.commons.activities.CustomizationActivity" android:name="com.simplemobiletools.commons.activities.CustomizationActivity"
android:configChanges="orientation"
android:exported="false" android:exported="false"
android:label="@string/customize_colors" android:label="@string/customize_colors"
android:parentActivityName=".activities.SettingsActivity" /> android:parentActivityName=".activities.SettingsActivity" />
<activity <activity
android:name="com.simplemobiletools.commons.activities.ManageBlockedNumbersActivity" android:name="com.simplemobiletools.commons.activities.ManageBlockedNumbersActivity"
android:configChanges="orientation"
android:exported="false" android:exported="false"
android:label="@string/blocked_numbers" android:label="@string/blocked_numbers"
android:parentActivityName=".activities.SettingsActivity" /> android:parentActivityName=".activities.SettingsActivity" />
<activity <activity
android:name=".activities.ManageSpeedDialActivity" android:name=".activities.ManageSpeedDialActivity"
android:configChanges="orientation"
android:exported="false" android:exported="false"
android:label="@string/speed_dial" android:label="@string/speed_dial"
android:parentActivityName=".activities.SettingsActivity" /> android:parentActivityName=".activities.SettingsActivity" />
<activity <activity
android:name=".activities.ConferenceActivity" android:name=".activities.ConferenceActivity"
android:configChanges="orientation"
android:exported="false" android:exported="false"
android:label="@string/conference" android:label="@string/conference"
android:parentActivityName=".activities.CallActivity" /> android:parentActivityName=".activities.CallActivity" />
<activity <activity
android:name=".activities.SettingsActivity" android:name=".activities.SettingsActivity"
android:configChanges="orientation"
android:exported="true" android:exported="true"
android:label="@string/settings" android:label="@string/settings"
android:parentActivityName=".activities.MainActivity"> android:parentActivityName=".activities.MainActivity">
@@ -116,6 +124,7 @@
android:exported="true" android:exported="true"
android:label="@string/dialpad" android:label="@string/dialpad"
android:parentActivityName=".activities.MainActivity" android:parentActivityName=".activities.MainActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden"> android:windowSoftInputMode="stateHidden">
<intent-filter> <intent-filter>
@@ -144,6 +153,7 @@
<activity <activity
android:name=".activities.DialerActivity" android:name=".activities.DialerActivity"
android:configChanges="orientation"
android:exported="true" android:exported="true"
android:label="@string/dialer" android:label="@string/dialer"
android:theme="@style/Theme.Transparent"> android:theme="@style/Theme.Transparent">

View File

@@ -20,12 +20,10 @@ import android.view.WindowManager
import android.view.animation.AccelerateDecelerateInterpolator import android.view.animation.AccelerateDecelerateInterpolator
import android.view.animation.OvershootInterpolator import android.view.animation.OvershootInterpolator
import android.widget.ImageView import android.widget.ImageView
import androidx.core.content.res.ResourcesCompat
import androidx.core.view.children import androidx.core.view.children
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.LOWER_ALPHA import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.helpers.MINUTE_SECONDS
import com.simplemobiletools.commons.helpers.isOreoMr1Plus
import com.simplemobiletools.commons.helpers.isOreoPlus
import com.simplemobiletools.commons.models.SimpleListItem import com.simplemobiletools.commons.models.SimpleListItem
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.dialogs.DynamicBottomSheetChooserDialog import com.simplemobiletools.dialer.dialogs.DynamicBottomSheetChooserDialog
@@ -88,7 +86,7 @@ class CallActivity : SimpleActivity() {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
updateState() updateState()
updateNavigationBarColor(getBottomNavigationBackgroundColor()) updateNavigationBarColor(getProperBackgroundColor())
} }
override fun onDestroy() { override fun onDestroy() {
@@ -187,6 +185,25 @@ class CallActivity : SimpleActivity() {
dialpad_8_holder.setOnClickListener { dialpadPressed('8') } dialpad_8_holder.setOnClickListener { dialpadPressed('8') }
dialpad_9_holder.setOnClickListener { dialpadPressed('9') } dialpad_9_holder.setOnClickListener { dialpadPressed('9') }
arrayOf(
dialpad_0_holder,
dialpad_1_holder,
dialpad_2_holder,
dialpad_3_holder,
dialpad_4_holder,
dialpad_5_holder,
dialpad_6_holder,
dialpad_7_holder,
dialpad_8_holder,
dialpad_9_holder,
dialpad_plus_holder,
dialpad_asterisk_holder,
dialpad_hashtag_holder
).forEach {
it.background = ResourcesCompat.getDrawable(resources, R.drawable.pill_background, theme)
it.background?.alpha = LOWER_ALPHA_INT
}
dialpad_0_holder.setOnLongClickListener { dialpadPressed('+'); true } dialpad_0_holder.setOnLongClickListener { dialpadPressed('+'); true }
dialpad_asterisk_holder.setOnClickListener { dialpadPressed('*') } dialpad_asterisk_holder.setOnClickListener { dialpadPressed('*') }
dialpad_hashtag_holder.setOnClickListener { dialpadPressed('#') } dialpad_hashtag_holder.setOnClickListener { dialpadPressed('#') }
@@ -383,7 +400,7 @@ class CallActivity : SimpleActivity() {
} }
private fun dialpadPressed(char: Char) { private fun dialpadPressed(char: Char) {
CallManager.keypad(this, char) CallManager.keypad(char)
dialpad_input.addCharacter(char) dialpad_input.addCharacter(char)
} }

View File

@@ -10,10 +10,12 @@ import kotlinx.android.synthetic.main.activity_conference.*
class ConferenceActivity : SimpleActivity() { class ConferenceActivity : SimpleActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_conference) setContentView(R.layout.activity_conference)
updateMaterialActivityViews(conference_coordinator, conference_list, useTransparentNavigation = true, useTopSearchMenu = false)
conference_calls_list.adapter = ConferenceCallsAdapter(this, conference_calls_list, ArrayList(CallManager.getConferenceCalls())) {} setupMaterialScrollListener(conference_list, conference_toolbar)
conference_list.adapter = ConferenceCallsAdapter(this, conference_list, ArrayList(CallManager.getConferenceCalls())) {}
} }
override fun onResume() { override fun onResume() {

View File

@@ -36,6 +36,12 @@ class DialerActivity : SimpleActivity() {
@SuppressLint("MissingPermission") @SuppressLint("MissingPermission")
private fun initOutgoingCall() { private fun initOutgoingCall() {
try { try {
if (isNumberBlocked(callNumber.toString().replace("tel:", ""), getBlockedNumbers())) {
toast(R.string.calling_blocked_number)
finish()
return
}
getHandleToUse(intent, callNumber.toString()) { handle -> getHandleToUse(intent, callNumber.toString()) { handle ->
if (handle != null) { if (handle != null) {
Bundle().apply { Bundle().apply {

View File

@@ -17,10 +17,13 @@ import android.view.KeyEvent
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
import android.view.ViewConfiguration import android.view.ViewConfiguration
import androidx.core.content.res.ResourcesCompat
import androidx.core.view.isVisible
import com.reddit.indicatorfastscroll.FastScrollItemIndicator import com.reddit.indicatorfastscroll.FastScrollItemIndicator
import com.simplemobiletools.commons.dialogs.CallConfirmationDialog
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.commons.models.contacts.Contact
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.adapters.ContactsAdapter import com.simplemobiletools.dialer.adapters.ContactsAdapter
import com.simplemobiletools.dialer.extensions.* import com.simplemobiletools.dialer.extensions.*
@@ -34,7 +37,7 @@ import java.util.*
import kotlin.math.roundToInt import kotlin.math.roundToInt
class DialpadActivity : SimpleActivity() { class DialpadActivity : SimpleActivity() {
private var allContacts = ArrayList<SimpleContact>() private var allContacts = ArrayList<Contact>()
private var speedDialValues = ArrayList<SpeedDial>() private var speedDialValues = ArrayList<SpeedDial>()
private val russianCharsMap = HashMap<Char, Int>() private val russianCharsMap = HashMap<Char, Int>()
private var hasRussianLocale = false private var hasRussianLocale = false
@@ -49,10 +52,47 @@ class DialpadActivity : SimpleActivity() {
setContentView(R.layout.activity_dialpad) setContentView(R.layout.activity_dialpad)
hasRussianLocale = Locale.getDefault().language == "ru" hasRussianLocale = Locale.getDefault().language == "ru"
updateMaterialActivityViews(dialpad_coordinator, dialpad_holder, useTransparentNavigation = true, useTopSearchMenu = false)
setupMaterialScrollListener(dialpad_list, dialpad_toolbar)
updateNavigationBarColor(getProperBackgroundColor())
if (checkAppSideloading()) { if (checkAppSideloading()) {
return return
} }
if (config.hideDialpadNumbers) {
dialpad_1_holder.isVisible = false
dialpad_2_holder.isVisible = false
dialpad_3_holder.isVisible = false
dialpad_4_holder.isVisible = false
dialpad_5_holder.isVisible = false
dialpad_6_holder.isVisible = false
dialpad_7_holder.isVisible = false
dialpad_8_holder.isVisible = false
dialpad_9_holder.isVisible = false
dialpad_plus_holder.isVisible = true
dialpad_0_holder.visibility = View.INVISIBLE
}
arrayOf(
dialpad_0_holder,
dialpad_1_holder,
dialpad_2_holder,
dialpad_3_holder,
dialpad_4_holder,
dialpad_5_holder,
dialpad_6_holder,
dialpad_7_holder,
dialpad_8_holder,
dialpad_9_holder,
dialpad_plus_holder,
dialpad_asterisk_holder,
dialpad_hashtag_holder
).forEach {
it.background = ResourcesCompat.getDrawable(resources, R.drawable.pill_background, theme)
it.background?.alpha = LOWER_ALPHA_INT
}
setupOptionsMenu() setupOptionsMenu()
speedDialValues = config.getSpeedDialValues() speedDialValues = config.getSpeedDialValues()
privateCursor = getMyContactsCursor(favoritesOnly = false, withPhoneNumbersOnly = true) privateCursor = getMyContactsCursor(favoritesOnly = false, withPhoneNumbersOnly = true)
@@ -89,6 +129,7 @@ class DialpadActivity : SimpleActivity() {
setupCharClick(dialpad_8_holder, '8') setupCharClick(dialpad_8_holder, '8')
setupCharClick(dialpad_9_holder, '9') setupCharClick(dialpad_9_holder, '9')
setupCharClick(dialpad_0_holder, '0') setupCharClick(dialpad_0_holder, '0')
setupCharClick(dialpad_plus_holder, '+', longClickable = false)
setupCharClick(dialpad_asterisk_holder, '*', longClickable = false) setupCharClick(dialpad_asterisk_holder, '*', longClickable = false)
setupCharClick(dialpad_hashtag_holder, '#', longClickable = false) setupCharClick(dialpad_hashtag_holder, '#', longClickable = false)
@@ -97,10 +138,13 @@ class DialpadActivity : SimpleActivity() {
dialpad_call_button.setOnClickListener { initCall(dialpad_input.value, 0) } dialpad_call_button.setOnClickListener { initCall(dialpad_input.value, 0) }
dialpad_input.onTextChangeListener { dialpadValueChanged(it) } dialpad_input.onTextChangeListener { dialpadValueChanged(it) }
dialpad_input.requestFocus() dialpad_input.requestFocus()
SimpleContactsHelper(this).getAvailableContacts(false) { gotContacts(it) }
dialpad_input.disableKeyboard() dialpad_input.disableKeyboard()
ContactsHelper(this).getContacts(showOnlyContactsWithNumbers = true) { allContacts ->
gotContacts(allContacts)
}
val properPrimaryColor = getProperPrimaryColor() val properPrimaryColor = getProperPrimaryColor()
val callIconId = if (areMultipleSIMsAvailable()) { val callIconId = if (areMultipleSIMsAvailable()) {
val callIcon = resources.getColoredDrawableWithColor(R.drawable.ic_phone_two_vector, properPrimaryColor.getContrastColor()) val callIcon = resources.getColoredDrawableWithColor(R.drawable.ic_phone_two_vector, properPrimaryColor.getContrastColor())
@@ -131,7 +175,7 @@ class DialpadActivity : SimpleActivity() {
super.onResume() super.onResume()
updateTextColors(dialpad_holder) updateTextColors(dialpad_holder)
dialpad_clear_char.applyColorFilter(getProperTextColor()) dialpad_clear_char.applyColorFilter(getProperTextColor())
updateNavigationBarColor(getBottomNavigationBackgroundColor()) updateNavigationBarColor(getProperBackgroundColor())
setupToolbar(dialpad_toolbar, NavigationIcon.Arrow) setupToolbar(dialpad_toolbar, NavigationIcon.Arrow)
} }
@@ -179,10 +223,10 @@ class DialpadActivity : SimpleActivity() {
dialpad_input.setText("") dialpad_input.setText("")
} }
private fun gotContacts(newContacts: ArrayList<SimpleContact>) { private fun gotContacts(newContacts: ArrayList<Contact>) {
allContacts = newContacts allContacts = newContacts
val privateContacts = MyContactsContentProvider.getSimpleContacts(this, privateCursor) val privateContacts = MyContactsContentProvider.getContacts(this, privateCursor)
if (privateContacts.isNotEmpty()) { if (privateContacts.isNotEmpty()) {
allContacts.addAll(privateContacts) allContacts.addAll(privateContacts)
allContacts.sort() allContacts.sort()
@@ -230,11 +274,11 @@ class DialpadActivity : SimpleActivity() {
it.doesContainPhoneNumber(text) || (convertedName.contains(text, true)) it.doesContainPhoneNumber(text) || (convertedName.contains(text, true))
}.sortedWith(compareBy { }.sortedWith(compareBy {
!it.doesContainPhoneNumber(text) !it.doesContainPhoneNumber(text)
}).toMutableList() as ArrayList<SimpleContact> }).toMutableList() as ArrayList<Contact>
letter_fastscroller.setupWithRecyclerView(dialpad_list, { position -> letter_fastscroller.setupWithRecyclerView(dialpad_list, { position ->
try { try {
val name = filtered[position].name val name = filtered[position].getNameToDisplay()
val character = if (name.isNotEmpty()) name.substring(0, 1) else "" val character = if (name.isNotEmpty()) name.substring(0, 1) else ""
FastScrollItemIndicator.Text(character.toUpperCase(Locale.getDefault())) FastScrollItemIndicator.Text(character.toUpperCase(Locale.getDefault()))
} catch (e: Exception) { } catch (e: Exception) {
@@ -243,7 +287,14 @@ class DialpadActivity : SimpleActivity() {
}) })
ContactsAdapter(this, filtered, dialpad_list, null, text) { ContactsAdapter(this, filtered, dialpad_list, null, text) {
startCallIntent((it as SimpleContact).phoneNumbers.first().normalizedNumber) val contact = it as Contact
if (config.showCallConfirmation) {
CallConfirmationDialog(this@DialpadActivity, contact.getNameToDisplay()) {
startCallIntent(contact.getPrimaryNumber() ?: return@CallConfirmationDialog)
}
} else {
startCallIntent(contact.getPrimaryNumber() ?: return@ContactsAdapter)
}
}.apply { }.apply {
dialpad_list.adapter = this dialpad_list.adapter = this
} }
@@ -262,10 +313,22 @@ class DialpadActivity : SimpleActivity() {
private fun initCall(number: String = dialpad_input.value, handleIndex: Int) { private fun initCall(number: String = dialpad_input.value, handleIndex: Int) {
if (number.isNotEmpty()) { if (number.isNotEmpty()) {
if (handleIndex != -1 && areMultipleSIMsAvailable()) { if (handleIndex != -1 && areMultipleSIMsAvailable()) {
if (config.showCallConfirmation) {
CallConfirmationDialog(this, number) {
callContactWithSim(number, handleIndex == 0) callContactWithSim(number, handleIndex == 0)
}
}else{
callContactWithSim(number, handleIndex == 0)
}
} else { } else {
if (config.showCallConfirmation) {
CallConfirmationDialog(this, number) {
startCallIntent(number) startCallIntent(number)
} }
}else{
startCallIntent(number)
}
}
} }
} }

View File

@@ -2,8 +2,6 @@ package com.simplemobiletools.dialer.activities
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.app.SearchManager
import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.ShortcutInfo import android.content.pm.ShortcutInfo
import android.content.res.Configuration import android.content.res.Configuration
@@ -13,24 +11,21 @@ import android.graphics.drawable.LayerDrawable
import android.os.Bundle import android.os.Bundle
import android.os.Handler import android.os.Handler
import android.provider.Settings import android.provider.Settings
import android.view.Menu
import android.view.MenuItem
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.widget.SearchView
import androidx.core.view.MenuItemCompat
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar
import com.simplemobiletools.commons.dialogs.ConfirmationDialog import com.simplemobiletools.commons.dialogs.ConfirmationDialog
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.models.FAQItem import com.simplemobiletools.commons.models.FAQItem
import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.commons.models.contacts.Contact
import com.simplemobiletools.dialer.BuildConfig import com.simplemobiletools.dialer.BuildConfig
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.adapters.ViewPagerAdapter import com.simplemobiletools.dialer.adapters.ViewPagerAdapter
import com.simplemobiletools.dialer.dialogs.ChangeSortingDialog import com.simplemobiletools.dialer.dialogs.ChangeSortingDialog
import com.simplemobiletools.dialer.dialogs.FilterContactSourcesDialog
import com.simplemobiletools.dialer.extensions.config import com.simplemobiletools.dialer.extensions.config
import com.simplemobiletools.dialer.extensions.launchCreateNewContactIntent import com.simplemobiletools.dialer.extensions.launchCreateNewContactIntent
import com.simplemobiletools.dialer.fragments.FavoritesFragment import com.simplemobiletools.dialer.fragments.FavoritesFragment
@@ -45,19 +40,19 @@ import kotlinx.android.synthetic.main.fragment_recents.*
import me.grantland.widget.AutofitHelper import me.grantland.widget.AutofitHelper
class MainActivity : SimpleActivity() { class MainActivity : SimpleActivity() {
private var isSearchOpen = false
private var launchedDialer = false private var launchedDialer = false
private var mSearchMenuItem: MenuItem? = null
private var storedShowTabs = 0 private var storedShowTabs = 0
private var searchQuery = "" private var storedStartNameWithSurname = false
var cachedContacts = ArrayList<SimpleContact>() var cachedContacts = ArrayList<Contact>()
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) setContentView(R.layout.activity_main)
appLaunched(BuildConfig.APPLICATION_ID) appLaunched(BuildConfig.APPLICATION_ID)
setupOptionsMenu() setupOptionsMenu()
refreshMenuItems() refreshMenuItems()
updateMaterialActivityViews(main_coordinator, main_holder, useTransparentNavigation = false, useTopSearchMenu = true)
launchedDialer = savedInstanceState?.getBoolean(OPEN_DIAL_PAD_AT_LAUNCH) ?: false launchedDialer = savedInstanceState?.getBoolean(OPEN_DIAL_PAD_AT_LAUNCH) ?: false
@@ -90,28 +85,37 @@ class MainActivity : SimpleActivity() {
} }
setupTabs() setupTabs()
SimpleContact.sorting = config.sorting Contact.sorting = config.sorting
} }
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
if (storedShowTabs != config.showTabs) {
config.lastUsedViewPagerPage = 0
System.exit(0)
return
}
updateMenuColors()
val properPrimaryColor = getProperPrimaryColor() val properPrimaryColor = getProperPrimaryColor()
val dialpadIcon = resources.getColoredDrawableWithColor(R.drawable.ic_dialpad_vector, properPrimaryColor.getContrastColor()) val dialpadIcon = resources.getColoredDrawableWithColor(R.drawable.ic_dialpad_vector, properPrimaryColor.getContrastColor())
main_dialpad_button.setImageDrawable(dialpadIcon) main_dialpad_button.setImageDrawable(dialpadIcon)
setupTabColors()
setupToolbar(main_toolbar, searchMenuItem = mSearchMenuItem)
updateTextColors(main_holder) updateTextColors(main_holder)
setupTabColors()
getAllFragments().forEach { getAllFragments().forEach {
it?.setupColors(getProperTextColor(), getProperPrimaryColor(), getProperPrimaryColor()) it?.setupColors(getProperTextColor(), getProperPrimaryColor(), getProperPrimaryColor())
} }
if (!isSearchOpen) { val configStartNameWithSurname = config.startNameWithSurname
if (storedShowTabs != config.showTabs) { if (storedStartNameWithSurname != configStartNameWithSurname) {
System.exit(0) contacts_fragment?.startNameWithSurnameChanged(configStartNameWithSurname)
return favorites_fragment?.startNameWithSurnameChanged(configStartNameWithSurname)
storedStartNameWithSurname = config.startNameWithSurname
} }
if (!main_menu.isSearchOpen) {
refreshItems(true) refreshItems(true)
} }
@@ -124,6 +128,7 @@ class MainActivity : SimpleActivity() {
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
storedShowTabs = config.showTabs storedShowTabs = config.showTabs
storedStartNameWithSurname = config.startNameWithSurname
config.lastUsedViewPagerPage = view_pager.currentItem config.lastUsedViewPagerPage = view_pager.currentItem
} }
@@ -149,8 +154,8 @@ class MainActivity : SimpleActivity() {
} }
override fun onBackPressed() { override fun onBackPressed() {
if (isSearchOpen && mSearchMenuItem != null) { if (main_menu.isSearchOpen) {
mSearchMenuItem!!.collapseActionView() main_menu.closeSearch()
} else { } else {
super.onBackPressed() super.onBackPressed()
} }
@@ -158,7 +163,7 @@ class MainActivity : SimpleActivity() {
private fun refreshMenuItems() { private fun refreshMenuItems() {
val currentFragment = getCurrentFragment() val currentFragment = getCurrentFragment()
main_toolbar.menu.apply { main_menu.getToolbar().menu.apply {
findItem(R.id.clear_call_history).isVisible = currentFragment == recents_fragment findItem(R.id.clear_call_history).isVisible = currentFragment == recents_fragment
findItem(R.id.sort).isVisible = currentFragment != recents_fragment findItem(R.id.sort).isVisible = currentFragment != recents_fragment
findItem(R.id.create_new_contact).isVisible = currentFragment == contacts_fragment findItem(R.id.create_new_contact).isVisible = currentFragment == contacts_fragment
@@ -167,12 +172,26 @@ class MainActivity : SimpleActivity() {
} }
private fun setupOptionsMenu() { private fun setupOptionsMenu() {
setupSearch(main_toolbar.menu) main_menu.getToolbar().inflateMenu(R.menu.menu)
main_toolbar.setOnMenuItemClickListener { menuItem -> main_menu.toggleHideOnScroll(false)
main_menu.setupMenu()
main_menu.onSearchClosedListener = {
getAllFragments().forEach {
it?.onSearchQueryChanged("")
}
}
main_menu.onSearchTextChangedListener = { text ->
getCurrentFragment()?.onSearchQueryChanged(text)
}
main_menu.getToolbar().setOnMenuItemClickListener { menuItem ->
when (menuItem.itemId) { when (menuItem.itemId) {
R.id.clear_call_history -> clearCallHistory() R.id.clear_call_history -> clearCallHistory()
R.id.create_new_contact -> launchCreateNewContactIntent() R.id.create_new_contact -> launchCreateNewContactIntent()
R.id.sort -> showSortingDialog(showCustomSorting = getCurrentFragment() is FavoritesFragment) R.id.sort -> showSortingDialog(showCustomSorting = getCurrentFragment() is FavoritesFragment)
R.id.filter -> showFilterDialog()
R.id.more_apps_from_us -> launchMoreAppsFromUsIntent() R.id.more_apps_from_us -> launchMoreAppsFromUsIntent()
R.id.settings -> launchSettings() R.id.settings -> launchSettings()
R.id.about -> launchAbout() R.id.about -> launchAbout()
@@ -182,53 +201,20 @@ class MainActivity : SimpleActivity() {
} }
} }
private fun updateMenuColors() {
updateStatusbarColor(getProperBackgroundColor())
main_menu.updateColors()
}
private fun checkContactPermissions() { private fun checkContactPermissions() {
handlePermission(PERMISSION_READ_CONTACTS) { handlePermission(PERMISSION_READ_CONTACTS) {
initFragments() initFragments()
} }
} }
private fun setupSearch(menu: Menu) {
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
mSearchMenuItem = menu.findItem(R.id.search)
(mSearchMenuItem!!.actionView as SearchView).apply {
setSearchableInfo(searchManager.getSearchableInfo(componentName))
isSubmitButtonEnabled = false
queryHint = getString(R.string.search)
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String) = false
override fun onQueryTextChange(newText: String): Boolean {
if (isSearchOpen) {
searchQuery = newText
getCurrentFragment()?.onSearchQueryChanged(newText)
}
return true
}
})
}
MenuItemCompat.setOnActionExpandListener(mSearchMenuItem, object : MenuItemCompat.OnActionExpandListener {
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
isSearchOpen = true
main_dialpad_button.beGone()
return true
}
override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
if (isSearchOpen) {
getCurrentFragment()?.onSearchClosed()
}
isSearchOpen = false
main_dialpad_button.beVisible()
return true
}
})
}
private fun clearCallHistory() { private fun clearCallHistory() {
ConfirmationDialog(this, "", R.string.clear_history_confirmation) { val confirmationText = "${getString(R.string.remove_confirmation)}\n\n${getString(R.string.cannot_be_undone)}"
ConfirmationDialog(this, confirmationText) {
RecentsHelper(this).removeAllRecentCalls(this) { RecentsHelper(this).removeAllRecentCalls(this) {
runOnUiThread { runOnUiThread {
recents_fragment?.refreshItems() recents_fragment?.refreshItems()
@@ -270,11 +256,11 @@ class MainActivity : SimpleActivity() {
private fun setupTabColors() { private fun setupTabColors() {
val activeView = main_tabs_holder.getTabAt(view_pager.currentItem)?.customView val activeView = main_tabs_holder.getTabAt(view_pager.currentItem)?.customView
updateBottomTabItemColors(activeView, true) updateBottomTabItemColors(activeView, true, getSelectedTabDrawableIds()[view_pager.currentItem])
getInactiveTabIndexes(view_pager.currentItem).forEach { index -> getInactiveTabIndexes(view_pager.currentItem).forEach { index ->
val inactiveView = main_tabs_holder.getTabAt(index)?.customView val inactiveView = main_tabs_holder.getTabAt(index)?.customView
updateBottomTabItemColors(inactiveView, false) updateBottomTabItemColors(inactiveView, false, getDeselectedTabDrawableIds()[index])
} }
val bottomBarColor = getBottomNavigationBackgroundColor() val bottomBarColor = getBottomNavigationBackgroundColor()
@@ -282,7 +268,45 @@ class MainActivity : SimpleActivity() {
updateNavigationBarColor(bottomBarColor) updateNavigationBarColor(bottomBarColor)
} }
private fun getInactiveTabIndexes(activeIndex: Int) = (0 until tabsList.size).filter { it != activeIndex } private fun getInactiveTabIndexes(activeIndex: Int) = (0 until main_tabs_holder.tabCount).filter { it != activeIndex }
private fun getSelectedTabDrawableIds(): ArrayList<Int> {
val showTabs = config.showTabs
val icons = ArrayList<Int>()
if (showTabs and TAB_CONTACTS != 0) {
icons.add(R.drawable.ic_person_vector)
}
if (showTabs and TAB_FAVORITES != 0) {
icons.add(R.drawable.ic_star_vector)
}
if (showTabs and TAB_CALL_HISTORY != 0) {
icons.add(R.drawable.ic_clock_filled_vector)
}
return icons
}
private fun getDeselectedTabDrawableIds(): ArrayList<Int> {
val showTabs = config.showTabs
val icons = ArrayList<Int>()
if (showTabs and TAB_CONTACTS != 0) {
icons.add(R.drawable.ic_person_outline_vector)
}
if (showTabs and TAB_FAVORITES != 0) {
icons.add(R.drawable.ic_star_outline_vector)
}
if (showTabs and TAB_CALL_HISTORY != 0) {
icons.add(R.drawable.ic_clock_vector)
}
return icons
}
private fun initFragments() { private fun initFragments() {
view_pager.offscreenPageLimit = 2 view_pager.offscreenPageLimit = 2
@@ -349,17 +373,18 @@ class MainActivity : SimpleActivity() {
main_tabs_holder.onTabSelectionChanged( main_tabs_holder.onTabSelectionChanged(
tabUnselectedAction = { tabUnselectedAction = {
updateBottomTabItemColors(it.customView, false) updateBottomTabItemColors(it.customView, false, getDeselectedTabDrawableIds()[it.position])
}, },
tabSelectedAction = { tabSelectedAction = {
closeSearch() main_menu.closeSearch()
view_pager.currentItem = it.position view_pager.currentItem = it.position
updateBottomTabItemColors(it.customView, true) updateBottomTabItemColors(it.customView, true, getSelectedTabDrawableIds()[it.position])
} }
) )
main_tabs_holder.beGoneIf(main_tabs_holder.tabCount == 1) main_tabs_holder.beGoneIf(main_tabs_holder.tabCount == 1)
storedShowTabs = config.showTabs storedShowTabs = config.showTabs
storedStartNameWithSurname = config.startNameWithSurname
} }
private fun getTabIcon(position: Int): Drawable { private fun getTabIcon(position: Int): Drawable {
@@ -404,7 +429,7 @@ class MainActivity : SimpleActivity() {
} }
} }
private fun refreshFragments() { fun refreshFragments() {
contacts_fragment?.refreshItems() contacts_fragment?.refreshItems()
favorites_fragment?.refreshItems() favorites_fragment?.refreshItems()
recents_fragment?.refreshItems() recents_fragment?.refreshItems()
@@ -471,13 +496,11 @@ class MainActivity : SimpleActivity() {
} }
private fun launchSettings() { private fun launchSettings() {
closeSearch()
hideKeyboard() hideKeyboard()
startActivity(Intent(applicationContext, SettingsActivity::class.java)) startActivity(Intent(applicationContext, SettingsActivity::class.java))
} }
private fun launchAbout() { private fun launchAbout() {
closeSearch()
val licenses = LICENSE_GLIDE or LICENSE_INDICATOR_FAST_SCROLL or LICENSE_AUTOFITTEXTVIEW val licenses = LICENSE_GLIDE or LICENSE_INDICATOR_FAST_SCROLL or LICENSE_AUTOFITTEXTVIEW
val faqItems = arrayListOf( val faqItems = arrayListOf(
@@ -496,29 +519,40 @@ class MainActivity : SimpleActivity() {
private fun showSortingDialog(showCustomSorting: Boolean) { private fun showSortingDialog(showCustomSorting: Boolean) {
ChangeSortingDialog(this, showCustomSorting) { ChangeSortingDialog(this, showCustomSorting) {
favorites_fragment?.refreshItems { favorites_fragment?.refreshItems {
if (isSearchOpen) { if (main_menu.isSearchOpen) {
getCurrentFragment()?.onSearchQueryChanged(searchQuery) getCurrentFragment()?.onSearchQueryChanged(main_menu.getCurrentQuery())
} }
} }
contacts_fragment?.refreshItems { contacts_fragment?.refreshItems {
if (isSearchOpen) { if (main_menu.isSearchOpen) {
getCurrentFragment()?.onSearchQueryChanged(searchQuery) getCurrentFragment()?.onSearchQueryChanged(main_menu.getCurrentQuery())
} }
} }
} }
} }
private fun showFilterDialog() {
FilterContactSourcesDialog(this) {
favorites_fragment?.refreshItems {
if (main_menu.isSearchOpen) {
getCurrentFragment()?.onSearchQueryChanged(main_menu.getCurrentQuery())
}
}
private fun closeSearch() { contacts_fragment?.refreshItems {
if (isSearchOpen) { if (main_menu.isSearchOpen) {
getAllFragments().forEach { getCurrentFragment()?.onSearchQueryChanged(main_menu.getCurrentQuery())
it?.onSearchQueryChanged("")
}
mSearchMenuItem?.collapseActionView()
} }
} }
fun cacheContacts(contacts: List<SimpleContact>) { recents_fragment?.refreshItems{
if (main_menu.isSearchOpen) {
getCurrentFragment()?.onSearchQueryChanged(main_menu.getCurrentQuery())
}
}
}
}
fun cacheContacts(contacts: List<Contact>) {
try { try {
cachedContacts.clear() cachedContacts.clear()
cachedContacts.addAll(contacts) cachedContacts.addAll(contacts)

View File

@@ -3,9 +3,9 @@ package com.simplemobiletools.dialer.activities
import android.os.Bundle import android.os.Bundle
import com.google.gson.Gson import com.google.gson.Gson
import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.extensions.updateTextColors
import com.simplemobiletools.commons.helpers.ContactsHelper
import com.simplemobiletools.commons.helpers.NavigationIcon import com.simplemobiletools.commons.helpers.NavigationIcon
import com.simplemobiletools.commons.helpers.SimpleContactsHelper import com.simplemobiletools.commons.models.contacts.Contact
import com.simplemobiletools.commons.models.SimpleContact
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.adapters.SpeedDialAdapter import com.simplemobiletools.dialer.adapters.SpeedDialAdapter
import com.simplemobiletools.dialer.dialogs.SelectContactDialog import com.simplemobiletools.dialer.dialogs.SelectContactDialog
@@ -15,16 +15,20 @@ import com.simplemobiletools.dialer.models.SpeedDial
import kotlinx.android.synthetic.main.activity_manage_speed_dial.* import kotlinx.android.synthetic.main.activity_manage_speed_dial.*
class ManageSpeedDialActivity : SimpleActivity(), RemoveSpeedDialListener { class ManageSpeedDialActivity : SimpleActivity(), RemoveSpeedDialListener {
private var allContacts = ArrayList<SimpleContact>() private var allContacts = ArrayList<Contact>()
private var speedDialValues = ArrayList<SpeedDial>() private var speedDialValues = ArrayList<SpeedDial>()
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_manage_speed_dial) setContentView(R.layout.activity_manage_speed_dial)
updateMaterialActivityViews(manage_speed_dial_coordinator, manage_speed_dial_holder, useTransparentNavigation = true, useTopSearchMenu = false)
setupMaterialScrollListener(manage_speed_dial_scrollview, manage_speed_dial_toolbar)
speedDialValues = config.getSpeedDialValues() speedDialValues = config.getSpeedDialValues()
updateAdapter() updateAdapter()
SimpleContactsHelper(this).getAvailableContacts(false) { contacts -> ContactsHelper(this).getContacts(showOnlyContactsWithNumbers = true) { contacts ->
allContacts = contacts allContacts = contacts
} }
@@ -50,7 +54,7 @@ class ManageSpeedDialActivity : SimpleActivity(), RemoveSpeedDialListener {
SelectContactDialog(this, allContacts) { selectedContact -> SelectContactDialog(this, allContacts) { selectedContact ->
speedDialValues.first { it.id == clickedContact.id }.apply { speedDialValues.first { it.id == clickedContact.id }.apply {
displayName = selectedContact.name displayName = selectedContact.getNameToDisplay()
number = selectedContact.phoneNumbers.first().normalizedNumber number = selectedContact.phoneNumbers.first().normalizedNumber
} }
updateAdapter() updateAdapter()

View File

@@ -20,9 +20,14 @@ import java.util.*
import kotlin.system.exitProcess import kotlin.system.exitProcess
class SettingsActivity : SimpleActivity() { class SettingsActivity : SimpleActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_settings) setContentView(R.layout.activity_settings)
updateMaterialActivityViews(settings_coordinator, settings_holder, useTransparentNavigation = true, useTopSearchMenu = false)
setupMaterialScrollListener(settings_nested_scrollview, settings_toolbar)
} }
override fun onResume() { override fun onResume() {
@@ -43,6 +48,7 @@ class SettingsActivity : SimpleActivity() {
setupGroupSubsequentCalls() setupGroupSubsequentCalls()
setupStartNameWithSurname() setupStartNameWithSurname()
setupDialpadVibrations() setupDialpadVibrations()
setupDialpadNumbers()
setupDialpadBeeps() setupDialpadBeeps()
setupShowCallConfirmation() setupShowCallConfirmation()
setupDisableProximitySensor() setupDisableProximitySensor()
@@ -51,22 +57,13 @@ class SettingsActivity : SimpleActivity() {
updateTextColors(settings_holder) updateTextColors(settings_holder)
arrayOf( arrayOf(
settings_color_customization_label, settings_color_customization_section_label,
settings_general_settings_label, settings_general_settings_label,
settings_startup_label, settings_startup_label,
settings_calls_label settings_calls_label
).forEach { ).forEach {
it.setTextColor(getProperPrimaryColor()) it.setTextColor(getProperPrimaryColor())
} }
arrayOf(
settings_color_customization_holder,
settings_general_settings_holder,
settings_startup_holder,
settings_calls_holder
).forEach {
it.background.applyColorFilter(getProperBackgroundColor().getContrastColor())
}
} }
override fun onCreateOptionsMenu(menu: Menu): Boolean { override fun onCreateOptionsMenu(menu: Menu): Boolean {
@@ -76,21 +73,14 @@ class SettingsActivity : SimpleActivity() {
private fun setupPurchaseThankYou() { private fun setupPurchaseThankYou() {
settings_purchase_thank_you_holder.beGoneIf(isOrWasThankYouInstalled()) settings_purchase_thank_you_holder.beGoneIf(isOrWasThankYouInstalled())
// make sure the corners at ripple fit the stroke rounded corners
if (settings_purchase_thank_you_holder.isGone()) {
settings_use_english_holder.background = resources.getDrawable(R.drawable.ripple_top_corners, theme)
settings_manage_blocked_numbers_holder.background = resources.getDrawable(R.drawable.ripple_top_corners, theme)
}
settings_purchase_thank_you_holder.setOnClickListener { settings_purchase_thank_you_holder.setOnClickListener {
launchPurchaseThankYouIntent() launchPurchaseThankYouIntent()
} }
} }
private fun setupCustomizeColors() { private fun setupCustomizeColors() {
settings_customize_colors_label.text = getCustomizeColorsString() settings_color_customization_label.text = getCustomizeColorsString()
settings_customize_colors_holder.setOnClickListener { settings_color_customization_holder.setOnClickListener {
handleCustomizeColorsClick() handleCustomizeColorsClick()
} }
} }
@@ -108,11 +98,6 @@ class SettingsActivity : SimpleActivity() {
private fun setupLanguage() { private fun setupLanguage() {
settings_language.text = Locale.getDefault().displayLanguage settings_language.text = Locale.getDefault().displayLanguage
settings_language_holder.beVisibleIf(isTiramisuPlus()) settings_language_holder.beVisibleIf(isTiramisuPlus())
if (settings_use_english_holder.isGone() && settings_language_holder.isGone() && settings_purchase_thank_you_holder.isGone()) {
settings_manage_blocked_numbers_holder.background = resources.getDrawable(R.drawable.ripple_top_corners, theme)
}
settings_language_holder.setOnClickListener { settings_language_holder.setOnClickListener {
launchChangeAppLanguageIntent() launchChangeAppLanguageIntent()
} }
@@ -123,11 +108,6 @@ class SettingsActivity : SimpleActivity() {
private fun setupManageBlockedNumbers() { private fun setupManageBlockedNumbers() {
settings_manage_blocked_numbers_label.text = addLockedLabelIfNeeded(R.string.manage_blocked_numbers) settings_manage_blocked_numbers_label.text = addLockedLabelIfNeeded(R.string.manage_blocked_numbers)
settings_manage_blocked_numbers_holder.beVisibleIf(isNougatPlus()) settings_manage_blocked_numbers_holder.beVisibleIf(isNougatPlus())
if (settings_use_english_holder.isGone() && settings_purchase_thank_you_holder.isGone() && settings_manage_blocked_numbers_holder.isGone()) {
settings_change_date_time_format_holder.background = resources.getDrawable(R.drawable.ripple_top_corners, theme)
}
settings_manage_blocked_numbers_holder.setOnClickListener { settings_manage_blocked_numbers_holder.setOnClickListener {
if (isOrWasThankYouInstalled()) { if (isOrWasThankYouInstalled()) {
Intent(this, ManageBlockedNumbersActivity::class.java).apply { Intent(this, ManageBlockedNumbersActivity::class.java).apply {
@@ -234,6 +214,14 @@ class SettingsActivity : SimpleActivity() {
} }
} }
private fun setupDialpadNumbers() {
settings_hide_dialpad_numbers.isChecked = config.hideDialpadNumbers
settings_hide_dialpad_numbers_holder.setOnClickListener {
settings_hide_dialpad_numbers.toggle()
config.hideDialpadNumbers = settings_hide_dialpad_numbers.isChecked
}
}
private fun setupDialpadBeeps() { private fun setupDialpadBeeps() {
settings_dialpad_beeps.isChecked = config.dialpadBeeps settings_dialpad_beeps.isChecked = config.dialpadBeeps
settings_dialpad_beeps_holder.setOnClickListener { settings_dialpad_beeps_holder.setOnClickListener {

View File

@@ -28,7 +28,7 @@ import com.simplemobiletools.commons.helpers.isOreoPlus
import com.simplemobiletools.commons.interfaces.ItemMoveCallback import com.simplemobiletools.commons.interfaces.ItemMoveCallback
import com.simplemobiletools.commons.interfaces.ItemTouchHelperContract import com.simplemobiletools.commons.interfaces.ItemTouchHelperContract
import com.simplemobiletools.commons.interfaces.StartReorderDragListener import com.simplemobiletools.commons.interfaces.StartReorderDragListener
import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.commons.models.contacts.Contact
import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.commons.views.MyRecyclerView
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
@@ -41,7 +41,7 @@ import java.util.*
class ContactsAdapter( class ContactsAdapter(
activity: SimpleActivity, activity: SimpleActivity,
var contacts: ArrayList<SimpleContact>, var contacts: ArrayList<Contact>,
recyclerView: MyRecyclerView, recyclerView: MyRecyclerView,
val refreshItemsListener: RefreshItemsListener? = null, val refreshItemsListener: RefreshItemsListener? = null,
highlightText: String = "", highlightText: String = "",
@@ -135,9 +135,9 @@ class ContactsAdapter(
override fun getItemCount() = contacts.size override fun getItemCount() = contacts.size
fun updateItems(newItems: ArrayList<SimpleContact>, highlightText: String = "") { fun updateItems(newItems: ArrayList<Contact>, highlightText: String = "") {
if (newItems.hashCode() != contacts.hashCode()) { if (newItems.hashCode() != contacts.hashCode()) {
contacts = newItems.clone() as ArrayList<SimpleContact> contacts = newItems.clone() as ArrayList<Contact>
textToHighlight = highlightText textToHighlight = highlightText
notifyDataSetChanged() notifyDataSetChanged()
finishActMode() finishActMode()
@@ -184,7 +184,7 @@ class ContactsAdapter(
val itemsCnt = selectedKeys.size val itemsCnt = selectedKeys.size
val firstItem = getSelectedItems().firstOrNull() ?: return val firstItem = getSelectedItems().firstOrNull() ?: return
val items = if (itemsCnt == 1) { val items = if (itemsCnt == 1) {
"\"${firstItem.name}\"" "\"${firstItem.getNameToDisplay()}\""
} else { } else {
resources.getQuantityString(R.plurals.delete_contacts, itemsCnt, itemsCnt) resources.getQuantityString(R.plurals.delete_contacts, itemsCnt, itemsCnt)
} }
@@ -221,12 +221,10 @@ class ContactsAdapter(
} }
} }
private fun getSelectedItems() = contacts.filter { selectedKeys.contains(it.rawId) } as ArrayList<SimpleContact> private fun getSelectedItems() = contacts.filter { selectedKeys.contains(it.rawId) } as ArrayList<Contact>
private fun getSelectedPhoneNumber(): String? { private fun getSelectedPhoneNumber(): String? {
val numbers = getSelectedItems().firstOrNull()?.phoneNumbers return getSelectedItems().firstOrNull()?.getPrimaryNumber()
val primaryNumber = numbers?.firstOrNull { it.isPrimary }
return primaryNumber?.normalizedNumber ?: numbers?.firstOrNull()?.normalizedNumber
} }
private fun tryCreateShortcut() { private fun tryCreateShortcut() {
@@ -242,16 +240,16 @@ class ContactsAdapter(
val contact = contacts.firstOrNull { selectedKeys.contains(it.rawId) } ?: return val contact = contacts.firstOrNull { selectedKeys.contains(it.rawId) } ?: return
val manager = activity.shortcutManager val manager = activity.shortcutManager
if (manager.isRequestPinShortcutSupported) { if (manager.isRequestPinShortcutSupported) {
SimpleContactsHelper(activity).getShortcutImage(contact.photoUri, contact.name) { image -> SimpleContactsHelper(activity).getShortcutImage(contact.photoUri, contact.getNameToDisplay()) { image ->
activity.runOnUiThread { activity.runOnUiThread {
activity.handlePermission(PERMISSION_CALL_PHONE) { hasPermission -> activity.handlePermission(PERMISSION_CALL_PHONE) { hasPermission ->
val action = if (hasPermission) Intent.ACTION_CALL else Intent.ACTION_DIAL val action = if (hasPermission) Intent.ACTION_CALL else Intent.ACTION_DIAL
val intent = Intent(action).apply { val intent = Intent(action).apply {
data = Uri.fromParts("tel", contact.phoneNumbers.first().normalizedNumber, null) data = Uri.fromParts("tel", getSelectedPhoneNumber(), null)
} }
val shortcut = ShortcutInfo.Builder(activity, contact.hashCode().toString()) val shortcut = ShortcutInfo.Builder(activity, contact.hashCode().toString())
.setShortLabel(contact.name) .setShortLabel(contact.getNameToDisplay())
.setIcon(Icon.createWithBitmap(image)) .setIcon(Icon.createWithBitmap(image))
.setIntent(intent) .setIntent(intent)
.build() .build()
@@ -270,18 +268,19 @@ class ContactsAdapter(
} }
} }
private fun setupView(view: View, contact: SimpleContact, holder: ViewHolder) { private fun setupView(view: View, contact: Contact, holder: ViewHolder) {
view.apply { view.apply {
findViewById<FrameLayout>(R.id.item_contact_frame).isSelected = selectedKeys.contains(contact.rawId) findViewById<FrameLayout>(R.id.item_contact_frame).isSelected = selectedKeys.contains(contact.rawId)
findViewById<TextView>(R.id.item_contact_name).apply { findViewById<TextView>(R.id.item_contact_name).apply {
setTextColor(textColor) setTextColor(textColor)
setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize) setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize)
text = if (textToHighlight.isEmpty()) contact.name else { val name = contact.getNameToDisplay()
if (contact.name.contains(textToHighlight, true)) { text = if (textToHighlight.isEmpty()) name else {
contact.name.highlightTextPart(textToHighlight, properPrimaryColor) if (name.contains(textToHighlight, true)) {
name.highlightTextPart(textToHighlight, properPrimaryColor)
} else { } else {
contact.name.highlightTextFromNumbers(textToHighlight, properPrimaryColor) name.highlightTextFromNumbers(textToHighlight, properPrimaryColor)
} }
} }
} }
@@ -306,7 +305,7 @@ class ContactsAdapter(
} }
if (!activity.isDestroyed) { if (!activity.isDestroyed) {
SimpleContactsHelper(context).loadContactImage(contact.photoUri, findViewById(R.id.item_contact_image), contact.name) SimpleContactsHelper(context).loadContactImage(contact.photoUri, findViewById(R.id.item_contact_image), contact.getNameToDisplay())
} }
} }
} }

View File

@@ -0,0 +1,78 @@
package com.simplemobiletools.dialer.adapters
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.simplemobiletools.commons.extensions.getProperBackgroundColor
import com.simplemobiletools.commons.extensions.getProperPrimaryColor
import com.simplemobiletools.commons.extensions.getProperTextColor
import com.simplemobiletools.commons.helpers.SMT_PRIVATE
import com.simplemobiletools.commons.models.contacts.ContactSource
import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity
import kotlinx.android.synthetic.main.item_filter_contact_source.view.*
class FilterContactSourcesAdapter(
val activity: SimpleActivity,
private val contactSources: List<ContactSource>,
private val displayContactSources: ArrayList<String>
) : RecyclerView.Adapter<FilterContactSourcesAdapter.ViewHolder>() {
private val selectedKeys = HashSet<Int>()
init {
contactSources.forEachIndexed { index, contactSource ->
if (displayContactSources.contains(contactSource.name)) {
selectedKeys.add(contactSource.hashCode())
}
if (contactSource.type == SMT_PRIVATE && displayContactSources.contains(SMT_PRIVATE)) {
selectedKeys.add(contactSource.hashCode())
}
}
}
private fun toggleItemSelection(select: Boolean, contactSource: ContactSource, position: Int) {
if (select) {
selectedKeys.add(contactSource.hashCode())
} else {
selectedKeys.remove(contactSource.hashCode())
}
notifyItemChanged(position)
}
fun getSelectedContactSources() = contactSources.filter { selectedKeys.contains(it.hashCode()) }
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = activity.layoutInflater.inflate(R.layout.item_filter_contact_source, parent, false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val contactSource = contactSources[position]
holder.bindView(contactSource)
}
override fun getItemCount() = contactSources.size
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
fun bindView(contactSource: ContactSource): View {
val isSelected = selectedKeys.contains(contactSource.hashCode())
itemView.apply {
filter_contact_source_checkbox.isChecked = isSelected
filter_contact_source_checkbox.setColors(activity.getProperTextColor(), activity.getProperPrimaryColor(), activity.getProperBackgroundColor())
val countText = if (contactSource.count >= 0) " (${contactSource.count})" else ""
val displayName = "${contactSource.publicName}$countText"
filter_contact_source_checkbox.text = displayName
filter_contact_source_holder.setOnClickListener { viewClicked(!isSelected, contactSource) }
}
return itemView
}
private fun viewClicked(select: Boolean, contactSource: ContactSource) {
toggleItemSelection(select, contactSource, adapterPosition)
}
}
}

View File

@@ -14,7 +14,7 @@ import com.simplemobiletools.commons.dialogs.ConfirmationDialog
import com.simplemobiletools.commons.dialogs.FeatureLockedDialog import com.simplemobiletools.commons.dialogs.FeatureLockedDialog
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.commons.models.contacts.Contact
import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.commons.views.MyRecyclerView
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.MainActivity import com.simplemobiletools.dialer.activities.MainActivity
@@ -246,11 +246,11 @@ class RecentCallsAdapter(
} }
} }
private fun findContactByCall(recentCall: RecentCall): SimpleContact? { private fun findContactByCall(recentCall: RecentCall): Contact? {
return (activity as MainActivity).cachedContacts.find { it.name == recentCall.name && it.doesHavePhoneNumber(recentCall.phoneNumber) } return (activity as MainActivity).cachedContacts.find { it.name == recentCall.name && it.doesHavePhoneNumber(recentCall.phoneNumber) }
} }
private fun launchContactDetailsIntent(contact: SimpleContact?) { private fun launchContactDetailsIntent(contact: Contact?) {
if (contact != null) { if (contact != null) {
activity.startContactDetailsIntent(contact) activity.startContactDetailsIntent(contact)
} }
@@ -275,13 +275,14 @@ class RecentCallsAdapter(
private fun setupView(view: View, call: RecentCall) { private fun setupView(view: View, call: RecentCall) {
view.apply { view.apply {
item_recents_holder.isSelected = selectedKeys.contains(call.id) item_recents_holder.isSelected = selectedKeys.contains(call.id)
var nameToShow = SpannableString(call.name) val name = findContactByCall(call)?.getNameToDisplay() ?: call.name
var nameToShow = SpannableString(name)
if (call.specificType.isNotEmpty()) { if (call.specificType.isNotEmpty()) {
nameToShow = SpannableString("${call.name} - ${call.specificType}") nameToShow = SpannableString("${name} - ${call.specificType}")
// show specific number at "Show call details" dialog too // show specific number at "Show call details" dialog too
if (refreshItemsListener == null) { if (refreshItemsListener == null) {
nameToShow = SpannableString("${call.name} - ${call.specificType}, ${call.specificNumber}") nameToShow = SpannableString("${name} - ${call.specificType}, ${call.specificNumber}")
} }
} }

View File

@@ -1,24 +1,15 @@
package com.simplemobiletools.dialer.dialogs package com.simplemobiletools.dialer.dialogs
import androidx.appcompat.app.AlertDialog
import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.commons.activities.BaseSimpleActivity
import com.simplemobiletools.commons.extensions.beGoneIf import com.simplemobiletools.commons.extensions.beGoneIf
import com.simplemobiletools.commons.extensions.getAlertDialogBuilder import com.simplemobiletools.commons.extensions.getAlertDialogBuilder
import com.simplemobiletools.commons.extensions.setupDialogStuff import com.simplemobiletools.commons.extensions.setupDialogStuff
import com.simplemobiletools.commons.helpers.SORT_BY_CUSTOM import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.helpers.SORT_BY_DATE_CREATED
import com.simplemobiletools.commons.helpers.SORT_BY_FULL_NAME
import com.simplemobiletools.commons.helpers.SORT_DESCENDING
import com.simplemobiletools.commons.models.SimpleContact
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.extensions.config import com.simplemobiletools.dialer.extensions.config
import kotlinx.android.synthetic.main.dialog_change_sorting.view.* import kotlinx.android.synthetic.main.dialog_change_sorting.view.*
class ChangeSortingDialog( class ChangeSortingDialog(val activity: BaseSimpleActivity, private val showCustomSorting: Boolean = false, private val callback: () -> Unit) {
val activity: BaseSimpleActivity,
private val showCustomSorting: Boolean = false,
private val callback: () -> Unit
) {
private var currSorting = 0 private var currSorting = 0
private var config = activity.config private var config = activity.config
private var view = activity.layoutInflater.inflate(R.layout.dialog_change_sorting, null) private var view = activity.layoutInflater.inflate(R.layout.dialog_change_sorting, null)
@@ -51,17 +42,18 @@ class ChangeSortingDialog(
} }
val sortBtn = when { val sortBtn = when {
currSorting and SORT_BY_FIRST_NAME != 0 -> sortingRadio.sorting_dialog_radio_first_name
currSorting and SORT_BY_MIDDLE_NAME != 0 -> sortingRadio.sorting_dialog_radio_middle_name
currSorting and SORT_BY_SURNAME != 0 -> sortingRadio.sorting_dialog_radio_surname
currSorting and SORT_BY_FULL_NAME != 0 -> sortingRadio.sorting_dialog_radio_full_name currSorting and SORT_BY_FULL_NAME != 0 -> sortingRadio.sorting_dialog_radio_full_name
currSorting and SORT_BY_CUSTOM != 0 -> sortingRadio.sorting_dialog_radio_custom currSorting and SORT_BY_CUSTOM != 0 -> sortingRadio.sorting_dialog_radio_custom
else -> sortingRadio.sorting_dialog_radio_date_created else -> sortingRadio.sorting_dialog_radio_date_created
} }
sortBtn.isChecked = true sortBtn.isChecked = true
if (showCustomSorting) { if (showCustomSorting) {
sortingRadio.sorting_dialog_radio_custom.isChecked = config.isCustomOrderSelected sortingRadio.sorting_dialog_radio_custom.isChecked = config.isCustomOrderSelected
} }
view.sorting_dialog_radio_custom.beGoneIf(!showCustomSorting) view.sorting_dialog_radio_custom.beGoneIf(!showCustomSorting)
} }
@@ -78,6 +70,9 @@ class ChangeSortingDialog(
private fun dialogConfirmed() { private fun dialogConfirmed() {
val sortingRadio = view.sorting_dialog_radio_sorting val sortingRadio = view.sorting_dialog_radio_sorting
var sorting = when (sortingRadio.checkedRadioButtonId) { var sorting = when (sortingRadio.checkedRadioButtonId) {
R.id.sorting_dialog_radio_first_name -> SORT_BY_FIRST_NAME
R.id.sorting_dialog_radio_middle_name -> SORT_BY_MIDDLE_NAME
R.id.sorting_dialog_radio_surname -> SORT_BY_SURNAME
R.id.sorting_dialog_radio_full_name -> SORT_BY_FULL_NAME R.id.sorting_dialog_radio_full_name -> SORT_BY_FULL_NAME
R.id.sorting_dialog_radio_custom -> SORT_BY_CUSTOM R.id.sorting_dialog_radio_custom -> SORT_BY_CUSTOM
else -> SORT_BY_DATE_CREATED else -> SORT_BY_DATE_CREATED
@@ -98,7 +93,6 @@ class ChangeSortingDialog(
config.sorting = sorting config.sorting = sorting
} }
SimpleContact.sorting = sorting
callback() callback()
} }
} }

View File

@@ -0,0 +1,91 @@
package com.simplemobiletools.dialer.dialogs
import androidx.appcompat.app.AlertDialog
import com.simplemobiletools.commons.extensions.getAlertDialogBuilder
import com.simplemobiletools.commons.extensions.getMyContactsCursor
import com.simplemobiletools.commons.extensions.setupDialogStuff
import com.simplemobiletools.commons.helpers.SMT_PRIVATE
import com.simplemobiletools.commons.extensions.getVisibleContactSources
import com.simplemobiletools.commons.helpers.ContactsHelper
import com.simplemobiletools.commons.helpers.MyContactsContentProvider
import com.simplemobiletools.commons.models.contacts.*
import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.adapters.FilterContactSourcesAdapter
import com.simplemobiletools.dialer.extensions.config
import kotlinx.android.synthetic.main.dialog_filter_contact_sources.view.*
class FilterContactSourcesDialog(val activity: SimpleActivity, private val callback: () -> Unit) {
private var dialog: AlertDialog? = null
private val view = activity.layoutInflater.inflate(R.layout.dialog_filter_contact_sources, null)
private var contactSources = ArrayList<ContactSource>()
private var contacts = ArrayList<Contact>()
private var isContactSourcesReady = false
private var isContactsReady = false
init {
val contactHelper = ContactsHelper(activity)
contactHelper.getContactSources { contactSources ->
contactSources.mapTo(this@FilterContactSourcesDialog.contactSources) { it.copy() }
isContactSourcesReady = true
processDataIfReady()
}
contactHelper.getContacts(getAll = true, showOnlyContactsWithNumbers = true) {
it.mapTo(contacts) { contact -> contact.copy() }
val privateCursor = activity.getMyContactsCursor(false, true)
val privateContacts = MyContactsContentProvider.getContacts(activity, privateCursor)
this.contacts.addAll(privateContacts)
isContactsReady = true
processDataIfReady()
}
}
private fun processDataIfReady() {
if (!isContactSourcesReady) {
return
}
val contactSourcesWithCount = ArrayList<ContactSource>()
for (contactSource in contactSources) {
val count = if (isContactsReady) {
contacts.filter { it.source == contactSource.name }.count()
} else {
-1
}
contactSourcesWithCount.add(contactSource.copy(count = count))
}
contactSources.clear()
contactSources.addAll(contactSourcesWithCount)
activity.runOnUiThread {
val selectedSources = activity.getVisibleContactSources()
view.filter_contact_sources_list.adapter = FilterContactSourcesAdapter(activity, contactSourcesWithCount, selectedSources)
if (dialog == null) {
activity.getAlertDialogBuilder()
.setPositiveButton(R.string.ok) { dialogInterface, i -> confirmContactSources() }
.setNegativeButton(R.string.cancel, null)
.apply {
activity.setupDialogStuff(view, this) { alertDialog ->
dialog = alertDialog
}
}
}
}
}
private fun confirmContactSources() {
val selectedContactSources = (view.filter_contact_sources_list.adapter as FilterContactSourcesAdapter).getSelectedContactSources()
val ignoredContactSources = contactSources.filter { !selectedContactSources.contains(it) }.map {
if (it.type == SMT_PRIVATE) SMT_PRIVATE else it.getFullIdentifier()
}.toHashSet()
if (activity.getVisibleContactSources() != ignoredContactSources) {
activity.config.ignoredContactSources = ignoredContactSources
callback()
}
dialog?.dismiss()
}
}

View File

@@ -3,14 +3,14 @@ package com.simplemobiletools.dialer.dialogs
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import com.reddit.indicatorfastscroll.FastScrollItemIndicator import com.reddit.indicatorfastscroll.FastScrollItemIndicator
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.commons.models.contacts.Contact
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.adapters.ContactsAdapter import com.simplemobiletools.dialer.adapters.ContactsAdapter
import kotlinx.android.synthetic.main.dialog_select_contact.view.* import kotlinx.android.synthetic.main.dialog_select_contact.view.*
import java.util.* import java.util.*
class SelectContactDialog(val activity: SimpleActivity, contacts: ArrayList<SimpleContact>, val callback: (selectedContact: SimpleContact) -> Unit) { class SelectContactDialog(val activity: SimpleActivity, contacts: ArrayList<Contact>, val callback: (selectedContact: Contact) -> Unit) {
private var dialog: AlertDialog? = null private var dialog: AlertDialog? = null
private var view = activity.layoutInflater.inflate(R.layout.dialog_select_contact, null) private var view = activity.layoutInflater.inflate(R.layout.dialog_select_contact, null)
@@ -23,7 +23,7 @@ class SelectContactDialog(val activity: SimpleActivity, contacts: ArrayList<Simp
letter_fastscroller.setupWithRecyclerView(select_contact_list, { position -> letter_fastscroller.setupWithRecyclerView(select_contact_list, { position ->
try { try {
val name = contacts[position].name val name = contacts[position].getNameToDisplay()
val character = if (name.isNotEmpty()) name.substring(0, 1) else "" val character = if (name.isNotEmpty()) name.substring(0, 1) else ""
FastScrollItemIndicator.Text(character.toUpperCase(Locale.getDefault())) FastScrollItemIndicator.Text(character.toUpperCase(Locale.getDefault()))
} catch (e: Exception) { } catch (e: Exception) {
@@ -32,7 +32,7 @@ class SelectContactDialog(val activity: SimpleActivity, contacts: ArrayList<Simp
}) })
select_contact_list.adapter = ContactsAdapter(activity, contacts, select_contact_list) { select_contact_list.adapter = ContactsAdapter(activity, contacts, select_contact_list) {
callback(it as SimpleContact) callback(it as Contact)
dialog?.dismiss() dialog?.dismiss()
} }
} }

View File

@@ -15,7 +15,12 @@ import com.simplemobiletools.dialer.extensions.getAvailableSIMCardLabels
import kotlinx.android.synthetic.main.dialog_select_sim.view.* import kotlinx.android.synthetic.main.dialog_select_sim.view.*
@SuppressLint("MissingPermission") @SuppressLint("MissingPermission")
class SelectSIMDialog(val activity: BaseSimpleActivity, val phoneNumber: String, val callback: (handle: PhoneAccountHandle?) -> Unit) { class SelectSIMDialog(
val activity: BaseSimpleActivity,
val phoneNumber: String,
onDismiss: () -> Unit = {},
val callback: (handle: PhoneAccountHandle?) -> Unit
) {
private var dialog: AlertDialog? = null private var dialog: AlertDialog? = null
private val view = activity.layoutInflater.inflate(R.layout.dialog_select_sim, null) private val view = activity.layoutInflater.inflate(R.layout.dialog_select_sim, null)
@@ -42,6 +47,10 @@ class SelectSIMDialog(val activity: BaseSimpleActivity, val phoneNumber: String,
dialog = alertDialog dialog = alertDialog
} }
} }
dialog?.setOnDismissListener {
onDismiss()
}
} }
private fun selectedSIM(handle: PhoneAccountHandle) { private fun selectedSIM(handle: PhoneAccountHandle) {

View File

@@ -11,7 +11,8 @@ import android.telecom.TelecomManager
import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.commons.activities.BaseSimpleActivity
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.commons.models.contacts.Contact
import com.simplemobiletools.dialer.activities.DialerActivity
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.dialogs.SelectSIMDialog import com.simplemobiletools.dialer.dialogs.SelectSIMDialog
@@ -42,7 +43,7 @@ fun BaseSimpleActivity.callContactWithSim(recipient: String, useMainSIM: Boolean
} }
// handle private contacts differently, only Simple Contacts Pro can open them // handle private contacts differently, only Simple Contacts Pro can open them
fun Activity.startContactDetailsIntent(contact: SimpleContact) { fun Activity.startContactDetailsIntent(contact: Contact) {
val simpleContacts = "com.simplemobiletools.contacts.pro" val simpleContacts = "com.simplemobiletools.contacts.pro"
val simpleContactsDebug = "com.simplemobiletools.contacts.pro.debug" val simpleContactsDebug = "com.simplemobiletools.contacts.pro.debug"
if (contact.rawId > 1000000 && contact.contactId > 1000000 && contact.rawId == contact.contactId && if (contact.rawId > 1000000 && contact.contactId > 1000000 && contact.rawId == contact.contactId &&
@@ -81,7 +82,11 @@ fun SimpleActivity.getHandleToUse(intent: Intent?, phoneNumber: String, callback
defaultHandle != null -> callback(defaultHandle) defaultHandle != null -> callback(defaultHandle)
else -> { else -> {
SelectSIMDialog(this, phoneNumber) { handle -> SelectSIMDialog(this, phoneNumber, onDismiss = {
if (this is DialerActivity) {
finish()
}
}) { handle ->
callback(handle) callback(handle)
} }
} }

View File

@@ -5,10 +5,8 @@ import android.util.AttributeSet
import com.reddit.indicatorfastscroll.FastScrollItemIndicator import com.reddit.indicatorfastscroll.FastScrollItemIndicator
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.MyContactsContentProvider import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS import com.simplemobiletools.commons.models.contacts.Contact
import com.simplemobiletools.commons.helpers.SimpleContactsHelper
import com.simplemobiletools.commons.models.SimpleContact
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.MainActivity import com.simplemobiletools.dialer.activities.MainActivity
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
@@ -20,7 +18,7 @@ import kotlinx.android.synthetic.main.fragment_letters_layout.view.*
import java.util.* import java.util.*
class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet), RefreshItemsListener { class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet), RefreshItemsListener {
private var allContacts = ArrayList<SimpleContact>() private var allContacts = ArrayList<Contact>()
override fun setupFragment() { override fun setupFragment() {
val placeholderResId = if (context.hasPermission(PERMISSION_READ_CONTACTS)) { val placeholderResId = if (context.hasPermission(PERMISSION_READ_CONTACTS)) {
@@ -64,15 +62,16 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
override fun refreshItems(callback: (() -> Unit)?) { override fun refreshItems(callback: (() -> Unit)?) {
val privateCursor = context?.getMyContactsCursor(false, true) val privateCursor = context?.getMyContactsCursor(false, true)
SimpleContactsHelper(context).getAvailableContacts(false) { contacts -> ContactsHelper(context).getContacts(showOnlyContactsWithNumbers = true) { contacts ->
allContacts = contacts allContacts = contacts
val privateContacts = MyContactsContentProvider.getSimpleContacts(context, privateCursor) if (SMT_PRIVATE !in context.baseConfig.ignoredContactSources) {
val privateContacts = MyContactsContentProvider.getContacts(context, privateCursor)
if (privateContacts.isNotEmpty()) { if (privateContacts.isNotEmpty()) {
allContacts.addAll(privateContacts) allContacts.addAll(privateContacts)
allContacts.sort() allContacts.sort()
} }
}
(activity as MainActivity).cacheContacts(allContacts) (activity as MainActivity).cacheContacts(allContacts)
activity?.runOnUiThread { activity?.runOnUiThread {
@@ -82,7 +81,7 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
} }
} }
private fun gotContacts(contacts: ArrayList<SimpleContact>) { private fun gotContacts(contacts: ArrayList<Contact>) {
setupLetterFastscroller(contacts) setupLetterFastscroller(contacts)
if (contacts.isEmpty()) { if (contacts.isEmpty()) {
fragment_placeholder.beVisible() fragment_placeholder.beVisible()
@@ -96,7 +95,7 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
val currAdapter = fragment_list.adapter val currAdapter = fragment_list.adapter
if (currAdapter == null) { if (currAdapter == null) {
ContactsAdapter(activity as SimpleActivity, contacts, fragment_list, this) { ContactsAdapter(activity as SimpleActivity, contacts, fragment_list, this) {
val contact = it as SimpleContact val contact = it as Contact
activity?.startContactDetailsIntent(contact) activity?.startContactDetailsIntent(contact)
}.apply { }.apply {
fragment_list.adapter = this fragment_list.adapter = this
@@ -111,10 +110,10 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
} }
} }
private fun setupLetterFastscroller(contacts: ArrayList<SimpleContact>) { private fun setupLetterFastscroller(contacts: ArrayList<Contact>) {
letter_fastscroller.setupWithRecyclerView(fragment_list, { position -> letter_fastscroller.setupWithRecyclerView(fragment_list, { position ->
try { try {
val name = contacts[position].name val name = contacts[position].getNameToDisplay()
val character = if (name.isNotEmpty()) name.substring(0, 1) else "" val character = if (name.isNotEmpty()) name.substring(0, 1) else ""
FastScrollItemIndicator.Text(character.toUpperCase(Locale.getDefault()).normalizeString()) FastScrollItemIndicator.Text(character.toUpperCase(Locale.getDefault()).normalizeString())
} catch (e: Exception) { } catch (e: Exception) {
@@ -130,26 +129,37 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
} }
override fun onSearchQueryChanged(text: String) { override fun onSearchQueryChanged(text: String) {
val contacts = allContacts.filter { val shouldNormalize = text.normalizeString() == text
it.doesContainPhoneNumber(text) || val filtered = allContacts.filter {
it.name.contains(text, true) || getProperText(it.getNameToDisplay(), shouldNormalize).contains(text, true) ||
it.name.normalizeString().contains(text, true) || getProperText(it.nickname, shouldNormalize).contains(text, true) ||
it.name.contains(text.normalizeString(), true) it.phoneNumbers.any {
}.sortedByDescending { text.normalizePhoneNumber().isNotEmpty() && it.normalizedNumber.contains(text.normalizePhoneNumber(), true)
it.name.startsWith(text, true) } ||
}.toMutableList() as ArrayList<SimpleContact> it.emails.any { it.value.contains(text, true) } ||
it.addresses.any { getProperText(it.value, shouldNormalize).contains(text, true) } ||
it.IMs.any { it.value.contains(text, true) } ||
getProperText(it.notes, shouldNormalize).contains(text, true) ||
getProperText(it.organization.company, shouldNormalize).contains(text, true) ||
getProperText(it.organization.jobPosition, shouldNormalize).contains(text, true) ||
it.websites.any { it.contains(text, true) }
} as ArrayList
fragment_placeholder.beVisibleIf(contacts.isEmpty()) filtered.sortBy {
(fragment_list.adapter as? ContactsAdapter)?.updateItems(contacts, text) val nameToDisplay = it.getNameToDisplay()
setupLetterFastscroller(contacts) !getProperText(nameToDisplay, shouldNormalize).startsWith(text, true) && !nameToDisplay.contains(text, true)
} }
fragment_placeholder.beVisibleIf(filtered.isEmpty())
(fragment_list.adapter as? ContactsAdapter)?.updateItems(filtered, text)
setupLetterFastscroller(filtered)
}
private fun requestReadContactsPermission() { private fun requestReadContactsPermission() {
activity?.handlePermission(PERMISSION_READ_CONTACTS) { activity?.handlePermission(PERMISSION_READ_CONTACTS) {
if (it) { if (it) {
fragment_placeholder.text = context.getString(R.string.no_contacts_found) fragment_placeholder.text = context.getString(R.string.no_contacts_found)
fragment_placeholder_2.text = context.getString(R.string.create_new_contact) fragment_placeholder_2.text = context.getString(R.string.create_new_contact)
SimpleContactsHelper(context).getAvailableContacts(false) { contacts -> ContactsHelper(context).getContacts(showOnlyContactsWithNumbers = true) { contacts ->
activity?.runOnUiThread { activity?.runOnUiThread {
gotContacts(contacts) gotContacts(contacts)
} }

View File

@@ -8,11 +8,12 @@ import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
import com.simplemobiletools.commons.dialogs.CallConfirmationDialog import com.simplemobiletools.commons.dialogs.CallConfirmationDialog
import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.ContactsHelper
import com.simplemobiletools.commons.helpers.MyContactsContentProvider import com.simplemobiletools.commons.helpers.MyContactsContentProvider
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
import com.simplemobiletools.commons.helpers.SimpleContactsHelper import com.simplemobiletools.commons.helpers.SMT_PRIVATE
import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.commons.models.RadioItem
import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.commons.models.contacts.Contact
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.adapters.ContactsAdapter import com.simplemobiletools.dialer.adapters.ContactsAdapter
@@ -23,7 +24,7 @@ import kotlinx.android.synthetic.main.fragment_letters_layout.view.*
import java.util.* import java.util.*
class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet), RefreshItemsListener { class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet), RefreshItemsListener {
private var allContacts = ArrayList<SimpleContact>() private var allContacts = ArrayList<Contact>()
override fun setupFragment() { override fun setupFragment() {
val placeholderResId = if (context.hasPermission(PERMISSION_READ_CONTACTS)) { val placeholderResId = if (context.hasPermission(PERMISSION_READ_CONTACTS)) {
@@ -48,18 +49,25 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
} }
override fun refreshItems(callback: (() -> Unit)?) { override fun refreshItems(callback: (() -> Unit)?) {
val privateCursor = context?.getMyContactsCursor(true, true) ContactsHelper(context).getContacts(showOnlyContactsWithNumbers = true) { contacts ->
SimpleContactsHelper(context).getAvailableContacts(true) { contacts ->
allContacts = contacts allContacts = contacts
val privateContacts = MyContactsContentProvider.getSimpleContacts(context, privateCursor) if (SMT_PRIVATE !in context.baseConfig.ignoredContactSources) {
val privateCursor = context?.getMyContactsCursor(true, true)
val privateContacts = MyContactsContentProvider.getContacts(context, privateCursor).map {
it.copy(starred = 1)
}
if (privateContacts.isNotEmpty()) { if (privateContacts.isNotEmpty()) {
allContacts.addAll(privateContacts) allContacts.addAll(privateContacts)
allContacts.sort() allContacts.sort()
} }
}
val favorites = contacts.filter { it.starred == 1 } as ArrayList<Contact>
if (activity!!.config.isCustomOrderSelected) { allContacts = if (activity!!.config.isCustomOrderSelected) {
allContacts = sortByCustomOrder(allContacts) sortByCustomOrder(favorites)
} else {
favorites
} }
activity?.runOnUiThread { activity?.runOnUiThread {
@@ -69,7 +77,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
} }
} }
private fun gotContacts(contacts: ArrayList<SimpleContact>) { private fun gotContacts(contacts: ArrayList<Contact>) {
setupLetterFastscroller(contacts) setupLetterFastscroller(contacts)
if (contacts.isEmpty()) { if (contacts.isEmpty()) {
fragment_placeholder.beVisible() fragment_placeholder.beVisible()
@@ -89,11 +97,11 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
enableDrag = true, enableDrag = true,
) { ) {
if (context.config.showCallConfirmation) { if (context.config.showCallConfirmation) {
CallConfirmationDialog(activity as SimpleActivity, (it as SimpleContact).name) { CallConfirmationDialog(activity as SimpleActivity, (it as Contact).getNameToDisplay()) {
callContact(it) callContact(it)
} }
} else { } else {
callContact(it as SimpleContact) callContact(it as Contact)
} }
}.apply { }.apply {
fragment_list.adapter = this fragment_list.adapter = this
@@ -117,7 +125,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
} }
} }
private fun sortByCustomOrder(favorites: List<SimpleContact>): ArrayList<SimpleContact> { private fun sortByCustomOrder(favorites: List<Contact>): ArrayList<Contact> {
val favoritesOrder = activity!!.config.favoritesContactsOrder val favoritesOrder = activity!!.config.favoritesContactsOrder
if (favoritesOrder.isEmpty()) { if (favoritesOrder.isEmpty()) {
@@ -131,7 +139,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
return ArrayList(sorted) return ArrayList(sorted)
} }
private fun saveCustomOrderToPrefs(items: ArrayList<SimpleContact>) { private fun saveCustomOrderToPrefs(items: ArrayList<Contact>) {
activity?.apply { activity?.apply {
val orderIds = items.map { it.contactId } val orderIds = items.map { it.contactId }
val orderGsonString = Gson().toJson(orderIds) val orderGsonString = Gson().toJson(orderIds)
@@ -139,9 +147,11 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
} }
} }
private fun callContact(simpleContact: SimpleContact) { private fun callContact(simpleContact: Contact) {
val phoneNumbers = simpleContact.phoneNumbers val phoneNumbers = simpleContact.phoneNumbers
if (phoneNumbers.size <= 1) { if (phoneNumbers.isEmpty()) {
return
} else if (phoneNumbers.size <= 1) {
activity?.launchCallIntent(phoneNumbers.first().normalizedNumber) activity?.launchCallIntent(phoneNumbers.first().normalizedNumber)
} else { } else {
val primaryNumber = simpleContact.phoneNumbers.find { it.isPrimary } val primaryNumber = simpleContact.phoneNumbers.find { it.isPrimary }
@@ -161,10 +171,10 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
} }
} }
private fun setupLetterFastscroller(contacts: ArrayList<SimpleContact>) { private fun setupLetterFastscroller(contacts: ArrayList<Contact>) {
letter_fastscroller.setupWithRecyclerView(fragment_list, { position -> letter_fastscroller.setupWithRecyclerView(fragment_list, { position ->
try { try {
val name = contacts[position].name val name = contacts[position].getNameToDisplay()
val character = if (name.isNotEmpty()) name.substring(0, 1) else "" val character = if (name.isNotEmpty()) name.substring(0, 1) else ""
FastScrollItemIndicator.Text(character.toUpperCase(Locale.getDefault()).normalizeString()) FastScrollItemIndicator.Text(character.toUpperCase(Locale.getDefault()).normalizeString())
} catch (e: Exception) { } catch (e: Exception) {
@@ -184,7 +194,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
it.name.contains(text, true) || it.doesContainPhoneNumber(text) it.name.contains(text, true) || it.doesContainPhoneNumber(text)
}.sortedByDescending { }.sortedByDescending {
it.name.startsWith(text, true) it.name.startsWith(text, true)
}.toMutableList() as ArrayList<SimpleContact> }.toMutableList() as ArrayList<Contact>
fragment_placeholder.beVisibleIf(contacts.isEmpty()) fragment_placeholder.beVisibleIf(contacts.isEmpty())
(fragment_list.adapter as? ContactsAdapter)?.updateItems(contacts, text) (fragment_list.adapter as? ContactsAdapter)?.updateItems(contacts, text)

View File

@@ -6,7 +6,11 @@ import android.widget.RelativeLayout
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
import com.simplemobiletools.commons.extensions.getProperPrimaryColor import com.simplemobiletools.commons.extensions.getProperPrimaryColor
import com.simplemobiletools.commons.extensions.getProperTextColor import com.simplemobiletools.commons.extensions.getProperTextColor
import com.simplemobiletools.commons.helpers.SORT_BY_FIRST_NAME
import com.simplemobiletools.commons.helpers.SORT_BY_SURNAME
import com.simplemobiletools.dialer.activities.MainActivity
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.adapters.ContactsAdapter
import com.simplemobiletools.dialer.extensions.config import com.simplemobiletools.dialer.extensions.config
import com.simplemobiletools.dialer.helpers.Config import com.simplemobiletools.dialer.helpers.Config
import kotlinx.android.synthetic.main.fragment_letters_layout.view.* import kotlinx.android.synthetic.main.fragment_letters_layout.view.*
@@ -27,6 +31,15 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
} }
} }
fun startNameWithSurnameChanged(startNameWithSurname: Boolean) {
if (this !is RecentsFragment) {
(fragment_list.adapter as? ContactsAdapter)?.apply {
config.sorting = if (startNameWithSurname) SORT_BY_SURNAME else SORT_BY_FIRST_NAME
(this@MyViewPagerFragment.activity!! as MainActivity).refreshFragments()
}
}
}
fun finishActMode() { fun finishActMode() {
(fragment_list?.adapter as? MyRecyclerViewAdapter)?.finishActMode() (fragment_list?.adapter as? MyRecyclerViewAdapter)?.finishActMode()
(recents_list?.adapter as? MyRecyclerViewAdapter)?.finishActMode() (recents_list?.adapter as? MyRecyclerViewAdapter)?.finishActMode()

View File

@@ -4,9 +4,10 @@ import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import com.simplemobiletools.commons.dialogs.CallConfirmationDialog import com.simplemobiletools.commons.dialogs.CallConfirmationDialog
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.ContactsHelper
import com.simplemobiletools.commons.helpers.MyContactsContentProvider import com.simplemobiletools.commons.helpers.MyContactsContentProvider
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CALL_LOG import com.simplemobiletools.commons.helpers.PERMISSION_READ_CALL_LOG
import com.simplemobiletools.commons.helpers.SimpleContactsHelper import com.simplemobiletools.commons.helpers.SMT_PRIVATE
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.adapters.RecentCallsAdapter import com.simplemobiletools.dialer.adapters.RecentCallsAdapter
@@ -49,30 +50,38 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
val privateCursor = context?.getMyContactsCursor(false, true) val privateCursor = context?.getMyContactsCursor(false, true)
val groupSubsequentCalls = context?.config?.groupSubsequentCalls ?: false val groupSubsequentCalls = context?.config?.groupSubsequentCalls ?: false
RecentsHelper(context).getRecentCalls(groupSubsequentCalls) { recents -> RecentsHelper(context).getRecentCalls(groupSubsequentCalls) { recents ->
SimpleContactsHelper(context).getAvailableContacts(false) { contacts -> ContactsHelper(context).getContacts(showOnlyContactsWithNumbers = true) { contacts ->
val privateContacts = MyContactsContentProvider.getSimpleContacts(context, privateCursor) val privateContacts = MyContactsContentProvider.getContacts(context, privateCursor)
recents.filter { it.phoneNumber == it.name }.forEach { recent -> recents.filter { it.phoneNumber == it.name }.forEach { recent ->
var wasNameFilled = false var wasNameFilled = false
if (privateContacts.isNotEmpty()) { if (privateContacts.isNotEmpty()) {
val privateContact = privateContacts.firstOrNull { it.doesContainPhoneNumber(recent.phoneNumber) } val privateContact = privateContacts.firstOrNull { it.doesContainPhoneNumber(recent.phoneNumber) }
if (privateContact != null) { if (privateContact != null) {
recent.name = privateContact.name recent.name = privateContact.getNameToDisplay()
wasNameFilled = true wasNameFilled = true
} }
} }
if (!wasNameFilled) { if (!wasNameFilled) {
val contact = contacts.firstOrNull { it.phoneNumbers.first().normalizedNumber == recent.phoneNumber } val contact = contacts.filter { it.phoneNumbers.isNotEmpty() }.firstOrNull { it.phoneNumbers.first().normalizedNumber == recent.phoneNumber }
if (contact != null) { if (contact != null) {
recent.name = contact.name recent.name = contact.getNameToDisplay()
} }
} }
} }
allRecentCalls = recents
// hide private contacts from recent calls
if (SMT_PRIVATE in context.baseConfig.ignoredContactSources) {
allRecentCalls = recents.filterNot { recent ->
val privateNumbers = privateContacts.flatMap { it.phoneNumbers }.map { it.value }
recent.phoneNumber in privateNumbers
} as ArrayList
}
allRecentCalls = recents
activity?.runOnUiThread { activity?.runOnUiThread {
gotRecents(recents) gotRecents(allRecentCalls)
} }
} }
} }

View File

@@ -5,8 +5,8 @@ import android.net.Uri
import android.telecom.Call import android.telecom.Call
import com.simplemobiletools.commons.extensions.getMyContactsCursor import com.simplemobiletools.commons.extensions.getMyContactsCursor
import com.simplemobiletools.commons.extensions.getPhoneNumberTypeText import com.simplemobiletools.commons.extensions.getPhoneNumberTypeText
import com.simplemobiletools.commons.helpers.ContactsHelper
import com.simplemobiletools.commons.helpers.MyContactsContentProvider import com.simplemobiletools.commons.helpers.MyContactsContentProvider
import com.simplemobiletools.commons.helpers.SimpleContactsHelper
import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.extensions.isConference import com.simplemobiletools.dialer.extensions.isConference
@@ -35,8 +35,8 @@ fun getCallContact(context: Context, call: Call?, callback: (CallContact) -> Uni
val uri = Uri.decode(handle) val uri = Uri.decode(handle)
if (uri.startsWith("tel:")) { if (uri.startsWith("tel:")) {
val number = uri.substringAfter("tel:") val number = uri.substringAfter("tel:")
SimpleContactsHelper(context).getAvailableContacts(false) { contacts -> ContactsHelper(context).getContacts(showOnlyContactsWithNumbers = true) { contacts ->
val privateContacts = MyContactsContentProvider.getSimpleContacts(context, privateCursor) val privateContacts = MyContactsContentProvider.getContacts(context, privateCursor)
if (privateContacts.isNotEmpty()) { if (privateContacts.isNotEmpty()) {
contacts.addAll(privateContacts) contacts.addAll(privateContacts)
} }
@@ -53,7 +53,7 @@ fun getCallContact(context: Context, call: Call?, callback: (CallContact) -> Uni
callContact.number = number callContact.number = number
val contact = contacts.firstOrNull { it.doesHavePhoneNumber(number) } val contact = contacts.firstOrNull { it.doesHavePhoneNumber(number) }
if (contact != null) { if (contact != null) {
callContact.name = contact.name callContact.name = contact.getNameToDisplay()
callContact.photoUri = contact.photoUri callContact.photoUri = contact.photoUri
if (contact.phoneNumbers.size > 1) { if (contact.phoneNumbers.size > 1) {

View File

@@ -1,13 +1,11 @@
package com.simplemobiletools.dialer.helpers package com.simplemobiletools.dialer.helpers
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context
import android.os.Handler import android.os.Handler
import android.telecom.Call import android.telecom.Call
import android.telecom.CallAudioState import android.telecom.CallAudioState
import android.telecom.InCallService import android.telecom.InCallService
import android.telecom.VideoProfile import android.telecom.VideoProfile
import com.simplemobiletools.dialer.extensions.config
import com.simplemobiletools.dialer.extensions.getStateCompat import com.simplemobiletools.dialer.extensions.getStateCompat
import com.simplemobiletools.dialer.extensions.hasCapability import com.simplemobiletools.dialer.extensions.hasCapability
import com.simplemobiletools.dialer.extensions.isConference import com.simplemobiletools.dialer.extensions.isConference
@@ -156,9 +154,10 @@ class CallManager {
fun reject() { fun reject() {
if (call != null) { if (call != null) {
if (getState() == Call.STATE_RINGING) { val state = getState()
if (state == Call.STATE_RINGING) {
call!!.reject(false, null) call!!.reject(false, null)
} else { } else if (state != Call.STATE_DISCONNECTED && state != Call.STATE_DISCONNECTING) {
call!!.disconnect() call!!.disconnect()
} }
} }
@@ -201,15 +200,11 @@ class CallManager {
fun getState() = getPrimaryCall()?.getStateCompat() fun getState() = getPrimaryCall()?.getStateCompat()
fun keypad(context: Context, char: Char) { fun keypad(char: Char) {
call?.playDtmfTone(char) call?.playDtmfTone(char)
if (context.config.dialpadBeeps) {
Handler().postDelayed({ Handler().postDelayed({
call?.stopDtmfTone() call?.stopDtmfTone()
}, DIALPAD_TONE_LENGTH_MS) }, DIALPAD_TONE_LENGTH_MS)
} else {
call?.stopDtmfTone()
}
} }
} }
} }

View File

@@ -13,11 +13,6 @@ class Config(context: Context) : BaseConfig(context) {
companion object { companion object {
fun newInstance(context: Context) = Config(context) fun newInstance(context: Context) = Config(context)
} }
var speedDial: String
get() = prefs.getString(SPEED_DIAL, "")!!
set(speedDial) = prefs.edit().putString(SPEED_DIAL, speedDial).apply()
fun getSpeedDialValues(): ArrayList<SpeedDial> { fun getSpeedDialValues(): ArrayList<SpeedDial> {
val speedDialType = object : TypeToken<List<SpeedDial>>() {}.type val speedDialType = object : TypeToken<List<SpeedDial>>() {}.type
val speedDialValues = Gson().fromJson<ArrayList<SpeedDial>>(speedDial, speedDialType) ?: ArrayList(1) val speedDialValues = Gson().fromJson<ArrayList<SpeedDial>>(speedDial, speedDialType) ?: ArrayList(1)
@@ -54,6 +49,9 @@ class Config(context: Context) : BaseConfig(context) {
fun removeCustomSIM(number: String) { fun removeCustomSIM(number: String) {
prefs.edit().remove(REMEMBER_SIM_PREFIX + number).apply() prefs.edit().remove(REMEMBER_SIM_PREFIX + number).apply()
} }
var showTabs: Int
get() = prefs.getInt(SHOW_TABS, ALL_TABS_MASK)
set(showTabs) = prefs.edit().putInt(SHOW_TABS, showTabs).apply()
var groupSubsequentCalls: Boolean var groupSubsequentCalls: Boolean
get() = prefs.getBoolean(GROUP_SUBSEQUENT_CALLS, true) get() = prefs.getBoolean(GROUP_SUBSEQUENT_CALLS, true)
@@ -71,18 +69,6 @@ class Config(context: Context) : BaseConfig(context) {
get() = prefs.getBoolean(DISABLE_SWIPE_TO_ANSWER, false) get() = prefs.getBoolean(DISABLE_SWIPE_TO_ANSWER, false)
set(disableSwipeToAnswer) = prefs.edit().putBoolean(DISABLE_SWIPE_TO_ANSWER, disableSwipeToAnswer).apply() set(disableSwipeToAnswer) = prefs.edit().putBoolean(DISABLE_SWIPE_TO_ANSWER, disableSwipeToAnswer).apply()
var showTabs: Int
get() = prefs.getInt(SHOW_TABS, ALL_TABS_MASK)
set(showTabs) = prefs.edit().putInt(SHOW_TABS, showTabs).apply()
var favoritesContactsOrder: String
get() = prefs.getString(FAVORITES_CONTACTS_ORDER, "")!!
set(order) = prefs.edit().putString(FAVORITES_CONTACTS_ORDER, order).apply()
var isCustomOrderSelected: Boolean
get() = prefs.getBoolean(FAVORITES_CUSTOM_ORDER_SELECTED, false)
set(selected) = prefs.edit().putBoolean(FAVORITES_CUSTOM_ORDER_SELECTED, selected).apply()
var wasOverlaySnackbarConfirmed: Boolean var wasOverlaySnackbarConfirmed: Boolean
get() = prefs.getBoolean(WAS_OVERLAY_SNACKBAR_CONFIRMED, false) get() = prefs.getBoolean(WAS_OVERLAY_SNACKBAR_CONFIRMED, false)
set(wasOverlaySnackbarConfirmed) = prefs.edit().putBoolean(WAS_OVERLAY_SNACKBAR_CONFIRMED, wasOverlaySnackbarConfirmed).apply() set(wasOverlaySnackbarConfirmed) = prefs.edit().putBoolean(WAS_OVERLAY_SNACKBAR_CONFIRMED, wasOverlaySnackbarConfirmed).apply()
@@ -91,6 +77,10 @@ class Config(context: Context) : BaseConfig(context) {
get() = prefs.getBoolean(DIALPAD_VIBRATION, true) get() = prefs.getBoolean(DIALPAD_VIBRATION, true)
set(dialpadVibration) = prefs.edit().putBoolean(DIALPAD_VIBRATION, dialpadVibration).apply() set(dialpadVibration) = prefs.edit().putBoolean(DIALPAD_VIBRATION, dialpadVibration).apply()
var hideDialpadNumbers: Boolean
get() = prefs.getBoolean(HIDE_DIALPAD_NUMBERS, false)
set(hideDialpadNumbers) = prefs.edit().putBoolean(HIDE_DIALPAD_NUMBERS, hideDialpadNumbers).apply()
var dialpadBeeps: Boolean var dialpadBeeps: Boolean
get() = prefs.getBoolean(DIALPAD_BEEPS, true) get() = prefs.getBoolean(DIALPAD_BEEPS, true)
set(dialpadBeeps) = prefs.edit().putBoolean(DIALPAD_BEEPS, dialpadBeeps).apply() set(dialpadBeeps) = prefs.edit().putBoolean(DIALPAD_BEEPS, dialpadBeeps).apply()

View File

@@ -17,6 +17,7 @@ const val FAVORITES_CUSTOM_ORDER_SELECTED = "favorites_custom_order_selected"
const val WAS_OVERLAY_SNACKBAR_CONFIRMED = "was_overlay_snackbar_confirmed" const val WAS_OVERLAY_SNACKBAR_CONFIRMED = "was_overlay_snackbar_confirmed"
const val DIALPAD_VIBRATION = "dialpad_vibration" const val DIALPAD_VIBRATION = "dialpad_vibration"
const val DIALPAD_BEEPS = "dialpad_beeps" const val DIALPAD_BEEPS = "dialpad_beeps"
const val HIDE_DIALPAD_NUMBERS = "hide_dialpad_numbers"
const val ALWAYS_SHOW_FULLSCREEN = "always_show_fullscreen" const val ALWAYS_SHOW_FULLSCREEN = "always_show_fullscreen"
const val ALL_TABS_MASK = TAB_CONTACTS or TAB_FAVORITES or TAB_CALL_HISTORY const val ALL_TABS_MASK = TAB_CONTACTS or TAB_FAVORITES or TAB_CALL_HISTORY

View File

@@ -5,7 +5,7 @@ import android.content.Context
import android.provider.CallLog.Calls import android.provider.CallLog.Calls
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.commons.models.contacts.Contact
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.extensions.getAvailableSIMCardLabels import com.simplemobiletools.dialer.extensions.getAvailableSIMCardLabels
@@ -24,8 +24,8 @@ class RecentsHelper(private val context: Context) {
return@ensureBackgroundThread return@ensureBackgroundThread
} }
SimpleContactsHelper(context).getAvailableContacts(false) { contacts -> ContactsHelper(context).getContacts(showOnlyContactsWithNumbers = true) { contacts ->
val privateContacts = MyContactsContentProvider.getSimpleContacts(context, privateCursor) val privateContacts = MyContactsContentProvider.getContacts(context, privateCursor)
if (privateContacts.isNotEmpty()) { if (privateContacts.isNotEmpty()) {
contacts.addAll(privateContacts) contacts.addAll(privateContacts)
} }
@@ -36,7 +36,8 @@ class RecentsHelper(private val context: Context) {
} }
@SuppressLint("NewApi") @SuppressLint("NewApi")
private fun getRecents(contacts: ArrayList<SimpleContact>, groupSubsequentCalls: Boolean, callback: (ArrayList<RecentCall>) -> Unit) { private fun getRecents(contacts: ArrayList<Contact>, groupSubsequentCalls: Boolean, callback: (ArrayList<RecentCall>) -> Unit) {
var recentCalls = ArrayList<RecentCall>() var recentCalls = ArrayList<RecentCall>()
var previousRecentCallFrom = "" var previousRecentCallFrom = ""
var previousStartTS = 0 var previousStartTS = 0
@@ -96,11 +97,11 @@ class RecentsHelper(private val context: Context) {
} else { } else {
val normalizedNumber = number.normalizePhoneNumber() val normalizedNumber = number.normalizePhoneNumber()
if (normalizedNumber!!.length >= COMPARABLE_PHONE_NUMBER_LENGTH) { if (normalizedNumber!!.length >= COMPARABLE_PHONE_NUMBER_LENGTH) {
name = contacts.firstOrNull { contact -> name = contacts.filter { it.phoneNumbers.isNotEmpty() }.firstOrNull { contact ->
val curNumber = contact.phoneNumbers.first().normalizedNumber val curNumber = contact.phoneNumbers.first().normalizedNumber
if (curNumber.length >= COMPARABLE_PHONE_NUMBER_LENGTH) { if (curNumber.length >= COMPARABLE_PHONE_NUMBER_LENGTH) {
if (curNumber.substring(curNumber.length - COMPARABLE_PHONE_NUMBER_LENGTH) == normalizedNumber.substring(normalizedNumber.length - COMPARABLE_PHONE_NUMBER_LENGTH)) { if (curNumber.substring(curNumber.length - COMPARABLE_PHONE_NUMBER_LENGTH) == normalizedNumber.substring(normalizedNumber.length - COMPARABLE_PHONE_NUMBER_LENGTH)) {
contactsNumbersMap[number] = contact.name contactsNumbersMap[number] = contact.getNameToDisplay()
return@firstOrNull true return@firstOrNull true
} }
} }

View File

@@ -6,11 +6,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/conference_app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar <com.google.android.material.appbar.MaterialToolbar
android:id="@+id/conference_toolbar" android:id="@+id/conference_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -19,16 +14,14 @@
app:title="@string/conference" app:title="@string/conference"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" /> app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout <FrameLayout
android:id="@+id/conference_frame" android:id="@+id/conference_frame"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"> android:layout_marginTop="?attr/actionBarSize">
<com.simplemobiletools.commons.views.MyRecyclerView <com.simplemobiletools.commons.views.MyRecyclerView
android:id="@+id/conference_calls_list" android:id="@+id/conference_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:clipToPadding="false" android:clipToPadding="false"

View File

@@ -5,11 +5,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/dialpad_app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar <com.google.android.material.appbar.MaterialToolbar
android:id="@+id/dialpad_toolbar" android:id="@+id/dialpad_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -19,15 +14,13 @@
app:title="@string/dialpad" app:title="@string/dialpad"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" /> app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/dialpad_holder" android:id="@+id/dialpad_holder"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:focusableInTouchMode="true" android:layout_marginTop="?attr/actionBarSize"
app:layout_behavior="@string/appbar_scrolling_view_behavior"> android:focusableInTouchMode="true">
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/dialpad_placeholder" android:id="@+id/dialpad_placeholder"
@@ -86,7 +79,7 @@
android:id="@+id/dialpad_input" android:id="@+id/dialpad_input"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/activity_margin" android:layout_marginStart="64dp"
android:gravity="center" android:gravity="center"
android:inputType="phone" android:inputType="phone"
android:layoutDirection="ltr" android:layoutDirection="ltr"
@@ -98,13 +91,13 @@
<ImageView <ImageView
android:id="@+id/dialpad_clear_char" android:id="@+id/dialpad_clear_char"
android:layout_width="wrap_content" android:layout_width="@dimen/normal_icon_size"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginEnd="@dimen/activity_margin" android:layout_marginEnd="@dimen/activity_margin"
android:background="?attr/selectableItemBackgroundBorderless" android:background="?attr/selectableItemBackgroundBorderless"
android:layoutDirection="ltr" android:layoutDirection="ltr"
android:paddingStart="@dimen/activity_margin" android:paddingStart="@dimen/normal_margin"
android:paddingEnd="@dimen/activity_margin" android:paddingEnd="@dimen/normal_margin"
android:src="@drawable/ic_clear_vector" android:src="@drawable/ic_clear_vector"
app:layout_constraintBottom_toBottomOf="@+id/dialpad_input" app:layout_constraintBottom_toBottomOf="@+id/dialpad_input"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@@ -122,7 +115,7 @@
android:layout_width="@dimen/dialpad_button_size" android:layout_width="@dimen/dialpad_button_size"
android:layout_height="@dimen/dialpad_button_size" android:layout_height="@dimen/dialpad_button_size"
android:layout_marginBottom="@dimen/activity_margin" android:layout_marginBottom="@dimen/activity_margin"
android:background="@drawable/circle_background" android:background="@drawable/circle_button_background_ripple"
android:contentDescription="@string/call_number" android:contentDescription="@string/call_number"
android:elevation="@dimen/medium_margin" android:elevation="@dimen/medium_margin"
android:padding="@dimen/normal_margin" android:padding="@dimen/normal_margin"
@@ -136,7 +129,7 @@
android:layout_width="@dimen/dialpad_button_size_small" android:layout_width="@dimen/dialpad_button_size_small"
android:layout_height="@dimen/dialpad_button_size_small" android:layout_height="@dimen/dialpad_button_size_small"
android:layout_marginBottom="@dimen/activity_margin" android:layout_marginBottom="@dimen/activity_margin"
android:background="@drawable/circle_background" android:background="@drawable/circle_button_background_ripple"
android:contentDescription="@string/call_number" android:contentDescription="@string/call_number"
android:elevation="@dimen/medium_margin" android:elevation="@dimen/medium_margin"
android:padding="@dimen/normal_margin" android:padding="@dimen/normal_margin"

View File

@@ -5,27 +5,18 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout <com.simplemobiletools.commons.views.MySearchMenu
android:id="@+id/main_app_bar_layout" android:id="@+id/main_menu"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content" />
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/main_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:menu="@menu/menu"
app:title="@string/app_launcher_name"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main_holder" android:id="@+id/main_holder"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"> android:layout_marginTop="?attr/actionBarSize"
android:fillViewport="true"
android:scrollbars="none">
<com.simplemobiletools.commons.views.MyViewPager <com.simplemobiletools.commons.views.MyViewPager
android:id="@+id/view_pager" android:id="@+id/view_pager"

View File

@@ -6,11 +6,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/manage_speed_dial_app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar <com.google.android.material.appbar.MaterialToolbar
android:id="@+id/manage_speed_dial_toolbar" android:id="@+id/manage_speed_dial_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -19,16 +14,16 @@
app:title="@string/manage_speed_dial" app:title="@string/manage_speed_dial"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" /> app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
</com.google.android.material.appbar.AppBarLayout> <androidx.core.widget.NestedScrollView
<ScrollView
android:id="@+id/manage_speed_dial_scrollview" android:id="@+id/manage_speed_dial_scrollview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"> android:layout_marginTop="?attr/actionBarSize"
android:fillViewport="true"
android:scrollbars="none">
<LinearLayout <LinearLayout
android:id="@+id/manage_speed_dial_wrapper" android:id="@+id/manage_speed_dial_holder"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
@@ -51,5 +46,5 @@
app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager" /> app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager" />
</LinearLayout> </LinearLayout>
</ScrollView> </androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -6,29 +6,21 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/settings_app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar <com.google.android.material.appbar.MaterialToolbar
android:id="@+id/settings_toolbar" android:id="@+id/settings_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary" android:background="@color/color_primary"
app:layout_scrollFlags="scroll|enterAlways"
app:title="@string/settings" app:title="@string/settings"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" /> app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
android:id="@+id/settings_scrollview" android:id="@+id/settings_nested_scrollview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="?attr/actionBarSize"
android:fillViewport="true" android:fillViewport="true"
android:scrollbars="none" android:scrollbars="none">
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout <LinearLayout
android:id="@+id/settings_holder" android:id="@+id/settings_holder"
@@ -37,36 +29,32 @@
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/settings_color_customization_label" android:id="@+id/settings_color_customization_section_label"
style="@style/SettingsSectionLabelStyle" style="@style/SettingsSectionLabelStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/color_customization" /> android:text="@string/color_customization" />
<LinearLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/settings_color_customization_holder" android:id="@+id/settings_color_customization_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/medium_margin"
android:background="@drawable/section_holder_stroke"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/settings_customize_colors_holder"
style="@style/SettingsHolderTextViewOneLinerStyle" style="@style/SettingsHolderTextViewOneLinerStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_all_corners">
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_customize_colors_label" android:id="@+id/settings_color_customization_label"
style="@style/SettingsTextLabelStyle" style="@style/SettingsTextLabelStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/customize_colors" /> android:text="@string/customize_colors"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</RelativeLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<include
android:id="@+id/settings_color_customization_divider"
layout="@layout/divider" />
<TextView <TextView
android:id="@+id/settings_general_settings_label" android:id="@+id/settings_general_settings_label"
@@ -75,20 +63,11 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/general_settings" /> android:text="@string/general_settings" />
<LinearLayout
android:id="@+id/settings_general_settings_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/medium_margin"
android:background="@drawable/section_holder_stroke"
android:orientation="vertical">
<RelativeLayout <RelativeLayout
android:id="@+id/settings_purchase_thank_you_holder" android:id="@+id/settings_purchase_thank_you_holder"
style="@style/SettingsHolderTextViewOneLinerStyle" style="@style/SettingsHolderTextViewOneLinerStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_top_corners">
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_purchase_thank_you_label" android:id="@+id/settings_purchase_thank_you_label"
@@ -103,8 +82,7 @@
android:id="@+id/settings_use_english_holder" android:id="@+id/settings_use_english_holder"
style="@style/SettingsHolderCheckboxStyle" style="@style/SettingsHolderCheckboxStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_background">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox <com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/settings_use_english" android:id="@+id/settings_use_english"
@@ -119,8 +97,7 @@
android:id="@+id/settings_language_holder" android:id="@+id/settings_language_holder"
style="@style/SettingsHolderTextViewStyle" style="@style/SettingsHolderTextViewStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_background">
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_language_label" android:id="@+id/settings_language_label"
@@ -143,8 +120,7 @@
android:id="@+id/settings_manage_blocked_numbers_holder" android:id="@+id/settings_manage_blocked_numbers_holder"
style="@style/SettingsHolderTextViewOneLinerStyle" style="@style/SettingsHolderTextViewOneLinerStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_background">
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_manage_blocked_numbers_label" android:id="@+id/settings_manage_blocked_numbers_label"
@@ -159,8 +135,7 @@
android:id="@+id/settings_change_date_time_format_holder" android:id="@+id/settings_change_date_time_format_holder"
style="@style/SettingsHolderTextViewOneLinerStyle" style="@style/SettingsHolderTextViewOneLinerStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_background">
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_change_date_time_format_label" android:id="@+id/settings_change_date_time_format_label"
@@ -175,8 +150,7 @@
android:id="@+id/settings_manage_speed_dial_holder" android:id="@+id/settings_manage_speed_dial_holder"
style="@style/SettingsHolderTextViewOneLinerStyle" style="@style/SettingsHolderTextViewOneLinerStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_background">
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_manage_speed_dial_label" android:id="@+id/settings_manage_speed_dial_label"
@@ -191,8 +165,7 @@
android:id="@+id/settings_font_size_holder" android:id="@+id/settings_font_size_holder"
style="@style/SettingsHolderTextViewStyle" style="@style/SettingsHolderTextViewStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_background">
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_font_size_label" android:id="@+id/settings_font_size_label"
@@ -215,8 +188,7 @@
android:id="@+id/settings_start_name_with_surname_holder" android:id="@+id/settings_start_name_with_surname_holder"
style="@style/SettingsHolderCheckboxStyle" style="@style/SettingsHolderCheckboxStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_background">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox <com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/settings_start_name_with_surname" android:id="@+id/settings_start_name_with_surname"
@@ -227,12 +199,26 @@
</RelativeLayout> </RelativeLayout>
<RelativeLayout
android:id="@+id/settings_hide_dialpad_numbers_holder"
style="@style/SettingsHolderCheckboxStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/settings_hide_dialpad_numbers"
style="@style/SettingsCheckboxStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/hide_dialpad_numbers" />
</RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/settings_dialpad_vibration_holder" android:id="@+id/settings_dialpad_vibration_holder"
style="@style/SettingsHolderCheckboxStyle" style="@style/SettingsHolderCheckboxStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_background">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox <com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/settings_dialpad_vibration" android:id="@+id/settings_dialpad_vibration"
@@ -247,8 +233,7 @@
android:id="@+id/settings_dialpad_beeps_holder" android:id="@+id/settings_dialpad_beeps_holder"
style="@style/SettingsHolderCheckboxStyle" style="@style/SettingsHolderCheckboxStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_bottom_corners">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox <com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/settings_dialpad_beeps" android:id="@+id/settings_dialpad_beeps"
@@ -258,7 +243,10 @@
android:text="@string/dialpad_beeps" /> android:text="@string/dialpad_beeps" />
</RelativeLayout> </RelativeLayout>
</LinearLayout>
<include
android:id="@+id/settings_general_settings_divider"
layout="@layout/divider" />
<TextView <TextView
android:id="@+id/settings_startup_label" android:id="@+id/settings_startup_label"
@@ -267,20 +255,11 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/startup" /> android:text="@string/startup" />
<LinearLayout
android:id="@+id/settings_startup_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/medium_margin"
android:background="@drawable/section_holder_stroke"
android:orientation="vertical">
<RelativeLayout <RelativeLayout
android:id="@+id/settings_manage_tabs_holder" android:id="@+id/settings_manage_tabs_holder"
style="@style/SettingsHolderTextViewOneLinerStyle" style="@style/SettingsHolderTextViewOneLinerStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_top_corners">
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_manage_tabs" android:id="@+id/settings_manage_tabs"
@@ -295,8 +274,7 @@
android:id="@+id/settings_default_tab_holder" android:id="@+id/settings_default_tab_holder"
style="@style/SettingsHolderTextViewStyle" style="@style/SettingsHolderTextViewStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_background">
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_default_tab_label" android:id="@+id/settings_default_tab_label"
@@ -319,8 +297,7 @@
android:id="@+id/settings_open_dialpad_at_launch_holder" android:id="@+id/settings_open_dialpad_at_launch_holder"
style="@style/SettingsHolderCheckboxStyle" style="@style/SettingsHolderCheckboxStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_bottom_corners">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox <com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/settings_open_dialpad_at_launch" android:id="@+id/settings_open_dialpad_at_launch"
@@ -330,7 +307,10 @@
android:text="@string/open_dialpad_by_default" /> android:text="@string/open_dialpad_by_default" />
</RelativeLayout> </RelativeLayout>
</LinearLayout>
<include
android:id="@+id/settings_startup_divider"
layout="@layout/divider" />
<TextView <TextView
android:id="@+id/settings_calls_label" android:id="@+id/settings_calls_label"
@@ -339,20 +319,11 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/calls" /> android:text="@string/calls" />
<LinearLayout
android:id="@+id/settings_calls_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/medium_margin"
android:background="@drawable/section_holder_stroke"
android:orientation="vertical">
<RelativeLayout <RelativeLayout
android:id="@+id/settings_group_subsequent_calls_holder" android:id="@+id/settings_group_subsequent_calls_holder"
style="@style/SettingsHolderCheckboxStyle" style="@style/SettingsHolderCheckboxStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_top_corners">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox <com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/settings_group_subsequent_calls" android:id="@+id/settings_group_subsequent_calls"
@@ -367,8 +338,7 @@
android:id="@+id/settings_show_call_confirmation_holder" android:id="@+id/settings_show_call_confirmation_holder"
style="@style/SettingsHolderCheckboxStyle" style="@style/SettingsHolderCheckboxStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_background">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox <com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/settings_show_call_confirmation" android:id="@+id/settings_show_call_confirmation"
@@ -383,8 +353,7 @@
android:id="@+id/settings_disable_proximity_sensor_holder" android:id="@+id/settings_disable_proximity_sensor_holder"
style="@style/SettingsHolderCheckboxStyle" style="@style/SettingsHolderCheckboxStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_background">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox <com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/settings_disable_proximity_sensor" android:id="@+id/settings_disable_proximity_sensor"
@@ -399,8 +368,7 @@
android:id="@+id/settings_disable_swipe_to_answer_holder" android:id="@+id/settings_disable_swipe_to_answer_holder"
style="@style/SettingsHolderCheckboxStyle" style="@style/SettingsHolderCheckboxStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_background">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox <com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/settings_disable_swipe_to_answer" android:id="@+id/settings_disable_swipe_to_answer"
@@ -415,8 +383,7 @@
android:id="@+id/settings_always_show_fullscreen_holder" android:id="@+id/settings_always_show_fullscreen_holder"
style="@style/SettingsHolderCheckboxStyle" style="@style/SettingsHolderCheckboxStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@drawable/ripple_bottom_corners">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox <com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/settings_always_show_fullscreen" android:id="@+id/settings_always_show_fullscreen"
@@ -427,6 +394,5 @@
</RelativeLayout> </RelativeLayout>
</LinearLayout> </LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView> </androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -19,23 +19,54 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/medium_margin"> android:layout_marginBottom="@dimen/medium_margin">
<com.simplemobiletools.commons.views.MyCompatRadioButton
android:id="@+id/sorting_dialog_radio_first_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/medium_margin"
android:paddingBottom="@dimen/medium_margin"
android:text="@string/first_name" />
<com.simplemobiletools.commons.views.MyCompatRadioButton
android:id="@+id/sorting_dialog_radio_middle_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/medium_margin"
android:paddingBottom="@dimen/medium_margin"
android:text="@string/middle_name" />
<com.simplemobiletools.commons.views.MyCompatRadioButton
android:id="@+id/sorting_dialog_radio_surname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/medium_margin"
android:paddingBottom="@dimen/medium_margin"
android:text="@string/surname" />
<com.simplemobiletools.commons.views.MyCompatRadioButton <com.simplemobiletools.commons.views.MyCompatRadioButton
android:id="@+id/sorting_dialog_radio_full_name" android:id="@+id/sorting_dialog_radio_full_name"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/medium_margin"
android:paddingBottom="@dimen/medium_margin"
android:text="@string/full_name" /> android:text="@string/full_name" />
<com.simplemobiletools.commons.views.MyCompatRadioButton <com.simplemobiletools.commons.views.MyCompatRadioButton
android:id="@+id/sorting_dialog_radio_date_created" android:id="@+id/sorting_dialog_radio_date_created"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/medium_margin"
android:paddingBottom="@dimen/medium_margin"
android:text="@string/date_created" /> android:text="@string/date_created" />
<com.simplemobiletools.commons.views.MyCompatRadioButton <com.simplemobiletools.commons.views.MyCompatRadioButton
android:id="@+id/sorting_dialog_radio_custom" android:id="@+id/sorting_dialog_radio_custom"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/medium_margin"
android:paddingBottom="@dimen/medium_margin"
android:text="@string/custom" /> android:text="@string/custom" />
</RadioGroup> </RadioGroup>
<include <include
@@ -53,12 +84,16 @@
android:id="@+id/sorting_dialog_radio_ascending" android:id="@+id/sorting_dialog_radio_ascending"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/medium_margin"
android:paddingBottom="@dimen/medium_margin"
android:text="@string/ascending" /> android:text="@string/ascending" />
<com.simplemobiletools.commons.views.MyCompatRadioButton <com.simplemobiletools.commons.views.MyCompatRadioButton
android:id="@+id/sorting_dialog_radio_descending" android:id="@+id/sorting_dialog_radio_descending"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/medium_margin"
android:paddingBottom="@dimen/medium_margin"
android:text="@string/descending" /> android:text="@string/descending" />
</RadioGroup> </RadioGroup>
</LinearLayout> </LinearLayout>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<com.simplemobiletools.commons.views.MyRecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/filter_contact_sources_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:overScrollMode="never"
android:paddingTop="@dimen/medium_margin"
app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager" />

View File

@@ -8,15 +8,16 @@
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:focusableInTouchMode="true" android:focusableInTouchMode="true"
android:layoutDirection="ltr" android:layoutDirection="ltr"
android:paddingStart="@dimen/medium_margin"
android:paddingTop="@dimen/medium_margin" android:paddingTop="@dimen/medium_margin"
android:paddingEnd="@dimen/medium_margin"
tools:ignore="HardcodedText"> tools:ignore="HardcodedText">
<RelativeLayout <RelativeLayout
android:id="@+id/dialpad_1_holder" android:id="@+id/dialpad_1_holder"
style="@style/DialpadButtonStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginStart="@dimen/activity_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/one" android:contentDescription="@string/one"
app:layout_constraintBottom_toBottomOf="@+id/dialpad_2_holder" app:layout_constraintBottom_toBottomOf="@+id/dialpad_2_holder"
app:layout_constraintEnd_toStartOf="@+id/dialpad_2_holder" app:layout_constraintEnd_toStartOf="@+id/dialpad_2_holder"
@@ -29,16 +30,16 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="1" /> android:text="1" />
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/dialpad_2_holder" android:id="@+id/dialpad_2_holder"
style="@style/DialpadButtonStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/medium_margin" android:layout_marginBottom="@dimen/medium_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/two" android:contentDescription="@string/two"
app:layout_constraintBottom_toTopOf="@+id/dialpad_5_holder" app:layout_constraintBottom_toTopOf="@+id/dialpad_5_holder"
app:layout_constraintEnd_toStartOf="@+id/dialpad_3_holder" app:layout_constraintEnd_toStartOf="@+id/dialpad_3_holder"
@@ -49,7 +50,6 @@
style="@style/DialpadNumberStyle" style="@style/DialpadNumberStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="2" /> android:text="2" />
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
@@ -58,18 +58,15 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/dialpad_2" android:layout_below="@+id/dialpad_2"
android:layout_centerHorizontal="true" android:layout_marginBottom="@dimen/small_margin"
android:layout_marginBottom="@dimen/medium_margin"
android:gravity="center_horizontal"
android:text="ABC" /> android:text="ABC" />
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/dialpad_3_holder" android:id="@+id/dialpad_3_holder"
style="@style/DialpadButtonStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginEnd="@dimen/activity_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/three" android:contentDescription="@string/three"
app:layout_constraintBottom_toBottomOf="@+id/dialpad_2_holder" app:layout_constraintBottom_toBottomOf="@+id/dialpad_2_holder"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@@ -81,7 +78,6 @@
style="@style/DialpadNumberStyle" style="@style/DialpadNumberStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="3" /> android:text="3" />
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
@@ -90,18 +86,14 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/dialpad_3" android:layout_below="@+id/dialpad_3"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/medium_margin"
android:gravity="center_horizontal"
android:text="DEF" /> android:text="DEF" />
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/dialpad_4_holder" android:id="@+id/dialpad_4_holder"
style="@style/DialpadButtonStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginStart="@dimen/activity_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/four" android:contentDescription="@string/four"
app:layout_constraintBottom_toBottomOf="@+id/dialpad_5_holder" app:layout_constraintBottom_toBottomOf="@+id/dialpad_5_holder"
app:layout_constraintEnd_toStartOf="@+id/dialpad_5_holder" app:layout_constraintEnd_toStartOf="@+id/dialpad_5_holder"
@@ -113,7 +105,6 @@
style="@style/DialpadNumberStyle" style="@style/DialpadNumberStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="4" /> android:text="4" />
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
@@ -122,18 +113,15 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/dialpad_4" android:layout_below="@+id/dialpad_4"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/medium_margin"
android:gravity="center_horizontal"
android:text="GHI" /> android:text="GHI" />
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/dialpad_5_holder" android:id="@+id/dialpad_5_holder"
style="@style/DialpadButtonStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/medium_margin" android:layout_marginBottom="@dimen/medium_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/five" android:contentDescription="@string/five"
app:layout_constraintBottom_toTopOf="@+id/dialpad_8_holder" app:layout_constraintBottom_toTopOf="@+id/dialpad_8_holder"
app:layout_constraintEnd_toStartOf="@+id/dialpad_6_holder" app:layout_constraintEnd_toStartOf="@+id/dialpad_6_holder"
@@ -144,7 +132,6 @@
style="@style/DialpadNumberStyle" style="@style/DialpadNumberStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="5" /> android:text="5" />
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
@@ -153,18 +140,15 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/dialpad_5" android:layout_below="@+id/dialpad_5"
android:layout_centerHorizontal="true" android:layout_marginBottom="@dimen/small_margin"
android:layout_marginBottom="@dimen/medium_margin"
android:gravity="center_horizontal"
android:text="JKL" /> android:text="JKL" />
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/dialpad_6_holder" android:id="@+id/dialpad_6_holder"
style="@style/DialpadButtonStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginEnd="@dimen/activity_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/six" android:contentDescription="@string/six"
app:layout_constraintBottom_toBottomOf="@+id/dialpad_5_holder" app:layout_constraintBottom_toBottomOf="@+id/dialpad_5_holder"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@@ -176,7 +160,6 @@
style="@style/DialpadNumberStyle" style="@style/DialpadNumberStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="6" /> android:text="6" />
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
@@ -185,18 +168,14 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/dialpad_6" android:layout_below="@+id/dialpad_6"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/medium_margin"
android:gravity="center_horizontal"
android:text="MNO" /> android:text="MNO" />
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/dialpad_7_holder" android:id="@+id/dialpad_7_holder"
style="@style/DialpadButtonStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginStart="@dimen/activity_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/seven" android:contentDescription="@string/seven"
app:layout_constraintBottom_toBottomOf="@+id/dialpad_8_holder" app:layout_constraintBottom_toBottomOf="@+id/dialpad_8_holder"
app:layout_constraintEnd_toStartOf="@+id/dialpad_8_holder" app:layout_constraintEnd_toStartOf="@+id/dialpad_8_holder"
@@ -208,7 +187,6 @@
style="@style/DialpadNumberStyle" style="@style/DialpadNumberStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="7" /> android:text="7" />
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
@@ -217,18 +195,15 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/dialpad_7" android:layout_below="@+id/dialpad_7"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/medium_margin"
android:gravity="center_horizontal"
android:text="PQRS" /> android:text="PQRS" />
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/dialpad_8_holder" android:id="@+id/dialpad_8_holder"
style="@style/DialpadButtonStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/medium_margin" android:layout_marginBottom="@dimen/medium_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/eight" android:contentDescription="@string/eight"
app:layout_constraintBottom_toTopOf="@+id/dialpad_0_holder" app:layout_constraintBottom_toTopOf="@+id/dialpad_0_holder"
app:layout_constraintEnd_toStartOf="@+id/dialpad_9_holder" app:layout_constraintEnd_toStartOf="@+id/dialpad_9_holder"
@@ -239,7 +214,6 @@
style="@style/DialpadNumberStyle" style="@style/DialpadNumberStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="8" /> android:text="8" />
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
@@ -248,18 +222,15 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/dialpad_8" android:layout_below="@+id/dialpad_8"
android:layout_centerHorizontal="true" android:layout_marginBottom="@dimen/small_margin"
android:layout_marginBottom="@dimen/medium_margin"
android:gravity="center_horizontal"
android:text="TUV" /> android:text="TUV" />
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/dialpad_9_holder" android:id="@+id/dialpad_9_holder"
style="@style/DialpadButtonStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginEnd="@dimen/activity_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/nine" android:contentDescription="@string/nine"
app:layout_constraintBottom_toBottomOf="@+id/dialpad_8_holder" app:layout_constraintBottom_toBottomOf="@+id/dialpad_8_holder"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@@ -271,7 +242,6 @@
style="@style/DialpadNumberStyle" style="@style/DialpadNumberStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="9" /> android:text="9" />
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
@@ -280,18 +250,14 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/dialpad_9" android:layout_below="@+id/dialpad_9"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/medium_margin"
android:gravity="center_horizontal"
android:text="WXYZ" /> android:text="WXYZ" />
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/dialpad_asterisk_holder" android:id="@+id/dialpad_asterisk_holder"
style="@style/DialpadButtonStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginStart="@dimen/activity_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/asterisk" android:contentDescription="@string/asterisk"
app:layout_constraintBottom_toBottomOf="@+id/dialpad_0_holder" app:layout_constraintBottom_toBottomOf="@+id/dialpad_0_holder"
app:layout_constraintEnd_toStartOf="@+id/dialpad_0_holder" app:layout_constraintEnd_toStartOf="@+id/dialpad_0_holder"
@@ -303,17 +269,16 @@
style="@style/DialpadNumberStyle" style="@style/DialpadNumberStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentTop="true" android:layout_centerInParent="true"
android:layout_centerHorizontal="true"
android:text="*" /> android:text="*" />
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/dialpad_0_holder" android:id="@+id/dialpad_0_holder"
style="@style/DialpadButtonStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/activity_margin" android:layout_marginBottom="@dimen/medium_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/zero" android:contentDescription="@string/zero"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/dialpad_hashtag_holder" app:layout_constraintEnd_toStartOf="@+id/dialpad_hashtag_holder"
@@ -324,31 +289,46 @@
style="@style/DialpadNumberStyle" style="@style/DialpadNumberStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="0" /> android:text="0" />
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/dialpad_plus" android:id="@+id/dialpad_plus_letters"
style="@style/DialpadLetterStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@+id/dialpad_0" android:layout_below="@+id/dialpad_0"
android:layout_alignBottom="@+id/dialpad_0" android:layout_marginBottom="@dimen/small_margin"
android:layout_centerHorizontal="true" android:text="+" />
android:layout_toEndOf="@+id/dialpad_0"
android:gravity="center" </RelativeLayout>
android:paddingStart="@dimen/small_margin"
android:paddingTop="@dimen/small_margin" <RelativeLayout
android:text="+" android:id="@+id/dialpad_plus_holder"
android:textSize="@dimen/actionbar_text_size" /> style="@style/DialpadButtonStyle"
android:layout_width="0dp"
android:layout_height="0dp"
android:contentDescription="@string/zero"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/dialpad_0_holder"
app:layout_constraintEnd_toStartOf="@+id/dialpad_hashtag_holder"
app:layout_constraintStart_toEndOf="@+id/dialpad_asterisk_holder"
app:layout_constraintTop_toTopOf="@+id/dialpad_0_holder">
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/dialpad_plus_alt"
style="@style/DialpadNumberStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="+" />
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/dialpad_hashtag_holder" android:id="@+id/dialpad_hashtag_holder"
style="@style/DialpadButtonStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginEnd="@dimen/activity_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/hashtag" android:contentDescription="@string/hashtag"
app:layout_constraintBottom_toBottomOf="@+id/dialpad_0_holder" app:layout_constraintBottom_toBottomOf="@+id/dialpad_0_holder"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@@ -360,8 +340,8 @@
style="@style/DialpadNumberStyle" style="@style/DialpadNumberStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true" android:layout_centerInParent="true"
android:layout_marginEnd="@dimen/activity_margin"
android:text="#" /> android:text="#" />
</RelativeLayout> </RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/filter_contact_source_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:paddingStart="@dimen/normal_margin"
android:paddingTop="@dimen/small_margin"
android:paddingEnd="@dimen/normal_margin"
android:paddingBottom="@dimen/small_margin">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/filter_contact_source_checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/medium_margin"
android:background="@null"
android:clickable="false"
android:paddingStart="@dimen/small_margin" />
</RelativeLayout>

View File

@@ -17,7 +17,7 @@
android:layout_width="@dimen/normal_icon_size" android:layout_width="@dimen/normal_icon_size"
android:layout_height="@dimen/normal_icon_size" android:layout_height="@dimen/normal_icon_size"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginStart="@dimen/small_margin" android:layout_marginStart="@dimen/normal_margin"
android:layout_marginEnd="@dimen/small_margin" android:layout_marginEnd="@dimen/small_margin"
android:padding="@dimen/small_margin" android:padding="@dimen/small_margin"
android:src="@drawable/ic_person_vector" android:src="@drawable/ic_person_vector"
@@ -34,6 +34,8 @@
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
android:textSize="@dimen/bigger_text_size" android:textSize="@dimen/bigger_text_size"
android:textDirection="locale"
android:textAlignment="viewStart"
app:layout_constraintBottom_toTopOf="@id/item_recents_date_time" app:layout_constraintBottom_toTopOf="@id/item_recents_date_time"
app:layout_constraintEnd_toStartOf="@+id/overflow_menu_icon" app:layout_constraintEnd_toStartOf="@+id/overflow_menu_icon"
app:layout_constraintStart_toEndOf="@+id/item_recents_image" app:layout_constraintStart_toEndOf="@+id/item_recents_image"
@@ -81,7 +83,6 @@
android:src="@drawable/ic_incoming_call_vector" android:src="@drawable/ic_incoming_call_vector"
app:layout_constraintBottom_toBottomOf="@+id/item_recents_date_time" app:layout_constraintBottom_toBottomOf="@+id/item_recents_date_time"
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toStartOf="@id/item_recents_date_time"
app:layout_constraintStart_toEndOf="@+id/item_recents_sim_image" app:layout_constraintStart_toEndOf="@+id/item_recents_sim_image"
app:layout_constraintTop_toTopOf="@+id/item_recents_date_time" /> app:layout_constraintTop_toTopOf="@+id/item_recents_date_time" />

View File

@@ -2,7 +2,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
tools:ignore="AppCompatResource"> tools:ignore="AppCompatResource,AlwaysShowAction">
<item <item
android:id="@+id/cab_call_sim_1" android:id="@+id/cab_call_sim_1"
android:icon="@drawable/ic_phone_one_vector" android:icon="@drawable/ic_phone_one_vector"
@@ -16,16 +16,19 @@
<item <item
android:id="@+id/cab_delete" android:id="@+id/cab_delete"
android:icon="@drawable/ic_delete_vector" android:icon="@drawable/ic_delete_vector"
android:showAsAction="always"
android:title="@string/delete" android:title="@string/delete"
app:showAsAction="always" /> app:showAsAction="always" />
<item <item
android:id="@+id/cab_view_details" android:id="@+id/cab_view_details"
android:icon="@drawable/ic_view_contact_details_vector" android:icon="@drawable/ic_view_contact_details_vector"
android:showAsAction="always"
android:title="@string/view_contact_details" android:title="@string/view_contact_details"
app:showAsAction="always" /> app:showAsAction="always" />
<item <item
android:id="@+id/cab_send_sms" android:id="@+id/cab_send_sms"
android:icon="@drawable/ic_sms_vector" android:icon="@drawable/ic_sms_vector"
android:showAsAction="always"
android:title="@string/send_sms" android:title="@string/send_sms"
app:showAsAction="always" /> app:showAsAction="always" />
<item <item

View File

@@ -2,7 +2,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
tools:ignore="AppCompatResource"> tools:ignore="AppCompatResource,AlwaysShowAction">
<item <item
android:id="@+id/cab_call_sim_1" android:id="@+id/cab_call_sim_1"
android:icon="@drawable/ic_phone_one_vector" android:icon="@drawable/ic_phone_one_vector"
@@ -16,21 +16,25 @@
<item <item
android:id="@+id/cab_remove" android:id="@+id/cab_remove"
android:icon="@drawable/ic_delete_vector" android:icon="@drawable/ic_delete_vector"
android:showAsAction="always"
android:title="@string/delete" android:title="@string/delete"
app:showAsAction="always" /> app:showAsAction="always" />
<item <item
android:id="@+id/cab_view_details" android:id="@+id/cab_view_details"
android:icon="@drawable/ic_view_contact_details_vector" android:icon="@drawable/ic_view_contact_details_vector"
android:showAsAction="always"
android:title="@string/view_contact_details" android:title="@string/view_contact_details"
app:showAsAction="always" /> app:showAsAction="always" />
<item <item
android:id="@+id/cab_add_number" android:id="@+id/cab_add_number"
android:icon="@drawable/ic_add_person_vector" android:icon="@drawable/ic_add_person_vector"
android:showAsAction="always"
android:title="@string/add_number_to_contact" android:title="@string/add_number_to_contact"
app:showAsAction="always" /> app:showAsAction="always" />
<item <item
android:id="@+id/cab_send_sms" android:id="@+id/cab_send_sms"
android:icon="@drawable/ic_sms_vector" android:icon="@drawable/ic_sms_vector"
android:showAsAction="always"
android:title="@string/send_sms" android:title="@string/send_sms"
app:showAsAction="always" /> app:showAsAction="always" />
<item <item

View File

@@ -1,17 +1,19 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto"
<item xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/search" tools:ignore="AlwaysShowAction,AppCompatResource">
android:icon="@drawable/ic_search_vector"
android:title="@string/search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="collapseActionView|always" />
<item <item
android:id="@+id/sort" android:id="@+id/sort"
android:icon="@drawable/ic_sort_vector" android:icon="@drawable/ic_sort_vector"
android:showAsAction="always"
android:title="@string/sort_by" android:title="@string/sort_by"
app:showAsAction="always" /> app:showAsAction="always" />
<item
android:id="@+id/filter"
android:icon="@drawable/ic_filter_vector"
android:title="@string/filter"
app:showAsAction="always" />
<item <item
android:id="@+id/create_new_contact" android:id="@+id/create_new_contact"
android:icon="@drawable/ic_plus_vector" android:icon="@drawable/ic_plus_vector"
@@ -21,12 +23,7 @@
android:id="@+id/clear_call_history" android:id="@+id/clear_call_history"
android:icon="@drawable/ic_delete_vector" android:icon="@drawable/ic_delete_vector"
android:title="@string/clear_call_history" android:title="@string/clear_call_history"
app:showAsAction="ifRoom" /> app:showAsAction="always" />
<item
android:id="@+id/more_apps_from_us"
android:showAsAction="never"
android:title="@string/more_apps_from_us"
app:showAsAction="never" />
<item <item
android:id="@+id/settings" android:id="@+id/settings"
android:icon="@drawable/ic_settings_cog_vector" android:icon="@drawable/ic_settings_cog_vector"
@@ -37,4 +34,9 @@
android:icon="@drawable/ic_info_vector" android:icon="@drawable/ic_info_vector"
android:title="@string/about" android:title="@string/about"
app:showAsAction="ifRoom" /> app:showAsAction="ifRoom" />
<item
android:id="@+id/more_apps_from_us"
android:icon="@drawable/ic_google_play_vector"
android:title="@string/more_apps_from_us"
app:showAsAction="ifRoom" />
</menu> </menu>

View File

@@ -1,78 +1,80 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Simple Dialer</string> <string name="app_name">الهاتف المبسط</string>
<string name="app_launcher_name">Dialer</string> <string name="app_launcher_name">الهاتف</string>
<string name="default_phone_app_prompt">Please make this app the default Phone app</string> <string name="default_phone_app_prompt">الرجاء جعل هذا التطبيق هو تطبيق الهاتف الافتراضي</string>
<string name="allow_displaying_over_other_apps">Please allow displaying over other apps for reliable behaviour</string> <string name="allow_displaying_over_other_apps">الرجاء السماح بالعرض فوق التطبيقات الأخرى للحصول على سلوك موثوق</string>
<!-- Contacts --> <!-- Contacts -->
<string name="could_not_access_contacts">Could not access your contacts</string> <string name="could_not_access_contacts">تعذر الوصول إلى جهات الاتصال</string>
<!-- Recents --> <!-- Recents -->
<string name="no_previous_calls">No previous calls have been found</string> <string name="no_previous_calls">لاتوجد مكالمات سابقة</string>
<string name="could_not_access_the_call_history">Could not access the call history</string> <string name="could_not_access_the_call_history">تعذر الوصول إلى سجل المكالمات</string>
<string name="request_access">Request access</string> <string name="request_access">طلب الوصول</string>
<string name="remove_confirmation">Are you sure you want to remove the selected items from the Call History\?</string> <string name="remove_confirmation">هل أنت متأكد من إزالة العناصر المحددة من سجل المكالمات؟</string>
<string name="clear_history_confirmation">Are you sure you want to remove everything from the Call History\?</string> <string name="clear_history_confirmation">هل أنت متأكد من إزالة كامل سجل المكالمات؟</string>
<string name="show_grouped_calls">Show grouped calls</string> <string name="show_grouped_calls">إظهار المكالمات المجمعة</string>
<string name="clear_call_history">Clear call history</string> <string name="clear_call_history">محو سجل المكالمات</string>
<string name="show_call_details">Show call details</string> <string name="show_call_details">إظهار تفاصيل المكالمة</string>
<!-- Dialpad --> <!-- Dialpad -->
<string name="dialpad">Dialpad</string> <string name="dialpad">لوحة الاتصال</string>
<string name="asterisk">Asterisk</string> <string name="asterisk">نجمة</string>
<string name="hashtag">Hashtag</string> <string name="hashtag">وسم</string>
<string name="call_number">Call number</string> <string name="call_number">رقم الاتصال</string>
<string name="dialpad_beeps">Enable beeps on dialpad button clicks</string> <string name="dialpad_beeps">تمكين الصفير عند نقر أزرار لوحة الاتصال</string>
<string name="dialpad_vibrations">Enable vibrations on dialpad button clicks</string> <string name="dialpad_vibrations">تمكين الاهتزازات عند نقر أزرار لوحة الاتصال</string>
<!-- Dialer --> <!-- Dialer -->
<string name="dialer">Dialer</string> <string name="dialer">الهاتف</string>
<string name="accept">Accept</string> <string name="accept">قبول</string>
<string name="accept_call">Accept call</string> <string name="accept_call">قبول المكالمة</string>
<string name="decline">Decline</string> <string name="decline">رفض</string>
<string name="decline_call">Decline call</string> <string name="decline_call">رفض المكالمة</string>
<string name="unknown_caller">Unknown Caller</string> <string name="unknown_caller">متصل غير معروف</string>
<string name="is_calling">Is Calling</string> <string name="is_calling">يتصل</string>
<string name="dialing">Dialing</string> <string name="dialing">اتصال</string>
<string name="call_ended">Call Ended</string> <string name="call_ended">انتهت المكالمة</string>
<string name="call_ending">Call Ending</string> <string name="call_ending">إنهاء المكالمة</string>
<string name="ongoing_call">Ongoing Call</string> <string name="ongoing_call">مكالمة مستمرة</string>
<string name="select_sim">Select a SIM for this call</string> <string name="select_sim">اختر شريحة لهذه المكالمة</string>
<string name="always_use_this_sim">Always use this SIM for this number</string> <string name="always_use_this_sim">استخدم هذه الشريحة دائما لهذا الرقم</string>
<string name="unset_default_sim">Unset default SIM</string> <string name="unset_default_sim">إلغاء تعيين بطاقة SIM الافتراضية</string>
<string name="calls">Calls</string> <string name="calls">المكالمات</string>
<string name="turn_microphone_on">Turn microphone on</string> <string name="turn_microphone_on">تشغيل الميكروفون</string>
<string name="turn_microphone_off">Turn microphone off</string> <string name="turn_microphone_off">إيقاف تشغيل الميكروفون</string>
<string name="turn_speaker_on">Turn speaker on</string> <string name="turn_speaker_on">تشغيل مكبر الصوت</string>
<string name="turn_speaker_off">Turn speaker off</string> <string name="turn_speaker_off">إيقاف تشغيل مكبر الصوت</string>
<string name="show_dialpad">Show dialpad</string> <string name="show_dialpad">إظهار لوحة الاتصال</string>
<string name="hide_dialpad">Hide dialpad</string> <string name="hide_dialpad">إخفاء لوحة الاتصال</string>
<string name="end_call">End call</string> <string name="end_call">إنهاء المكالمة</string>
<string name="hold_call">Hold call</string> <string name="hold_call">تعليق المكالمة</string>
<string name="resume_call">Resume call</string> <string name="resume_call">استئناف المكالمة</string>
<string name="call_on_hold">On Hold</string> <string name="call_on_hold">قيد الانتظار</string>
<string name="call_swap">Swap calls</string> <string name="call_swap">مبادلة المكالمات</string>
<string name="call_merge">Merge calls</string> <string name="call_merge">دمج المكالمات</string>
<string name="call_split">Split call</string> <string name="call_split">تقسيم المكالمة</string>
<string name="call_add">Add call</string> <string name="call_add">إضافة مكالمة</string>
<string name="conference_manage">Manage conference call</string> <string name="conference_manage">إدارة المكالمة الجماعية</string>
<string name="conference">Conference</string> <string name="conference">جماعة</string>
<string name="audio_route_speaker">Speaker</string> <string name="audio_route_speaker">مكبر الصوت</string>
<string name="audio_route_earpiece">Earpiece</string> <string name="audio_route_earpiece">سماعة الأذن</string>
<string name="audio_route_bluetooth">Bluetooth</string> <string name="audio_route_bluetooth">بلوتوث</string>
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">سماعة الرأس السلكية</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">سلكي أو سماعة أذن</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">اختر مسار الصوت</string>
<string name="calling_blocked_number">الرقم الذي تتصل به محظور</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Speed dial</string> <string name="speed_dial">اتصال سريع</string>
<string name="manage_speed_dial">Manage speed dial</string> <string name="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_label">انقر فوق رقم لتعيين جهة اتصال له. يمكنك بعد ذلك الاتصال بجهة الاتصال المحددة بسرعة عن طريق الضغط لفترة طويلة على الرقم المحدد في الهاتف.</string>
<!-- Settings --> <!-- Settings -->
<string name="group_subsequent_calls">Group subsequent calls with the same number at the call log</string> <string name="group_subsequent_calls">تجميع المكالمات اللاحقة مع نفس الرقم في سجل المكالمات</string>
<string name="open_dialpad_by_default">Open the dialpad by default when the app opens</string> <string name="open_dialpad_by_default">افتح لوحة الاتصال افتراضيًا عند فتح التطبيق</string>
<string name="disable_proximity_sensor">Disable proximity sensor during calls</string> <string name="disable_proximity_sensor">تعطيل مستشعر القرب أثناء المكالمات</string>
<string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string> <string name="disable_swipe_to_answer">استبدل التمرير عند الرد على المكالمات الواردة بالنقر</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">عرض المكالمات الواردة دائما في وضع ملء الشاشة</string>
<string name="hide_dialpad_numbers">اخفي ارقام لوحت المفاتيح</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">أسمع مكالمات واردة، ولكن الشاشة لا تعمل. ماذا أفعل؟</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">يمكن أن يكون لمثل هذه المشكلات العديد من الأسباب الخاصة بالجهاز والنظام ، والتي يصعب تحديدها بشكل عام. يجب أن تنظر حولك في إعدادات جهازك وتأكد من السماح للتطبيق بالظهور عندما يكون في الخلفية والسماح بالعرض فوق التطبيقات الأخرى.</string>
<!-- <!--
Haven't found some strings? There's more at Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Speed dial</string> <string name="speed_dial">Speed dial</string>
<string name="manage_speed_dial">Manage speed dial</string> <string name="manage_speed_dial">Manage speed dial</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Disable proximity sensor during calls</string> <string name="disable_proximity_sensor">Disable proximity sensor during calls</string>
<string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string> <string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Хуткі набор</string> <string name="speed_dial">Хуткі набор</string>
<string name="manage_speed_dial">Кіраванне хуткім наборам</string> <string name="manage_speed_dial">Кіраванне хуткім наборам</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Адключаць датчык набліжэння падчас выклікаў</string> <string name="disable_proximity_sensor">Адключаць датчык набліжэння падчас выклікаў</string>
<string name="disable_swipe_to_answer">Выкарыстоўваць націсканне замест перацягвання пры адказе на ўваходныя выклікі</string> <string name="disable_swipe_to_answer">Выкарыстоўваць націсканне замест перацягвання пры адказе на ўваходныя выклікі</string>
<string name="show_incoming_calls_full_screen">Заўсёды паказваць уваходныя выклікі ў поўнаэкранным рэжыме</string> <string name="show_incoming_calls_full_screen">Заўсёды паказваць уваходныя выклікі ў поўнаэкранным рэжыме</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Бързо набиране</string> <string name="speed_dial">Бързо набиране</string>
<string name="manage_speed_dial">Управление на бързото набиране</string> <string name="manage_speed_dial">Управление на бързото набиране</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Изключване на сензора за близост по време на обаждания</string> <string name="disable_proximity_sensor">Изключване на сензора за близост по време на обаждания</string>
<string name="disable_swipe_to_answer">Смяна на плъзгането с докосване при отговаряне на обаждания</string> <string name="disable_swipe_to_answer">Смяна на плъзгането с докосване при отговаряне на обаждания</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Auriculars amb cable</string> <string name="audio_route_wired_headset">Auriculars amb cable</string>
<string name="audio_route_wired_or_earpiece">Amb cable o auricular</string> <string name="audio_route_wired_or_earpiece">Amb cable o auricular</string>
<string name="choose_audio_route">Trieu la sortida d\'àudio</string> <string name="choose_audio_route">Trieu la sortida d\'àudio</string>
<string name="calling_blocked_number">El número al qual esteu trucant està bloquejat</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Marcatge ràpid</string> <string name="speed_dial">Marcatge ràpid</string>
<string name="manage_speed_dial">Gestiona el marcatge ràpid</string> <string name="manage_speed_dial">Gestiona el marcatge ràpid</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Desactiva el sensor de proximitat durant les trucades</string> <string name="disable_proximity_sensor">Desactiva el sensor de proximitat durant les trucades</string>
<string name="disable_swipe_to_answer">Substitueix el lliscament en respondre a les trucades entrants per fer clic</string> <string name="disable_swipe_to_answer">Substitueix el lliscament en respondre a les trucades entrants per fer clic</string>
<string name="show_incoming_calls_full_screen">Mostra sempre les trucades entrants a pantalla completa</string> <string name="show_incoming_calls_full_screen">Mostra sempre les trucades entrants a pantalla completa</string>
<string name="hide_dialpad_numbers">Oculta els números del teclat numèric</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Sento trucades entrants, però la pantalla no s\'encén. Què puc fer\?</string> <string name="faq_1_title">Sento trucades entrants, però la pantalla no s\'encén. Què puc fer\?</string>
<string name="faq_1_text">Aquests problemes poden tenir moltes raons específiques del dispositiu i del sistema, difícils de dir en general. Hauríeu de mirar per la configuració del dispositiu i assegurar-vos que l\'aplicació pugui aparèixer en segon pla i permetre que es mostri sobre altres aplicacions.</string> <string name="faq_1_text">Aquests problemes poden tenir moltes raons específiques del dispositiu i del sistema, difícils de dir en general. Hauríeu de mirar per la configuració del dispositiu i assegurar-vos que l\'aplicació pugui aparèixer en segon pla i permetre que es mostri sobre altres aplicacions.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Náhlavní souprava s kabelem</string> <string name="audio_route_wired_headset">Náhlavní souprava s kabelem</string>
<string name="audio_route_wired_or_earpiece">Kabel nebo sluchátka</string> <string name="audio_route_wired_or_earpiece">Kabel nebo sluchátka</string>
<string name="choose_audio_route">Vybrat směrování zvuku</string> <string name="choose_audio_route">Vybrat směrování zvuku</string>
<string name="calling_blocked_number">Číslo, které voláte, je blokované</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Rychlé vytáčení</string> <string name="speed_dial">Rychlé vytáčení</string>
<string name="manage_speed_dial">Spravovat rychlá vytáčení</string> <string name="manage_speed_dial">Spravovat rychlá vytáčení</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Vypnout senzor přiblížení během hovoru</string> <string name="disable_proximity_sensor">Vypnout senzor přiblížení během hovoru</string>
<string name="disable_swipe_to_answer">Nahradit přejetí prstem při odpovídání na příchozí hovory za klepnutí</string> <string name="disable_swipe_to_answer">Nahradit přejetí prstem při odpovídání na příchozí hovory za klepnutí</string>
<string name="show_incoming_calls_full_screen">Vždy zobrazovat příchozí hovory na celou obrazovku</string> <string name="show_incoming_calls_full_screen">Vždy zobrazovat příchozí hovory na celou obrazovku</string>
<string name="hide_dialpad_numbers">Skrýt čísla číselníku</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Slyším příchozí hovor, ale obrazovka se nezapne. Co mohu dělat\?</string> <string name="faq_1_title">Slyším příchozí hovor, ale obrazovka se nezapne. Co mohu dělat\?</string>
<string name="faq_1_text">Takové problémy mohou mít mnoho důvodů specifických pro zařízení a systém, takže je těžké říci něco obecně. Měli byste zkontrolovat nastavení zařízení a ujistit se, že se aplikace může otevřít, když běží na pozadí, a umožnit zobrazení přes jiné aplikace.</string> <string name="faq_1_text">Takové problémy mohou mít mnoho důvodů specifických pro zařízení a systém, takže je těžké říci něco obecně. Měli byste zkontrolovat nastavení zařízení a ujistit se, že se aplikace může otevřít, když běží na pozadí, a umožnit zobrazení přes jiné aplikace.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Hurtigopkald</string> <string name="speed_dial">Hurtigopkald</string>
<string name="manage_speed_dial">Administrér hurtigopkald</string> <string name="manage_speed_dial">Administrér hurtigopkald</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Deaktivér nærhedssensor under opkald</string> <string name="disable_proximity_sensor">Deaktivér nærhedssensor under opkald</string>
<string name="disable_swipe_to_answer">Erstat swipe ved besvarelse af indgående opkald med at klikke på</string> <string name="disable_swipe_to_answer">Erstat swipe ved besvarelse af indgående opkald med at klikke på</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string>

View File

@@ -10,9 +10,9 @@
<string name="no_previous_calls">Anrufliste ist leer</string> <string name="no_previous_calls">Anrufliste ist leer</string>
<string name="could_not_access_the_call_history">Kein Zugriff auf Anrufliste</string> <string name="could_not_access_the_call_history">Kein Zugriff auf Anrufliste</string>
<string name="request_access">Zugriff anfordern</string> <string name="request_access">Zugriff anfordern</string>
<string name="remove_confirmation">Ausgewählte Anrufe definitiv aus der Anrufliste löschen\?</string> <string name="remove_confirmation">Sollen wirklich die ausgewählten Einträge aus der Anrufliste gelöscht werden\?</string>
<string name="clear_history_confirmation">Sicher, dass die gesamte Anrufliste gelöscht werden soll\?</string> <string name="clear_history_confirmation">Soll wirklich die gesamte Anrufliste gelöscht werden\?</string>
<string name="show_grouped_calls">Gruppierte Anrufe zeigen</string> <string name="show_grouped_calls">Gruppierte Anrufe anzeigen</string>
<string name="clear_call_history">Anrufliste löschen</string> <string name="clear_call_history">Anrufliste löschen</string>
<string name="show_call_details">Anrufdetails anzeigen</string> <string name="show_call_details">Anrufdetails anzeigen</string>
<!-- Dialpad --> <!-- Dialpad -->
@@ -35,7 +35,7 @@
<string name="call_ending">Anruf beenden</string> <string name="call_ending">Anruf beenden</string>
<string name="ongoing_call">Aktueller Anruf</string> <string name="ongoing_call">Aktueller Anruf</string>
<string name="select_sim">Wähle die SIM-Karte für diesen Anruf aus</string> <string name="select_sim">Wähle die SIM-Karte für diesen Anruf aus</string>
<string name="always_use_this_sim">Für diese Nummer immer diese SIM-Karte benutzen</string> <string name="always_use_this_sim">Für diese Nummer immer diese SIM-Karte verwenden</string>
<string name="unset_default_sim">Als Standard-SIM abwählen</string> <string name="unset_default_sim">Als Standard-SIM abwählen</string>
<string name="calls">Anrufe</string> <string name="calls">Anrufe</string>
<string name="turn_microphone_on">Mikrofon einschalten</string> <string name="turn_microphone_on">Mikrofon einschalten</string>
@@ -59,7 +59,8 @@
<string name="audio_route_bluetooth">Bluetooth</string> <string name="audio_route_bluetooth">Bluetooth</string>
<string name="audio_route_wired_headset">Kabelgebundenes Headset</string> <string name="audio_route_wired_headset">Kabelgebundenes Headset</string>
<string name="audio_route_wired_or_earpiece">Kabelgebunden oder über Kopfhörer</string> <string name="audio_route_wired_or_earpiece">Kabelgebunden oder über Kopfhörer</string>
<string name="choose_audio_route">Audio-Ausgang wählen</string> <string name="choose_audio_route">Audioausgang wählen</string>
<string name="calling_blocked_number">Die angerufene Nummer ist gesperrt</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Kurzwahl</string> <string name="speed_dial">Kurzwahl</string>
<string name="manage_speed_dial">Kurzwahlnummern verwalten</string> <string name="manage_speed_dial">Kurzwahlnummern verwalten</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Näherungssensor bei Anrufen deaktivieren</string> <string name="disable_proximity_sensor">Näherungssensor bei Anrufen deaktivieren</string>
<string name="disable_swipe_to_answer">Anrufe durch Klicken statt durch Streichen annehmen</string> <string name="disable_swipe_to_answer">Anrufe durch Klicken statt durch Streichen annehmen</string>
<string name="show_incoming_calls_full_screen">Eingehende Anrufe immer im Vollbildmodus anzeigen</string> <string name="show_incoming_calls_full_screen">Eingehende Anrufe immer im Vollbildmodus anzeigen</string>
<string name="hide_dialpad_numbers">Wähltastenfeld-Nummern ausblenden</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Ich höre eingehende Anrufe, aber der Bildschirm schaltet sich nicht ein. Was kann ich tun\?</string> <string name="faq_1_title">Ich höre eingehende Anrufe, aber der Bildschirm schaltet sich nicht ein. Was kann ich tun\?</string>
<string name="faq_1_text">Eine allgemeine Antwort auf die Frage ist schwer, denn solche Probleme können viele geräte- und systemspezifische Gründe haben. Du solltest dich in den Einstellungen des Geräts umsehen und sicherstellen, dass die App im Hintergrund angezeigt werden darf und die Einblendung über anderen Apps erlaubt ist.</string> <string name="faq_1_text">Eine allgemeine Antwort auf die Frage ist schwer, denn solche Probleme können viele geräte- und systemspezifische Gründe haben. Du solltest dich in den Einstellungen des Geräts umsehen und sicherstellen, dass die App im Hintergrund angezeigt werden darf und die Einblendung über anderen Apps erlaubt ist.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Ενσύρματα κεφαλής</string> <string name="audio_route_wired_headset">Ενσύρματα κεφαλής</string>
<string name="audio_route_wired_or_earpiece">Ενσύρματα ή ακουστικά</string> <string name="audio_route_wired_or_earpiece">Ενσύρματα ή ακουστικά</string>
<string name="choose_audio_route">Επιλογή διαδρομής ήχου</string> <string name="choose_audio_route">Επιλογή διαδρομής ήχου</string>
<string name="calling_blocked_number">Ο αριθμός που καλείτε είναι αποκλεισμένος</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Ταχεία κλήση</string> <string name="speed_dial">Ταχεία κλήση</string>
<string name="manage_speed_dial">Διαχείριση ταχείας κλήσης</string> <string name="manage_speed_dial">Διαχείριση ταχείας κλήσης</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Απενεργοποίηση του αισθητήρα εγγύτητας κατά τη διάρκεια κλήσεων</string> <string name="disable_proximity_sensor">Απενεργοποίηση του αισθητήρα εγγύτητας κατά τη διάρκεια κλήσεων</string>
<string name="disable_swipe_to_answer">Αντικατάσταση Σάρωσης με Κλικ στην απάντηση εισερχόμενων κλήσεων</string> <string name="disable_swipe_to_answer">Αντικατάσταση Σάρωσης με Κλικ στην απάντηση εισερχόμενων κλήσεων</string>
<string name="show_incoming_calls_full_screen">Να εμφανίζονται πάντα οι εισερχόμενες κλήσεις σε πλήρη οθόνη</string> <string name="show_incoming_calls_full_screen">Να εμφανίζονται πάντα οι εισερχόμενες κλήσεις σε πλήρη οθόνη</string>
<string name="hide_dialpad_numbers">Απόκρυψη αριθμών πληκτρολογίου</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Ακούω εισερχόμενες κλήσεις, αλλά η οθόνη δεν ανάβει. Τι μπορώ να κάνω;</string> <string name="faq_1_title">Ακούω εισερχόμενες κλήσεις, αλλά η οθόνη δεν ανάβει. Τι μπορώ να κάνω;</string>
<string name="faq_1_text">Τέτοια θέματα μπορεί να έχουν πολλούς λόγους που σχετίζονται με τη συσκευή και το σύστημα, και είναι δύσκολο να ειπωθούν γενικά. Θα πρέπει να ψάξετε στις ρυθμίσεις της συσκευής σας και να βεβαιωθείτε ότι η εφαρμογή επιτρέπεται να εμφανίζεται όταν βρίσκεται στο παρασκήνιο και να επιτρέπει την εμφάνισή της πάνω από άλλες εφαρμογές.</string> <string name="faq_1_text">Τέτοια θέματα μπορεί να έχουν πολλούς λόγους που σχετίζονται με τη συσκευή και το σύστημα, και είναι δύσκολο να ειπωθούν γενικά. Θα πρέπει να ψάξετε στις ρυθμίσεις της συσκευής σας και να βεβαιωθείτε ότι η εφαρμογή επιτρέπεται να εμφανίζεται όταν βρίσκεται στο παρασκήνιο και να επιτρέπει την εμφάνισή της πάνω από άλλες εφαρμογές.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Speed dial</string> <string name="speed_dial">Speed dial</string>
<string name="manage_speed_dial">Manage speed dial</string> <string name="manage_speed_dial">Manage speed dial</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Disable proximity sensor during calls</string> <string name="disable_proximity_sensor">Disable proximity sensor during calls</string>
<string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string> <string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Auricular con cable</string> <string name="audio_route_wired_headset">Auricular con cable</string>
<string name="audio_route_wired_or_earpiece">Auricular inalámbrico</string> <string name="audio_route_wired_or_earpiece">Auricular inalámbrico</string>
<string name="choose_audio_route">Elija la salida del audio</string> <string name="choose_audio_route">Elija la salida del audio</string>
<string name="calling_blocked_number">El número al que llamas está bloqueado</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Marcado rápido</string> <string name="speed_dial">Marcado rápido</string>
<string name="manage_speed_dial">Administrar marcado rápido</string> <string name="manage_speed_dial">Administrar marcado rápido</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Deshabilitar el sensor de proximidad durante las llamadas</string> <string name="disable_proximity_sensor">Deshabilitar el sensor de proximidad durante las llamadas</string>
<string name="disable_swipe_to_answer">Reemplazar deslizar para responder llamadas entrantes a pulsar</string> <string name="disable_swipe_to_answer">Reemplazar deslizar para responder llamadas entrantes a pulsar</string>
<string name="show_incoming_calls_full_screen">Siempre mostrar llamadas entrantes en pantalla completa</string> <string name="show_incoming_calls_full_screen">Siempre mostrar llamadas entrantes en pantalla completa</string>
<string name="hide_dialpad_numbers">Ocultar los números del teclado</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Escucho las llamadas entrantes, pero la pantalla no se enciende. ¿Qué puedo hacer\?</string> <string name="faq_1_title">Escucho las llamadas entrantes, pero la pantalla no se enciende. ¿Qué puedo hacer\?</string>
<string name="faq_1_text">Estos problemas pueden deberse a muchas razones específicas del dispositivo y del sistema, es difícil decirlo en general. Deberías mirar en la configuración de tu dispositivo y asegurarte de que la aplicación tiene permiso para aparecer cuando está en segundo plano y permitir la aplicación se muestre sobre otras aplicaciones.</string> <string name="faq_1_text">Estos problemas pueden deberse a muchas razones específicas del dispositivo y del sistema, es difícil decirlo en general. Deberías mirar en la configuración de tu dispositivo y asegurarte de que la aplicación tiene permiso para aparecer cuando está en segundo plano y permitir la aplicación se muestre sobre otras aplicaciones.</string>

View File

@@ -20,8 +20,8 @@
<string name="asterisk">Tärn</string> <string name="asterisk">Tärn</string>
<string name="hashtag">Teemaviide</string> <string name="hashtag">Teemaviide</string>
<string name="call_number">Helista numbrile</string> <string name="call_number">Helista numbrile</string>
<string name="dialpad_beeps">Helisignaalide lubamine valimisnupu klõpsamisel</string> <string name="dialpad_beeps">Numbriklahvistiku nupu klõpsamisel esita helisignaali</string>
<string name="dialpad_vibrations">Võimaldab vibratsiooni valimisnuppude klõpsamisel</string> <string name="dialpad_vibrations">Numbriklahvistiku nupu klõpsamisel värista telefoni</string>
<!-- Dialer --> <!-- Dialer -->
<string name="dialer">Telefon</string> <string name="dialer">Telefon</string>
<string name="accept">Nõustu</string> <string name="accept">Nõustu</string>
@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Juhtmega kõrvaklapid</string> <string name="audio_route_wired_headset">Juhtmega kõrvaklapid</string>
<string name="audio_route_wired_or_earpiece">Juhtmega või kõrvasisesed kõrvaklapid</string> <string name="audio_route_wired_or_earpiece">Juhtmega või kõrvasisesed kõrvaklapid</string>
<string name="choose_audio_route">Vali heliruuting</string> <string name="choose_audio_route">Vali heliruuting</string>
<string name="calling_blocked_number">Sa üritad helistada blokeeritud numbrile</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Kiirvalimine</string> <string name="speed_dial">Kiirvalimine</string>
<string name="speed_dial_label">Klõpsa numbrit ja seosta ta konkreetse telefoniraamatu kirjega. Hiljem saad samale numbrile pikalt vajutades alustada kõnet määratud telefoninumbrile.</string> <string name="speed_dial_label">Klõpsa numbrit ja seosta ta konkreetse telefoniraamatu kirjega. Hiljem saad samale numbrile pikalt vajutades alustada kõnet määratud telefoninumbrile.</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Kõnede ajaks lülita lähedusandur välja</string> <string name="disable_proximity_sensor">Kõnede ajaks lülita lähedusandur välja</string>
<string name="disable_swipe_to_answer">Kõnele vastamisel kasuta viipamise asemel klõpsimist</string> <string name="disable_swipe_to_answer">Kõnele vastamisel kasuta viipamise asemel klõpsimist</string>
<string name="show_incoming_calls_full_screen">Kuvage sissetulevad kõned alati täisekraanil</string> <string name="show_incoming_calls_full_screen">Kuvage sissetulevad kõned alati täisekraanil</string>
<string name="hide_dialpad_numbers">Peida numbriklahvistik</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Ma kuulen sissetulevaid kõnesid, kuid ekraan ei lülitu sisse. Mida ma saan teha\?</string> <string name="faq_1_title">Ma kuulen sissetulevaid kõnesid, kuid ekraan ei lülitu sisse. Mida ma saan teha\?</string>
<string name="faq_1_text">Sellistel probleemidel võib olla palju seadme- ja süsteemispetsiifilisi põhjusi, raske öelda üldiselt. Peaksite oma seadme seadetes ringi vaatama ja veenduma, et rakendusel on lubatud taustal hüpata ja lubada kuvamist üle teiste rakenduste.</string> <string name="faq_1_text">Sellistel probleemidel võib olla palju seadme- ja süsteemispetsiifilisi põhjusi, raske öelda üldiselt. Peaksite oma seadme seadetes ringi vaatama ja veenduma, et rakendusel on lubatud taustal hüpata ja lubada kuvamist üle teiste rakenduste.</string>

View File

@@ -1,29 +1,29 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Yksinkertainen Numerovalitsin</string> <string name="app_name">Yksinkertainen puhelin</string>
<string name="app_launcher_name">Numerovalitsin</string> <string name="app_launcher_name">Puhelin</string>
<string name="default_phone_app_prompt">Aseta tämä sovellus oletukseksi puheluille</string> <string name="default_phone_app_prompt">Tää tästä oletussovellus puheluille</string>
<string name="allow_displaying_over_other_apps">Hyväksy näkyminen muiden sovellusten päällä, jotta sovellus toimii luotettavasti</string> <string name="allow_displaying_over_other_apps">Salli näkyminen muiden sovellusten päällä, jotta sovellus toimii luotettavasti</string>
<!-- Contacts --> <!-- Contacts -->
<string name="could_not_access_contacts">Ei käyttöoikeutta yhteystietoihin</string> <string name="could_not_access_contacts">Yhteystietojen käyttöoikeutta ei ole</string>
<!-- Recents --> <!-- Recents -->
<string name="no_previous_calls">Ei puheluita</string> <string name="no_previous_calls">Aiempia puheluita ei löytynyt</string>
<string name="could_not_access_the_call_history">Ei käyttöoikeutta puheluhistoriaan</string> <string name="could_not_access_the_call_history">Puheluhistorian käyttöoikeutta ei ole</string>
<string name="request_access">Pyydä käyttöoikeutta</string> <string name="request_access">Pyydä käyttöoikeutta</string>
<string name="remove_confirmation">Haluatko varmasti poistaa valitut kohteet puheluhistoriasta\?</string> <string name="remove_confirmation">Haluatko varmasti poistaa valitut kohteet puheluhistoriasta\?</string>
<string name="clear_history_confirmation">Haluatko varmasti tyhjentää koko puheluhistorian\?</string> <string name="clear_history_confirmation">Haluatko varmasti tyhjentää puheluhistorian täysin\?</string>
<string name="show_grouped_calls">Näytä ryhmitetyt puhelut</string> <string name="show_grouped_calls">Näytä ryhmitetyt puhelut</string>
<string name="clear_call_history">Tyhjennä puheluhistoria</string> <string name="clear_call_history">Tyhjennä puheluhistoria</string>
<string name="show_call_details">Näytä puhelun tiedot</string> <string name="show_call_details">Näytä puhelun tiedot</string>
<!-- Dialpad --> <!-- Dialpad -->
<string name="dialpad">Valintanäppäimistö</string> <string name="dialpad">Numeronäppäimistö</string>
<string name="asterisk">Asteriski</string> <string name="asterisk">Tähti</string>
<string name="hashtag">Risuaita</string> <string name="hashtag">Ruutu</string>
<string name="call_number">Soita numeroon</string> <string name="call_number">Soita numeroon</string>
<string name="dialpad_beeps">Äänimerkkien ottaminen käyttöön valintanäppäimen napsautuksen yhteydessä</string> <string name="dialpad_beeps">Piippaa numeronäppäimistön painalluksista</string>
<string name="dialpad_vibrations">Ota värinät käyttöön valintanäppäimen napsautuksista</string> <string name="dialpad_vibrations">Värähdä numeronäppäimistön painalluksista</string>
<!-- Dialer --> <!-- Dialer -->
<string name="dialer">Numerovalitsin</string> <string name="dialer">Puhelin</string>
<string name="accept">Hyväksy</string> <string name="accept">Hyväksy</string>
<string name="accept_call">Vastaa puheluun</string> <string name="accept_call">Vastaa puheluun</string>
<string name="decline">Hylkää</string> <string name="decline">Hylkää</string>
@@ -33,46 +33,48 @@
<string name="dialing">Soitetaan…</string> <string name="dialing">Soitetaan…</string>
<string name="call_ended">Puhelu päättyi</string> <string name="call_ended">Puhelu päättyi</string>
<string name="call_ending">Puhelu päättyy</string> <string name="call_ending">Puhelu päättyy</string>
<string name="ongoing_call">Lähtevä puhelu</string> <string name="ongoing_call">Puhelu on käynnissä</string>
<string name="select_sim">Valitse SIM-kortti puhelulle</string> <string name="select_sim">Valitse puheluun käytettävä liittymä</string>
<string name="always_use_this_sim">Käytä tälle numerolle aina tätä SIM-korttia</string> <string name="always_use_this_sim">Soita tähän numeroon aina tällä liittymällä</string>
<string name="unset_default_sim">Poista oletus-SIM</string> <string name="unset_default_sim">Poista oletusliittymän määritys</string>
<string name="calls">Puhelut</string> <string name="calls">Puhelut</string>
<string name="turn_microphone_on">Laita mikrofoni päälle</string> <string name="turn_microphone_on">Ota mikrofoni käyttöön</string>
<string name="turn_microphone_off">Laita mikrofoni pois pääl</string> <string name="turn_microphone_off">Poista mikrofoni käytös</string>
<string name="turn_speaker_on">Laita kaiutin päälle</string> <string name="turn_speaker_on">Ota kaiutin käyttöön</string>
<string name="turn_speaker_off">Laita kaiutin pois pääl</string> <string name="turn_speaker_off">Poista kaiutin käytös</string>
<string name="show_dialpad">Näytä valintanäppäimistö</string> <string name="show_dialpad">Näytä numeronäppäimet</string>
<string name="hide_dialpad">Piilota valintanäppäimistö</string> <string name="hide_dialpad">Piilota numeronäppäimet</string>
<string name="end_call">Lopeta puhelu</string> <string name="end_call">Lopeta puhelu</string>
<string name="hold_call">Puhelu pitoon</string> <string name="hold_call">Puhelu pitoon</string>
<string name="resume_call">Palaa puheluun</string> <string name="resume_call">Palaa puheluun</string>
<string name="call_on_hold">Pidossa</string> <string name="call_on_hold">Pidossa</string>
<string name="call_swap">Vaihda puheluita</string> <string name="call_swap">Vaihda puhelua</string>
<string name="call_merge">Yhdistä puhelut</string> <string name="call_merge">Yhdistä puhelut</string>
<string name="call_split">Jaa puhelu</string> <string name="call_split">Jaa puhelu</string>
<string name="call_add">Lisää puhelu</string> <string name="call_add">Lisää puhelu</string>
<string name="conference_manage">Hallinnoi puhelinneuvottelua</string> <string name="conference_manage">Hallitse ryhmäpuhelua</string>
<string name="conference">Neuvottelu</string> <string name="conference">Ryhmäpuhelu</string>
<string name="audio_route_speaker">Speaker</string> <string name="audio_route_speaker">Kaiutin</string>
<string name="audio_route_earpiece">Earpiece</string> <string name="audio_route_earpiece">Kuuloke</string>
<string name="audio_route_bluetooth">Bluetooth</string> <string name="audio_route_bluetooth">Bluetooth</string>
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Langallinen kuulokemikrofoni</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Langallinen tai kuuloke</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Vslitse äänen reitti</string>
<string name="calling_blocked_number">Soitettava numero on estetty</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Pikavalinta</string> <string name="speed_dial">Pikavalinta</string>
<string name="manage_speed_dial">Pikavalinnan asetukset</string> <string name="manage_speed_dial">Hallitse pikavalintoja</string>
<string name="speed_dial_label">Paina numeroa asettaaksesi sille yhteystiedon. Yhteystiedolle soitetaan, kun painat numeroa pitkään numerovalitsimessa.</string> <string name="speed_dial_label">Paina numeroa määrittääksesi siihen yhteystiedon. Voit soittaa yhteystiedolle painamalla puhelimen numeronäppäimistöä pitkään.</string>
<!-- Settings --> <!-- Settings -->
<string name="group_subsequent_calls">Ryhmitä saman numeron peräkkäiset puhelut puheluhistoriassa</string> <string name="group_subsequent_calls">Ryhmittele samojen numeroiden puhelut puheluhistoriassa</string>
<string name="open_dialpad_by_default">Avaa numeronäppäimistö, kun sovellus avataan</string> <string name="open_dialpad_by_default">Avaa sovellus numeronäppäimiin</string>
<string name="disable_proximity_sensor">Poista läheisyysanturi käytöstä puheluiden aikana</string> <string name="disable_proximity_sensor">Poista läheisyysanturi käytöstä puheluiden ajaksi</string>
<string name="disable_swipe_to_answer">Vastaa puheluihin painalluksella pyyhkäisyn sijaan</string> <string name="disable_swipe_to_answer">Vastaa puheluihin painalluksella pyyhkäisyn sijaan</string>
<string name="show_incoming_calls_full_screen">Näytä saapuvat puhelut aina koko näytöllä</string> <string name="show_incoming_calls_full_screen">Näytä saapuvat puhelut aina koko näytöllä</string>
<string name="hide_dialpad_numbers">Piilota numeronäppäimet</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Kuulen saapuvat puhelut, mutta näyttö ei käynnisty. Mitä voin tehdä\?</string> <string name="faq_1_title">Kuulen saapuvat puhelut, mutta näyttö on pimeänä. Mitä voin tehdä\?</string>
<string name="faq_1_text">Tällaisiin ongelmiin voi olla monia laite- ja järjestelmäkohtaisia syitä, joita on vaikea sanoa yleisesti. Kannattaa tutkia laitteen asetuksia ja varmistaa, että sovelluksen on sallittu ponnahtaa esiin, kun se on taustalla, ja sallia sen näyttäminen muiden sovellusten yläpuolella.</string> <string name="faq_1_text">Tällaisiin ongelmiin voi olla monia laite- ja järjestelmäkohtaisia syitä, joiden yleistäminen on hankalaa. Kannattaa tutkia laitteen asetuksia ja varmistaa, että sovelluksella on oikeus ponnahtaa esiin taustalta ja näkyä muiden sovellusten päällä.</string>
<!-- <!--
Haven't found some strings? There's more at Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res

View File

@@ -54,12 +54,13 @@
<string name="call_add">Ajouter un appel</string> <string name="call_add">Ajouter un appel</string>
<string name="conference_manage">Gérer une conférence téléphonique</string> <string name="conference_manage">Gérer une conférence téléphonique</string>
<string name="conference">Conférence</string> <string name="conference">Conférence</string>
<string name="audio_route_speaker">Speaker</string> <string name="audio_route_speaker">Haut-parleur</string>
<string name="audio_route_earpiece">Earpiece</string> <string name="audio_route_earpiece">Écouteur</string>
<string name="audio_route_bluetooth">Bluetooth</string> <string name="audio_route_bluetooth">Bluetooth</string>
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Casque filaire</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Filaire ou écouteur</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choisir la sortie audio</string>
<string name="calling_blocked_number">Le numéro que vous appelez est bloqué</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Numérotation rapide</string> <string name="speed_dial">Numérotation rapide</string>
<string name="manage_speed_dial">Gérer la numérotation rapide</string> <string name="manage_speed_dial">Gérer la numérotation rapide</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Désactiver le capteur de proximité pendant les appels</string> <string name="disable_proximity_sensor">Désactiver le capteur de proximité pendant les appels</string>
<string name="disable_swipe_to_answer">Remplacer le balayage pour répondre aux appels entrants par un clic</string> <string name="disable_swipe_to_answer">Remplacer le balayage pour répondre aux appels entrants par un clic</string>
<string name="show_incoming_calls_full_screen">Toujours afficher les appels entrants en plein écran</string> <string name="show_incoming_calls_full_screen">Toujours afficher les appels entrants en plein écran</string>
<string name="hide_dialpad_numbers">Masquer les numéros du clavier</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">J\'entends les appels entrants, mais l\'écran ne s\'allume pas. Que puis-je faire \?</string> <string name="faq_1_title">J\'entends les appels entrants, mais l\'écran ne s\'allume pas. Que puis-je faire \?</string>
<string name="faq_1_text">Ces problèmes peuvent avoir de nombreuses raisons spécifiques à l\'appareil et au système, il est difficile d\'en parler en général. Vous devriez consulter les paramètres de votre appareil et vous assurer que l\'application est autorisée à apparaître en arrière-plan et à s\'afficher au-dessus des autres applications.</string> <string name="faq_1_text">Ces problèmes peuvent avoir de nombreuses raisons spécifiques à l\'appareil et au système, il est difficile d\'en parler en général. Vous devriez consulter les paramètres de votre appareil et vous assurer que l\'application est autorisée à apparaître en arrière-plan et à s\'afficher au-dessus des autres applications.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Auriculares con cable</string> <string name="audio_route_wired_headset">Auriculares con cable</string>
<string name="audio_route_wired_or_earpiece">Auriculares sen fíos</string> <string name="audio_route_wired_or_earpiece">Auriculares sen fíos</string>
<string name="choose_audio_route">Escollela saida do audio</string> <string name="choose_audio_route">Escollela saida do audio</string>
<string name="calling_blocked_number">O número ao que estás chamando está bloqueado</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Marcación rápida</string> <string name="speed_dial">Marcación rápida</string>
<string name="manage_speed_dial">Xestionar marcacións rápidas</string> <string name="manage_speed_dial">Xestionar marcacións rápidas</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Desactivar sensor de proximidade durante as chamadas</string> <string name="disable_proximity_sensor">Desactivar sensor de proximidade durante as chamadas</string>
<string name="disable_swipe_to_answer">Substituír o xesto de desprazar por un click para responder</string> <string name="disable_swipe_to_answer">Substituír o xesto de desprazar por un click para responder</string>
<string name="show_incoming_calls_full_screen">Mostrar sempre as chamadas entrantes a pantalla enteira</string> <string name="show_incoming_calls_full_screen">Mostrar sempre as chamadas entrantes a pantalla enteira</string>
<string name="hide_dialpad_numbers">Ocultalos números do teclado</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Escoito chamadas entrantes, pero a pantalla non se acende. Que podo facer\?</string> <string name="faq_1_title">Escoito chamadas entrantes, pero a pantalla non se acende. Que podo facer\?</string>
<string name="faq_1_text">Estes problemas poden ter moitas razóns específicas do dispositivo e do sistema, difíciles de dicir en xeral. Debes mirar ao teu redor na configuración do teu dispositivo e asegurarte de que a aplicación pode aparecer cando está en segundo plano e permitir que se vexa sobre outras aplicacións.</string> <string name="faq_1_text">Estes problemas poden ter moitas razóns específicas do dispositivo e do sistema, difíciles de dicir en xeral. Debes mirar ao teu redor na configuración do teu dispositivo e asegurarte de que a aplicación pode aparecer cando está en segundo plano e permitir que se vexa sobre outras aplicacións.</string>

View File

@@ -54,12 +54,13 @@
<string name="call_add">Dodaj poziv</string> <string name="call_add">Dodaj poziv</string>
<string name="conference_manage">Upravljaj konferencijskim pozivima</string> <string name="conference_manage">Upravljaj konferencijskim pozivima</string>
<string name="conference">Konferencija</string> <string name="conference">Konferencija</string>
<string name="audio_route_speaker">Speaker</string> <string name="audio_route_speaker">Zvučnik</string>
<string name="audio_route_earpiece">Earpiece</string> <string name="audio_route_earpiece">Slušalica</string>
<string name="audio_route_bluetooth">Bluetooth</string> <string name="audio_route_bluetooth">Bluetooth</string>
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Analogna slušalica s mikrofonom</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Analogno ili slušalica</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Odaberi audio izlaz</string>
<string name="calling_blocked_number">Broj koji zoveš je blokiran</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Brzo biranje</string> <string name="speed_dial">Brzo biranje</string>
<string name="manage_speed_dial">Upravljaj brzim biranjem</string> <string name="manage_speed_dial">Upravljaj brzim biranjem</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Isključi senzor blizine tijekom poziva</string> <string name="disable_proximity_sensor">Isključi senzor blizine tijekom poziva</string>
<string name="disable_swipe_to_answer">Zamijeni povlačenje prstom za odgovaranje na dolazne pozive pritiskom</string> <string name="disable_swipe_to_answer">Zamijeni povlačenje prstom za odgovaranje na dolazne pozive pritiskom</string>
<string name="show_incoming_calls_full_screen">Uvijek prikaži dolazne pozive u cjeloekranskom prikazu</string> <string name="show_incoming_calls_full_screen">Uvijek prikaži dolazne pozive u cjeloekranskom prikazu</string>
<string name="hide_dialpad_numbers">Sakrij brojeve tipkovnice telefona</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Čujem dolazne pozive, ali ekran se ne uključuje. Što mogu učiniti\?</string> <string name="faq_1_title">Čujem dolazne pozive, ali ekran se ne uključuje. Što mogu učiniti\?</string>
<string name="faq_1_text">Takvi problemi mogu imati mnogo razloga specifičnih za uređaj i sustav, koje je teško reći općenito. Trebali biste pogledati uokolo u postavkama svog uređaja i provjeriti je li aplikaciji dopušteno iskakanje u pozadini i dopuštenje prikazivanja preko drugih aplikacija.</string> <string name="faq_1_text">Takvi problemi mogu imati mnogo razloga specifičnih za uređaj i sustav, koje je teško reći općenito. Trebali biste pogledati uokolo u postavkama svog uređaja i provjeriti je li aplikaciji dopušteno iskakanje u pozadini i dopuštenje prikazivanja preko drugih aplikacija.</string>

View File

@@ -54,12 +54,13 @@
<string name="call_add">Hívás hozzáadása</string> <string name="call_add">Hívás hozzáadása</string>
<string name="conference_manage">Konferenciahívás kezelése</string> <string name="conference_manage">Konferenciahívás kezelése</string>
<string name="conference">Konferencia</string> <string name="conference">Konferencia</string>
<string name="audio_route_speaker">Speaker</string> <string name="audio_route_speaker">Hangszóró</string>
<string name="audio_route_earpiece">Earpiece</string> <string name="audio_route_earpiece">Fülhallgató</string>
<string name="audio_route_bluetooth">Bluetooth</string> <string name="audio_route_bluetooth">Bluetooth</string>
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Vezetékes fejhallgató</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Vezetékes vagy vezeték nélküli fülhallgató</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Válasszon hangkimenetet</string>
<string name="calling_blocked_number">A hívott szám blokkolva van</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Gyors tárcsázó</string> <string name="speed_dial">Gyors tárcsázó</string>
<string name="manage_speed_dial">Gyors tárcsázó kezelése</string> <string name="manage_speed_dial">Gyors tárcsázó kezelése</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Közelségérzékelő kikapcsolása a hívások során</string> <string name="disable_proximity_sensor">Közelségérzékelő kikapcsolása a hívások során</string>
<string name="disable_swipe_to_answer">Csúsztatás kattintásra cserélése a bejövő hívásoknál</string> <string name="disable_swipe_to_answer">Csúsztatás kattintásra cserélése a bejövő hívásoknál</string>
<string name="show_incoming_calls_full_screen">Bejövő hívások megjelenítése mindig teljes képernyőn</string> <string name="show_incoming_calls_full_screen">Bejövő hívások megjelenítése mindig teljes képernyőn</string>
<string name="hide_dialpad_numbers">Tárcsázószámok elrejtése</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Bejövő hívást hallok, de a képernyő nem kapcsol be. Mit tehetek\?</string> <string name="faq_1_title">Bejövő hívást hallok, de a képernyő nem kapcsol be. Mit tehetek\?</string>
<string name="faq_1_text">Az ilyen problémáknak számos eszköz- és rendszerfüggő oka lehet, általánosságban nehéz megmondani. Nézzen körül az eszközbeállításokban, és győződjön meg róla, hogy az alkalmazás előbújhat-e a háttérből, és megjelenhet-e más alkalmazások felett.</string> <string name="faq_1_text">Az ilyen problémáknak számos eszköz- és rendszerfüggő oka lehet, általánosságban nehéz megmondani. Nézzen körül az eszközbeállításokban, és győződjön meg róla, hogy az alkalmazás előbújhat-e a háttérből, és megjelenhet-e más alkalmazások felett.</string>

View File

@@ -20,8 +20,8 @@
<string name="asterisk">Bintang</string> <string name="asterisk">Bintang</string>
<string name="hashtag">Pagar</string> <string name="hashtag">Pagar</string>
<string name="call_number">Nomor telepon</string> <string name="call_number">Nomor telepon</string>
<string name="dialpad_beeps">Enable beeps on dialpad button clicks</string> <string name="dialpad_beeps">Aktifkan suara ketika tombol papan ditekan</string>
<string name="dialpad_vibrations">Enable vibrations on dialpad button clicks</string> <string name="dialpad_vibrations">Aktifkan getaran ketika tombol papan ditekan</string>
<!-- Dialer --> <!-- Dialer -->
<string name="dialer">Dialer</string> <string name="dialer">Dialer</string>
<string name="accept">Menerima</string> <string name="accept">Menerima</string>
@@ -45,21 +45,22 @@
<string name="show_dialpad">Tampilkan dialpad</string> <string name="show_dialpad">Tampilkan dialpad</string>
<string name="hide_dialpad">Sembunyikan dialpad</string> <string name="hide_dialpad">Sembunyikan dialpad</string>
<string name="end_call">Akhiri panggilan</string> <string name="end_call">Akhiri panggilan</string>
<string name="hold_call">Hold call</string> <string name="hold_call">Jeda panggilan</string>
<string name="resume_call">Resume call</string> <string name="resume_call">Lanjutkan panggilan</string>
<string name="call_on_hold">On Hold</string> <string name="call_on_hold">Dijeda</string>
<string name="call_swap">Swap calls</string> <string name="call_swap">Ubah panggilan</string>
<string name="call_merge">Merge calls</string> <string name="call_merge">Gabungkan panggilan</string>
<string name="call_split">Split call</string> <string name="call_split">Pisahkan panggilan</string>
<string name="call_add">Add call</string> <string name="call_add">Tambahkan panggilan</string>
<string name="conference_manage">Manage conference call</string> <string name="conference_manage">Kelola panggilan konferensi</string>
<string name="conference">Conference</string> <string name="conference">Konferensi</string>
<string name="audio_route_speaker">Speaker</string> <string name="audio_route_speaker">Speaker</string>
<string name="audio_route_earpiece">Earpiece</string> <string name="audio_route_earpiece">Earphone</string>
<string name="audio_route_bluetooth">Bluetooth</string> <string name="audio_route_bluetooth">Bluetooth</string>
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Headset Kabel</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Kabel atau Earphone</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Pilih rute audio</string>
<string name="calling_blocked_number">Nomor yang Anda panggil diblokir</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Panggilan cepat</string> <string name="speed_dial">Panggilan cepat</string>
<string name="manage_speed_dial">Kelola panggilan cepat</string> <string name="manage_speed_dial">Kelola panggilan cepat</string>
@@ -69,10 +70,11 @@
<string name="open_dialpad_by_default">Buka dialpad secara default ketika aplikasi dibuka</string> <string name="open_dialpad_by_default">Buka dialpad secara default ketika aplikasi dibuka</string>
<string name="disable_proximity_sensor">Nonaktifkan sensor kedekatan saat ada di panggilan</string> <string name="disable_proximity_sensor">Nonaktifkan sensor kedekatan saat ada di panggilan</string>
<string name="disable_swipe_to_answer">Ganti menggesek saat menanggapi panggilan masuk dengan mengklik</string> <string name="disable_swipe_to_answer">Ganti menggesek saat menanggapi panggilan masuk dengan mengklik</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Selalu tampilkan panggilan masuk dengan layar penuh</string>
<string name="hide_dialpad_numbers">Sembunyikan nomor tombol papan</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">Saya mendengar panggilan masuk, tetapi layarnya tidak menyala\? Apa yang bisa saya lakukan\?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Beberapa masalah dapat memiliki alasan perangkat dan sistem spesifik, tidak mudah untuk diberi tahu secara umum. Anda seharusnya melihat dalam pengaturan perangkat Anda dan memastikan bahwa aplikasi diperbolehkan untuk muncul ketika dalam latar belakang dan memperbolehkan menampilkan di atas aplikasi lain.</string>
<!-- <!--
Haven't found some strings? There's more at Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res

View File

@@ -54,12 +54,13 @@
<string name="call_add">Aggiungi una chiamata</string> <string name="call_add">Aggiungi una chiamata</string>
<string name="conference_manage">Gestisci la teleconferenza</string> <string name="conference_manage">Gestisci la teleconferenza</string>
<string name="conference">Conferenza</string> <string name="conference">Conferenza</string>
<string name="audio_route_speaker">Speaker</string> <string name="audio_route_speaker">Altoparlante</string>
<string name="audio_route_earpiece">Earpiece</string> <string name="audio_route_earpiece">Auricolare</string>
<string name="audio_route_bluetooth">Bluetooth</string> <string name="audio_route_bluetooth">Bluetooth</string>
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Cuffia cablata</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Cablato o auricolare</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Scegli l\'uscita audio</string>
<string name="calling_blocked_number">Il numero che stai chiamando è bloccato</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Contatti veloci</string> <string name="speed_dial">Contatti veloci</string>
<string name="manage_speed_dial">Gestisci i contatti veloci</string> <string name="manage_speed_dial">Gestisci i contatti veloci</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Disattiva il sensore di prossimità durante le chiamate</string> <string name="disable_proximity_sensor">Disattiva il sensore di prossimità durante le chiamate</string>
<string name="disable_swipe_to_answer">Sostituisci lo scorrimento nel rispondere alle chiamate in arrivo con un clic</string> <string name="disable_swipe_to_answer">Sostituisci lo scorrimento nel rispondere alle chiamate in arrivo con un clic</string>
<string name="show_incoming_calls_full_screen">Visualizza sempre le chiamate in arrivo a schermo intero</string> <string name="show_incoming_calls_full_screen">Visualizza sempre le chiamate in arrivo a schermo intero</string>
<string name="hide_dialpad_numbers">Nascondi i numeri del tastierino</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Sento le chiamate in arrivo, ma lo schermo non si accende. Cosa posso fare\?</string> <string name="faq_1_title">Sento le chiamate in arrivo, ma lo schermo non si accende. Cosa posso fare\?</string>
<string name="faq_1_text">Tali problemi possono avere molte ragioni specifiche per il dispositivo e il sistema, è difficile identificarle in generale. Dovresti dare un\'occhiata alle impostazioni del dispositivo e assicurarti che l\'app sia autorizzata a comparire quando è in background e che permetta la visualizzazione sopra le altre app.</string> <string name="faq_1_text">Tali problemi possono avere molte ragioni specifiche per il dispositivo e il sistema, è difficile identificarle in generale. Dovresti dare un\'occhiata alle impostazioni del dispositivo e assicurarti che l\'app sia autorizzata a comparire quando è in background e che permetta la visualizzazione sopra le altre app.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">חיוג מהיר</string> <string name="speed_dial">חיוג מהיר</string>
<string name="manage_speed_dial">נהל חיוג מהיר</string> <string name="manage_speed_dial">נהל חיוג מהיר</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">השבת את חיישן הקרבה במהלך שיחות</string> <string name="disable_proximity_sensor">השבת את חיישן הקרבה במהלך שיחות</string>
<string name="disable_swipe_to_answer">החלף החלקה בתגובה לשיחות נכנסות בלחיצה</string> <string name="disable_swipe_to_answer">החלף החלקה בתגובה לשיחות נכנסות בלחיצה</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string>

View File

@@ -60,19 +60,21 @@
<string name="audio_route_wired_headset">有線ヘッドセット</string> <string name="audio_route_wired_headset">有線ヘッドセット</string>
<string name="audio_route_wired_or_earpiece">有線またはイヤーピース</string> <string name="audio_route_wired_or_earpiece">有線またはイヤーピース</string>
<string name="choose_audio_route">音声の出力先を選択</string> <string name="choose_audio_route">音声の出力先を選択</string>
<string name="calling_blocked_number">その番号はブロックした番号です</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">スピードダイヤル</string> <string name="speed_dial">スピードダイヤル</string>
<string name="manage_speed_dial">スピードダイヤルの管理</string> <string name="manage_speed_dial">スピードダイヤルの管理</string>
<string name="speed_dial_label">番号をクリックすると連絡先を割り当てることが出来ます。電話で指定された番号を長押しすると、指定された連絡先に素早く電話をかけることが出来ます。</string> <string name="speed_dial_label">番号をタップすると連絡先を割り当てることが出来ます。ダイヤルパッドで割り当てた番号を長押しすると、割り当てた連絡先に素早く電話をかけることが出来ます。</string>
<!-- Settings --> <!-- Settings -->
<string name="group_subsequent_calls">後続の通話をコールログの同じ番号でグループ化する</string> <string name="group_subsequent_calls">発着信履歴で同じ番号による連続した通話をグループ化する</string>
<string name="open_dialpad_by_default">アプリを開いたときにデフォルトでダイヤルパッドを開く</string> <string name="open_dialpad_by_default">アプリを開いたときにデフォルトでダイヤルパッドを開く</string>
<string name="disable_proximity_sensor">通話中に近接センサーを無効にする</string> <string name="disable_proximity_sensor">通話中に近接センサーを無効にする</string>
<string name="disable_swipe_to_answer">着信に応答する際のスワイプ操作をクリック操作に置き換える</string> <string name="disable_swipe_to_answer">着信に応答する際のスワイプ操作をタップ操作に置き換える</string>
<string name="show_incoming_calls_full_screen">常に着信通知を全画面表示する</string> <string name="show_incoming_calls_full_screen">着信通知を常に全画面表示する</string>
<string name="hide_dialpad_numbers">ダイヤルパッドの番号を表示しない</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">着信音は聞こえるのですが、画面がつきません。どうしたらよいですか?</string> <string name="faq_1_title">着信音は聞こえるのですが、画面がつきません。どうしたらよいですか?</string>
<string name="faq_1_text">このような問題は、デバイスやシステム固有の理由が多く、一概には言えません。端末の設定を見て、アプリがバックグラウンドでポップアップすることを許可しているか、他のアプリの上に表示することを許可しているかを確認する必要があります。</string> <string name="faq_1_text">このような問題は、端末やシステム固有の理由が多く、一概には言えません。端末の設定を見て、アプリがバックグラウンドでポップアップすることを許可しているか、他のアプリの上に表示することを許可しているかを確認する必要があります。</string>
<!-- <!--
Haven't found some strings? There's more at Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Spartusis rinkimas</string> <string name="speed_dial">Spartusis rinkimas</string>
<string name="manage_speed_dial">Tvarkyti spartųjį rinkimą</string> <string name="manage_speed_dial">Tvarkyti spartųjį rinkimą</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Skambučių metu išjungti artumo jutiklį</string> <string name="disable_proximity_sensor">Skambučių metu išjungti artumo jutiklį</string>
<string name="disable_swipe_to_answer">Atsiliepiant į įeinančius skambučius perbraukimą pakeiskite paspaudimu</string> <string name="disable_swipe_to_answer">Atsiliepiant į įeinančius skambučius perbraukimą pakeiskite paspaudimu</string>
<string name="show_incoming_calls_full_screen">Visada rodykite įeinančius skambučius per visą ekraną</string> <string name="show_incoming_calls_full_screen">Visada rodykite įeinančius skambučius per visą ekraną</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">വയർഡ് ഹെഡ്സെറ്റ്</string> <string name="audio_route_wired_headset">വയർഡ് ഹെഡ്സെറ്റ്</string>
<string name="audio_route_wired_or_earpiece">വയർഡ് അല്ലെങ്കിൽ ഇയർപീസ്</string> <string name="audio_route_wired_or_earpiece">വയർഡ് അല്ലെങ്കിൽ ഇയർപീസ്</string>
<string name="choose_audio_route">ഓഡിയോ യാതാമാര്ഗം തിരഞ്ഞെടുക്കുക</string> <string name="choose_audio_route">ഓഡിയോ യാതാമാര്ഗം തിരഞ്ഞെടുക്കുക</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">സ്പീഡ് ഡയൽ</string> <string name="speed_dial">സ്പീഡ് ഡയൽ</string>
<string name="manage_speed_dial">സ്പീഡ് ഡയൽ നിയന്ത്രിക്കുക</string> <string name="manage_speed_dial">സ്പീഡ് ഡയൽ നിയന്ത്രിക്കുക</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">കോളുകൾക്കിടയിൽ പ്രോക്സിമിറ്റി സെൻസർ പ്രവർത്തനരഹിതമാക്കുക</string> <string name="disable_proximity_sensor">കോളുകൾക്കിടയിൽ പ്രോക്സിമിറ്റി സെൻസർ പ്രവർത്തനരഹിതമാക്കുക</string>
<string name="disable_swipe_to_answer">ഇൻകമിംഗ് കോളുകളോട് പ്രതികരിക്കുമ്പോൾ സ്വൈപ്പിംഗ് മാറ്റി പകരം ഇൻകമിംഗ് കോളിൽ ക്ലിക്ക് ചെയ്യുക</string> <string name="disable_swipe_to_answer">ഇൻകമിംഗ് കോളുകളോട് പ്രതികരിക്കുമ്പോൾ സ്വൈപ്പിംഗ് മാറ്റി പകരം ഇൻകമിംഗ് കോളിൽ ക്ലിക്ക് ചെയ്യുക</string>
<string name="show_incoming_calls_full_screen">എല്ലായ്‌പ്പോഴും ഇൻകമിംഗ് കോളുകൾ പൂർണ്ണ സ്‌ക്രീനിൽ പ്രദർശിപ്പിക്കുക</string> <string name="show_incoming_calls_full_screen">എല്ലായ്‌പ്പോഴും ഇൻകമിംഗ് കോളുകൾ പൂർണ്ണ സ്‌ക്രീനിൽ പ്രദർശിപ്പിക്കുക</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">ഞാൻ ഇൻകമിംഗ് കോളുകൾ കേൾക്കുന്നു, പക്ഷേ സ്ക്രീൻ ഓണാക്കുന്നില്ല. എനിക്ക് എന്ത് ചെയ്യാൻ കഴിയും\?</string> <string name="faq_1_title">ഞാൻ ഇൻകമിംഗ് കോളുകൾ കേൾക്കുന്നു, പക്ഷേ സ്ക്രീൻ ഓണാക്കുന്നില്ല. എനിക്ക് എന്ത് ചെയ്യാൻ കഴിയും\?</string>
<string name="faq_1_text">അത്തരം പ്രശ്നങ്ങൾക്ക് ഉപകരണത്തിനും സിസ്റ്റത്തിനും പ്രത്യേക കാരണങ്ങളുണ്ടാകാം, പൊതുവായി പറയാൻ പ്രയാസമാണ്. നിങ്ങളുടെ ഉപകരണ ക്രമീകരണങ്ങളിൽ നിങ്ങൾ ചുറ്റും നോക്കുകയും പശ്ചാത്തലത്തിലായിരിക്കുമ്പോൾ ആപ്പ് പോപ്പ് അപ്പ് ചെയ്യാൻ അനുവദിക്കുകയും മറ്റ് ആപ്പുകളിൽ പ്രദർശിപ്പിക്കാൻ അനുവദിക്കുകയും വേണം.</string> <string name="faq_1_text">അത്തരം പ്രശ്നങ്ങൾക്ക് ഉപകരണത്തിനും സിസ്റ്റത്തിനും പ്രത്യേക കാരണങ്ങളുണ്ടാകാം, പൊതുവായി പറയാൻ പ്രയാസമാണ്. നിങ്ങളുടെ ഉപകരണ ക്രമീകരണങ്ങളിൽ നിങ്ങൾ ചുറ്റും നോക്കുകയും പശ്ചാത്തലത്തിലായിരിക്കുമ്പോൾ ആപ്പ് പോപ്പ് അപ്പ് ചെയ്യാൻ അനുവദിക്കുകയും മറ്റ് ആപ്പുകളിൽ പ്രദർശിപ്പിക്കാൻ അനുവദിക്കുകയും വേണം.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Hurtigvalg</string> <string name="speed_dial">Hurtigvalg</string>
<string name="manage_speed_dial">Administrer hurtigvalg</string> <string name="manage_speed_dial">Administrer hurtigvalg</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Deaktiver nærhetssensor under samtaler</string> <string name="disable_proximity_sensor">Deaktiver nærhetssensor under samtaler</string>
<string name="disable_swipe_to_answer">Erstatt sveiping ved å svare på innkommende anrop med å klikke</string> <string name="disable_swipe_to_answer">Erstatt sveiping ved å svare på innkommende anrop med å klikke</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Bedrade koptelefoon</string> <string name="audio_route_wired_headset">Bedrade koptelefoon</string>
<string name="audio_route_wired_or_earpiece">Bedraad of via oordopje(s)</string> <string name="audio_route_wired_or_earpiece">Bedraad of via oordopje(s)</string>
<string name="choose_audio_route">Geluidsroute kiezen</string> <string name="choose_audio_route">Geluidsroute kiezen</string>
<string name="calling_blocked_number">Het gebelde nummer is geblokkeerd</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Snelkiesnummer</string> <string name="speed_dial">Snelkiesnummer</string>
<string name="manage_speed_dial">Snelkiezen beheren</string> <string name="manage_speed_dial">Snelkiezen beheren</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Nabijheidssensor uitschakelen tijdens bellen</string> <string name="disable_proximity_sensor">Nabijheidssensor uitschakelen tijdens bellen</string>
<string name="disable_swipe_to_answer">Vervang vegen door klikken bij het aannemen van gesprekken</string> <string name="disable_swipe_to_answer">Vervang vegen door klikken bij het aannemen van gesprekken</string>
<string name="show_incoming_calls_full_screen">Inkomende gesprekken altijd op volledig scherm tonen</string> <string name="show_incoming_calls_full_screen">Inkomende gesprekken altijd op volledig scherm tonen</string>
<string name="hide_dialpad_numbers">Toetsenblokcijfers verbergen</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Ik hoor dat er een gesprek binnenkomt, maar het scherm gaat niet aan. Wat kan ik doen\?</string> <string name="faq_1_title">Ik hoor dat er een gesprek binnenkomt, maar het scherm gaat niet aan. Wat kan ik doen\?</string>
<string name="faq_1_text">Dit soort problemen kan vele oorzaken hebben, specifiek voor bepaalde apparaten en software. Controleer in ieder geval of voor deze app in de systeeminstellingen \"Weergeven vóór andere apps\" is toegestaan en of bij meldingen voor inkomende gesprekken \"Weergeven op scherm\" is ingeschakeld.</string> <string name="faq_1_text">Dit soort problemen kan vele oorzaken hebben, specifiek voor bepaalde apparaten en software. Controleer in ieder geval of voor deze app in de systeeminstellingen \"Weergeven vóór andere apps\" is toegestaan en of bij meldingen voor inkomende gesprekken \"Weergeven op scherm\" is ingeschakeld.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Speed dial</string> <string name="speed_dial">Speed dial</string>
<string name="manage_speed_dial">Manage speed dial</string> <string name="manage_speed_dial">Manage speed dial</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Disable proximity sensor during calls</string> <string name="disable_proximity_sensor">Disable proximity sensor during calls</string>
<string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string> <string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do\?</string> <string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do\?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Słuchawki przewodowe</string> <string name="audio_route_wired_headset">Słuchawki przewodowe</string>
<string name="audio_route_wired_or_earpiece">Słuchawka urządzenia lub przewodowa</string> <string name="audio_route_wired_or_earpiece">Słuchawka urządzenia lub przewodowa</string>
<string name="choose_audio_route">Wybierz urządzenie audio</string> <string name="choose_audio_route">Wybierz urządzenie audio</string>
<string name="calling_blocked_number">Numer, na który dzwonisz, jest zablokowany</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Szybkie wybieranie</string> <string name="speed_dial">Szybkie wybieranie</string>
<string name="manage_speed_dial">Zarządzaj szybkim wybieraniem</string> <string name="manage_speed_dial">Zarządzaj szybkim wybieraniem</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Wyłączaj czujnik zbliżeniowy podczas połączeń</string> <string name="disable_proximity_sensor">Wyłączaj czujnik zbliżeniowy podczas połączeń</string>
<string name="disable_swipe_to_answer">Zastąp naciśnięciem gest przesunięcia do odpowiadania na połączenia przychodzące</string> <string name="disable_swipe_to_answer">Zastąp naciśnięciem gest przesunięcia do odpowiadania na połączenia przychodzące</string>
<string name="show_incoming_calls_full_screen">Zawsze wyświetlaj połączenia przychodzące na pełnym ekranie</string> <string name="show_incoming_calls_full_screen">Zawsze wyświetlaj połączenia przychodzące na pełnym ekranie</string>
<string name="hide_dialpad_numbers">Ukryj cyfry panelu wybierania</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Słyszę połączenia przychodzące, ale ekran się nie włącza. Co mogę zrobić\?</string> <string name="faq_1_title">Słyszę połączenia przychodzące, ale ekran się nie włącza. Co mogę zrobić\?</string>
<string name="faq_1_text">Takie problemy mogą mieć wiele przyczyn specyficznych dla urządzenia i systemu; ogólnie trudno powiedzieć. Powinieneś/powinnaś rozejrzeć się w ustawieniach swojego urządzenia i upewnić się, że aplikacja może pojawiać się, gdy jest w tle, i wyświetlać się nad innymi aplikacjami.</string> <string name="faq_1_text">Takie problemy mogą mieć wiele przyczyn specyficznych dla urządzenia i systemu; ogólnie trudno powiedzieć. Powinieneś/powinnaś rozejrzeć się w ustawieniach swojego urządzenia i upewnić się, że aplikacja może pojawiać się, gdy jest w tle, i wyświetlać się nad innymi aplikacjami.</string>

View File

@@ -20,8 +20,8 @@
<string name="asterisk">Asterisco</string> <string name="asterisk">Asterisco</string>
<string name="hashtag">Hashtag</string> <string name="hashtag">Hashtag</string>
<string name="call_number">Numero de telefone</string> <string name="call_number">Numero de telefone</string>
<string name="dialpad_beeps">Enable beeps on dialpad button clicks</string> <string name="dialpad_beeps">Ativar sons do teclado</string>
<string name="dialpad_vibrations">Enable vibrations on dialpad button clicks</string> <string name="dialpad_vibrations">Ativar vibrações do teclado</string>
<!-- Dialer --> <!-- Dialer -->
<string name="dialer">Discador</string> <string name="dialer">Discador</string>
<string name="accept">Aceitar</string> <string name="accept">Aceitar</string>
@@ -54,12 +54,13 @@
<string name="call_add">Adicionar chamada</string> <string name="call_add">Adicionar chamada</string>
<string name="conference_manage">Gerenciar chamada em conferência</string> <string name="conference_manage">Gerenciar chamada em conferência</string>
<string name="conference">Conferência</string> <string name="conference">Conferência</string>
<string name="audio_route_speaker">Speaker</string> <string name="audio_route_speaker">Alto falante</string>
<string name="audio_route_earpiece">Earpiece</string> <string name="audio_route_earpiece">Fone de ouvido</string>
<string name="audio_route_bluetooth">Bluetooth</string> <string name="audio_route_bluetooth">Bluetooth</string>
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Headset com fio</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Escolha a rota de áudio</string>
<string name="calling_blocked_number">O número que você está ligando está bloqueado</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Ligação rápida</string> <string name="speed_dial">Ligação rápida</string>
<string name="manage_speed_dial">Gerenciar ligações rápidas</string> <string name="manage_speed_dial">Gerenciar ligações rápidas</string>
@@ -69,10 +70,11 @@
<string name="open_dialpad_by_default">Mostrar o discador ao abrir o aplicativo</string> <string name="open_dialpad_by_default">Mostrar o discador ao abrir o aplicativo</string>
<string name="disable_proximity_sensor">Desativar sensor de proximidade durante as chamadas</string> <string name="disable_proximity_sensor">Desativar sensor de proximidade durante as chamadas</string>
<string name="disable_swipe_to_answer">Clicar em vez de deslizar para responder chamadas</string> <string name="disable_swipe_to_answer">Clicar em vez de deslizar para responder chamadas</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Sempre exibir as chamadas recebidas em tela cheia</string>
<string name="hide_dialpad_numbers">Ocultar números do teclado</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">Ouço chamadas recebidas, mas a tela não liga. O que eu posso fazer?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Esses problemas podem ter muitos motivos específicos do dispositivo e do sistema, difíceis de dizer em geral. Você deve olhar em volta nas configurações do seu dispositivo e certificar-se de que o aplicativo pode aparecer quando estiver em segundo plano e permitir a exibição sobre outros aplicativos.</string>
<!-- <!--
Haven't found some strings? There's more at Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res

View File

@@ -1,78 +1,80 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Simple Dialer</string> <string name="app_name">Simple Dialer</string>
<string name="app_launcher_name">Marcador</string> <string name="app_launcher_name">Telefone</string>
<string name="default_phone_app_prompt">Por favor, faça deste aplicativo o aplicativo de telefone padrão</string> <string name="default_phone_app_prompt">Tornar esta a aplicação padrão</string>
<string name="allow_displaying_over_other_apps">Por favor, permita exibir sobre outros aplicativos para um comportamento confiável</string> <string name="allow_displaying_over_other_apps">Deve permitir que esta aplicação seja mostrada por cima das outras para evitar comportamentos erráticos</string>
<!-- Contacts --> <!-- Contacts -->
<string name="could_not_access_contacts">Não pude acessar seus contatos</string> <string name="could_not_access_contacts">Não foi possível aceder aos contactos</string>
<!-- Recents --> <!-- Recents -->
<string name="no_previous_calls">Não existem chamadas anteriores</string> <string name="no_previous_calls">Não existem chamadas anteriores</string>
<string name="could_not_access_the_call_history">Não pude acessar o histórico de chamadas</string> <string name="could_not_access_the_call_history">Não foi possível aceder ao histórico de chamadas</string>
<string name="request_access">Pedir acesso</string> <string name="request_access">Pedir acesso</string>
<string name="remove_confirmation">Tem certeza de que deseja remover os itens selecionados do Histórico de Chamadas\?</string> <string name="remove_confirmation">Tem certeza de que deseja remover os itens selecionados do histórico de chamadas\?</string>
<string name="clear_history_confirmation">Tem certeza que quer remover tudo do Histórico de Chamadas\?</string> <string name="clear_history_confirmation">Tem a certeza de que pretende remover tudo do histórico de chamadas\?</string>
<string name="show_grouped_calls">Mostrar chamadas em grupo</string> <string name="show_grouped_calls">Mostrar chamadas em grupo</string>
<string name="clear_call_history">Limpar registo de chamadas</string> <string name="clear_call_history">Limpar registo de chamadas</string>
<string name="show_call_details">Mostrar detalhes da chamada</string> <string name="show_call_details">Mostrar detalhes da chamada</string>
<!-- Dialpad --> <!-- Dialpad -->
<string name="dialpad">Teclado de discagem</string> <string name="dialpad">Marcador</string>
<string name="asterisk">Asterisco</string> <string name="asterisk">Asterisco</string>
<string name="hashtag">hashtag</string> <string name="hashtag">\'Hashtag\'</string>
<string name="call_number">Ligar para o número</string> <string name="call_number">Ligar</string>
<string name="dialpad_beeps">Enable beeps on dialpad button clicks</string> <string name="dialpad_beeps">Ativar sons do teclado</string>
<string name="dialpad_vibrations">Enable vibrations on dialpad button clicks</string> <string name="dialpad_vibrations">Ativar vibração do teclado</string>
<!-- Dialer --> <!-- Dialer -->
<string name="dialer">Discador</string> <string name="dialer">Marcador</string>
<string name="accept">Aceitar</string> <string name="accept">Aceitar</string>
<string name="accept_call">Aceitar chamada</string> <string name="accept_call">Aceitar chamada</string>
<string name="decline">Recusar</string> <string name="decline">Recusar</string>
<string name="decline_call">Rejeitar chamada</string> <string name="decline_call">Recusar chamada</string>
<string name="unknown_caller">Desconhecido</string> <string name="unknown_caller">Desconhecido</string>
<string name="is_calling">A chamar…</string> <string name="is_calling">A chamar…</string>
<string name="dialing">A ligar…</string> <string name="dialing">A ligar…</string>
<string name="call_ended">Chamada terminada</string> <string name="call_ended">Chamada terminada</string>
<string name="call_ending">A terminar chamada</string> <string name="call_ending">A terminar chamada</string>
<string name="ongoing_call">Chamada em curso</string> <string name="ongoing_call">Chamada em curso</string>
<string name="select_sim">Selecione um SIM para esta chamada</string> <string name="select_sim">Selecione o SIM para esta chamada</string>
<string name="always_use_this_sim">Utilizar sempre este SIM para ligar para este número</string> <string name="always_use_this_sim">Utilizar sempre este SIM para ligar a este número</string>
<string name="unset_default_sim">Deixar de utilizar como SIM padrão</string> <string name="unset_default_sim">Deixar de utilizar como SIM padrão</string>
<string name="calls">Chamadas</string> <string name="calls">Chamadas</string>
<string name="turn_microphone_on">Ligar o microfone</string> <string name="turn_microphone_on">Ligar microfone</string>
<string name="turn_microphone_off">Desligar o microfone</string> <string name="turn_microphone_off">Desligar microfone</string>
<string name="turn_speaker_on">Ligar alta-voz</string> <string name="turn_speaker_on">Ligar alta voz</string>
<string name="turn_speaker_off">Desligar alta-voz</string> <string name="turn_speaker_off">Desligar alta voz</string>
<string name="show_dialpad">Mostrar marcador</string> <string name="show_dialpad">Mostrar marcador</string>
<string name="hide_dialpad">Ocultar marcador</string> <string name="hide_dialpad">Ocultar marcador</string>
<string name="end_call">Terminar a chamada</string> <string name="end_call">Terminar chamada</string>
<string name="hold_call">Reter chamada</string> <string name="hold_call">Reter chamada</string>
<string name="resume_call">Retomar chamada</string> <string name="resume_call">Retomar chamada</string>
<string name="call_on_hold">Em espera</string> <string name="call_on_hold">Em espera</string>
<string name="call_swap">Troca de chamadas</string> <string name="call_swap">Troca de chamadas</string>
<string name="call_merge">Mesclar chamadas</string> <string name="call_merge">Unir chamadas</string>
<string name="call_split">Divisão de chamada</string> <string name="call_split">Separar chamadas</string>
<string name="call_add">Adicionar chamada</string> <string name="call_add">Adicionar chamada</string>
<string name="conference_manage">Gerenciar chamada de conferência</string> <string name="conference_manage">Gerir chamada de conferência</string>
<string name="conference">Conferência</string> <string name="conference">Conferência</string>
<string name="audio_route_speaker">Speaker</string> <string name="audio_route_speaker">Altifalante</string>
<string name="audio_route_earpiece">Earpiece</string> <string name="audio_route_earpiece">Auricular</string>
<string name="audio_route_bluetooth">Bluetooth</string> <string name="audio_route_bluetooth">Bluetooth</string>
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Auscultador de cabo</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Cabo ou auricular</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Escolha a rota de áudio</string>
<string name="calling_blocked_number">O número para o qual está a tentar ligar está bloqueado</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Marcação rápida</string> <string name="speed_dial">Ligação rápida</string>
<string name="manage_speed_dial">Gerir marcações rápidas</string> <string name="manage_speed_dial">Gerir ligações rápidas</string>
<string name="speed_dial_label">Clique num número para atribuir um contacto à marcação rápida. Poderá assim, ligar diretamente ao contacto ao premir longamente a tecla de marcação rápida.</string> <string name="speed_dial_label">Clique num número para o atribuir a um contacto. Poderá assim, ligar diretamente ao contacto ao premir longamente a tecla de ligação rápida.</string>
<!-- Settings --> <!-- Settings -->
<string name="group_subsequent_calls">Agrupar, no registo, as chamadas para o mesmo contacto</string> <string name="group_subsequent_calls">Agrupar, no registo, as chamadas para o mesmo contacto</string>
<string name="open_dialpad_by_default">Mostrar Marcador por padrâo ao abrir a aplicação</string> <string name="open_dialpad_by_default">Mostrar marcador ao abrir a aplicação</string>
<string name="disable_proximity_sensor">Desativar sensor de proximidade durante as chamadas</string> <string name="disable_proximity_sensor">Desativar sensor de proximidade durante as chamadas</string>
<string name="disable_swipe_to_answer">Clicar em vez de deslizar para atender</string> <string name="disable_swipe_to_answer">Clicar em vez de deslizar para atender</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Mostrar em ecrã completo as chamadas recebidas</string>
<string name="hide_dialpad_numbers">Ocultar números no marcador</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">Estou a ouvir som mas o ecrã não liga. O que posso fazer\?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Esses problemas podem ter muitos motivos específicos do dispositivo e do sistema, difíceis de dizer em geral. Aceda às definições do sistema e certifique-se de que concedeu as permissões necessárias tais como permitir exibição por cima das outras aplicações.</string>
<!-- <!--
Haven't found some strings? There's more at Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Apelare rapidă</string> <string name="speed_dial">Apelare rapidă</string>
<string name="manage_speed_dial">Gestionați apelarea rapidă</string> <string name="manage_speed_dial">Gestionați apelarea rapidă</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Dezactivați senzorul de proximitate în timpul apelurilor</string> <string name="disable_proximity_sensor">Dezactivați senzorul de proximitate în timpul apelurilor</string>
<string name="disable_swipe_to_answer">Înlocuiți glisarea pentru a răspunde la apelurile primite cu o singură apăsare</string> <string name="disable_swipe_to_answer">Înlocuiți glisarea pentru a răspunde la apelurile primite cu o singură apăsare</string>
<string name="show_incoming_calls_full_screen">Afișați întotdeauna apelurile primite pe întreg ecranul</string> <string name="show_incoming_calls_full_screen">Afișați întotdeauna apelurile primite pe întreg ecranul</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Aud apelurile primite, dar ecranul nu se aprinde. Ce pot face\?</string> <string name="faq_1_title">Aud apelurile primite, dar ecranul nu se aprinde. Ce pot face\?</string>
<string name="faq_1_text">Aceste probleme pot avea multe motive specifice dispozitivului și sistemului, fiind greu de spus în general. Ar trebui să vă uitați în setările dispozitivului și să vă asigurați că aplicația este permisă să apară atunci când este în fundal și că permite afișarea peste alte aplicații.</string> <string name="faq_1_text">Aceste probleme pot avea multe motive specifice dispozitivului și sistemului, fiind greu de spus în general. Ar trebui să vă uitați în setările dispozitivului și să vă asigurați că aplicația este permisă să apară atunci când este în fundal și că permite afișarea peste alte aplicații.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Проводная гарнитура</string> <string name="audio_route_wired_headset">Проводная гарнитура</string>
<string name="audio_route_wired_or_earpiece">Проводные или внутриканальные наушники</string> <string name="audio_route_wired_or_earpiece">Проводные или внутриканальные наушники</string>
<string name="choose_audio_route">Выберите аудиовыход</string> <string name="choose_audio_route">Выберите аудиовыход</string>
<string name="calling_blocked_number">Набранный вами номер заблокирован</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Быстрый вызов</string> <string name="speed_dial">Быстрый вызов</string>
<string name="manage_speed_dial">Управление быстрым вызовом</string> <string name="manage_speed_dial">Управление быстрым вызовом</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Отключать датчик приближения во время вызовов</string> <string name="disable_proximity_sensor">Отключать датчик приближения во время вызовов</string>
<string name="disable_swipe_to_answer">Использовать нажатие вместо перетаскивания при ответе на входящие вызовы</string> <string name="disable_swipe_to_answer">Использовать нажатие вместо перетаскивания при ответе на входящие вызовы</string>
<string name="show_incoming_calls_full_screen">Всегда отображать входящие вызовы на полный экран</string> <string name="show_incoming_calls_full_screen">Всегда отображать входящие вызовы на полный экран</string>
<string name="hide_dialpad_numbers">Скрыть цифры на номеронабирателе</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Я слышу сигналы входящих вызовов, но экран не включается. Что можно сделать\?</string> <string name="faq_1_title">Я слышу сигналы входящих вызовов, но экран не включается. Что можно сделать\?</string>
<string name="faq_1_text">Такие проблемы могут иметь множество специфических для устройства и системы причин, о которых трудно говорить в общем. Следует проверить настройки устройства и убедиться, что приложению разрешено отображение всплывающих уведомлений в фоновом режиме и отображение поверх других приложений.</string> <string name="faq_1_text">Такие проблемы могут иметь множество специфических для устройства и системы причин, о которых трудно говорить в общем. Следует проверить настройки устройства и убедиться, что приложению разрешено отображение всплывающих уведомлений в фоновом режиме и отображение поверх других приложений.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Káblové slúchadlo</string> <string name="audio_route_wired_headset">Káblové slúchadlo</string>
<string name="audio_route_wired_or_earpiece">Káblové alebo slúchadlo</string> <string name="audio_route_wired_or_earpiece">Káblové alebo slúchadlo</string>
<string name="choose_audio_route">Zvoľte audio výstup Choose audio route</string> <string name="choose_audio_route">Zvoľte audio výstup Choose audio route</string>
<string name="calling_blocked_number">Volané číslo máte zablokované</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Rýchle vytáčanie</string> <string name="speed_dial">Rýchle vytáčanie</string>
<string name="manage_speed_dial">Spravovať rýchle vytáčanie</string> <string name="manage_speed_dial">Spravovať rýchle vytáčanie</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Vypnúť počas hovorov senzor priblíženia</string> <string name="disable_proximity_sensor">Vypnúť počas hovorov senzor priblíženia</string>
<string name="disable_swipe_to_answer">Nahradiť potiahnutie prstom pri odpovedaní na prichádzajúce hovory kliknutím</string> <string name="disable_swipe_to_answer">Nahradiť potiahnutie prstom pri odpovedaní na prichádzajúce hovory kliknutím</string>
<string name="show_incoming_calls_full_screen">Stále zobraziť prichádzajúce hovory na celú obrazovku</string> <string name="show_incoming_calls_full_screen">Stále zobraziť prichádzajúce hovory na celú obrazovku</string>
<string name="hide_dialpad_numbers">Skryť čísla na číselníku</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Počujem prichádzajúce hovory, obrazovka sa ale nezapne. Čo s tým?</string> <string name="faq_1_title">Počujem prichádzajúce hovory, obrazovka sa ale nezapne. Čo s tým?</string>
<string name="faq_1_text">Takéto problémy majú často dôvody špecifické pre dané zariadenie alebo systém, ťažko teda dať všeobecné riešenie. Mali by ste sa poobzerať v nasteniach zariadenia a uistiť sa, že apka má povolenie na zobrazovanie sa z pozadia a na zobrazovanie sa nad ostatnými apkami.</string> <string name="faq_1_text">Takéto problémy majú často dôvody špecifické pre dané zariadenie alebo systém, ťažko teda dať všeobecné riešenie. Mali by ste sa poobzerať v nasteniach zariadenia a uistiť sa, že apka má povolenie na zobrazovanie sa z pozadia a na zobrazovanie sa nad ostatnými apkami.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Ožičene slušalke</string> <string name="audio_route_wired_headset">Ožičene slušalke</string>
<string name="audio_route_wired_or_earpiece">Ožičeno ali brezžično</string> <string name="audio_route_wired_or_earpiece">Ožičeno ali brezžično</string>
<string name="choose_audio_route">Izberi smer zvoka</string> <string name="choose_audio_route">Izberi smer zvoka</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Hitro klicanje</string> <string name="speed_dial">Hitro klicanje</string>
<string name="manage_speed_dial">Upravljanje hitrega klica</string> <string name="manage_speed_dial">Upravljanje hitrega klica</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Onemogoči senzor bližine med klici</string> <string name="disable_proximity_sensor">Onemogoči senzor bližine med klici</string>
<string name="disable_swipe_to_answer">Pri odzivanju na dohodne klice zamenjajte poteg s prstom na odziv s klikanjem</string> <string name="disable_swipe_to_answer">Pri odzivanju na dohodne klice zamenjajte poteg s prstom na odziv s klikanjem</string>
<string name="show_incoming_calls_full_screen">Dohodne klice vedno prikaži na celotnem zaslonu</string> <string name="show_incoming_calls_full_screen">Dohodne klice vedno prikaži na celotnem zaslonu</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Slišim dohodne klice, vendar se zaslon ne vklopi. Kaj lahko storim\?</string> <string name="faq_1_title">Slišim dohodne klice, vendar se zaslon ne vklopi. Kaj lahko storim\?</string>
<string name="faq_1_text">Takšne težave imajo lahko veliko razlogov, ki so specifični za napravo in sistem, zato jih je na splošno težko opredeliti. Oglejte si nastavitve naprave in se prepričajte, da je aplikaciji dovoljeno, da se prikaže, ko je v ozadju, in da omogoča prikaz nad drugimi aplikacijami.</string> <string name="faq_1_text">Takšne težave imajo lahko veliko razlogov, ki so specifični za napravo in sistem, zato jih je na splošno težko opredeliti. Oglejte si nastavitve naprave in se prepričajte, da je aplikaciji dovoljeno, da se prikaže, ko je v ozadju, in da omogoča prikaz nad drugimi aplikacijami.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Жичане слушалице</string> <string name="audio_route_wired_headset">Жичане слушалице</string>
<string name="audio_route_wired_or_earpiece">Жичани или слушалица</string> <string name="audio_route_wired_or_earpiece">Жичани или слушалица</string>
<string name="choose_audio_route">Изаберите аудио руту</string> <string name="choose_audio_route">Изаберите аудио руту</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Брзо бирање</string> <string name="speed_dial">Брзо бирање</string>
<string name="manage_speed_dial">Управљајте брзим бирањем</string> <string name="manage_speed_dial">Управљајте брзим бирањем</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Онемогућите сензор близине током позива</string> <string name="disable_proximity_sensor">Онемогућите сензор близине током позива</string>
<string name="disable_swipe_to_answer">Замените превлачење при одговарању на долазне позиве кликом</string> <string name="disable_swipe_to_answer">Замените превлачење при одговарању на долазне позиве кликом</string>
<string name="show_incoming_calls_full_screen">Увек прикажи долазне позиве преко целог екрана</string> <string name="show_incoming_calls_full_screen">Увек прикажи долазне позиве преко целог екрана</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Чујем долазне позиве, али екран се не укључује. Шта могу да урадим\?</string> <string name="faq_1_title">Чујем долазне позиве, али екран се не укључује. Шта могу да урадим\?</string>
<string name="faq_1_text">Такви проблеми могу имати много специфичних разлога за уређај и систем, што је уопштено тешко рећи. Требало би да погледате около у подешавањима уређаја и уверите се да је апликацији дозвољено да искаче када је у позадини и да дозволи приказивање преко других апликација.</string> <string name="faq_1_text">Такви проблеми могу имати много специфичних разлога за уређај и систем, што је уопштено тешко рећи. Требало би да погледате около у подешавањима уређаја и уверите се да је апликацији дозвољено да искаче када је у позадини и да дозволи приказивање преко других апликација.</string>

View File

@@ -2,7 +2,7 @@
<resources> <resources>
<string name="app_name">Simpel telefon</string> <string name="app_name">Simpel telefon</string>
<string name="app_launcher_name">Telefon</string> <string name="app_launcher_name">Telefon</string>
<string name="default_phone_app_prompt">Vänligen gör den här appen till standardtelefonapp</string> <string name="default_phone_app_prompt">Gör den här appen till standardtelefonapp</string>
<string name="allow_displaying_over_other_apps">Tillåt visning över andra appar för att få ett tillförlitligt beteende</string> <string name="allow_displaying_over_other_apps">Tillåt visning över andra appar för att få ett tillförlitligt beteende</string>
<!-- Contacts --> <!-- Contacts -->
<string name="could_not_access_contacts">Det gick inte att komma åt dina kontakter</string> <string name="could_not_access_contacts">Det gick inte att komma åt dina kontakter</string>
@@ -38,9 +38,9 @@
<string name="always_use_this_sim">Använd alltid det här SIM-kortet för detta nummer</string> <string name="always_use_this_sim">Använd alltid det här SIM-kortet för detta nummer</string>
<string name="unset_default_sim">Ta bort standard-SIM-kort</string> <string name="unset_default_sim">Ta bort standard-SIM-kort</string>
<string name="calls">Samtal</string> <string name="calls">Samtal</string>
<string name="turn_microphone_on">Sätt på mikrofonen</string> <string name="turn_microphone_on">S på mikrofonen</string>
<string name="turn_microphone_off">Stäng av mikrofonen</string> <string name="turn_microphone_off">Stäng av mikrofonen</string>
<string name="turn_speaker_on">Sätt på högtalaren</string> <string name="turn_speaker_on">S på högtalaren</string>
<string name="turn_speaker_off">Stäng av högtalaren</string> <string name="turn_speaker_off">Stäng av högtalaren</string>
<string name="show_dialpad">Visa knappsats</string> <string name="show_dialpad">Visa knappsats</string>
<string name="hide_dialpad">Dölj knappsats</string> <string name="hide_dialpad">Dölj knappsats</string>
@@ -54,12 +54,13 @@
<string name="call_add">Lägg till samtal</string> <string name="call_add">Lägg till samtal</string>
<string name="conference_manage">Hantera konferenssamtal</string> <string name="conference_manage">Hantera konferenssamtal</string>
<string name="conference">Konferens</string> <string name="conference">Konferens</string>
<string name="audio_route_speaker">Speaker</string> <string name="audio_route_speaker">Högtalare</string>
<string name="audio_route_earpiece">Earpiece</string> <string name="audio_route_earpiece">Lur</string>
<string name="audio_route_bluetooth">Bluetooth</string> <string name="audio_route_bluetooth">Bluetooth</string>
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Kabelanslutet headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Kabel eller lur</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Välj ljudväg</string>
<string name="calling_blocked_number">Numret du ringer är blockerat</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Snabbuppringning</string> <string name="speed_dial">Snabbuppringning</string>
<string name="manage_speed_dial">Hantera snabbuppringning</string> <string name="manage_speed_dial">Hantera snabbuppringning</string>
@@ -70,9 +71,10 @@
<string name="disable_proximity_sensor">Inaktivera närhetssensor under samtal</string> <string name="disable_proximity_sensor">Inaktivera närhetssensor under samtal</string>
<string name="disable_swipe_to_answer">Ersätt svepning vid besvarande av inkommande samtal med tryckning</string> <string name="disable_swipe_to_answer">Ersätt svepning vid besvarande av inkommande samtal med tryckning</string>
<string name="show_incoming_calls_full_screen">Visa alltid inkommande samtal i helskärm</string> <string name="show_incoming_calls_full_screen">Visa alltid inkommande samtal i helskärm</string>
<string name="hide_dialpad_numbers">Dölj knappsatsens siffror</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">Jag hör inkommande samtal men skärmen vaknar inte. Vad gör jag\?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Sådana problem kan bero specifikt på apparat eller ditt sytem, det är svårt att svara på generellt. Du bör kolla i dina inställningar och säkerställa att appen har behörighet att synas i förgrunden och tillåts att synas över andra appar.</string>
<!-- <!--
Haven't found some strings? There's more at Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Speed dial</string> <string name="speed_dial">Speed dial</string>
<string name="manage_speed_dial">Manage speed dial</string> <string name="manage_speed_dial">Manage speed dial</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Disable proximity sensor during calls</string> <string name="disable_proximity_sensor">Disable proximity sensor during calls</string>
<string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string> <string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Kablolu Kulaklık</string> <string name="audio_route_wired_headset">Kablolu Kulaklık</string>
<string name="audio_route_wired_or_earpiece">Kablolu veya Kulaklık</string> <string name="audio_route_wired_or_earpiece">Kablolu veya Kulaklık</string>
<string name="choose_audio_route">Ses çıkışını seçin</string> <string name="choose_audio_route">Ses çıkışını seçin</string>
<string name="calling_blocked_number">Aradığınız numara engellendi</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Hızlı arama</string> <string name="speed_dial">Hızlı arama</string>
<string name="manage_speed_dial">Hızlı aramayı yönet</string> <string name="manage_speed_dial">Hızlı aramayı yönet</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">Aramalar sırasında yakınlık sensörünü devre dışı bırak</string> <string name="disable_proximity_sensor">Aramalar sırasında yakınlık sensörünü devre dışı bırak</string>
<string name="disable_swipe_to_answer">Gelen aramalara yanıt vermek için kaydırmayı tıklamayla değiştir</string> <string name="disable_swipe_to_answer">Gelen aramalara yanıt vermek için kaydırmayı tıklamayla değiştir</string>
<string name="show_incoming_calls_full_screen">Gelen aramaları her zaman tam ekranda görüntüle</string> <string name="show_incoming_calls_full_screen">Gelen aramaları her zaman tam ekranda görüntüle</string>
<string name="hide_dialpad_numbers">Tuş takımı numaralarını gizle</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Gelen aramaları duyuyorum ama ekran açılmıyor. Ne yapabilirim\?</string> <string name="faq_1_title">Gelen aramaları duyuyorum ama ekran açılmıyor. Ne yapabilirim\?</string>
<string name="faq_1_text">Bu tür sorunların aygıta ve sisteme özgü birçok nedeni olabilir, genel olarak söylemek zor. Aygıt ayarlarınıza bakmalı ve uygulamanın arka plandayken açılmasına ve diğer uygulamaların üzerinde görüntülenmesine izin verildiğinden emin olmalısınız.</string> <string name="faq_1_text">Bu tür sorunların aygıta ve sisteme özgü birçok nedeni olabilir, genel olarak söylemek zor. Aygıt ayarlarınıza bakmalı ve uygulamanın arka plandayken açılmasına ve diğer uygulamaların üzerinde görüntülenmesine izin verildiğinden emin olmalısınız.</string>

View File

@@ -3,7 +3,7 @@
<string name="app_name">Простий Телефон</string> <string name="app_name">Простий Телефон</string>
<string name="app_launcher_name">Телефон</string> <string name="app_launcher_name">Телефон</string>
<string name="default_phone_app_prompt">Будь ласка, зробіть цю програму типовою для телефонних викликів</string> <string name="default_phone_app_prompt">Будь ласка, зробіть цю програму типовою для телефонних викликів</string>
<string name="allow_displaying_over_other_apps">Дозвольте відображення над іншими додатками для надійної роботи</string> <string name="allow_displaying_over_other_apps">Дозвольте відображення над іншими застосунками для надійної роботи</string>
<!-- Contacts --> <!-- Contacts -->
<string name="could_not_access_contacts">Не вдалося отримати доступ до контактів</string> <string name="could_not_access_contacts">Не вдалося отримати доступ до контактів</string>
<!-- Recents --> <!-- Recents -->
@@ -20,8 +20,8 @@
<string name="asterisk">Asterisk</string> <string name="asterisk">Asterisk</string>
<string name="hashtag">Хештег</string> <string name="hashtag">Хештег</string>
<string name="call_number">Номер виклику</string> <string name="call_number">Номер виклику</string>
<string name="dialpad_beeps">Enable beeps on dialpad button clicks</string> <string name="dialpad_beeps">Увімкнути звукові сигнали при наборі номеру</string>
<string name="dialpad_vibrations">Enable vibrations on dialpad button clicks</string> <string name="dialpad_vibrations">Увімкнути вібрації при наборі номеру</string>
<!-- Dialer --> <!-- Dialer -->
<string name="dialer">Телефон</string> <string name="dialer">Телефон</string>
<string name="accept">Прийняти</string> <string name="accept">Прийняти</string>
@@ -54,25 +54,27 @@
<string name="call_add">Додати дзвінок</string> <string name="call_add">Додати дзвінок</string>
<string name="conference_manage">Керувати конференц-викликом</string> <string name="conference_manage">Керувати конференц-викликом</string>
<string name="conference">Конференц-виклик</string> <string name="conference">Конференц-виклик</string>
<string name="audio_route_speaker">Speaker</string> <string name="audio_route_speaker">Динамік</string>
<string name="audio_route_earpiece">Earpiece</string> <string name="audio_route_earpiece">Навушники</string>
<string name="audio_route_bluetooth">Bluetooth</string> <string name="audio_route_bluetooth">Bluetooth</string>
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Провідна гарнітура</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Провідний або навушник</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Оберіть аудіовихід</string>
<string name="calling_blocked_number">Номер, на який ви телефонуєте, заблоковано</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Швидкий виклик</string> <string name="speed_dial">Швидкий виклик</string>
<string name="manage_speed_dial">Управління швидким викликом</string> <string name="manage_speed_dial">Управління швидким викликом</string>
<string name="speed_dial_label">Натисніть на номер, щоб призначити йому контакт. Потім ви зможете швидко зателефонувати вказаному контакту, довго натискаючи вказаний номер на цифровій панелі.</string> <string name="speed_dial_label">Натисніть на номер, щоб призначити йому контакт. Потім ви зможете швидко зателефонувати вказаному контакту, довго натискаючи вказаний номер на цифровій панелі.</string>
<!-- Settings --> <!-- Settings -->
<string name="group_subsequent_calls">Групувати наступні дзвінки з тим самим номером у журналі викликів</string> <string name="group_subsequent_calls">Групувати наступні дзвінки з тим самим номером у журналі викликів</string>
<string name="open_dialpad_by_default">За замовчуванням відкривати цифрову панель при запуску додатку</string> <string name="open_dialpad_by_default">За замовчуванням відкривати цифрову панель при запуску застосунку</string>
<string name="disable_proximity_sensor">Вимикати датник наближення під час викликів</string> <string name="disable_proximity_sensor">Вимикати датник наближення під час викликів</string>
<string name="disable_swipe_to_answer">Замінити перетягування на натискання під час відповіді на вхідні виклики</string> <string name="disable_swipe_to_answer">Замінити перетягування на натискання під час відповіді на вхідні виклики</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Завжди відображати вхідні дзвінки на весь екран</string>
<string name="hide_dialpad_numbers">Приховати номери цифрової клавіатури</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">Я чую вхідні дзвінки, але екран не вмикається. Що я можу зробити\?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Такі проблеми можуть мати багато специфічних для пристрою та системи причин, важко сказати в цілому. Вам слід подивитися в налаштуваннях свого пристрою та переконатися, що застосунку дозволено відображати у фоновому режимі та дозволяти відображення над іншими застосунками.</string>
<!-- <!--
Haven't found some strings? There's more at Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">有线耳机</string> <string name="audio_route_wired_headset">有线耳机</string>
<string name="audio_route_wired_or_earpiece">有线或听筒</string> <string name="audio_route_wired_or_earpiece">有线或听筒</string>
<string name="choose_audio_route">选择音频线路</string> <string name="choose_audio_route">选择音频线路</string>
<string name="calling_blocked_number">你呼叫的号码被屏蔽了</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">快速拨号</string> <string name="speed_dial">快速拨号</string>
<string name="manage_speed_dial">管理快速拨号</string> <string name="manage_speed_dial">管理快速拨号</string>
@@ -70,6 +71,7 @@
<string name="disable_proximity_sensor">在通话期间禁用接近传感器</string> <string name="disable_proximity_sensor">在通话期间禁用接近传感器</string>
<string name="disable_swipe_to_answer">用点击代替滑动来接听来电</string> <string name="disable_swipe_to_answer">用点击代替滑动来接听来电</string>
<string name="show_incoming_calls_full_screen">始终全屏显示来电</string> <string name="show_incoming_calls_full_screen">始终全屏显示来电</string>
<string name="hide_dialpad_numbers">隐藏拨号盘号码</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">我听到来电声音,但屏幕不亮。我该怎么办\?</string> <string name="faq_1_title">我听到来电声音,但屏幕不亮。我该怎么办\?</string>
<string name="faq_1_text">这样的问题可能有很多设备和系统的具体原因,很难笼统地说。你应该查看你的设备设置,确保应用在后台时被允许弹出,并允许其显示在其他应用上方。</string> <string name="faq_1_text">这样的问题可能有很多设备和系统的具体原因,很难笼统地说。你应该查看你的设备设置,确保应用在后台时被允许弹出,并允许其显示在其他应用上方。</string>

View File

@@ -60,6 +60,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Speed dial</string> <string name="speed_dial">Speed dial</string>
<string name="manage_speed_dial">Manage speed dial</string> <string name="manage_speed_dial">Manage speed dial</string>
@@ -70,6 +71,8 @@
<string name="disable_proximity_sensor">Disable proximity sensor during calls</string> <string name="disable_proximity_sensor">Disable proximity sensor during calls</string>
<string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string> <string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string>
<string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string> <string name="faq_1_text">Such issues can have many device and system specific reasons, hard to say in general. You should look around in your device settings and make sure that the app is allowed to pop up when in background and allow displaying over other apps.</string>

View File

@@ -7,7 +7,10 @@
<dimen name="call_notification_button_size">40dp</dimen> <dimen name="call_notification_button_size">40dp</dimen>
<dimen name="incoming_call_avatar_size">120dp</dimen> <dimen name="incoming_call_avatar_size">120dp</dimen>
<dimen name="dialpad_text_size">30sp</dimen>
<dimen name="caller_name_text_size">34sp</dimen> <dimen name="caller_name_text_size">34sp</dimen>
<dimen name="call_status_text_size">20sp</dimen> <dimen name="call_status_text_size">20sp</dimen>
<!-- keep these 2 values in dp to avoid scaling -->
<dimen name="dialpad_text_size">28dp</dimen>
<dimen name="dialpad_letters_text_size">12dp</dimen>
</resources> </resources>

View File

@@ -64,6 +64,7 @@
<string name="audio_route_wired_headset">Wired Headset</string> <string name="audio_route_wired_headset">Wired Headset</string>
<string name="audio_route_wired_or_earpiece">Wired or Earpiece</string> <string name="audio_route_wired_or_earpiece">Wired or Earpiece</string>
<string name="choose_audio_route">Choose audio route</string> <string name="choose_audio_route">Choose audio route</string>
<string name="calling_blocked_number">The number you are calling is blocked</string>
<!-- Speed dial --> <!-- Speed dial -->
<string name="speed_dial">Speed dial</string> <string name="speed_dial">Speed dial</string>
@@ -76,6 +77,7 @@
<string name="disable_proximity_sensor">Disable proximity sensor during calls</string> <string name="disable_proximity_sensor">Disable proximity sensor during calls</string>
<string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string> <string name="disable_swipe_to_answer">Replace swiping at responding to incoming calls with clicking</string>
<string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string> <string name="show_incoming_calls_full_screen">Always display incoming calls on full screen</string>
<string name="hide_dialpad_numbers">Hide dialpad numbers</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string> <string name="faq_1_title">I hear incoming calls, but the screen doesn\'t turn on. What can I do?</string>

View File

@@ -2,14 +2,23 @@
<style name="AppTheme" parent="AppTheme.Base" /> <style name="AppTheme" parent="AppTheme.Base" />
<style name="DialpadButtonStyle">
<item name="android:background">@drawable/pill_background</item>
<item name="android:layout_marginStart">@dimen/small_margin</item>
<item name="android:layout_marginEnd">@dimen/small_margin</item>
<item name="android:paddingTop">@dimen/one_dp</item>
</style>
<style name="DialpadNumberStyle"> <style name="DialpadNumberStyle">
<item name="android:includeFontPadding">false</item> <item name="android:includeFontPadding">false</item>
<item name="android:textSize">@dimen/dialpad_text_size</item> <item name="android:textSize">@dimen/dialpad_text_size</item>
<item name="android:layout_centerHorizontal">true</item>
</style> </style>
<style name="DialpadLetterStyle"> <style name="DialpadLetterStyle">
<item name="android:textSize">@dimen/smaller_text_size</item> <item name="android:textSize">@dimen/dialpad_letters_text_size</item>
<item name="android:alpha">0.8</item> <item name="android:alpha">0.8</item>
<item name="android:layout_centerHorizontal">true</item>
</style> </style>
</resources> </resources>

View File

@@ -1 +0,0 @@

View File

@@ -1 +0,0 @@

View File

@@ -1 +0,0 @@

View File

@@ -0,0 +1,4 @@
* Do not allow calling blocked numbers
* Allow hiding numbers on the dialpad
* Use Material You theme by default on Android 12+
* Added some UI, translation and stability improvements

View File

@@ -0,0 +1 @@
* Added the new search bar at the top menu

View File

@@ -0,0 +1 @@
* Fixed a glitch with dialpad button not being visible on some devices

View File

@@ -0,0 +1 @@
* Fixed a search glitch on some devices

View File

@@ -0,0 +1,4 @@
* Allow filtering contacts
* Fix displaying contacts, if name starts with surname
* Fixed some right-to-left layout glitches
* Added some stability, translation and UX improvements

View File

@@ -0,0 +1,4 @@
* Allow filtering contacts
* Fix displaying contacts, if name starts with surname
* Fixed some right-to-left layout glitches
* Added some stability, translation and UX improvements

View File

@@ -0,0 +1,2 @@
* Fixed number presses during call
* Added some stability, translation and UX improvements

View File

@@ -0,0 +1 @@
* Added some stability, translation and UX improvements

View File

@@ -0,0 +1,3 @@
* Avoid showing contacts without a phone number
* Fixed multiple contact handling related glitches
* Added some stability, translation and UX improvements

Some files were not shown because too many files have changed in this diff Show More