Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void syncWithFirebase(){
- SQLiteDatabase db = mInstance.getMyWritableDatabase();
- String query = "SELECT * FROM "+mInstance.TABLE_MOVIES+" ;";
- final Cursor c = db.rawQuery(query,null);
- movieRef = new Firebase("https://social-movie-club.firebaseio.com/movies");
- if(c != null && c.getCount() > 0) {
- while (c.moveToNext()) {
- /*TODO
- * Check for each movie child in the cloud that a sqlite entry exists.
- * if not pull it down. then check if any new objects are in the sqlite database that
- * need to go to the cloud.
- *
- * */
- movieKey = null;
- movieRef.child(c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_MOVIE_ID))).addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- movieKey = dataSnapshot.getKey();
- }
- }
- @Override
- public void onCancelled(FirebaseError firebaseError) {
- }
- });
- if(movieKey != null){
- movieRef.child(movieKey).child("lastUpdated").addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- lastUpdatedFirebase = Long.parseLong(dataSnapshot.getValue().toString());
- Log.e("FireBase Return", lastUpdatedFirebase.toString());
- }
- @Override
- public void onCancelled(FirebaseError firebaseError) {
- }
- });
- lastUpdatedsqlite = Long.parseLong(c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_MOVIE_LAST_UPDATED)));
- if(lastUpdatedsqlite > lastUpdatedFirebase){
- Map<String, Object> updates = new HashMap<String, Object>();
- updates.put(DatabaseSingleton.COLUMN_TITLE, c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_TITLE)));
- updates.put(DatabaseSingleton.COLUMN_YEAR, c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_YEAR)));
- updates.put(DatabaseSingleton.COLUMN_SHORTPLOT, c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_SHORTPLOT)));
- updates.put(DatabaseSingleton.COLUMN_FULLPLOT, c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_FULLPLOT)));
- updates.put(DatabaseSingleton.COLUMN_POSTER, c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_POSTER)));
- updates.put(DatabaseSingleton.COLUMN_MOVIE_ID, c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_MOVIE_ID)));
- updates.put(DatabaseSingleton.COLUMN_RATING, c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_RATING)));
- updates.put(DatabaseSingleton.COLUMN_MOVIE_LAST_UPDATED, System.currentTimeMillis());
- movieRef.child(movieKey).updateChildren(updates);
- }else if(lastUpdatedFirebase > lastUpdatedsqlite){
- Firebase movie = movieRef.child(movieKey);
- MovieObject m = new MovieObject(movie.child(DatabaseSingleton.COLUMN_TITLE).toString(),
- movie.child(DatabaseSingleton.COLUMN_YEAR).toString(),
- movie.child(DatabaseSingleton.COLUMN_SHORTPLOT).toString(),
- movie.child(DatabaseSingleton.COLUMN_FULLPLOT).toString(),
- movie.child(DatabaseSingleton.COLUMN_POSTER).toString(),
- movie.child(DatabaseSingleton.COLUMN_MOVIE_ID).toString(),
- Float.parseFloat(movie.child(DatabaseSingleton.COLUMN_RATING).toString()));
- updateMovie(m);
- }
- }else {
- MovieObject m = new MovieObject(
- c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_TITLE)),
- c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_YEAR)),
- c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_SHORTPLOT)),
- c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_FULLPLOT)),
- c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_POSTER)),
- c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_MOVIE_ID)),
- c.getFloat(c.getColumnIndex(DatabaseSingleton.COLUMN_RATING)));
- movieRef.child(c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_MOVIE_ID))).setValue(m);
- movieRef.child(c.getString(c.getColumnIndex(DatabaseSingleton.COLUMN_MOVIE_ID))).child("lastUpdated").setValue(System.currentTimeMillis());
- }
- }
- db.close();
- c.close();
- movieRef.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
- if(searchForMovie(childSnapshot.getKey()) == 0){
- MovieObject m = new MovieObject(childSnapshot.child(DatabaseSingleton.COLUMN_TITLE).getValue().toString(),
- childSnapshot.child(DatabaseSingleton.COLUMN_YEAR).getValue().toString(),
- childSnapshot.child(DatabaseSingleton.COLUMN_SHORTPLOT).getValue().toString(),
- childSnapshot.child(DatabaseSingleton.COLUMN_FULLPLOT).getValue().toString(),
- childSnapshot.child(DatabaseSingleton.COLUMN_POSTER).getValue().toString(),
- childSnapshot.child(DatabaseSingleton.COLUMN_MOVIE_ID).getValue().toString(),
- Float.parseFloat(childSnapshot.child(DatabaseSingleton.COLUMN_RATING).getValue().toString()));
- addMovietoDb(m);
- }
- }
- }
- @Override
- public void onCancelled(FirebaseError firebaseError) {
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement