1293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount/* 25cd681c345db8f606d7d5a8662e20e059f21a86cGeorge Mount * Copyright (C) 2015 The Android Open Source Project 3293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount * 4293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount * Licensed under the Apache License, Version 2.0 (the "License"); 5293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount * you may not use this file except in compliance with the License. 6293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount * You may obtain a copy of the License at 7293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount * 8293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount * http://www.apache.org/licenses/LICENSE-2.0 9293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount * 10293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount * Unless required by applicable law or agreed to in writing, software 11293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount * distributed under the License is distributed on an "AS IS" BASIS, 12293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount * See the License for the specific language governing permissions and 14293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount * limitations under the License. 15293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount */ 16fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding; 172c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount 18c9a5d6f140f732ca0ff279a4b1ee315072e1c422George Mount/** 19c9a5d6f140f732ca0ff279a4b1ee315072e1c422George Mount * Utility class for managing ObservableMap callbacks. 20c9a5d6f140f732ca0ff279a4b1ee315072e1c422George Mount */ 215cd681c345db8f606d7d5a8662e20e059f21a86cGeorge Mountpublic class MapChangeRegistry 22722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount extends CallbackRegistry<ObservableMap.OnMapChangedCallback, ObservableMap, Object> { 23293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount 24722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount private static NotifierCallback<ObservableMap.OnMapChangedCallback, ObservableMap, Object> NOTIFIER_CALLBACK = 25722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount new NotifierCallback<ObservableMap.OnMapChangedCallback, ObservableMap, Object>() { 265cd681c345db8f606d7d5a8662e20e059f21a86cGeorge Mount @Override 27722fe711207a37783dfa7142284b0ebe5bd503fbGeorge Mount public void onNotifyCallback(ObservableMap.OnMapChangedCallback callback, ObservableMap sender, 285cd681c345db8f606d7d5a8662e20e059f21a86cGeorge Mount int arg, Object arg2) { 295cd681c345db8f606d7d5a8662e20e059f21a86cGeorge Mount callback.onMapChanged(sender, arg2); 305cd681c345db8f606d7d5a8662e20e059f21a86cGeorge Mount } 315cd681c345db8f606d7d5a8662e20e059f21a86cGeorge Mount }; 32293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount 335cd681c345db8f606d7d5a8662e20e059f21a86cGeorge Mount public MapChangeRegistry() { 34293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount super(NOTIFIER_CALLBACK); 35293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount } 362c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount 37c9a5d6f140f732ca0ff279a4b1ee315072e1c422George Mount /** 38c9a5d6f140f732ca0ff279a4b1ee315072e1c422George Mount * Notifies registered callbacks that an element has been added, removed, or changed. 39c9a5d6f140f732ca0ff279a4b1ee315072e1c422George Mount * 40c9a5d6f140f732ca0ff279a4b1ee315072e1c422George Mount * @param sender The map that has changed. 41c9a5d6f140f732ca0ff279a4b1ee315072e1c422George Mount * @param key The key of the element that changed. 42c9a5d6f140f732ca0ff279a4b1ee315072e1c422George Mount */ 432c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount public void notifyChange(ObservableMap sender, Object key) { 442c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount notifyCallbacks(sender, 0, key); 452c86cdbaf189e2b1774af7f64a2974de9321673fGeorge Mount } 46293de28642305ce210e1d2a1cfe0abfa4f737d7aGeorge Mount} 47