Skip to content

Commit 4cecfa4

Browse files
authored
Merge pull request #14 from SimpleMobileTools/master
гзв
2 parents 749741c + 6acabdd commit 4cecfa4

File tree

156 files changed

+587
-123
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

156 files changed

+587
-123
lines changed

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,21 @@
11
Changelog
22
==========
33

4+
Version 4.0.1 *(2018-05-09)*
5+
----------------------------
6+
7+
* Fixed a glitch happening at updating from old app version to 4.x
8+
9+
Version 4.0.0 *(2018-05-09)*
10+
----------------------------
11+
12+
* Allow changing app icon color
13+
* Add a toggle for trying to filter out duplicate contacts, enabled by default
14+
* Fix some contacts not being visible
15+
* Allow opening contacts with third party apps
16+
* Couple misc fixes related to contacts syncing via CardDAV
17+
* Allow moving contacts in a different contact source at the Edit screen
18+
419
Version 3.5.3 *(2018-04-18)*
520
----------------------------
621

app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ android {
1010
applicationId "com.simplemobiletools.contacts"
1111
minSdkVersion 16
1212
targetSdkVersion 27
13-
versionCode 19
14-
versionName "3.5.3"
13+
versionCode 21
14+
versionName "4.0.1"
1515
setProperty("archivesBaseName", "contacts")
1616
}
1717

@@ -45,7 +45,7 @@ ext {
4545
}
4646

