mirror of
https://github.com/etesync/android
synced 2025-06-25 01:18:58 +00:00
Don't rely on LOGIN_ACCOUNTS_CHANGED_ACTION
Based on the davdroid commit: 1f7298f947a4878e86fcba0c6722e34b03cb63c6
This commit is contained in:
parent
0b21502645
commit
dda23fb484
@ -162,20 +162,6 @@
|
|||||||
android:enabled="true">
|
android:enabled="true">
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
<receiver android:name=".AccountsChangedReceiver">
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED"/>
|
|
||||||
</intent-filter>
|
|
||||||
</receiver>
|
|
||||||
|
|
||||||
<receiver android:name=".PackageChangedReceiver">
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.PACKAGE_ADDED"/>
|
|
||||||
<action android:name="android.intent.action.PACKAGE_FULLY_REMOVED"/>
|
|
||||||
<data android:scheme="package"/>
|
|
||||||
</intent-filter>
|
|
||||||
</receiver>
|
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.AccountsActivity"
|
android:name=".ui.AccountsActivity"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2013 – 2016 Ricki Hirner (bitfire web engineering).
|
|
||||||
* All rights reserved. This program and the accompanying materials
|
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
|
||||||
* which accompanies this distribution, and is available at
|
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.etesync.syncadapter
|
|
||||||
|
|
||||||
import android.accounts.AccountManager
|
|
||||||
import android.accounts.OnAccountsUpdateListener
|
|
||||||
import android.content.BroadcastReceiver
|
|
||||||
import android.content.Context
|
|
||||||
import android.content.Intent
|
|
||||||
|
|
||||||
import java.util.LinkedList
|
|
||||||
|
|
||||||
class AccountsChangedReceiver : BroadcastReceiver() {
|
|
||||||
|
|
||||||
override fun onReceive(context: Context, intent: Intent) {
|
|
||||||
if (AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION == intent.action) {
|
|
||||||
val serviceIntent = Intent(context, AccountUpdateService::class.java)
|
|
||||||
serviceIntent.action = AccountUpdateService.ACTION_ACCOUNTS_UPDATED
|
|
||||||
context.startService(serviceIntent)
|
|
||||||
|
|
||||||
for (listener in listeners)
|
|
||||||
listener.onAccountsUpdated(null)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
|
|
||||||
protected val listeners: MutableList<OnAccountsUpdateListener> = LinkedList()
|
|
||||||
|
|
||||||
fun registerListener(listener: OnAccountsUpdateListener, callImmediately: Boolean) {
|
|
||||||
listeners.add(listener)
|
|
||||||
if (callImmediately)
|
|
||||||
listener.onAccountsUpdated(null)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun unregisterListener(listener: OnAccountsUpdateListener) {
|
|
||||||
listeners.remove(listener)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -26,7 +26,6 @@ import android.widget.AbsListView
|
|||||||
import android.widget.AdapterView
|
import android.widget.AdapterView
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import com.etesync.syncadapter.AccountsChangedReceiver
|
|
||||||
import com.etesync.syncadapter.App
|
import com.etesync.syncadapter.App
|
||||||
import com.etesync.syncadapter.R
|
import com.etesync.syncadapter.R
|
||||||
|
|
||||||
@ -80,11 +79,11 @@ class AccountListFragment : ListFragment(), LoaderManager.LoaderCallbacks<Array<
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onStartLoading() {
|
override fun onStartLoading() {
|
||||||
AccountsChangedReceiver.registerListener(this, true)
|
accountManager.addOnAccountsUpdatedListener(this, null, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStopLoading() {
|
override fun onStopLoading() {
|
||||||
AccountsChangedReceiver.unregisterListener(this)
|
accountManager.removeOnAccountsUpdatedListener(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onAccountsUpdated(accounts: Array<Account>) {
|
override fun onAccountsUpdated(accounts: Array<Account>) {
|
||||||
|
Loading…
Reference in New Issue
Block a user