Skip to content
This repository was archived by the owner on Oct 9, 2020. It is now read-only.

Commit 2ecbb01

Browse files
committed
Merge pull request #72 from mananwason/bookmarks
bookmarks issue fixed #70
2 parents 1c5beb7 + d6e39a8 commit 2ecbb01

16 files changed

+64
-33
lines changed

app/src/main/java/org/fossasia/openevent/activities/SessionDetailActivity.java

+22-14
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,18 @@
1515
import org.fossasia.openevent.R;
1616
import org.fossasia.openevent.data.Session;
1717
import org.fossasia.openevent.data.Speaker;
18-
import org.fossasia.openevent.dbutils.DbContract;
1918
import org.fossasia.openevent.dbutils.DbSingleton;
2019
import org.fossasia.openevent.utils.ISO8601Date;
2120
import org.fossasia.openevent.utils.IntentStrings;
2221

23-
import java.text.DateFormat;
2422
import java.text.ParseException;
25-
import java.text.SimpleDateFormat;
26-
import java.util.Calendar;
2723
import java.util.List;
28-
import java.util.Locale;
29-
import java.util.TimeZone;
3024

3125
/**
3226
* Created by MananWason on 08-07-2015.
3327
*/
3428
public class SessionDetailActivity extends AppCompatActivity {
29+
private static final String TAG = "Session Detail";
3530
RecyclerView speakersRecyclerView;
3631
SpeakersListAdapter adapter;
3732
Session session;
@@ -81,10 +76,9 @@ public void onCreate(Bundle savedInstanceState) {
8176
e.printStackTrace();
8277
}
8378

84-
if((start.equals(null)) && (end.equals(null))) {
79+
if ((start.equals(null)) && (end.equals(null))) {
8580
tv_time.setText("Timings not specified");
86-
}
87-
else {
81+
} else {
8882
String timings = start + " - " + end;
8983
tv_time.setText(timings);
9084
}
@@ -102,19 +96,33 @@ public boolean onOptionsItemSelected(MenuItem item) {
10296
case android.R.id.home:
10397
finish();
10498
return true;
105-
case R.id.add_bookmark:
106-
107-
Log.d("BOOKMARKS", session.getId() + "");
99+
case R.id.bookmark_status:
108100
DbSingleton dbSingleton = DbSingleton.getInstance();
109-
dbSingleton.addBookmarks(session.getId());
110-
101+
if (dbSingleton.isBookmarked(session.getId())) {
102+
Log.d(TAG, "Bookmark Removed");
103+
dbSingleton.deleteBookmarks(session.getId());
104+
item.setIcon(R.drawable.ic_star_border_bookmark);
105+
} else {
106+
Log.d(TAG, "Bookmarked");
107+
dbSingleton.addBookmarks(session.getId());
108+
item.setIcon(R.drawable.ic_star_bookmark);
109+
}
111110
}
112111
return super.onOptionsItemSelected(item);
113112
}
114113

115114
@Override
116115
public boolean onCreateOptionsMenu(Menu menu) {
117116
getMenuInflater().inflate(R.menu.menu_session_detail, menu);
117+
DbSingleton dbSingleton = DbSingleton.getInstance();
118+
MenuItem item = menu.findItem(R.id.bookmark_status);
119+
if (dbSingleton.isBookmarked(session.getId())) {
120+
Log.d(TAG, "Bookmarked");
121+
item.setIcon(R.drawable.ic_star_bookmark);
122+
} else {
123+
Log.d(TAG, "Bookmark Removed");
124+
item.setIcon(R.drawable.ic_star_border_bookmark);
125+
}
118126
return super.onCreateOptionsMenu(menu);
119127
}
120128

app/src/main/java/org/fossasia/openevent/dbutils/DatabaseOperations.java

+28-3
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,26 @@ public ArrayList<Speaker> getSpeakersbySessionName(String sessionName, SQLiteDat
650650
return speakers;
651651
}
652652

653+
public boolean isBookmarked(int sessionId, SQLiteDatabase db) {
654+
boolean number = false;
655+
Cursor c = null;
656+
try {
657+
c = db.rawQuery("select " + DbContract.Bookmarks.SESSION_ID + " from " + DbContract.Bookmarks.TABLE_NAME
658+
+ " where session_id = ?", new String[]{String.valueOf(sessionId)});
659+
660+
if (c.getCount() == 1) {
661+
number = true;
662+
663+
}
664+
665+
} catch (Exception e) {
666+
e.printStackTrace();
667+
} finally {
668+
if (c != null) c.close();
669+
}
670+
return number;
671+
}
672+
653673
public Session getSessionbySessionname(String sessionName, SQLiteDatabase mDb) throws ParseException {
654674
String sessionColumnSelection = DbContract.Sessions.TITLE + EQUAL + DatabaseUtils.sqlEscapeString(sessionName);
655675
Cursor cursor = mDb.query(
@@ -685,7 +705,7 @@ public Session getSessionbySessionname(String sessionName, SQLiteDatabase mDb) t
685705

686706

687707
public ArrayList<Integer> getBookmarkIds(SQLiteDatabase mDb) {
688-
String sortOrder = DbContract.Bookmarks.TRACKS_ID + ASCENDING;
708+
String sortOrder = DbContract.Bookmarks.SESSION_ID + ASCENDING;
689709

690710
Cursor cursor = mDb.query(
691711
DbContract.Bookmarks.TABLE_NAME,
@@ -700,7 +720,7 @@ public ArrayList<Integer> getBookmarkIds(SQLiteDatabase mDb) {
700720
ArrayList<Integer> ids = new ArrayList<>();
701721
cursor.moveToFirst();
702722
while (!cursor.isAfterLast()) {
703-
ids.add(cursor.getInt(cursor.getColumnIndex(DbContract.Bookmarks.TRACKS_ID)));
723+
ids.add(cursor.getInt(cursor.getColumnIndex(DbContract.Bookmarks.SESSION_ID)));
704724
cursor.moveToNext();
705725
}
706726

@@ -717,7 +737,7 @@ public void insertQuery(String query, DbHelper mDbHelper) {
717737
db.endTransaction();
718738
}
719739

720-
public void addToDb(int id) {
740+
public void addBookmarksToDb(int id) {
721741
String query_normal = "INSERT INTO %s VALUES ('%d');";
722742
String query = String.format(
723743
query_normal,
@@ -728,6 +748,11 @@ public void addToDb(int id) {
728748
dbSingleton.insertQuery(query);
729749
}
730750

751+
public void deleteBookmarks(int id, SQLiteDatabase db) {
752+
db.delete(DbContract.Bookmarks.TABLE_NAME, DbContract.Bookmarks.SESSION_ID + "=" + id, null);
753+
754+
}
755+
731756
public void deleteAllRecords(String tableName, SQLiteDatabase db) {
732757

733758
db.execSQL("delete from " + DatabaseUtils.sqlEscapeString(tableName));

app/src/main/java/org/fossasia/openevent/dbutils/DbContract.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -315,15 +315,15 @@ public static abstract class Event implements BaseColumns {
315315
public static abstract class Bookmarks implements BaseColumns {
316316
public static final String TABLE_NAME = "bookmarks";
317317

318-
public static final String TRACKS_ID = "tracks_id";
318+
public static final String SESSION_ID = "session_id";
319319
public static final String[] FULL_PROJECTION = {
320-
TRACKS_ID
320+
SESSION_ID
321321
};
322322

323323
public static final String CREATE_TABLE =
324324
"CREATE TABLE " + TABLE_NAME
325325
+ " ("
326-
+ TRACKS_ID + INT_TYPE + PRIMARY_KEY
326+
+ SESSION_ID + INT_TYPE + PRIMARY_KEY
327327
+ " );";
328328
public static final String DELETE_TABLE = "DROP TABLE IF EXISTS " + TABLE_NAME;
329329

app/src/main/java/org/fossasia/openevent/dbutils/DbSingleton.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,11 @@ public Version getVersionIds() {
9292
}
9393

9494
public void addBookmarks(int bookmarkId) {
95-
databaseOperations.addToDb(bookmarkId);
95+
databaseOperations.addBookmarksToDb(bookmarkId);
96+
}
97+
98+
public void deleteBookmarks(int bookmarkId) {
99+
databaseOperations.deleteBookmarks(bookmarkId, mDb);
96100
}
97101

98102
public Speaker getSpeakerById(int id) {
@@ -141,6 +145,10 @@ public Session getSessionbySessionname(String sessionName) throws ParseException
141145
return databaseOperations.getSessionbySessionname(sessionName, mDb);
142146
}
143147

148+
public boolean isBookmarked(int sessionId) {
149+
return databaseOperations.isBookmarked(sessionId, mDb);
150+
}
151+
144152
public ArrayList<Integer> getBookmarkIds() throws ParseException {
145153
return databaseOperations.getBookmarkIds(mDb);
146154
}
369 Bytes
Loading
Loading
263 Bytes
Loading
Loading

app/src/main/res/drawable-v21/fab_background.xml

-9
This file was deleted.
Loading
Loading
Loading
Loading
Loading
Loading

app/src/main/res/menu/menu_session_detail.xml

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
<menu xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:app="http://schemas.android.com/apk/res-auto">
44
<item
5-
android:id="@+id/add_bookmark"
6-
android:icon="@drawable/ic_event_add_white_24dp"
5+
android:id="@+id/bookmark_status"
76
android:menuCategory="secondary"
8-
android:title="Bookmark"
7+
android:title="@string/menu_bookmarks"
98
app:showAsAction="ifRoom"/>
109
</menu>

0 commit comments

Comments
 (0)