public RepositoryViewModel(Context context, final Repository repository) { this.repository = repository; this.context = context; this.ownerName = new ObservableField<>(); this.ownerEmail = new ObservableField<>(); this.ownerLocation = new ObservableField<>(); this.ownerLayoutVisibility = new ObservableInt(View.INVISIBLE); this.ownerEmailVisibility = new ObservableInt(View.VISIBLE); this.ownerLocationVisibility = new ObservableInt(View.VISIBLE); // Trigger loading the rest of the user data as soon as the view model is created. // It's odd having to trigger this from here. Cases where accessing to the data model // needs to happen because of a change in the Activity/Fragment lifecycle // (i.e. an activity created) don't work very well with this MVVM pattern. // It also makes this class more difficult to test. Hopefully a better solution will be found loadFullUser(repository.owner.url); }
public MainViewModel(Context context, DataListener dataListener) { this.context = context; this.dataListener = dataListener; infoMessageVisibility = new ObservableInt(View.VISIBLE); progressVisibility = new ObservableInt(View.INVISIBLE); recyclerViewVisibility = new ObservableInt(View.INVISIBLE); searchButtonVisibility = new ObservableInt(View.GONE); infoMessage = new ObservableField<>(context.getString(R.string.default_info_message)); }
@Provides @Singleton ObservableField<Bitmap> provideCurrentAlbumArt() { return new ObservableField<>(); }
@Provides @Singleton ObservableField<VKApiAudio> provideCurrentAudio() { return Paper.book().read("currentAudio", new ObservableField<>()); }
private ShotItemViewModel(Parcel parcel) { id = parcel.readParcelable(ObservableLong.class.getClassLoader()); user = new ObservableField<>(parcel.readParcelable(UserViewModel.class.getClassLoader())); title = parcel.readParcelable(ObservableString.class.getClassLoader()); description = parcel.readParcelable(ObservableString.class.getClassLoader()); long tmpUpdatedAt = parcel.readLong(); createdAt = new ObservableField<>(tmpUpdatedAt == -1 ? null : new Date(tmpUpdatedAt)); likesCount = parcel.readParcelable(ObservableInt.class.getClassLoader()); commentsCount = parcel.readParcelable(ObservableInt.class.getClassLoader()); bucketsCount = parcel.readParcelable(ObservableInt.class.getClassLoader()); viewsCount = parcel.readParcelable(ObservableInt.class.getClassLoader()); ArrayList<String> tags = parcel.readArrayList(String.class.getClassLoader()); this.tags = new ObservableArrayList<>(); this.tags.addAll(tags); url = parcel.readParcelable(ObservableString.class.getClassLoader()); marginLeft = parcel.readParcelable(ObservableInt.class.getClassLoader()); marginRight = parcel.readParcelable(ObservableInt.class.getClassLoader()); image = parcel.readParcelable(ObservableString.class.getClassLoader()); thumbnail = parcel.readParcelable(ObservableString.class.getClassLoader()); } }
public CommentViewModel(Comment comment) { user = new ObservableField<>(new UserViewModel(comment.user)); body = new ObservableString(comment.body); likesCount = new ObservableInt(comment.likesCount); createdAt = new ObservableField<>(comment.createdAt); anim = new ObservableInt(ViewBindingConfig.AnimInit); point = new Point(); }
public ShotsRefreshRecyclerViewModel(TopMarginSelector selector) { super(); padding = AdgbleApp.getContext().getResources().getDimensionPixelSize(R.dimen.item_shots_padding); topMarginSelector = new ObservableField<>(selector); topMargin.set(topMarginSelector.get().topMargin(null, 0)); RxUtil.toObservableField(topMarginSelector).subscribe(selector1 -> { topMargin.set(selector1.topMargin(null, 0)); }); }
public ShotsDetailViewModel(Activity activity, ShotItemViewModel model) { this.activity = activity; int topMargin = activity.getResources().getDimensionPixelSize(R.dimen.detail_toolbar_height); final int margin = topMargin; shotItemViewModel = model; int temp = activity.getResources().getDimensionPixelSize(R.dimen.detail_toolbar_height) - Util.getActionBarHeight(activity) * 2; // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // temp -= Util.getStatusBarHeight(activity); // } int height = temp; this.topMarginSelector = new ObservableField<>((view, position) -> position == 0 ? margin : 0); float density = activity.getResources().getDisplayMetrics().density; RxUtil.toObservableInt(firstItemTop).filter(integer -> integer != -1).map(integer -> -integer + topMargin) .map(integer -> integer > height ? height : integer) .filter(integer -> integer != translationY.get()).subscribe(integer -> { translationY.set(integer); elevation.set((int) (8 * integer * density / height)); }); items.add(shotItemViewModel); resetStart = items.size(); loadData(); }
@Before public void setUp() throws Exception { observableField = new ObservableField<>(INITIAL_VALUE); sut = toObservable(observableField); testObserver = new TestObserver<>(); }
public ShotItemViewModel(Shot shot, int left, int right) { id = new ObservableLong(shot.id); title = new ObservableString(shot.title); user = new ObservableField<>(new UserViewModel(shot.user)); description = new ObservableString(shot.description); createdAt = new ObservableField<>(shot.createdAt); likesCount = new ObservableInt(shot.likesCount); commentsCount = new ObservableInt(shot.commentsCount); bucketsCount = new ObservableInt(shot.bucketsCount); viewsCount = new ObservableInt(shot.viewsCount); tags = new ObservableArrayList<>(); tags.addAll(shot.tags); url = new ObservableString(shot.htmlUrl); marginLeft = new ObservableInt(left); marginRight = new ObservableInt(right); Image image = shot.images; this.image = new ObservableString(image.hidpi != null ? image.hidpi : image.normal != null ? image.normal : image.teaser); thumbnail = new ObservableString(image.teaser); }
@Test public void doesNotEmitInitialNull() throws Exception { testObserver = toObservable(new ObservableField<>((Integer) null)).test(); testObserver.assertNoValues() .assertNoErrors(); }