· 6 years ago · Sep 27, 2019, 01:44 AM
1package com.mulazi.mymoviecatalogue.db;
2
3import android.content.ContentValues;
4import android.content.Context;
5import android.database.Cursor;
6import android.database.DatabaseErrorHandler;
7import android.database.sqlite.SQLiteDatabase;
8import android.database.sqlite.SQLiteOpenHelper;
9
10import com.mulazi.mymoviecatalogue.Model.Movie;
11
12import java.util.ArrayList;
13import java.util.List;
14
15import static android.provider.BaseColumns._ID;
16
17public class FavoriteDbHelper extends SQLiteOpenHelper {
18
19 private static final String DATABASE_NAME ="favorite.db";
20 private static final int DATABASE_VERSION = 2;
21
22 public FavoriteDbHelper(Context context) {
23 super(context, DATABASE_NAME, null, DATABASE_VERSION);
24 }
25 @Override
26 public void onCreate(SQLiteDatabase sqLiteDatabase) {
27
28 final String SQL_CREATE_FAVORITE_TABLE = "CREATE TABLE " + FavoriteContract.FavoriteEntry.TABLE_NAME + " (" +
29 FavoriteContract.FavoriteEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
30 FavoriteContract.FavoriteEntry.COLUMN_TITTLE + " TEXT," +
31 FavoriteContract.FavoriteEntry.COLUMN_POSTERPATH + " TEXT NOT NULL," +
32 FavoriteContract.FavoriteEntry.COLUMN_OVERVIEW + " TEXT," +
33 FavoriteContract.FavoriteEntry.COLUMN_RATING_BAR + " INTEGER," +
34 FavoriteContract.FavoriteEntry.COLUMN_RATING +" TEXT," +
35 FavoriteContract.FavoriteEntry.COLUMN_RELEASE_DATE + " TEXT," +
36 FavoriteContract.FavoriteEntry.COLUMN_NAME + " TEXT " +
37 ");";
38
39
40 sqLiteDatabase.execSQL(SQL_CREATE_FAVORITE_TABLE);
41
42 }
43
44 @Override
45 public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
46
47 sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + FavoriteContract.FavoriteEntry.TABLE_NAME);
48 onCreate(sqLiteDatabase);
49
50 }
51
52 public void addFavorite(Movie movie) {
53 SQLiteDatabase db = this.getWritableDatabase();
54
55 ContentValues values = new ContentValues();
56 values.put(FavoriteContract.FavoriteEntry.COLUMN_TITTLE, movie.getTitle());
57 values.put(FavoriteContract.FavoriteEntry.COLUMN_POSTERPATH, movie.getPosterPath());
58 values.put(FavoriteContract.FavoriteEntry.COLUMN_OVERVIEW, movie.getOverview());
59 values.put(FavoriteContract.FavoriteEntry.COLUMN_RATING_BAR, movie.getVoteAverage());
60 values.put(FavoriteContract.FavoriteEntry.COLUMN_RATING, movie.getVoteCount());
61 values.put(FavoriteContract.FavoriteEntry.COLUMN_RELEASE_DATE, movie.getReleaseDate());
62 values.put(FavoriteContract.FavoriteEntry.COLUMN_NAME, movie.getName());
63
64 db.insert(FavoriteContract.FavoriteEntry.TABLE_NAME, null, values);
65 db.close();
66 }
67
68 public void deleteFavorite (String overview) {
69 SQLiteDatabase db = this.getWritableDatabase();
70 db.delete(FavoriteContract.FavoriteEntry.TABLE_NAME, FavoriteContract.FavoriteEntry.COLUMN_OVERVIEW + " = ", new String[]{overview});
71 }
72
73 public ArrayList<Movie> getAllFavorite () {
74 String[] columns ={
75 FavoriteContract.FavoriteEntry.TABLE_NAME,
76 FavoriteContract.FavoriteEntry._ID,
77 FavoriteContract.FavoriteEntry.COLUMN_TITTLE,
78 FavoriteContract.FavoriteEntry.COLUMN_POSTERPATH,
79 FavoriteContract.FavoriteEntry.COLUMN_OVERVIEW,
80 FavoriteContract.FavoriteEntry.COLUMN_RATING_BAR,
81 FavoriteContract.FavoriteEntry.COLUMN_RATING,
82 FavoriteContract.FavoriteEntry.COLUMN_RELEASE_DATE,
83 FavoriteContract.FavoriteEntry.COLUMN_NAME
84 };
85 String sortOrder =
86 FavoriteContract.FavoriteEntry._ID + " ASC";
87 ArrayList<Movie> favoriteList = new ArrayList<>();
88 SQLiteDatabase db = this.getReadableDatabase();
89
90 Cursor cursor = db.query(FavoriteContract.FavoriteEntry.TABLE_NAME,
91 columns,
92 null,
93 null,
94 null,
95 null,
96 null,
97 sortOrder);
98 if (cursor.moveToFirst()) {
99 do {
100 Movie movie = new Movie();
101 movie.setName(cursor.getString(cursor.getColumnIndex(FavoriteContract.FavoriteEntry.COLUMN_NAME)));
102 movie.setTitle(cursor.getString(cursor.getColumnIndex(FavoriteContract.FavoriteEntry.COLUMN_TITTLE)));
103 movie.setPosterPath(cursor.getString(cursor.getColumnIndex(FavoriteContract.FavoriteEntry.COLUMN_POSTERPATH)));
104 movie.setOverview(cursor.getString(cursor.getColumnIndex(FavoriteContract.FavoriteEntry.COLUMN_OVERVIEW)));
105 movie.setReleaseDate(cursor.getString(cursor.getColumnIndex(FavoriteContract.FavoriteEntry.COLUMN_RELEASE_DATE)));
106 movie.setVoteAverage(Double.parseDouble(cursor.getString(cursor.getColumnIndex(FavoriteContract.FavoriteEntry.COLUMN_RATING))));
107 movie.setVoteCount(Integer.parseInt(cursor.getString(cursor.getColumnIndex(FavoriteContract.FavoriteEntry.COLUMN_RATING_BAR))));
108
109 favoriteList.add(movie);
110 } while (cursor.moveToNext());
111 }
112 cursor.close();
113 db.close();
114 return favoriteList;
115
116 }
117}
118
119
120
121
122
123package com.mulazi.mymoviecatalogue.db;
124
125import android.provider.BaseColumns;
126
127class FavoriteContract {
128 static final class FavoriteEntry implements BaseColumns {
129
130 static final String TABLE_NAME ="favorite";
131 static final String COLUMN_TITTLE ="tittle";
132 static final String COLUMN_NAME ="name";
133 static final String COLUMN_POSTERPATH ="poster_path";
134 static final String COLUMN_OVERVIEW ="overview";
135 static final String COLUMN_RATING ="rating";
136 static final String COLUMN_RATING_BAR ="rating_bar";
137 static final String COLUMN_RELEASE_DATE ="release_date";
138
139 }
140}