call switchTo(Fore|Back)ground() outside synchronized block
This commit is contained in:
parent
a4004904fe
commit
1764656ff9
|
@ -1902,164 +1902,196 @@ public class XmppConnectionService extends Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnConversationListChangedListener(OnConversationUpdate listener) {
|
public void setOnConversationListChangedListener(OnConversationUpdate listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToForeground();
|
|
||||||
}
|
|
||||||
if (!this.mOnConversationUpdates.add(listener)) {
|
if (!this.mOnConversationUpdates.add(listener)) {
|
||||||
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as ConversationListChangedListener");
|
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as ConversationListChangedListener");
|
||||||
}
|
}
|
||||||
this.mNotificationService.setIsInForeground(this.mOnConversationUpdates.size() > 0);
|
this.mNotificationService.setIsInForeground(this.mOnConversationUpdates.size() > 0);
|
||||||
}
|
}
|
||||||
|
if (remainingListeners) {
|
||||||
|
switchToForeground();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeOnConversationListChangedListener(OnConversationUpdate listener) {
|
public void removeOnConversationListChangedListener(OnConversationUpdate listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
this.mOnConversationUpdates.remove(listener);
|
this.mOnConversationUpdates.remove(listener);
|
||||||
this.mNotificationService.setIsInForeground(this.mOnConversationUpdates.size() > 0);
|
this.mNotificationService.setIsInForeground(this.mOnConversationUpdates.size() > 0);
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToBackground();
|
}
|
||||||
}
|
if (remainingListeners) {
|
||||||
|
switchToBackground();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnShowErrorToastListener(OnShowErrorToast listener) {
|
public void setOnShowErrorToastListener(OnShowErrorToast listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToForeground();
|
|
||||||
}
|
|
||||||
if (!this.mOnShowErrorToasts.add(listener)) {
|
if (!this.mOnShowErrorToasts.add(listener)) {
|
||||||
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnShowErrorToastListener");
|
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnShowErrorToastListener");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (remainingListeners) {
|
||||||
|
switchToForeground();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeOnShowErrorToastListener(OnShowErrorToast onShowErrorToast) {
|
public void removeOnShowErrorToastListener(OnShowErrorToast onShowErrorToast) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
this.mOnShowErrorToasts.remove(onShowErrorToast);
|
this.mOnShowErrorToasts.remove(onShowErrorToast);
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToBackground();
|
}
|
||||||
}
|
if (remainingListeners) {
|
||||||
|
switchToBackground();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnAccountListChangedListener(OnAccountUpdate listener) {
|
public void setOnAccountListChangedListener(OnAccountUpdate listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToForeground();
|
|
||||||
}
|
|
||||||
if (!this.mOnAccountUpdates.add(listener)) {
|
if (!this.mOnAccountUpdates.add(listener)) {
|
||||||
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnAccountListChangedtListener");
|
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnAccountListChangedtListener");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (remainingListeners) {
|
||||||
|
switchToForeground();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeOnAccountListChangedListener(OnAccountUpdate listener) {
|
public void removeOnAccountListChangedListener(OnAccountUpdate listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
this.mOnAccountUpdates.remove(listener);
|
this.mOnAccountUpdates.remove(listener);
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToBackground();
|
}
|
||||||
}
|
if (remainingListeners) {
|
||||||
|
switchToBackground();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnCaptchaRequestedListener(OnCaptchaRequested listener) {
|
public void setOnCaptchaRequestedListener(OnCaptchaRequested listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToForeground();
|
|
||||||
}
|
|
||||||
if (!this.mOnCaptchaRequested.add(listener)) {
|
if (!this.mOnCaptchaRequested.add(listener)) {
|
||||||
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnCaptchaRequestListener");
|
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnCaptchaRequestListener");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (remainingListeners) {
|
||||||
|
switchToForeground();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeOnCaptchaRequestedListener(OnCaptchaRequested listener) {
|
public void removeOnCaptchaRequestedListener(OnCaptchaRequested listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
this.mOnCaptchaRequested.remove(listener);
|
this.mOnCaptchaRequested.remove(listener);
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToBackground();
|
}
|
||||||
}
|
if (remainingListeners) {
|
||||||
|
switchToBackground();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnRosterUpdateListener(final OnRosterUpdate listener) {
|
public void setOnRosterUpdateListener(final OnRosterUpdate listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToForeground();
|
|
||||||
}
|
|
||||||
if (!this.mOnRosterUpdates.add(listener)) {
|
if (!this.mOnRosterUpdates.add(listener)) {
|
||||||
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnRosterUpdateListener");
|
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnRosterUpdateListener");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (remainingListeners) {
|
||||||
|
switchToForeground();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeOnRosterUpdateListener(final OnRosterUpdate listener) {
|
public void removeOnRosterUpdateListener(final OnRosterUpdate listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
this.mOnRosterUpdates.remove(listener);
|
this.mOnRosterUpdates.remove(listener);
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToBackground();
|
}
|
||||||
}
|
if (remainingListeners) {
|
||||||
|
switchToBackground();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnUpdateBlocklistListener(final OnUpdateBlocklist listener) {
|
public void setOnUpdateBlocklistListener(final OnUpdateBlocklist listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToForeground();
|
|
||||||
}
|
|
||||||
if (!this.mOnUpdateBlocklist.add(listener)) {
|
if (!this.mOnUpdateBlocklist.add(listener)) {
|
||||||
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnUpdateBlocklistListener");
|
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnUpdateBlocklistListener");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (remainingListeners) {
|
||||||
|
switchToForeground();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeOnUpdateBlocklistListener(final OnUpdateBlocklist listener) {
|
public void removeOnUpdateBlocklistListener(final OnUpdateBlocklist listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
this.mOnUpdateBlocklist.remove(listener);
|
this.mOnUpdateBlocklist.remove(listener);
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToBackground();
|
}
|
||||||
}
|
if (remainingListeners) {
|
||||||
|
switchToBackground();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnKeyStatusUpdatedListener(final OnKeyStatusUpdated listener) {
|
public void setOnKeyStatusUpdatedListener(final OnKeyStatusUpdated listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToForeground();
|
|
||||||
}
|
|
||||||
if (!this.mOnKeyStatusUpdated.add(listener)) {
|
if (!this.mOnKeyStatusUpdated.add(listener)) {
|
||||||
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnKeyStatusUpdateListener");
|
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnKeyStatusUpdateListener");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (remainingListeners) {
|
||||||
|
switchToForeground();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeOnNewKeysAvailableListener(final OnKeyStatusUpdated listener) {
|
public void removeOnNewKeysAvailableListener(final OnKeyStatusUpdated listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
this.mOnKeyStatusUpdated.remove(listener);
|
this.mOnKeyStatusUpdated.remove(listener);
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToBackground();
|
}
|
||||||
}
|
if (remainingListeners) {
|
||||||
|
switchToBackground();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnMucRosterUpdateListener(OnMucRosterUpdate listener) {
|
public void setOnMucRosterUpdateListener(OnMucRosterUpdate listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToForeground();
|
|
||||||
}
|
|
||||||
if (!this.mOnMucRosterUpdate.add(listener)) {
|
if (!this.mOnMucRosterUpdate.add(listener)) {
|
||||||
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnMucRosterListener");
|
Log.w(Config.LOGTAG,listener.getClass().getName()+" is already registered as OnMucRosterListener");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (remainingListeners) {
|
||||||
|
switchToForeground();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeOnMucRosterUpdateListener(final OnMucRosterUpdate listener) {
|
public void removeOnMucRosterUpdateListener(final OnMucRosterUpdate listener) {
|
||||||
|
final boolean remainingListeners;
|
||||||
synchronized (LISTENER_LOCK) {
|
synchronized (LISTENER_LOCK) {
|
||||||
this.mOnMucRosterUpdate.remove(listener);
|
this.mOnMucRosterUpdate.remove(listener);
|
||||||
if (checkListeners()) {
|
remainingListeners = checkListeners();
|
||||||
switchToBackground();
|
}
|
||||||
}
|
if (remainingListeners) {
|
||||||
|
switchToBackground();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue