项目作者: 4332weizi

项目描述 :
Interface generator for observable field in android DataBinding.
高级语言: Java
项目地址: git://github.com/4332weizi/DataBinding-Watchdog.git
创建时间: 2017-01-12T04:54:37Z
项目社区:https://github.com/4332weizi/DataBinding-Watchdog

开源协议:

下载


DataBinding-Watchdog

Deprecated! Use LiveData instead.

Interface generator and property change binding tool for observable field in android DataBinding.

  • Generate callback interface for observable fields annotated with @WatchThis.
  • Bind callback with onPropertyChanged event.

Download

  1. dependencies {
  2. compile 'io.auxo.databinding.watchdog:watchdog:2.0.0'
  3. annotationProcessor 'io.auxo.databinding.watchdog:compiler:2.0.0'
  4. }

Watchdog

Before

  1. public class ViewModel{
  2. public final BaseObservable a = new BaseObservable();
  3. public final ObservableInt b = new ObservableInt();
  4. public final ObservableField<String> c = new ObservableField<>();
  5. }
  6. public class DemoActivity extends Activity{
  7. @Override
  8. protected void onCreate(@Nullable Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.content);
  11. ViewModel viewModel = new ViewModel();
  12. binding.setVariable(BR.data, viewModel);
  13. initA(viewModel);
  14. initB(viewModel);
  15. initC(viewModel);
  16. }
  17. protected void initA(ViewModel viewModel){
  18. viewModel.a.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
  19. @Override
  20. public void onPropertyChanged(Observable observable, int i) {
  21. }
  22. });
  23. }
  24. protected void initB(ViewModel viewModel){
  25. viewModel.b.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
  26. @Override
  27. public void onPropertyChanged(Observable observable, int i) {
  28. }
  29. });
  30. }
  31. protected void initC(ViewModel viewModel){
  32. viewModel.c.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
  33. @Override
  34. public void onPropertyChanged(Observable observable, int i) {
  35. }
  36. });
  37. }
  38. }

After

  1. public class ViewModel {
  2. @WatchThis(method = "OnAChange")
  3. public final BaseObservable a = new BaseObservable();
  4. @WatchThis
  5. public final ObservableInt b = new ObservableInt();
  6. @WatchThis
  7. public final ObservableField<String> c = new ObservableField<>();
  8. }
  9. public class DemoActivity extends Activity implements IViewModelCallbacks {
  10. @Override
  11. protected void onCreate(@Nullable Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.content);
  14. ViewModel viewModel = new ViewModel();
  15. binding.setVariable(BR.data, viewModel);
  16. Watchdog.watch(viewModel)
  17. .addWatcher(this);
  18. }
  19. @Override
  20. public void OnAChange(BaseObservable observableField, int fieldId) {
  21. }
  22. @Override
  23. public void b(ObservableInt observableField, int fieldId) {
  24. }
  25. @Override
  26. public void c(ObservableField<String> observableField, int fieldId) {
  27. }
  28. }