Java Examples for io.realm.RealmChangeListener
The following java examples will help you to understand the usage of io.realm.RealmChangeListener. These source code samples are taken from different open source projects.
Example 1
| Project: simple-stack-master File: TaskRepository.java View source code |
public Observable<List<Task>> getTasks() {
return Observable.create((ObservableOnSubscribe<List<Task>>) emitter -> {
Realm realm = Realm.getDefaultInstance();
final RealmResults<DbTask> dbTasks = realm.where(DbTask.class).findAllSorted(DbTaskFields.ID, Sort.ASCENDING);
final RealmChangeListener<RealmResults<DbTask>> realmChangeListener = element -> {
if (!emitter.isDisposed()) {
List<Task> tasks = mapFrom(element);
if (!emitter.isDisposed()) {
emitter.onNext(tasks);
}
}
};
emitter.setDisposable(Disposables.fromAction(() -> {
if (dbTasks.isValid()) {
dbTasks.removeChangeListener(realmChangeListener);
}
realm.close();
}));
dbTasks.addChangeListener(realmChangeListener);
emitter.onNext(mapFrom(dbTasks));
}).subscribeOn(looperScheduler.getScheduler()).unsubscribeOn(looperScheduler.getScheduler());
}Example 2
| Project: demos-master File: MainActivity.java View source code |
@Override
public void onClick(View v) {
// Use them like regular java objects
Worker dog = new Worker();
dog.setName("Rex");
dog.setAge(1);
// Query Realm for all dogs younger than 2 years old
final RealmResults<Worker> puppies = realm.where(Worker.class).lessThan("age", 2).findAll();
Log.d(TAG, "onClick() called with: puppies.size(); = [" + puppies.size() + "]");
// => 0 because no dogs have been added to the Realm yet
// Persist your data in a transaction
realm.beginTransaction();
// Persist unmanaged objects
final Worker managedDog = realm.copyToRealm(dog);
// Create managed objects directly
Company person = realm.createObject(Company.class, 2);
person.getWorkers().add(managedDog);
realm.commitTransaction();
// Listeners will be notified when data changes
puppies.addChangeListener(new RealmChangeListener<RealmResults<Worker>>() {
@Override
public void onChange(RealmResults<Worker> results) {
// Query results are updated in real time
Log.d(TAG, "onChange() called with: results = [" + results.size() + "]");
Log.d(TAG, "onChange() called with: puppies.size(); = [" + puppies.size() + "]");
// => 1
}
});
// Asynchronously update objects on a background thread
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm bgRealm) {
Worker dog = bgRealm.where(Worker.class).equalTo("age", 1).findFirst();
dog.setAge(3);
}
}, new Realm.Transaction.OnSuccess() {
@Override
public void onSuccess() {
Log.d(TAG, "onSuccess() puppies.size():" + puppies.size());
Log.d(TAG, "onSuccess() managedDog.getAge():" + managedDog.getAge());
// Original queries and Realm objects are automatically updated.
// => 0 because there are no more puppies younger than 2 years old
puppies.size();
// => 3 the dogs age is updated
managedDog.getAge();
}
});
}Example 3
| Project: aweather-master File: CurrentWeatherListFragment.java View source code |
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setHasOptionsMenu(true);
realm = Realm.getInstance(getActivity());
RealmResults<CurrentWeatherModel> currentWeatherModels = realm.where(CurrentWeatherModel.class).findAll();
mCurrentWeatherListAdapter = new CurrentWeatherListViewAdapter(getActivity(), R.layout.current_weather_list_fragment, currentWeatherModels, true);
setListAdapter(mCurrentWeatherListAdapter);
getListView().setOnItemClickListener(this);
final SwipeRefreshLayout refreshListView = (SwipeRefreshLayout) getView().findViewById(R.id.swipe_layout);
refreshListView.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
if (mCurrentWeatherListAdapter.getCount() > 0) {
WeatherLoaderService.updateCurrentWeather(getActivity());
}
}
});
emptyView = (LinearLayout) getView().findViewById(R.id.empty);
progressEmptyView = (LinearLayout) getView().findViewById(android.R.id.progress);
if (currentWeatherModels.size() == 0) {
getListView().setEmptyView(progressEmptyView);
WeatherLoaderService.loadDefaultCitiesList(getActivity());
} else {
getListView().setEmptyView(emptyView);
}
realm.addChangeListener(new RealmChangeListener() {
@Override
public void onChange() {
refreshListView.setRefreshing(false);
getListView().setEmptyView(emptyView);
}
});
SwipeDismissListViewTouchListener touchListener = new SwipeDismissListViewTouchListener(getListView(), new SwipeDismissListViewTouchListener.OnDismissCallback() {
public void onDismiss(ListView listView, int[] reverseSortedPositions) {
for (int position : reverseSortedPositions) {
realm.beginTransaction();
RealmResults<CurrentWeatherModel> result = realm.where(CurrentWeatherModel.class).findAll();
result.remove(position);
if (result.size() == 0) {
getListView().setEmptyView(emptyView);
}
realm.commitTransaction();
}
}
});
getListView().setOnTouchListener(touchListener);
getListView().setOnScrollListener(touchListener.makeScrollListener());
loadDefaultsButton = (Button) getView().findViewById(R.id.load_defaults);
loadDefaultsButton.setOnClickListener(this);
}Example 4
| Project: mobile-master File: Collection.java View source code |
public void onChange(T observer, OrderedCollectionChangeSet changes) {
if (listener instanceof OrderedRealmCollectionChangeListener) {
//noinspection unchecked
((OrderedRealmCollectionChangeListener<T>) listener).onChange(observer, changes);
} else if (listener instanceof RealmChangeListener) {
//noinspection unchecked
((RealmChangeListener<T>) listener).onChange(observer);
} else {
throw new RuntimeException("Unsupported listener type: " + listener);
}
}Example 5
| Project: FASTA-master File: RealmActivity.java View source code |
@Override
protected void onCreate(final Bundle savedInstanceState) {
findViewById(android.R.id.content).setSystemUiVisibility(findViewById(android.R.id.content).getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Handle Toolbar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(R.string.sample_realm_list);
//style our ui
new MaterializeBuilder().withActivity(this).build();
//create our FastAdapter which will manage everything
mFastItemAdapter = new FastItemAdapter<>();
//configure our fastAdapter
mFastItemAdapter.withOnClickListener(new FastAdapter.OnClickListener<RealmSampleUserItem>() {
@Override
public boolean onClick(View v, IAdapter<RealmSampleUserItem> adapter, RealmSampleUserItem item, int position) {
Toast.makeText(v.getContext(), item.getName(), Toast.LENGTH_SHORT).show();
return false;
}
});
//get our recyclerView and do basic setup
RecyclerView rv = (RecyclerView) findViewById(R.id.rv);
rv.setLayoutManager(new LinearLayoutManager(this));
rv.setItemAnimator(new AlphaInAnimator());
rv.setAdapter(mFastItemAdapter);
//Get a realm instance for this activity
mRealm = Realm.getDefaultInstance();
//Add a realm on change listener (don´t forget to close this realm instance before adding this listener again)
mRealm.where(RealmSampleUserItem.class).findAllAsync().addChangeListener(new RealmChangeListener<RealmResults<RealmSampleUserItem>>() {
@Override
public void onChange(RealmResults<RealmSampleUserItem> userItems) {
//This will call twice
//1.) from findAllAsync()
//2.) from createData()
mFastItemAdapter.setNewList(userItems);
}
});
//fill with some sample data
createData();
//set the back arrow in the toolbar
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(false);
//restore selections (this has to be done after the items were added
mFastItemAdapter.withSavedInstanceState(savedInstanceState);
}Example 6
| Project: bd-master File: ActivityMain.java View source code |
private void initRecycler() {
mRecycler = (BucketRecyclerView) findViewById(R.id.rv_drops);
mEmptyView = findViewById(R.id.empty_drops);
mRecycler.setViewsToHideWhenEmpty(mToolbar);
mRecycler.setViewsToShowWhenEmpty(mEmptyView);
//Add a divider to our RecyclerView
mRecycler.addItemDecoration(new Divider(this, LinearLayoutManager.VERTICAL));
mRecycler.setItemAnimator(new DefaultItemAnimator());
mBtnAdd = (Button) findViewById(R.id.btn_add);
mBtnAdd.setOnClickListener(mBtnAddListener);
mResults = mRealm.where(Drop.class).findAllSortedAsync(WHEN);
mAdapter = new AdapterDrops(this, mRealm, mResults);
mAdapter.setHasStableIds(true);
mResults.addChangeListener(new RealmChangeListener() {
@Override
public void onChange() {
mAdapter.updateResults(mResults);
mResults.removeChangeListener(this);
}
});
//Let our Activity handle the event when the footer is clicked from our RecyclerView
mAdapter.setAddListener(mAddListener);
//Let our Activity handle the event when the Add Drop button is clicked from the empty view
mAdapter.setMarkListener(mMarkListener);
//Handler the swipe from our RecyclerView
ItemTouchHelper.Callback callback = new SimpleTouchCallback(mAdapter);
ItemTouchHelper touchHelper = new ItemTouchHelper(callback);
touchHelper.attachToRecyclerView(mRecycler);
mRecycler.setAdapter(mAdapter);
}Example 7
| Project: realm-java-master File: Collection.java View source code |
public void onChange(T observer, OrderedCollectionChangeSet changes) {
if (listener instanceof OrderedRealmCollectionChangeListener) {
//noinspection unchecked
((OrderedRealmCollectionChangeListener<T>) listener).onChange(observer, changes);
} else if (listener instanceof RealmChangeListener) {
//noinspection unchecked
((RealmChangeListener<T>) listener).onChange(observer);
} else {
throw new RuntimeException("Unsupported listener type: " + listener);
}
}Example 8
| Project: FastAdapter-master File: RealmActivity.java View source code |
@Override
protected void onCreate(final Bundle savedInstanceState) {
findViewById(android.R.id.content).setSystemUiVisibility(findViewById(android.R.id.content).getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Handle Toolbar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(R.string.sample_realm_list);
//style our ui
new MaterializeBuilder().withActivity(this).build();
//create our FastAdapter which will manage everything
mFastItemAdapter = new FastItemAdapter<>();
//configure our fastAdapter
mFastItemAdapter.withOnClickListener(new FastAdapter.OnClickListener<RealmSampleUserItem>() {
@Override
public boolean onClick(View v, IAdapter<RealmSampleUserItem> adapter, RealmSampleUserItem item, int position) {
Toast.makeText(v.getContext(), item.getName(), Toast.LENGTH_SHORT).show();
return false;
}
});
//get our recyclerView and do basic setup
RecyclerView rv = (RecyclerView) findViewById(R.id.rv);
rv.setLayoutManager(new LinearLayoutManager(this));
rv.setItemAnimator(new AlphaInAnimator());
rv.setAdapter(mFastItemAdapter);
//Get a realm instance for this activity
mRealm = Realm.getDefaultInstance();
//Add a realm on change listener (don´t forget to close this realm instance before adding this listener again)
mRealm.where(RealmSampleUserItem.class).findAllAsync().addChangeListener(new RealmChangeListener<RealmResults<RealmSampleUserItem>>() {
@Override
public void onChange(RealmResults<RealmSampleUserItem> userItems) {
//This will call twice
//1.) from findAllAsync()
//2.) from createData()
mFastItemAdapter.setNewList(userItems);
}
});
//fill with some sample data
createData();
//set the back arrow in the toolbar
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(false);
//restore selections (this has to be done after the items were added
mFastItemAdapter.withSavedInstanceState(savedInstanceState);
}Example 9
| Project: MontrealJustInCase-master File: MainActivity.java View source code |
/**
* Load the cached data, or request download
*
* @param type
*/
private void loadMapData(@MapType final String type) {
if (!isMapReady()) {
return;
}
if (mRealmListener != null) {
// Remove previously added RealmChangeListener
mRealm.removeChangeListener(mRealmListener);
mRealmListener = null;
}
// First, query the Realm db for the current mapType
final RealmResults<RealmPlacemark> realmPlacemarks = RealmQueries.queryPlacemarksByMapType(mRealm, type, UserPrefs.getInstance(getApplicationContext()).getEnabledLayers()).findAll();
if (realmPlacemarks.size() > 0) {
// Has cached data
final List<Marker> markers = MapUtils.addPlacemarksToMap(vMap, realmPlacemarks);
new Handler().postDelayed(new Runnable() {
/**
* Delay hiding the progressbar for 750ms, avoids blink-effect on fast operations.
* And allows findAndShowNearestMarker() to wait for the real center in case
* of camera animation.
*/
@Override
public void run() {
toggleProgressBar(false);
MapUtils.findAndShowNearestMarker(vMap, markers, mSnackbarParent);
}
}, PROGRESS_BAR_ANIM_DURATION);
} else {
// Add a change listener for empty data only, to avoid showing empty maps.
// Remote updates will be shown on tab changes. This is not an issue for our app
// because of the low frequency/value of remote data updates.
mRealmListener = new RealmChangeListener() {
@Override
public void onChange(Object element) {
loadMapData(type);
}
};
mRealm.addChangeListener(mRealmListener);
}
}Example 10
| Project: Just-Weather-master File: RealmObjectObservable.java View source code |
@Override
public void subscribe(ObservableEmitter<T> emitter) throws Exception {
emitter.onNext(object);
RealmChangeListener<T> changeListener = emitter::onNext;
RealmObject.addChangeListener(object, changeListener);
emitter.setCancellable(() -> RealmObject.removeChangeListener(object, changeListener));
}Example 11
| Project: countries-master File: RealmResultsObservable.java View source code |
@Override
public void subscribe(ObservableEmitter<RealmResults<T>> emitter) throws Exception {
RealmChangeListener<RealmResults<T>> changeListener = emitter::onNext;
realmResults.addChangeListener(changeListener);
emitter.setCancellable(() -> realmResults.removeChangeListener(changeListener));
}