Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
InstiApp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
RAHUL SHARMA
InstiApp
Commits
cfe32a93
Commit
cfe32a93
authored
Mar 14, 2018
by
Mrunzzz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Database implemented in Feed
parent
e340d77d
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
128 additions
and
53 deletions
+128
-53
app/src/main/AndroidManifest.xml
app/src/main/AndroidManifest.xml
+0
-4
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/AppDatabase.java
...in/java/in/ac/iitb/gymkhana/iitbapp/data/AppDatabase.java
+2
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Body.java
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Body.java
+4
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Converters.java
...ain/java/in/ac/iitb/gymkhana/iitbapp/data/Converters.java
+66
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/DbDao.java
...src/main/java/in/ac/iitb/gymkhana/iitbapp/data/DbDao.java
+14
-3
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Event.java
...src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Event.java
+4
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/User.java
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/User.java
+4
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Venue.java
...src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Venue.java
+4
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/FeedFragment.java
...va/in/ac/iitb/gymkhana/iitbapp/fragment/FeedFragment.java
+30
-46
No files found.
app/src/main/AndroidManifest.xml
View file @
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
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/AppDatabase.java
View file @
cfe32a93
...
@@ -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
;
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Body.java
View file @
cfe32a93
...
@@ -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
;
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Converters.java
0 → 100644
View file @
cfe32a93
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
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/DbDao.java
View file @
cfe32a93
...
@@ -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
();
}
}
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Event.java
View file @
cfe32a93
...
@@ -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
;
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/User.java
View file @
cfe32a93
...
@@ -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
;
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Venue.java
View file @
cfe32a93
...
@@ -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
;
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/FeedFragment.java
View file @
cfe32a93
...
@@ -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,23 +121,13 @@ public class FeedFragment extends Fragment {
...
@@ -127,23 +121,13 @@ 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
()];
for
(
int
i
=
0
;
i
<
events
.
size
();
i
++)
{
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
//Server Error
feedSwipeRefreshLayout
.
setRefreshing
(
false
);
feedSwipeRefreshLayout
.
setRefreshing
(
false
);
}
}
}
@Override
@Override
public
void
onFailure
(
Call
<
NewsFeedResponse
>
call
,
Throwable
t
)
{
public
void
onFailure
(
Call
<
NewsFeedResponse
>
call
,
Throwable
t
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment