Commit a983ca4a authored by Mrunzzz's avatar Mrunzzz

Merge branch 'classes'

parents 9d70433a cfe32a93
...@@ -91,10 +91,6 @@ ...@@ -91,10 +91,6 @@
android:exported="false"></service> android:exported="false"></service>
<provider
android:name="in.ac.iitb.gymkhana.iitbapp.data.IITBAppContentProvider"
android:authorities="in.ac.iitb.gymkhana.iitbapp"
android:exported="false" />
</application> </application>
</manifest> </manifest>
\ No newline at end of file
...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.Database; import android.arch.persistence.room.Database;
import android.arch.persistence.room.Room; import android.arch.persistence.room.Room;
import android.arch.persistence.room.RoomDatabase; import android.arch.persistence.room.RoomDatabase;
import android.arch.persistence.room.TypeConverters;
import android.content.Context; import android.content.Context;
/** /**
...@@ -10,6 +11,7 @@ import android.content.Context; ...@@ -10,6 +11,7 @@ import android.content.Context;
*/ */
@Database(entities = {Event.class, Body.class,Venue.class}, version = 1) @Database(entities = {Event.class, Body.class,Venue.class}, version = 1)
@TypeConverters({Converters.class})
public abstract class AppDatabase extends RoomDatabase { public abstract class AppDatabase extends RoomDatabase {
private static AppDatabase INSTANCE; private static AppDatabase INSTANCE;
......
...@@ -2,6 +2,7 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -2,6 +2,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
...@@ -9,6 +10,9 @@ import java.util.List; ...@@ -9,6 +10,9 @@ import java.util.List;
@Entity(tableName = "bodies") @Entity(tableName = "bodies")
class Body { class Body {
@PrimaryKey(autoGenerate = true)
int db_id;
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
String bodyID; String bodyID;
......
package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.TypeConverter;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
/**
* Created by mrunz on 14/3/18.
*/
public class Converters {
@TypeConverter
public static List<Event> eventsfromString(String value) {
Type listType = new TypeToken<List<Event>>() {}.getType();
return new Gson().fromJson(value, listType);
}
@TypeConverter
public static String stringfromEvents(List<Event> list) {
Gson gson = new Gson();
String json = gson.toJson(list);
return json;
}
@TypeConverter
public static List<User> usersfromString(String value) {
Type listType = new TypeToken<List<User>>() {}.getType();
return new Gson().fromJson(value, listType);
}
@TypeConverter
public static String stringfromUsers(List<User> list) {
Gson gson = new Gson();
String json = gson.toJson(list);
return json;
}
@TypeConverter
public static List<Venue> venuesfromString(String value) {
Type listType = new TypeToken<List<Venue>>() {}.getType();
return new Gson().fromJson(value, listType);
}
@TypeConverter
public static String stringfromVenues(List<Venue> list) {
Gson gson = new Gson();
String json = gson.toJson(list);
return json;
}
@TypeConverter
public static List<Body> bodiesfromString(String value) {
Type listType = new TypeToken<List<Body>>() {}.getType();
return new Gson().fromJson(value, listType);
}
@TypeConverter
public static String stringfromBodies(List<Body> list) {
Gson gson = new Gson();
String json = gson.toJson(list);
return json;
}
}
\ No newline at end of file
...@@ -7,6 +7,8 @@ import android.arch.persistence.room.Query; ...@@ -7,6 +7,8 @@ import android.arch.persistence.room.Query;
import java.util.List; import java.util.List;
import retrofit2.http.DELETE;
/** /**
* Created by mrunz on 13/3/18. * Created by mrunz on 13/3/18.
*/ */
...@@ -31,13 +33,13 @@ public interface DbDao { ...@@ -31,13 +33,13 @@ public interface DbDao {
int countBodies(); int countBodies();
@Insert @Insert
void insertEvents(Event... events); void insertEvents(List<Event> events);
@Insert @Insert
void insertBodies(Body... bodies); void insertBodies(List<Body> bodies);
@Insert @Insert
void insertVenues(Venue... venues); void insertVenues(List<Venue> venues);
@Delete @Delete
void deleteEvent(Event event); void deleteEvent(Event event);
...@@ -47,4 +49,13 @@ public interface DbDao { ...@@ -47,4 +49,13 @@ public interface DbDao {
@Delete @Delete
void deleteBody(Body body); void deleteBody(Body body);
@Query("DELETE from events")
void deleteEvents();
@Query("DELETE from venues")
void deleteVenues();
@Query("DELETE from bodies")
void deleteBodies();
} }
...@@ -2,6 +2,7 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -2,6 +2,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
...@@ -11,6 +12,9 @@ import java.util.List; ...@@ -11,6 +12,9 @@ import java.util.List;
public class Event { public class Event {
@PrimaryKey(autoGenerate = true)
int db_id;
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
String eventID; String eventID;
......
...@@ -2,6 +2,7 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -2,6 +2,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
...@@ -9,6 +10,9 @@ import java.util.List; ...@@ -9,6 +10,9 @@ import java.util.List;
@Entity(tableName = "users") @Entity(tableName = "users")
class User { class User {
@PrimaryKey(autoGenerate = true)
int db_id;
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
String userID; String userID;
......
...@@ -2,11 +2,15 @@ package in.ac.iitb.gymkhana.iitbapp.data; ...@@ -2,11 +2,15 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity; import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
@Entity(tableName = "venues") @Entity(tableName = "venues")
class Venue { class Venue {
@PrimaryKey(autoGenerate = true)
int db_id;
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@SerializedName("id") @SerializedName("id")
String venueID; String venueID;
......
...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.fragment; ...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.content.ContentValues; import android.content.ContentValues;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
...@@ -27,7 +28,7 @@ import in.ac.iitb.gymkhana.iitbapp.adapter.FeedAdapter; ...@@ -27,7 +28,7 @@ import in.ac.iitb.gymkhana.iitbapp.adapter.FeedAdapter;
import in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface; import in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface;
import in.ac.iitb.gymkhana.iitbapp.api.ServiceGenerator; import in.ac.iitb.gymkhana.iitbapp.api.ServiceGenerator;
import in.ac.iitb.gymkhana.iitbapp.api.model.NewsFeedResponse; import in.ac.iitb.gymkhana.iitbapp.api.model.NewsFeedResponse;
import in.ac.iitb.gymkhana.iitbapp.data.DatabaseContract; import in.ac.iitb.gymkhana.iitbapp.data.AppDatabase;
import in.ac.iitb.gymkhana.iitbapp.data.Event; import in.ac.iitb.gymkhana.iitbapp.data.Event;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Callback; import retrofit2.Callback;
...@@ -40,6 +41,7 @@ public class FeedFragment extends Fragment { ...@@ -40,6 +41,7 @@ public class FeedFragment extends Fragment {
private RecyclerView feedRecyclerView; private RecyclerView feedRecyclerView;
private SwipeRefreshLayout feedSwipeRefreshLayout; private SwipeRefreshLayout feedSwipeRefreshLayout;
private AppDatabase appDatabase;
public FeedFragment() { public FeedFragment() {
// Required empty public constructor // Required empty public constructor
...@@ -50,42 +52,34 @@ public class FeedFragment extends Fragment { ...@@ -50,42 +52,34 @@ public class FeedFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
// Inflate the layout for this fragment // Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_feed, container, false); return inflater.inflate(R.layout.fragment_feed, container, false);
} }
@Override @Override
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
// Cursor cursor = getContext().getContentResolver().query(DatabaseContract.NewsFeedEntry.CONTENT_URI, null, null, null, null);
// if (cursor.getCount() != 0) { appDatabase= AppDatabase.getAppDatabase(getContext());
// final List<Event> events = new ArrayList<>(); final List<Event> events=appDatabase.dbDao().getAllEvents();
// while (cursor.moveToNext()) { FeedAdapter feedAdapter = new FeedAdapter(events, new ItemClickListener() {
// Event event = new Event(cursor.getString(cursor.getColumnIndex(DatabaseContract.NewsFeedEntry.COLUMN_EVENT_NAME)), @Override
// cursor.getString(cursor.getColumnIndex(DatabaseContract.NewsFeedEntry.COLUMN_EVENT_DESCRIPTION)), public void onItemClick(View v, int position) {
// cursor.getString(cursor.getColumnIndex(DatabaseContract.NewsFeedEntry.COLUMN_EVENT_IMAGE)), String eventJson = new Gson().toJson(events.get(position));
// cursor.getString(cursor.getColumnIndex(DatabaseContract.NewsFeedEntry.COLUMN_EVENT_CREATOR_NAME)), Bundle bundle = new Bundle();
// cursor.getString(cursor.getColumnIndex(DatabaseContract.NewsFeedEntry.COLUMN_EVENT_CREATOR_ID)), bundle.putString(Constants.EVENT_JSON, eventJson);
// cursor.getInt(cursor.getColumnIndex(DatabaseContract.NewsFeedEntry.COLUMN_EVENT_GOING_STATUS))); EventFragment eventFragment = new EventFragment();
// events.add(event); eventFragment.setArguments(bundle);
// } FragmentManager manager = getActivity().getSupportFragmentManager();
// FeedAdapter feedAdapter = new FeedAdapter(events, new ItemClickListener() { FragmentTransaction transaction = manager.beginTransaction();
// @Override transaction.replace(R.id.framelayout_for_fragment, eventFragment, eventFragment.getTag());
// public void onItemClick(View v, int position) { transaction.commit();
// String eventJson = new Gson().toJson(events.get(position)); }
// Bundle bundle = new Bundle(); });
// bundle.putString(Constants.EVENT_JSON, eventJson); feedRecyclerView = (RecyclerView) getActivity().findViewById(R.id.feed_recycler_view);
// EventFragment eventFragment = new EventFragment(); feedRecyclerView.setAdapter(feedAdapter);
// eventFragment.setArguments(bundle); feedRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
// FragmentManager manager = getActivity().getSupportFragmentManager();
// FragmentTransaction transaction = manager.beginTransaction();
// transaction.replace(R.id.framelayout_for_fragment, eventFragment, eventFragment.getTag());
// transaction.commit();
// }
// });
// feedRecyclerView = (RecyclerView) getActivity().findViewById(R.id.feed_recycler_view);
// feedRecyclerView.setAdapter(feedAdapter);
// feedRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
//
// } // }
updateFeed(); updateFeed();
...@@ -127,22 +121,12 @@ public class FeedFragment extends Fragment { ...@@ -127,22 +121,12 @@ public class FeedFragment extends Fragment {
feedRecyclerView = (RecyclerView) getActivity().findViewById(R.id.feed_recycler_view); feedRecyclerView = (RecyclerView) getActivity().findViewById(R.id.feed_recycler_view);
feedRecyclerView.setAdapter(feedAdapter); feedRecyclerView.setAdapter(feedAdapter);
feedRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); feedRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
long itemsRemoved = getContext().getContentResolver().delete(DatabaseContract.NewsFeedEntry.CONTENT_URI, null, null);
appDatabase.dbDao().deleteEvents();
Log.d("FeedFragment", itemsRemoved + " items removed."); appDatabase.dbDao().insertEvents(events);
ContentValues contentValues[] = new ContentValues[events.size()]; //Server Error
for (int i = 0; i < events.size(); i++) { feedSwipeRefreshLayout.setRefreshing(false);
ContentValues contentValues1 = new ContentValues();
contentValues1.put(DatabaseContract.NewsFeedEntry.COLUMN_EVENT_NAME, events.get(i).getEventName());
contentValues1.put(DatabaseContract.NewsFeedEntry.COLUMN_EVENT_DESCRIPTION, events.get(i).getEventDescription());
contentValues1.put(DatabaseContract.NewsFeedEntry.COLUMN_EVENT_IMAGE, events.get(i).getEventImageURL());
contentValues[i] = contentValues1;
}
int insertCount = getContext().getContentResolver().bulkInsert(DatabaseContract.NewsFeedEntry.CONTENT_URI, contentValues);
Log.d("FeedFragment", Integer.toString(insertCount) + " elements inserted");
} }
//Server Error
feedSwipeRefreshLayout.setRefreshing(false);
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment