mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 07:13:00 +00:00 
			
		
		
		
	Merge branch 'master' into dev
This commit is contained in:
		| @@ -12,8 +12,8 @@ android { | ||||
|         resValue "string", "app_name", "NewPipe" | ||||
|         minSdkVersion 19 | ||||
|         targetSdkVersion 28 | ||||
|         versionCode 900 | ||||
|         versionName "0.19.0" | ||||
|         versionCode 910 | ||||
|         versionName "0.19.1" | ||||
|  | ||||
|         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | ||||
|         vectorDrawables.useSupportLibrary = true | ||||
|   | ||||
| @@ -25,6 +25,9 @@ class AppDatabaseTest { | ||||
|         private const val DEFAULT_DURATION = 480L | ||||
|         private const val DEFAULT_UPLOADER_NAME = "Uploader Test" | ||||
|         private const val DEFAULT_THUMBNAIL = "https://example.com/example.jpg" | ||||
|  | ||||
|         private const val DEFAULT_SECOND_SERVICE_ID = 0 | ||||
|         private const val DEFAULT_SECOND_URL = "https://www.youtube.com/watch?v=ncQU6iBn5Fc" | ||||
|     } | ||||
|  | ||||
|     @get:Rule val testHelper = MigrationTestHelper(InstrumentationRegistry.getInstrumentation(), | ||||
| @@ -45,6 +48,26 @@ class AppDatabaseTest { | ||||
|                 put("uploader", DEFAULT_UPLOADER_NAME) | ||||
|                 put("thumbnail_url", DEFAULT_THUMBNAIL) | ||||
|             }) | ||||
|             insert("streams", SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply { | ||||
|                 // put("uid", null) | ||||
|                 put("service_id", DEFAULT_SECOND_SERVICE_ID) | ||||
|                 put("url", DEFAULT_SECOND_URL) | ||||
|                 // put("title", null) | ||||
|                 // put("stream_type", null) | ||||
|                 // put("duration", null) | ||||
|                 // put("uploader", null) | ||||
|                 // put("thumbnail_url", null) | ||||
|             }) | ||||
|             insert("streams", SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply { | ||||
|                 // put("uid", null) | ||||
|                 put("service_id", DEFAULT_SERVICE_ID) | ||||
|                 // put("url", null) | ||||
|                 // put("title", null) | ||||
|                 // put("stream_type", null) | ||||
|                 // put("duration", null) | ||||
|                 // put("uploader", null) | ||||
|                 // put("thumbnail_url", null) | ||||
|             }) | ||||
|             close() | ||||
|         } | ||||
|  | ||||
| @@ -53,9 +76,11 @@ class AppDatabaseTest { | ||||
|  | ||||
|         val migratedDatabaseV3 = getMigratedDatabase() | ||||
|         val listFromDB = migratedDatabaseV3.streamDAO().all.blockingFirst() | ||||
|         assertEquals(1, listFromDB.size) | ||||
|  | ||||
|         val streamFromMigratedDatabase = listFromDB.first() | ||||
|         // Only expect 2, the one with the null url will be ignored | ||||
|         assertEquals(2, listFromDB.size) | ||||
|  | ||||
|         val streamFromMigratedDatabase = listFromDB[0] | ||||
|         assertEquals(DEFAULT_SERVICE_ID, streamFromMigratedDatabase.serviceId) | ||||
|         assertEquals(DEFAULT_URL, streamFromMigratedDatabase.url) | ||||
|         assertEquals(DEFAULT_TITLE, streamFromMigratedDatabase.title) | ||||
| @@ -67,6 +92,20 @@ class AppDatabaseTest { | ||||
|         assertNull(streamFromMigratedDatabase.textualUploadDate) | ||||
|         assertNull(streamFromMigratedDatabase.uploadDate) | ||||
|         assertNull(streamFromMigratedDatabase.isUploadDateApproximation) | ||||
|  | ||||
|         val secondStreamFromMigratedDatabase = listFromDB[1] | ||||
|         assertEquals(DEFAULT_SECOND_SERVICE_ID, secondStreamFromMigratedDatabase.serviceId) | ||||
|         assertEquals(DEFAULT_SECOND_URL, secondStreamFromMigratedDatabase.url) | ||||
|         assertEquals("", secondStreamFromMigratedDatabase.title) | ||||
|         // Should fallback to VIDEO_STREAM | ||||
|         assertEquals(StreamType.VIDEO_STREAM, secondStreamFromMigratedDatabase.streamType) | ||||
|         assertEquals(0, secondStreamFromMigratedDatabase.duration) | ||||
|         assertEquals("", secondStreamFromMigratedDatabase.uploader) | ||||
|         assertEquals("", secondStreamFromMigratedDatabase.thumbnailUrl) | ||||
|         assertNull(secondStreamFromMigratedDatabase.viewCount) | ||||
|         assertNull(secondStreamFromMigratedDatabase.textualUploadDate) | ||||
|         assertNull(secondStreamFromMigratedDatabase.uploadDate) | ||||
|         assertNull(secondStreamFromMigratedDatabase.isUploadDateApproximation) | ||||
|     } | ||||
|  | ||||
|     private fun getMigratedDatabase(): AppDatabase { | ||||
|   | ||||
| @@ -81,8 +81,16 @@ public class Migrations { | ||||
|                     " duration INTEGER NOT NULL, uploader TEXT NOT NULL, thumbnail_url TEXT, view_count INTEGER, textual_upload_date TEXT, upload_date INTEGER," + | ||||
|                     " is_upload_date_approximation INTEGER)"); | ||||
|  | ||||
|             database.execSQL("INSERT INTO streams_new (uid, service_id, url, title, stream_type, duration, uploader, thumbnail_url, view_count, textual_upload_date, upload_date, is_upload_date_approximation)"+ | ||||
|                     " SELECT uid, service_id, url, title, stream_type, duration, uploader, thumbnail_url, NULL, NULL, NULL, NULL FROM streams"); | ||||
|             database.execSQL("INSERT INTO streams_new (uid, service_id, url, title, stream_type," + | ||||
|                     "duration, uploader, thumbnail_url, view_count," + | ||||
|                     "textual_upload_date, upload_date, is_upload_date_approximation) " + | ||||
|  | ||||
|                     "SELECT uid, service_id, url, ifnull(title, ''), ifnull(stream_type, 'VIDEO_STREAM')," + | ||||
|                     "ifnull(duration, 0), ifnull(uploader, ''), ifnull(thumbnail_url, ''), NULL," + | ||||
|                     "NULL, NULL, NULL " + | ||||
|  | ||||
|                     "FROM streams " + | ||||
|                     "WHERE url IS NOT NULL"); | ||||
|  | ||||
|             database.execSQL("DROP TABLE streams"); | ||||
|             database.execSQL("ALTER TABLE streams_new RENAME TO streams"); | ||||
|   | ||||
							
								
								
									
										1
									
								
								fastlane/metadata/android/en-US/changelogs/910.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								fastlane/metadata/android/en-US/changelogs/910.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| Fixed database migration which prevented NewPipe from starting in some rare cases. | ||||
		Reference in New Issue
	
	Block a user
	 TobiGr
					TobiGr