ListenerUtil.getListener(viewGroup, R.id.entryListener); if (oldEntries != newEntries && listener != null && oldEntries instanceof ObservableList) { ((ObservableList)oldEntries).removeOnListChangedCallback(listener); ((ObservableList)newEntries).addOnListChangedCallback(listener);
@Override public void onItemRangeInserted(ObservableList observableList, int start, int count) { if (mLayoutId == 0) { return; } startTransition(mTarget); final int end = start + count; LayoutInflater inflater = (LayoutInflater) mTarget.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); for (int i = end - 1; i >= start; i--) { Object entry = observableList.get(i); ViewDataBinding binding = bindLayout(inflater, mTarget, mLayoutId, entry); mTarget.addView(binding.getRoot(), start); } }
public boolean showThisTitle(UserError item) { try { final int location = visible.indexOf(item); // cpu intensive?? add cache? // if the previous item is the same title then don't show the header if (visible.get(location - 1).shortError.equals(item.shortError)) { return false; } } catch (IndexOutOfBoundsException e) { return true; } return true; }
private DisposableSingleObserver<Response<List<LookupEntity>>> createLookupObserver() { return AlfonzDisposableSingleObserver.newInstance( response -> { lookups.clear(); lookups.addAll(response.body()); headers.clear(); headers.add("one"); headers.add("two"); headers.add("three"); footers.clear(); footers.add(new Object()); setState(lookups); }, throwable -> { handleError(mRestRxManager.getHttpErrorMessage(throwable)); setState(lookups); } ); }
@BindingAdapter({"app:itemList", "app:selector"}) @SuppressWarnings("unchecked") public static void setItems(RecyclerView recyclerView, ObservableList newItems, LayoutSelector layoutSelector) { if (recyclerView.getAdapter() == null) { MyAdapter adapter = new MyAdapter(layoutSelector, newItems); recyclerView.setAdapter(adapter); } else { MyAdapter adapter = (MyAdapter) recyclerView.getAdapter(); List oldItems = adapter.getItemList(); adapter.setItemList(newItems); if ((newItems.size() > 0 && newItems.get(0) instanceof DiffItem) || (oldItems.size() > 0 && oldItems.get(0) instanceof DiffItem)) { DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new DiffCallback(oldItems, newItems), true); diffResult.dispatchUpdatesTo(adapter); } else { if (adapter.preview) { adapter.notifyDataSetChanged(); newItems.addOnListChangedCallback(adapter.onListChangedCallback); adapter.preview = false; } } } }
private void getOlderData() { final long highestId = model.initial_items.get(model.initial_items.size() - 1).getId(); final Thread t = new Thread(() -> { JoH.threadSleep(300); // show loading spinner if load time takes > 1s and has non-default filter Inevitable.task("show-events-loading-if-slow", 1000, () -> { if (loading && !model.isDefaultFilters()) { model.showLoading.set(loading); } }); loading = true; model.older_items.addAll(UserError.olderThanID(highestId, 100000)); model.refresh(); loading = false; model.showLoading.set(false); } ); t.setPriority(Thread.MIN_PRIORITY); t.start(); }
public BusinessQuestion(Question item) { for (int i = 0; i < 4; i++) isChecked.add(false); id = item._id.$id; question = item.question; choice = Boolean.valueOf(item.choice); multiAnswer = Boolean.valueOf(item.multi_answer); options = new ObservableArrayList<>(); options.addAll(item.options); while (options.size() < 4) { options.add(ChaoliApplication.getAppContext().getString(R.string.useless_option)); } }
ViewModel(List<Item> items) { this.items.addAll(items); }
public Question(BusinessQuestion businessQuestion) { _id = new id(); _id.$id = businessQuestion.id; choice = String.valueOf(businessQuestion.choice); multi_answer = String.valueOf(businessQuestion.multiAnswer); if (choice.equals("false")) answers.add(businessQuestion.answer.get()); else { for (int i = 0; i < businessQuestion.isChecked.size(); i++) { if (businessQuestion.isChecked.get(i)) answers.add(String.valueOf(i)); } } }
private void insertFilteredNewItems(final String filter, int count) { currentFilter = filter.or(getCurrentFilter()).toLowerCase().trim(); int c = 0; int added = 0; synchronized (items) { for (UserError item : items) { if (filterMatch(item)) { visible.add(0, item); added++; } c++; if (c >= count) break; } } adapterChain.notifyItemRangeChanged(0, added); // avoid duplicate titles if (visible.size() > 1) { adapterChain.notifyItemChanged(added); } }
@Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { if (this.recyclerView == null && items != null && items instanceof ObservableList) { ((ObservableList<T>) items).addOnListChangedCallback(callback); } this.recyclerView = recyclerView; }
@Override @MainThread public void addContact(FusedContact c) { mList.add(c); Collections.sort(mList); }
@Override public void removeContact(FusedContact c) { mList.remove(c); }
@Override public void onDetachedFromRecyclerView(RecyclerView recyclerView) { if (this.recyclerView != null && items != null && items instanceof ObservableList) { ((ObservableList<T>) items).removeOnListChangedCallback(callback); } this.recyclerView = null; }
void filter(final String filter) { currentFilter = filter.or(getCurrentFilter()).toLowerCase().trim(); visible.clear(); synchronized (items) { // skip filter on initial defaults for speed if (isDefaultFilters()) { visible.addAll(items); } else { for (UserError item : items) { if (filterMatch(item)) { visible.add(item); } } } } adapterChain.notifyDataSetChanged(); }
@BindingAdapter({"app:itemList", "app:selector", "app:handler"}) @SuppressWarnings("unchecked") public static void setItems(RecyclerView recyclerView, ObservableList newItems, LayoutSelector layoutSelector, BaseViewModel viewModel) { if (recyclerView.getAdapter() == null) { MyAdapter adapter = new MyAdapter(layoutSelector, newItems); adapter.setHandler(viewModel); recyclerView.setAdapter(adapter); } else { MyAdapter adapter = (MyAdapter) recyclerView.getAdapter(); List oldItems = adapter.getItemList(); adapter.setItemList(newItems); if ((newItems.size() > 0 && newItems.get(0) instanceof DiffItem) || (oldItems.size() > 0 && oldItems.get(0) instanceof DiffItem)) { DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new DiffCallback(oldItems, newItems), true); diffResult.dispatchUpdatesTo(adapter); } else { if (adapter.preview) { adapter.notifyDataSetChanged(); newItems.addOnListChangedCallback(adapter.onListChangedCallback); adapter.preview = false; } } } }
private void getOlderData() { final long highestId = model.initial_items.get(model.initial_items.size() - 1).getId(); final Thread t = new Thread(() -> { JoH.threadSleep(300); // show loading spinner if load time takes > 1s and has non-default filter Inevitable.task("show-events-loading-if-slow", 1000, () -> { if (loading && !model.isDefaultFilters()) { model.showLoading.set(loading); } }); loading = true; model.older_items.addAll(UserError.olderThanID(highestId, 100000)); model.refresh(); loading = false; model.showLoading.set(false); } ); t.setPriority(Thread.MIN_PRIORITY); t.start(); }
ViewModel(List<Item> items) { this.items.addAll(items); }