void updateFromItem(Item item) { title.set(item.title); score.set(item.score); } }
@Test public void shouldLoadFullOwnerOnInstantiation() { assertEquals(owner.name, viewModel.ownerName.get()); assertEquals(owner.email, viewModel.ownerEmail.get()); assertEquals(owner.location, viewModel.ownerLocation.get()); assertEquals(View.VISIBLE, viewModel.ownerEmailVisibility.get()); assertEquals(View.VISIBLE, viewModel.ownerLocationVisibility.get()); assertEquals(View.VISIBLE, viewModel.ownerLayoutVisibility.get()); } }
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 PostActionVM() { sharedPreferences = ChaoliApplication.getAppContext().getSharedPreferences(TAG, MODE_PRIVATE); editor = sharedPreferences.edit(); title.set(sharedPreferences.getString(DRAFT_TITLE, "")); content.set(sharedPreferences.getString(DRAFT_CONTENT, "")); prevContent = content.get(); channelId.set(sharedPreferences.getInt(DRAFT_CHANNEL, Channel.caff.getChannelId())); curChannel = Channel.getChannel(channelId.get()); content.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { @Override public void onPropertyChanged(Observable observable, int i) { } }); }
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 TextWatcherAdapter(ObservableField<String> f) { this.field = f; field.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback(){ @Override public void onPropertyChanged(Observable sender, int propertyId) { if (isInEditMode){ return; } value.set(field.get()); } }); }
private void hookUpDependencies() { isExistingUserChecked.addOnPropertyChangedCallback(new android.databinding.Observable.OnPropertyChangedCallback() { @Override public void onPropertyChanged(android.databinding.Observable sender, int propertyId) { updateDependentViews(); } }); }
void updateFromItem(Item item) { title.set(item.title); score.set(item.score); } }
@Test public void shouldSearchUsernameWithNoRepos() { String username = "usernameWithoutRepos"; TextView textView = new TextView(application); textView.setText(username); when(githubService.publicRepositories(username)) .thenReturn(Observable.just(Collections.<Repository>emptyList())); mainViewModel.onSearchAction(textView, EditorInfo.IME_ACTION_SEARCH, null); verify(dataListener).onRepositoriesChanged(Collections.<Repository>emptyList()); assertEquals(mainViewModel.infoMessage.get(), application.getString(R.string.text_empty_repos)); assertEquals(mainViewModel.infoMessageVisibility.get(), View.VISIBLE); assertEquals(mainViewModel.progressVisibility.get(), View.INVISIBLE); assertEquals(mainViewModel.recyclerViewVisibility.get(), View.INVISIBLE); }
public RadioRVAdapter(Context context) { this.context = context; checked.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { @Override public void onPropertyChanged(Observable observable, int i) { if (selectedListener != null) { final ObservableField observableField = (ObservableField) observable; selectedListener.onElementSelected((RadioElementModel) observableField.get()); } } }); }
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)); }
void updateFromItem(Item item) { title.set(item.title); score.set(item.score); } }
@Test public void shouldSearchInvalidUsername() { String username = "invalidUsername"; TextView textView = new TextView(application); textView.setText(username); HttpException mockHttpException = new HttpException(Response.error(404, mock(ResponseBody.class))); when(githubService.publicRepositories(username)) .thenReturn(Observable.<List<Repository>>error(mockHttpException)); mainViewModel.onSearchAction(textView, EditorInfo.IME_ACTION_SEARCH, null); verify(dataListener, never()).onRepositoriesChanged(anyListOf(Repository.class)); assertEquals(mainViewModel.infoMessage.get(), application.getString(R.string.error_username_not_found)); assertEquals(mainViewModel.infoMessageVisibility.get(), View.VISIBLE); assertEquals(mainViewModel.progressVisibility.get(), View.INVISIBLE); assertEquals(mainViewModel.recyclerViewVisibility.get(), View.INVISIBLE); }
private void clearOnPropertyChange(ObservableField source, ObservableField<String> fieldToClear) { source.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { @Override public void onPropertyChanged(Observable sender, int propertyId) { fieldToClear.set(null); } }); }
@Provides @Singleton ObservableField<Bitmap> provideCurrentAlbumArt() { return new ObservableField<>(); }