package com.daquexian.chaoli.forum.utils; import android.databinding.Observable; import android.support.v4.util.ArrayMap; import com.daquexian.chaoli.forum.view.BaseActivity; /** * Manage callbacks, nothing complex * Created by daquexian on 17-1-25. */ public class DataBindingUtils { private static ArrayMap<BaseActivity, ArrayMap<Observable, Observable.OnPropertyChangedCallback>> mGlobalMap = new ArrayMap<>(); public static void addCallback(BaseActivity activity, Observable observable, Observable.OnPropertyChangedCallback callback) { ArrayMap<Observable, Observable.OnPropertyChangedCallback> localMap = mGlobalMap.get(activity); if (localMap == null) { localMap = new ArrayMap<>(); mGlobalMap.put(activity, localMap); } observable.addOnPropertyChangedCallback(callback); localMap.put(observable, callback); } public static void removeCallbacks(BaseActivity activity) { ArrayMap<Observable, Observable.OnPropertyChangedCallback> localMap = mGlobalMap.get(activity); if (localMap != null) { for (Observable observable : localMap.keySet()) { observable.removeOnPropertyChangedCallback(localMap.get(observable)); } } } }