4747
dependencies {
48-
implementation 'com.simplemobiletools:commons:3.20.6'
48+
implementation 'com.simplemobiletools:commons:4.0.0'
4949
implementation 'joda-time:joda-time:2.9.9'
5050
implementation 'com.facebook.stetho:stetho:1.5.0'
5151

app/src/main/AndroidManifest.xml

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,228 @@
210210
android:icon="@mipmap/ic_launcher_red"
211211
android:roundIcon="@mipmap/ic_launcher_red"
212212
android:targetActivity=".activities.SplashActivity">
213+
214+
<intent-filter>
215+
<action android:name="android.intent.action.MAIN"/>
216+
<category android:name="android.intent.category.LAUNCHER"/>
217+
</intent-filter>
218+
</activity-alias>
219+
220+
<activity-alias
221+
android:name=".activities.SplashActivity.Pink"
222+
android:enabled="false"
223+
android:icon="@mipmap/ic_launcher_pink"
224+
android:roundIcon="@mipmap/ic_launcher_pink"
225+
android:targetActivity=".activities.SplashActivity">
226+
227+
<intent-filter>
228+
<action android:name="android.intent.action.MAIN"/>
229+
<category android:name="android.intent.category.LAUNCHER"/>
230+
</intent-filter>
231+
</activity-alias>
232+
233+
<activity-alias
234+
android:name=".activities.SplashActivity.Purple"
235+
android:enabled="false"
236+
android:icon="@mipmap/ic_launcher_purple"
237+
android:roundIcon="@mipmap/ic_launcher_purple"
238+
android:targetActivity=".activities.SplashActivity">
239+
240+
<intent-filter>
241+
<action android:name="android.intent.action.MAIN"/>
242+
<category android:name="android.intent.category.LAUNCHER"/>
243+
</intent-filter>
244+
</activity-alias>
245+
246+
<activity-alias
247+
android:name=".activities.SplashActivity.Deep_purple"
248+
android:enabled="false"
249+
android:icon="@mipmap/ic_launcher_deep_purple"
250+
android:roundIcon="@mipmap/ic_launcher_deep_purple"
251+
android:targetActivity=".activities.SplashActivity">
252+
253+
<intent-filter>
254+
<action android:name="android.intent.action.MAIN"/>
255+
<category android:name="android.intent.category.LAUNCHER"/>
256+
</intent-filter>
257+
</activity-alias>
258+
259+
<activity-alias
260+
android:name=".activities.SplashActivity.Indigo"
261+
android:enabled="false"
262+
android:icon="@mipmap/ic_launcher_indigo"
263+
android:roundIcon="@mipmap/ic_launcher_indigo"
264+
android:targetActivity=".activities.SplashActivity">
265+
266+
<intent-filter>
267+
<action android:name="android.intent.action.MAIN"/>
268+
<category android:name="android.intent.category.LAUNCHER"/>
269+
</intent-filter>
270+
</activity-alias>
271+
272+
<activity-alias
273+
android:name=".activities.SplashActivity.Blue"
274+
android:enabled="false"
275+
android:icon="@mipmap/ic_launcher_blue"
276+
android:roundIcon="@mipmap/ic_launcher_blue"
277+
android:targetActivity=".activities.SplashActivity">
278+
279+
<intent-filter>
280+
<action android:name="android.intent.action.MAIN"/>
281+
<category android:name="android.intent.category.LAUNCHER"/>
282+
</intent-filter>
283+
</activity-alias>
284+
285+
<activity-alias
286+
android:name=".activities.SplashActivity.Light_blue"
287+
android:enabled="false"
288+
android:icon="@mipmap/ic_launcher_light_blue"
289+
android:roundIcon="@mipmap/ic_launcher_light_blue"
290+
android:targetActivity=".activities.SplashActivity">
291+
292+
<intent-filter>
293+
<action android:name="android.intent.action.MAIN"/>
294+
<category android:name="android.intent.category.LAUNCHER"/>
295+
</intent-filter>
296+
</activity-alias>
297+
298+
<activity-alias
299+
android:name=".activities.SplashActivity.Cyan"
300+
android:enabled="false"
301+
android:icon="@mipmap/ic_launcher_cyan"
302+
android:roundIcon="@mipmap/ic_launcher_cyan"
303+
android:targetActivity=".activities.SplashActivity">
304+
305+
<intent-filter>
306+
<action android:name="android.intent.action.MAIN"/>
307+
<category android:name="android.intent.category.LAUNCHER"/>
308+
</intent-filter>
309+
</activity-alias>
310+
311+
<activity-alias
312+
android:name=".activities.SplashActivity.Teal"
313+
android:enabled="false"
314+
android:icon="@mipmap/ic_launcher_teal"
315+
android:roundIcon="@mipmap/ic_launcher_teal"
316+
android:targetActivity=".activities.SplashActivity">
317+
318+
<intent-filter>
319+
<action android:name="android.intent.action.MAIN"/>
320+
<category android:name="android.intent.category.LAUNCHER"/>
321+
</intent-filter>
322+
</activity-alias>
323+
324+
<activity-alias
325+
android:name=".activities.SplashActivity.Green"
326+
android:enabled="false"
327+
android:icon="@mipmap/ic_launcher_green"
328+
android:roundIcon="@mipmap/ic_launcher_green"
329+
android:targetActivity=".activities.SplashActivity">
330+
331+
<intent-filter>
332+
<action android:name="android.intent.action.MAIN"/>
333+
<category android:name="android.intent.category.LAUNCHER"/>
334+
</intent-filter>
335+
</activity-alias>
336+
337+
<activity-alias
338+
android:name=".activities.SplashActivity.Light_green"
339+
android:enabled="false"
340+
android:icon="@mipmap/ic_launcher_light_green"
341+
android:roundIcon="@mipmap/ic_launcher_light_green"
342+
android:targetActivity=".activities.SplashActivity">
343+
344+
<intent-filter>
345+
<action android:name="android.intent.action.MAIN"/>
346+
<category android:name="android.intent.category.LAUNCHER"/>
347+
</intent-filter>
348+
</activity-alias>
349+
350+
<activity-alias
351+
android:name=".activities.SplashActivity.Lime"
352+
android:enabled="false"
353+
android:icon="@mipmap/ic_launcher_lime"
354+
android:roundIcon="@mipmap/ic_launcher_lime"
355+
android:targetActivity=".activities.SplashActivity">
356+
357+
<intent-filter>
358+
<action android:name="android.intent.action.MAIN"/>
359+
<category android:name="android.intent.category.LAUNCHER"/>
360+
</intent-filter>
361+
</activity-alias>
362+
363+
<activity-alias
364+
android:name=".activities.SplashActivity.Yellow"
365+
android:enabled="false"
366+
android:icon="@mipmap/ic_launcher_yellow"
367+
android:roundIcon="@mipmap/ic_launcher_yellow"
368+
android:targetActivity=".activities.SplashActivity">
369+
370+
<intent-filter>
371+
<action android:name="android.intent.action.MAIN"/>
372+
<category android:name="android.intent.category.LAUNCHER"/>
373+
</intent-filter>
374+
</activity-alias>
375+
376+
<activity-alias
377+
android:name=".activities.SplashActivity.Amber"
378+
android:enabled="false"
379+
android:icon="@mipmap/ic_launcher_amber"
380+
android:roundIcon="@mipmap/ic_launcher_amber"
381+
android:targetActivity=".activities.SplashActivity">
382+
383+
<intent-filter>
384+
<action android:name="android.intent.action.MAIN"/>
385+
<category android:name="android.intent.category.LAUNCHER"/>
386+
</intent-filter>
387+
</activity-alias>
388+
389+
<activity-alias
390+
android:name=".activities.SplashActivity.Deep_orange"
391+
android:enabled="false"
392+
android:icon="@mipmap/ic_launcher_deep_orange"
393+
android:roundIcon="@mipmap/ic_launcher_deep_orange"
394+
android:targetActivity=".activities.SplashActivity">
395+
396+
<intent-filter>
397+
<action android:name="android.intent.action.MAIN"/>
398+
<category android:name="android.intent.category.LAUNCHER"/>
399+
</intent-filter>
400+
</activity-alias>
401+
402+
<activity-alias
403+
android:name=".activities.SplashActivity.Brown"
404+
android:enabled="false"
405+
android:icon="@mipmap/ic_launcher_brown"
406+
android:roundIcon="@mipmap/ic_launcher_brown"
407+
android:targetActivity=".activities.SplashActivity">
408+
409+
<intent-filter>
410+
<action android:name="android.intent.action.MAIN"/>
411+
<category android:name="android.intent.category.LAUNCHER"/>
412+
</intent-filter>
413+
</activity-alias>
414+
415+
<activity-alias
416+
android:name=".activities.SplashActivity.Blue_grey"
417+
android:enabled="false"
418+
android:icon="@mipmap/ic_launcher_blue_grey"
419+
android:roundIcon="@mipmap/ic_launcher_blue_grey"
420+
android:targetActivity=".activities.SplashActivity">
421+
422+
<intent-filter>
423+
<action android:name="android.intent.action.MAIN"/>
424+
<category android:name="android.intent.category.LAUNCHER"/>
425+
</intent-filter>
426+
</activity-alias>
427+
428+
<activity-alias
429+
android:name=".activities.SplashActivity.Grey_black"
430+
android:enabled="false"
431+
android:icon="@mipmap/ic_launcher_grey_black"
432+
android:roundIcon="@mipmap/ic_launcher_grey_black"
433+
android:targetActivity=".activities.SplashActivity">
434+
213435
<intent-filter>
214436
<action android:name="android.intent.action.MAIN"/>
215437
<category android:name="android.intent.category.LAUNCHER"/>

app/src/main/kotlin/com/simplemobiletools/contacts/activities/EditContactActivity.kt

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class EditContactActivity : ContactActivity() {
5252
private var lastPhotoIntentUri: Uri? = null
5353
private var isSaving = false
5454
private var isThirdPartyIntent = false
55+
private var originalContactSource = ""
5556

5657
override fun onCreate(savedInstanceState: Bundle?) {
5758
super.onCreate(savedInstanceState)
@@ -212,6 +213,7 @@ class EditContactActivity : ContactActivity() {
212213
contact_events_add_new.setOnClickListener { addNewEventField() }
213214
contact_websites_add_new.setOnClickListener { addNewWebsiteField() }
214215
contact_groups_add_new.setOnClickListener { showSelectGroupsDialog() }
216+
contact_source.setOnClickListener { showSelectContactSourceDialog() }
215217

216218
setupFieldVisibility()
217219

@@ -504,21 +506,16 @@ class EditContactActivity : ContactActivity() {
504506

505507
private fun setupContactSource() {
506508
contact_source.text = getPublicContactSource(contact!!.source)
509+
originalContactSource = contact!!.source
507510
}
508511

509512
private fun setupNewContact() {
510513
supportActionBar?.title = resources.getString(R.string.new_contact)
511-
val contactSource = if (hasContactPermissions()) config.lastUsedContactSource else SMT_PRIVATE
514+
originalContactSource = if (hasContactPermissions()) config.lastUsedContactSource else SMT_PRIVATE
512515
val organization = Organization("", "")
513-
contact = Contact(0, "", "", "", "", "", "", ArrayList(), ArrayList(), ArrayList(), ArrayList(), contactSource, 0, 0, "", null, "",
516+
contact = Contact(0, "", "", "", "", "", "", ArrayList(), ArrayList(), ArrayList(), ArrayList(), originalContactSource, 0, 0, "", null, "",
514517
ArrayList(), organization, ArrayList())
515518
contact_source.text = getPublicContactSource(contact!!.source)
516-
contact_source.setOnClickListener {
517-
showContactSourcePicker(contact!!.source) {
518-
contact!!.source = if (it == getString(R.string.phone_storage_hidden)) SMT_PRIVATE else it
519-
contact_source.text = getPublicContactSource(it)
520-
}
521-
}
522519
}
523520

524521
private fun setupTypePickers() {
@@ -708,6 +705,13 @@ class EditContactActivity : ContactActivity() {
708705
}
709706
}
710707

708+
private fun showSelectContactSourceDialog() {
709+
showContactSourcePicker(contact!!.source) {
710+
contact!!.source = if (it == getString(R.string.phone_storage_hidden)) SMT_PRIVATE else it
711+
contact_source.text = getPublicContactSource(it)
712+
}
713+
}
714+
711715
private fun saveContact() {
712716
if (isSaving || contact == null) {
713717
return
@@ -726,7 +730,6 @@ class EditContactActivity : ContactActivity() {
726730
emails = getFilledEmails()
727731
addresses = getFilledAddresses()
728732
events = getFilledEvents()
729-
source = contact!!.source
730733
starred = if (isContactStarred()) 1 else 0
731734
notes = contact_notes.value
732735
websites = getFilledWebsites()
@@ -737,11 +740,13 @@ class EditContactActivity : ContactActivity() {
737740

738741
Thread {
739742
config.lastUsedContactSource = source
740-
if (id == 0) {
741-
insertNewContact()
742-
} else {
743-
val photoUpdateStatus = getPhotoUpdateStatus(oldPhotoUri, photoUri)
744-
updateContact(photoUpdateStatus)
743+
when {
744+
id == 0 -> insertNewContact(false)
745+
originalContactSource != source -> insertNewContact(true)
746+
else -> {
747+
val photoUpdateStatus = getPhotoUpdateStatus(oldPhotoUri, photoUri)
748+
updateContact(photoUpdateStatus)
749+
}
745750
}
746751
}.start()
747752
}
@@ -821,10 +826,17 @@ class EditContactActivity : ContactActivity() {
821826
return websites
822827
}
823828

824-
private fun insertNewContact() {
829+
private fun insertNewContact(deleteCurrentContact: Boolean) {
825830
isSaving = true
826-
toast(R.string.inserting)
831+
if (!deleteCurrentContact) {
832+
toast(R.string.inserting)
833+
}
834+
827835
if (ContactsHelper(this@EditContactActivity).insertContact(contact!!)) {
836+
if (deleteCurrentContact) {
837+
contact!!.source = originalContactSource
838+
ContactsHelper(this).deleteContact(contact!!)
839+
}
828840
finish()
829841
} else {
830842
toast(R.string.unknown_error_occurred)

0 commit comments

Comments
 (0)