mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-21 04:29:45 +01:00
Merge pull request #1068 from nextcloud/fixNullNameInPhonebook
Fix null name in phonebook
This commit is contained in:
commit
c9dc3938b1
@ -38,6 +38,8 @@ import androidx.work.*
|
||||
import autodagger.AutoInjector
|
||||
import com.bluelinelabs.conductor.Controller
|
||||
import com.google.gson.Gson
|
||||
import com.nextcloud.talk.BuildConfig
|
||||
import com.nextcloud.talk.R
|
||||
import com.nextcloud.talk.api.NcApi
|
||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||
@ -52,7 +54,6 @@ import io.reactivex.schedulers.Schedulers
|
||||
import okhttp3.MediaType
|
||||
import okhttp3.RequestBody
|
||||
import javax.inject.Inject
|
||||
import com.nextcloud.talk.R
|
||||
|
||||
|
||||
@AutoInjector(NextcloudTalkApplication::class)
|
||||
@ -68,11 +69,17 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
||||
@Inject
|
||||
lateinit var appPreferences: AppPreferences
|
||||
|
||||
private lateinit var accountName: String
|
||||
private lateinit var accountType: String
|
||||
|
||||
override fun doWork(): Result {
|
||||
sharedApplication!!.componentApplication.inject(this)
|
||||
|
||||
val currentUser = userUtils.currentUser
|
||||
|
||||
accountName = context.getString(R.string.nc_app_name)
|
||||
accountType = BuildConfig.APPLICATION_ID
|
||||
|
||||
if (currentUser == null) {
|
||||
Log.e(javaClass.simpleName, "No current user!")
|
||||
return Result.failure()
|
||||
@ -86,8 +93,10 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
||||
}
|
||||
}
|
||||
|
||||
if(AccountManager.get(context).getAccountsByType(ACCOUNT_TYPE).isEmpty()){
|
||||
AccountManager.get(context).addAccountExplicitly(Account(ACCOUNT_NAME, ACCOUNT_TYPE), "", null)
|
||||
if(AccountManager.get(context).getAccountsByType(accountType).isEmpty()){
|
||||
AccountManager.get(context).addAccountExplicitly(Account(accountName, accountType), "", null)
|
||||
} else {
|
||||
Log.d(TAG, "Account already exists")
|
||||
}
|
||||
|
||||
// collect all contacts with phone number
|
||||
@ -182,12 +191,12 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
||||
private fun up(foundContacts: ContactsByNumberOverall) {
|
||||
val map = foundContacts.ocs.map
|
||||
|
||||
// Delete all old associations (those that are associated on phone, but not in server response)
|
||||
// Delete all old associations (those that are associated on phone, but not in server response)
|
||||
val rawContactUri = ContactsContract.Data.CONTENT_URI
|
||||
.buildUpon()
|
||||
.appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
|
||||
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_NAME, "Nextcloud Talk")
|
||||
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.nextcloud.talk2")
|
||||
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_NAME, accountName)
|
||||
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType)
|
||||
.appendQueryParameter(ContactsContract.Data.MIMETYPE, "vnd.android.cursor.item/vnd.com.nextcloud.talk2.chat")
|
||||
.build()
|
||||
|
||||
@ -224,7 +233,7 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
||||
for (contact in foundContacts.ocs.map) {
|
||||
val lookupKey = contact.key
|
||||
val cloudId = contact.value
|
||||
|
||||
|
||||
update(lookupKey, cloudId)
|
||||
}
|
||||
}
|
||||
@ -292,8 +301,8 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
||||
|
||||
ops.add(ContentProviderOperation
|
||||
.newInsert(rawContactsUri)
|
||||
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, ACCOUNT_NAME)
|
||||
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, ACCOUNT_TYPE)
|
||||
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, accountName)
|
||||
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType)
|
||||
.withValue(ContactsContract.RawContacts.AGGREGATION_MODE,
|
||||
ContactsContract.RawContacts.AGGREGATION_MODE_DEFAULT)
|
||||
.withValue(ContactsContract.RawContacts.SYNC2, cloudId)
|
||||
@ -337,8 +346,8 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
||||
val rawContactUri = ContactsContract.RawContacts.CONTENT_URI
|
||||
.buildUpon()
|
||||
.appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
|
||||
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_NAME, "Nextcloud Talk")
|
||||
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.nextcloud.talk2")
|
||||
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_NAME, accountName)
|
||||
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType)
|
||||
.build()
|
||||
|
||||
|
||||
@ -350,8 +359,6 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
||||
const val TAG = "ContactAddressBook"
|
||||
const val REQUEST_PERMISSION = 231
|
||||
const val KEY_FORCE = "KEY_FORCE"
|
||||
const val ACCOUNT_TYPE = "com.nextcloud.talk2"
|
||||
const val ACCOUNT_NAME = "Nextcloud Talk"
|
||||
|
||||
fun run(context: Context) {
|
||||
if (ContextCompat.checkSelfPermission(context,
|
||||
|
@ -23,4 +23,4 @@
|
||||
android:accountType="com.nextcloud.talk2"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:smallIcon="@mipmap/ic_launcher"
|
||||
android:label="Nextcloud Talk"/>
|
||||
android:label="@string/nc_app_name"/>
|
||||
|
Loading…
Reference in New Issue
Block a user