List the Bookmarked and Recently Played Content in Mobile App

List the Bookmarked and Recently Played Content in Mobile App

Problem Statement:

  • User can can bookmark the content. Content/collections inside of other collections (include courses, textbooks etc.) can also be bookmarked.

  • User can see recently viewed content. Only leaf-node content that was actually PLAYED should be displayed in this row (not collections/books/courses etc.)

  • The display should be shown based on which was used latest by the current user.

Solution :   

Create a new table called content_markers to store the bookmarked and online played content. Schema of the table will be as follows:

Column Name

Type

Value

Column Name

Type

Value

identifier

text

content identifier

data

text

Content json

marker

integer



visibility

text

Default / Parent

epoch_timestamp

integer



uid

text

User id













Values for marker

00 - NONE (0)

01 - PREVIEWED (1)

10 - BOOKMARKED (2)



Will do the bitwise operation while storing and retrieving the value for marker.

OR - While storing the data
AND - While retrieving the data



SQLite Bitwise Operators:

Bitwise operator works on bits and performs bit-by-bit operation. Following is the truth table for & and |.

p

q

p&q

p|q

p

q

p&q

p|q

0

0

0

0

0

1

0

1

1

1

1

1

1

0

0

1









A = 0001
B = 0010

-----------------

A|B = 0011
A&B = 0000



When to add the row in this table?
- When user bookmarks any content
- When user played any content

When to delete the row from this table?
- When user remove bookmark then check in content_access table that in content is not played than remove else not.



Query to get the bookmarked contents

Select * from content_markers where (marker&BOOKMARKED) == BOOKMARKED;



Query to get the recently play contents



Conclusion



@Swayangjit Parida @Shriharsh Saboji @Mathew Pallan