Data model changes

Data model - UserData.insert() accepting list of strings instead of User
object or ContentValues
Data model - inserting users one by one instead of using db transaction
Data model - manual BaseColumns._ID field. I haven’t debugged your app
extensively, but I’d say it will fetch only single users page, because
on the second page it would try to insert the rows with the ids that
already exist in the database
Data model - cursor leaks
Data model - sqlitedatabase handles leaks
Data model - not exception safe code - optimistically assuming that the
code won’t throw an error and closing Cursor and SQLiteDatabase in
normal code flow instead of try {} finally {} construct.