|
19 | 19 | */ |
20 | 20 | package com.wirelessalien.android.moviedb.activity |
21 | 21 |
|
| 22 | +import android.annotation.SuppressLint |
22 | 23 | import android.app.Activity |
23 | 24 | import android.app.UiModeManager |
24 | 25 | import android.content.ComponentName |
@@ -219,6 +220,7 @@ class DetailActivity : BaseActivity(), ListTmdbBottomSheetFragment.OnListCreated |
219 | 220 | private var mCastAndCrewLoaded = false |
220 | 221 | private var mVideosLoaded = false |
221 | 222 | private var videos: JSONArray? = null |
| 223 | + @SuppressLint("SetTextI18n") |
222 | 224 | override fun onCreate(savedInstanceState: Bundle?) { |
223 | 225 | super.onCreate(savedInstanceState) |
224 | 226 | binding = ActivityDetailBinding.inflate( |
@@ -457,12 +459,7 @@ class DetailActivity : BaseActivity(), ListTmdbBottomSheetFragment.OnListCreated |
457 | 459 | databaseHelper.onCreate(database) |
458 | 460 |
|
459 | 461 | // Check if the show is already in the database. |
460 | | - val cursor = database.rawQuery( |
461 | | - "SELECT * FROM " + |
462 | | - MovieDatabaseHelper.TABLE_MOVIES + |
463 | | - " WHERE " + MovieDatabaseHelper.COLUMN_MOVIES_ID + |
464 | | - "=" + movieId + " LIMIT 1", null |
465 | | - ) |
| 462 | + val cursor = databaseHelper.getMovieCursor(movieId) |
466 | 463 | cursor.use { cursor1 -> |
467 | 464 | if (cursor1.count > 0) { |
468 | 465 | // A record has been found |
@@ -729,12 +726,7 @@ class DetailActivity : BaseActivity(), ListTmdbBottomSheetFragment.OnListCreated |
729 | 726 | var userRatingString = getString(R.string.rating_na) |
730 | 727 | var reviewString = getString(R.string.rating_na) |
731 | 728 | var timesWatchedString = getString(R.string.rating_na) |
732 | | - val cursorr = database.rawQuery( |
733 | | - "SELECT * FROM " + |
734 | | - MovieDatabaseHelper.TABLE_MOVIES + |
735 | | - " WHERE " + MovieDatabaseHelper.COLUMN_MOVIES_ID + |
736 | | - "=" + movieId + " LIMIT 1", null |
737 | | - ) |
| 729 | + val cursorr = databaseHelper.getMovieCursor(movieId) |
738 | 730 | cursorr.use { |
739 | 731 | if (it.moveToFirst()) { |
740 | 732 | val personalRating = it.getFloat(it.getColumnIndexOrThrow(MovieDatabaseHelper.COLUMN_PERSONAL_RATING)) |
@@ -833,16 +825,10 @@ class DetailActivity : BaseActivity(), ListTmdbBottomSheetFragment.OnListCreated |
833 | 825 | if (added) { |
834 | 826 |
|
835 | 827 | // Remove the show from the database. |
836 | | - database.delete( |
837 | | - MovieDatabaseHelper.TABLE_MOVIES, |
838 | | - MovieDatabaseHelper.COLUMN_MOVIES_ID + "=" + movieId, null |
839 | | - ) |
| 828 | + databaseHelper.deleteMovie(movieId) |
840 | 829 |
|
841 | 830 | // Remove all episodes related to the show from the database. |
842 | | - database.delete( |
843 | | - MovieDatabaseHelper.TABLE_EPISODES, |
844 | | - MovieDatabaseHelper.COLUMN_MOVIES_ID + "=" + movieId, null |
845 | | - ) |
| 831 | + databaseHelper.deleteEpisodesForMovie(movieId) |
846 | 832 |
|
847 | 833 | added = false |
848 | 834 | binding.fabSave.icon = ContextCompat.getDrawable( |
@@ -2184,29 +2170,17 @@ class DetailActivity : BaseActivity(), ListTmdbBottomSheetFragment.OnListCreated |
2184 | 2170 | val seasonNumber = season.getInt("season_number") |
2185 | 2171 | val episodeCount = season.getInt("episode_count") |
2186 | 2172 | for (j in 1..episodeCount) { |
2187 | | - val cursor = database.rawQuery( |
2188 | | - "SELECT * FROM ${MovieDatabaseHelper.TABLE_EPISODES} WHERE " + |
2189 | | - "${MovieDatabaseHelper.COLUMN_MOVIES_ID} = ? AND " + |
2190 | | - "${MovieDatabaseHelper.COLUMN_SEASON_NUMBER} = ? AND " + |
2191 | | - "${MovieDatabaseHelper.COLUMN_EPISODE_NUMBER} = ?", |
2192 | | - arrayOf(movieId.toString(), seasonNumber.toString(), j.toString()) |
2193 | | - ) |
2194 | | - if (cursor.count == 0) { |
| 2173 | + if (!databaseHelper.isEpisodeInDatabase(movieId, seasonNumber, listOf(j))) { |
2195 | 2174 | val values = ContentValues().apply { |
2196 | 2175 | put(MovieDatabaseHelper.COLUMN_MOVIES_ID, movieId) |
2197 | 2176 | put(MovieDatabaseHelper.COLUMN_SEASON_NUMBER, seasonNumber) |
2198 | 2177 | put(MovieDatabaseHelper.COLUMN_EPISODE_NUMBER, j) |
2199 | 2178 | } |
2200 | 2179 | val newRowId = database.insert(MovieDatabaseHelper.TABLE_EPISODES, null, values) |
2201 | 2180 | if (newRowId == -1L) { |
2202 | | - Toast.makeText( |
2203 | | - this, |
2204 | | - R.string.error_adding_episode_to_database, |
2205 | | - Toast.LENGTH_SHORT |
2206 | | - ).show() |
| 2181 | + Toast.makeText(this, R.string.error_adding_episode_to_database, Toast.LENGTH_SHORT).show() |
2207 | 2182 | } |
2208 | 2183 | } |
2209 | | - cursor.close() |
2210 | 2184 | } |
2211 | 2185 | } |
2212 | 2186 | } catch (e: JSONException) { |
@@ -2370,12 +2344,7 @@ class DetailActivity : BaseActivity(), ListTmdbBottomSheetFragment.OnListCreated |
2370 | 2344 | databaseHelper.onCreate(database) |
2371 | 2345 |
|
2372 | 2346 | // Retrieve and present saved data of the show. |
2373 | | - val cursor = database.rawQuery( |
2374 | | - "SELECT * FROM " + |
2375 | | - MovieDatabaseHelper.TABLE_MOVIES + |
2376 | | - " WHERE " + MovieDatabaseHelper.COLUMN_MOVIES_ID + |
2377 | | - "=" + movieId + " LIMIT 1", null |
2378 | | - ) |
| 2347 | + val cursor = databaseHelper.getMovieCursor(movieId) |
2379 | 2348 | if (cursor.count > 0) { |
2380 | 2349 | cursor.moveToFirst() |
2381 | 2350 | // Set the rating to the personal rating of the user. |
@@ -2872,7 +2841,7 @@ class DetailActivity : BaseActivity(), ListTmdbBottomSheetFragment.OnListCreated |
2872 | 2841 | // Save the category to the database |
2873 | 2842 | val showValues = ContentValues() |
2874 | 2843 | database = databaseHelper.writableDatabase |
2875 | | - val cursor = database.rawQuery("SELECT * FROM " + MovieDatabaseHelper.TABLE_MOVIES + " WHERE " + MovieDatabaseHelper.COLUMN_MOVIES_ID + "=" + movieId + " LIMIT 1", null) |
| 2844 | + val cursor = databaseHelper.getMovieCursor(movieId) |
2876 | 2845 |
|
2877 | 2846 | val currentDate = SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH).format(Date()) |
2878 | 2847 | val category = getCategoryNumber(position) |
@@ -3240,7 +3209,7 @@ class DetailActivity : BaseActivity(), ListTmdbBottomSheetFragment.OnListCreated |
3240 | 3209 |
|
3241 | 3210 | private fun updateEditShowDetails() { |
3242 | 3211 | database = databaseHelper.writableDatabase |
3243 | | - database.rawQuery("SELECT * FROM " + MovieDatabaseHelper.TABLE_MOVIES + " WHERE " + MovieDatabaseHelper.COLUMN_MOVIES_ID + "=" + movieId + " LIMIT 1", null).use { cursor -> |
| 3212 | + databaseHelper.getMovieCursor(movieId).use { cursor -> |
3244 | 3213 | if (cursor.count > 0) { |
3245 | 3214 | cursor.moveToFirst() |
3246 | 3215 | when (cursor.getInt(cursor.getColumnIndexOrThrow(MovieDatabaseHelper.COLUMN_CATEGORIES))) { |
@@ -3380,26 +3349,26 @@ class DetailActivity : BaseActivity(), ListTmdbBottomSheetFragment.OnListCreated |
3380 | 3349 | } |
3381 | 3350 | } |
3382 | 3351 |
|
3383 | | - private fun formatDateString(dateString: String): String { |
3384 | | - return when { |
3385 | | - dateString.startsWith("00-00-") -> { |
3386 | | - val year = dateString.substring(6) |
3387 | | - year |
3388 | | - } |
3389 | | - dateString.startsWith("00-") -> { |
3390 | | - val monthYear = dateString.substring(3) |
3391 | | - SimpleDateFormat("MM-yyyy", Locale.getDefault()).parse(monthYear)?.let { |
3392 | | - SimpleDateFormat("MMMM yyyy", Locale.getDefault()).format(it) |
3393 | | - } ?: dateString |
3394 | | - } |
3395 | | - else -> { |
3396 | | - val dbDateFormat = SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()) |
3397 | | - dbDateFormat.parse(dateString)?.let { |
3398 | | - DateFormat.getDateInstance(DateFormat.DEFAULT).format(it) |
3399 | | - } ?: dateString |
3400 | | - } |
3401 | | - } |
3402 | | - } |
| 3352 | +// private fun formatDateString(dateString: String): String { |
| 3353 | +// return when { |
| 3354 | +// dateString.startsWith("00-00-") -> { |
| 3355 | +// val year = dateString.substring(6) |
| 3356 | +// year |
| 3357 | +// } |
| 3358 | +// dateString.startsWith("00-") -> { |
| 3359 | +// val monthYear = dateString.substring(3) |
| 3360 | +// SimpleDateFormat("MM-yyyy", Locale.getDefault()).parse(monthYear)?.let { |
| 3361 | +// SimpleDateFormat("MMMM yyyy", Locale.getDefault()).format(it) |
| 3362 | +// } ?: dateString |
| 3363 | +// } |
| 3364 | +// else -> { |
| 3365 | +// val dbDateFormat = SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()) |
| 3366 | +// dbDateFormat.parse(dateString)?.let { |
| 3367 | +// DateFormat.getDateInstance(DateFormat.DEFAULT).format(it) |
| 3368 | +// } ?: dateString |
| 3369 | +// } |
| 3370 | +// } |
| 3371 | +// } |
3403 | 3372 |
|
3404 | 3373 | private fun showYearMonthPickerDialog(context: Context, onYearMonthSelected: (Int, Int?) -> Unit) { |
3405 | 3374 | val binding = DialogYearMonthPickerBinding.inflate(LayoutInflater.from(context)) |
|
0 commit comments