mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 12:09:45 +01:00
dynamically set accountType and accountName
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
8c86fa0135
commit
d9f9f8c280
@ -38,6 +38,8 @@ import androidx.work.*
|
|||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
import com.bluelinelabs.conductor.Controller
|
import com.bluelinelabs.conductor.Controller
|
||||||
import com.google.gson.Gson
|
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.api.NcApi
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||||
@ -52,7 +54,6 @@ import io.reactivex.schedulers.Schedulers
|
|||||||
import okhttp3.MediaType
|
import okhttp3.MediaType
|
||||||
import okhttp3.RequestBody
|
import okhttp3.RequestBody
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import com.nextcloud.talk.R
|
|
||||||
|
|
||||||
|
|
||||||
@AutoInjector(NextcloudTalkApplication::class)
|
@AutoInjector(NextcloudTalkApplication::class)
|
||||||
@ -68,11 +69,19 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
|||||||
@Inject
|
@Inject
|
||||||
lateinit var appPreferences: AppPreferences
|
lateinit var appPreferences: AppPreferences
|
||||||
|
|
||||||
|
private lateinit var accountName: String
|
||||||
|
private lateinit var accountType: String
|
||||||
|
|
||||||
override fun doWork(): Result {
|
override fun doWork(): Result {
|
||||||
sharedApplication!!.componentApplication.inject(this)
|
sharedApplication!!.componentApplication.inject(this)
|
||||||
|
|
||||||
val currentUser = userUtils.currentUser
|
val currentUser = userUtils.currentUser
|
||||||
|
|
||||||
|
accountName = context.getString(R.string.nc_app_name)
|
||||||
|
accountType = BuildConfig.APPLICATION_ID
|
||||||
|
Log.d(TAG, "accountName: " + accountName)
|
||||||
|
Log.d(TAG, "accountType: " + accountType)
|
||||||
|
|
||||||
if (currentUser == null) {
|
if (currentUser == null) {
|
||||||
Log.e(javaClass.simpleName, "No current user!")
|
Log.e(javaClass.simpleName, "No current user!")
|
||||||
return Result.failure()
|
return Result.failure()
|
||||||
@ -86,8 +95,10 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(AccountManager.get(context).getAccountsByType(ACCOUNT_TYPE).isEmpty()){
|
if(AccountManager.get(context).getAccountsByType(accountType).isEmpty()){
|
||||||
AccountManager.get(context).addAccountExplicitly(Account(ACCOUNT_NAME, ACCOUNT_TYPE), "", null)
|
AccountManager.get(context).addAccountExplicitly(Account(accountName, accountType), "", null)
|
||||||
|
} else {
|
||||||
|
Log.d(TAG, "Account already exists")
|
||||||
}
|
}
|
||||||
|
|
||||||
// collect all contacts with phone number
|
// collect all contacts with phone number
|
||||||
@ -186,8 +197,8 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
|||||||
val rawContactUri = ContactsContract.Data.CONTENT_URI
|
val rawContactUri = ContactsContract.Data.CONTENT_URI
|
||||||
.buildUpon()
|
.buildUpon()
|
||||||
.appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
|
.appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
|
||||||
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_NAME, "Nextcloud Talk")
|
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_NAME, accountName)
|
||||||
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.nextcloud.talk2")
|
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType)
|
||||||
.appendQueryParameter(ContactsContract.Data.MIMETYPE, "vnd.android.cursor.item/vnd.com.nextcloud.talk2.chat")
|
.appendQueryParameter(ContactsContract.Data.MIMETYPE, "vnd.android.cursor.item/vnd.com.nextcloud.talk2.chat")
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
@ -292,8 +303,8 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
|||||||
|
|
||||||
ops.add(ContentProviderOperation
|
ops.add(ContentProviderOperation
|
||||||
.newInsert(rawContactsUri)
|
.newInsert(rawContactsUri)
|
||||||
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, ACCOUNT_NAME)
|
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, accountName)
|
||||||
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, ACCOUNT_TYPE)
|
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType)
|
||||||
.withValue(ContactsContract.RawContacts.AGGREGATION_MODE,
|
.withValue(ContactsContract.RawContacts.AGGREGATION_MODE,
|
||||||
ContactsContract.RawContacts.AGGREGATION_MODE_DEFAULT)
|
ContactsContract.RawContacts.AGGREGATION_MODE_DEFAULT)
|
||||||
.withValue(ContactsContract.RawContacts.SYNC2, cloudId)
|
.withValue(ContactsContract.RawContacts.SYNC2, cloudId)
|
||||||
@ -337,8 +348,8 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
|||||||
val rawContactUri = ContactsContract.RawContacts.CONTENT_URI
|
val rawContactUri = ContactsContract.RawContacts.CONTENT_URI
|
||||||
.buildUpon()
|
.buildUpon()
|
||||||
.appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
|
.appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
|
||||||
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_NAME, "Nextcloud Talk")
|
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_NAME, accountName)
|
||||||
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.nextcloud.talk2")
|
.appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
|
|
||||||
@ -350,8 +361,6 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
|
|||||||
const val TAG = "ContactAddressBook"
|
const val TAG = "ContactAddressBook"
|
||||||
const val REQUEST_PERMISSION = 231
|
const val REQUEST_PERMISSION = 231
|
||||||
const val KEY_FORCE = "KEY_FORCE"
|
const val KEY_FORCE = "KEY_FORCE"
|
||||||
const val ACCOUNT_TYPE = "com.nextcloud.talk2"
|
|
||||||
const val ACCOUNT_NAME = "Nextcloud Talk"
|
|
||||||
|
|
||||||
fun run(context: Context) {
|
fun run(context: Context) {
|
||||||
if (ContextCompat.checkSelfPermission(context,
|
if (ContextCompat.checkSelfPermission(context,
|
||||||
|
Loading…
Reference in New Issue
Block a user