| | | |
Offset 3, 43 lines modified | Offset 3, 30 lines modified |
| |
3 | import·java.util.function.Function; | 3 | import·java.util.function.Function; |
4 | import·java.lang.reflect.Field; | 4 | import·java.lang.reflect.Field; |
5 | import·java.lang.annotation.Annotation; | 5 | import·java.lang.annotation.Annotation; |
6 | import·java.util.Objects; | 6 | import·java.util.Objects; |
7 | import·com.android.providers.media.util.Logging; | 7 | import·com.android.providers.media.util.Logging; |
8 | import·java.util.regex.Matcher; | 8 | import·java.util.regex.Matcher; |
| 9 | import·java.io.IOException; |
9 | import·android.system.ErrnoException; | 10 | import·android.system.ErrnoException; |
10 | import·android.system.Os; | 11 | import·android.system.Os; |
| 12 | import·com.android.providers.media.util.MimeUtils; |
| 13 | import·com.android.providers.media.util.FileUtils; |
11 | import·android.content.ContentValues; | 14 | import·android.content.ContentValues; |
12 | import·android.os.CancellationSignal; | |
13 | import·android.os.Bundle; | |
14 | import·java.util.Iterator; | |
15 | import·android.database.ContentObserver; | 15 | import·android.database.ContentObserver; |
16 | import·java.util.List; | |
17 | import·com.google.common.collect.Iterables; | |
18 | import·android.provider.MediaStore$Audio$Playlists$Members; | |
19 | import·java.io.FileNotFoundException; | |
20 | import·com.android.providers.media.util.FileUtils; | |
21 | import·com.android.providers.media.util.MimeUtils; | |
22 | import·android.database.Cursor; | 16 | import·android.database.Cursor; |
23 | import·android.os.Trace; | 17 | import·android.os.Trace; |
24 | import·com.android.providers.media.util.BackgroundThread; | 18 | import·com.android.providers.media.util.BackgroundThread; |
25 | import·java.util.Collection; | 19 | import·java.util.Collection; |
26 | import·com.android.providers.media.util.ForegroundThread; | 20 | import·com.android.providers.media.util.ForegroundThread; |
27 | import·android.os.SystemClock; | 21 | import·android.os.SystemClock; |
28 | import·java.io.FilenameFilter; | 22 | import·java.io.FilenameFilter; |
29 | import·android.os.Environment; | |
30 | import·android.os.RemoteException; | |
31 | import·java.io.IOException; | |
32 | import·android.provider.MediaStore; | |
33 | import·android.content.ContentUris; | |
34 | import·android.provider.MediaStore$Files; | |
35 | import·com.android.providers.media.playlist.Playlist; | |
36 | import·java.io.File; | 23 | import·java.io.File; |
37 | import·android.content.ContentProviderClient; | 24 | import·android.os.Environment; |
38 | import·android.provider.MediaStore$Downloads; | 25 | import·android.provider.MediaStore$Downloads; |
39 | import·android.provider.MediaStore$Images$Media; | 26 | import·android.provider.MediaStore$Images$Media; |
40 | import·android.provider.MediaStore$Video$Media; | 27 | import·android.provider.MediaStore$Video$Media; |
41 | import·android.provider.MediaStore$Audio$Media; | 28 | import·android.provider.MediaStore$Audio$Media; |
42 | import·android.provider.MediaStore$Audio$Playlists; | 29 | import·android.provider.MediaStore$Audio$Playlists; |
43 | import·com.android.providers.media.util.DatabaseUtils; | 30 | import·com.android.providers.media.util.DatabaseUtils; |
44 | import·android.content.pm.ProviderInfo; | 31 | import·android.content.pm.ProviderInfo; |
Offset 58, 26 lines modified | Offset 45, 25 lines modified |
58 | import·android.database.sqlite.SQLiteOpenHelper; | 45 | import·android.database.sqlite.SQLiteOpenHelper; |
| |
59 | public·class·DatabaseHelper·extends·SQLiteOpenHelper·implements·AutoCloseable | 46 | public·class·DatabaseHelper·extends·SQLiteOpenHelper·implements·AutoCloseable |
60 | { | 47 | { |
61 | ····public·static·final·String·CURRENT_GENERATION_CLAUSE·=·"SELECT·generation·FROM·local_metadata"; | 48 | ····public·static·final·String·CURRENT_GENERATION_CLAUSE·=·"SELECT·generation·FROM·local_metadata"; |
62 | ····static·final·String·EXTERNAL_DATABASE_NAME·=·"external.db"; | 49 | ····static·final·String·EXTERNAL_DATABASE_NAME·=·"external.db"; |
63 | ····static·final·String·INTERNAL_DATABASE_NAME·=·"internal.db"; | 50 | ····static·final·String·INTERNAL_DATABASE_NAME·=·"internal.db"; |
64 | ····private·static·final·int·NOTIFY_BATCH_SIZE·=·256; | 51 | ····private·static·final·long·RENAME_TIMEOUT·=·10000L; |
65 | ····private·static·final·long·PASSTHROUGH_WAIT_TIMEOUT·=·10000L; | |
66 | ····static·final·int·VERSION_J·=·509; | 52 | ····static·final·int·VERSION_J·=·509; |
67 | ····static·final·int·VERSION_K·=·700; | 53 | ····static·final·int·VERSION_K·=·700; |
68 | ····static·final·int·VERSION_L·=·700; | 54 | ····static·final·int·VERSION_L·=·700; |
69 | ····static·final·int·VERSION_LATEST·=·1114; | 55 | ····static·final·int·VERSION_LATEST·=·1115; |
70 | ····static·final·int·VERSION_M·=·800; | 56 | ····static·final·int·VERSION_M·=·800; |
71 | ····static·final·int·VERSION_N·=·800; | 57 | ····static·final·int·VERSION_N·=·800; |
72 | ····static·final·int·VERSION_O·=·800; | 58 | ····static·final·int·VERSION_O·=·800; |
73 | ····static·final·int·VERSION_P·=·900; | 59 | ····static·final·int·VERSION_P·=·900; |
74 | ····static·final·int·VERSION_Q·=·1023; | 60 | ····static·final·int·VERSION_Q·=·1023; |
75 | ····static·final·int·VERSION_R·=·1114; | 61 | ····static·final·int·VERSION_R·=·1115; |
76 | ····private·static·final·String·XATTR_UUID·=·"user.uuid"; | 62 | ····private·static·final·String·XATTR_UUID·=·"user.uuid"; |
77 | ····private·static·final·ArraySet·sMigrateColumns; | 63 | ····private·static·final·ArraySet·sMigrateColumns; |
78 | ····final·Class·mColumnAnnotation; | 64 | ····final·Class·mColumnAnnotation; |
79 | ····final·Context·mContext; | 65 | ····final·Context·mContext; |
80 | ····final·boolean·mEarlyUpgrade; | 66 | ····final·boolean·mEarlyUpgrade; |
81 | ····final·DatabaseHelper$OnFilesChangeListener·mFilesListener; | 67 | ····final·DatabaseHelper$OnFilesChangeListener·mFilesListener; |
82 | ····final·Set·mFilterVolumeNames; | 68 | ····final·Set·mFilterVolumeNames; |
Offset 313, 94 lines modified | Offset 299, 31 lines modified |
313 | ············sb5.append("CREATE·VIEW·downloads·AS·SELECT·"); | 299 | ············sb5.append("CREATE·VIEW·downloads·AS·SELECT·"); |
314 | ············final·Class[]·array5·=·new·Class[n]; | 300 | ············final·Class[]·array5·=·new·Class[n]; |
315 | ············array5[0]·=·MediaStore$Downloads.class; | 301 | ············array5[0]·=·MediaStore$Downloads.class; |
316 | ············sb5.append(String.join((CharSequence)",",·(Iterable<?·extends·CharSequence>)this.getProjectionMap(array5).keySet())); | 302 | ············sb5.append(String.join((CharSequence)",",·(Iterable<?·extends·CharSequence>)this.getProjectionMap(array5).keySet())); |
317 | ············sb5.append("·FROM·files·WHERE·is_download=1"); | 303 | ············sb5.append("·FROM·files·WHERE·is_download=1"); |
318 | ············sqLiteDatabase.execSQL(sb5.toString()); | 304 | ············sqLiteDatabase.execSQL(sb5.toString()); |
319 | ············final·StringBuilder·sb6·=·new·StringBuilder(); | 305 | ············final·StringBuilder·sb6·=·new·StringBuilder(); |
320 | ············sb6.append("CREATE·VIEW·audio_artists·AS·SELECT···artist_id·AS·_id,·MIN(artist)·AS·artist,·artist_key·AS·artist_key,·COUNT(DISTINCT·album_id)·AS·number_of_albums,·COUNT(DISTINCT·_id)·AS·number_of_tracks·FROM·audio·WHERE·volume_name·IN·"); | 306 | ············sb6.append("CREATE·VIEW·audio_artists·AS·SELECT···artist_id·AS·_id,·MIN(artist)·AS·artist,·artist_key·AS·artist_key,·COUNT(DISTINCT·album_id)·AS·number_of_albums,·COUNT(DISTINCT·_id)·AS·number_of_tracks·FROM·audio·WHERE·is_music=1·AND·volume_name·IN·"); |
321 | ············sb6.append(bindList); | 307 | ············sb6.append(bindList); |
322 | ············sb6.append("·GROUP·BY·artist_id"); | 308 | ············sb6.append("·GROUP·BY·artist_id"); |
323 | ············sqLiteDatabase.execSQL(sb6.toString()); | 309 | ············sqLiteDatabase.execSQL(sb6.toString()); |
324 | ············final·StringBuilder·sb7·=·new·StringBuilder(); | 310 | ············final·StringBuilder·sb7·=·new·StringBuilder(); |
325 | ············sb7.append("CREATE·VIEW·audio_albums·AS·SELECT···album_id·AS·_id,·album_id·AS·album_id,·MIN(album)·AS·album,·album_key·AS·album_key,·artist_id·AS·artist_id,·artist·AS·artist,·artist_key·AS·artist_key,·COUNT(DISTINCT·_id)·AS·numsongs,·COUNT(DISTINCT·_id)·AS·numsongs_by_artist,·MIN(year)·AS·minyear,·MAX(year)·AS·maxyear,·NULL·AS·album_art·FROM·audio·WHERE·volume_name·IN·"); | 311 | ············sb7.append("CREATE·VIEW·audio_albums·AS·SELECT···album_id·AS·_id,·album_id·AS·album_id,·MIN(album)·AS·album,·album_key·AS·album_key,·artist_id·AS·artist_id,·artist·AS·artist,·artist_key·AS·artist_key,·COUNT(DISTINCT·_id)·AS·numsongs,·COUNT(DISTINCT·_id)·AS·numsongs_by_artist,·MIN(year)·AS·minyear,·MAX(year)·AS·maxyear,·NULL·AS·album_art·FROM·audio·WHERE·is_music=1·AND·volume_name·IN·"); |
326 | ············sb7.append(bindList); | 312 | ············sb7.append(bindList); |
327 | ············sb7.append("·GROUP·BY·album_id"); | 313 | ············sb7.append("·GROUP·BY·album_id"); |
328 | ············sqLiteDatabase.execSQL(sb7.toString()); | 314 | ············sqLiteDatabase.execSQL(sb7.toString()); |
329 | ············final·StringBuilder·sb8·=·new·StringBuilder(); | 315 | ············final·StringBuilder·sb8·=·new·StringBuilder(); |
330 | ············sb8.append("CREATE·VIEW·audio_genres·AS·SELECT···genre_id·AS·_id,·MIN(genre)·AS·name·FROM·audio·WHERE·volume_name·IN·"); | 316 | ············sb8.append("CREATE·VIEW·audio_genres·AS·SELECT···genre_id·AS·_id,·MIN(genre)·AS·name·FROM·audio·WHERE·volume_name·IN·"); |
331 | ············sb8.append(bindList); | 317 | ············sb8.append(bindList); |
332 | ············sb8.append("·GROUP·BY·genre_id"); | 318 | ············sb8.append("·GROUP·BY·genre_id"); |
333 | ············sqLiteDatabase.execSQL(sb8.toString()); | 319 | ············sqLiteDatabase.execSQL(sb8.toString()); |
334 | ········} | 320 | ········} |
335 | ····} | 321 | ····} |
336 | ···· | 322 | ···· |
337 | ····private·void·createPlaylistFile(final·ContentProviderClient·contentProviderClient,·Uri·query,·final·File·file)·{ | |
338 | ········final·String[]·array·=·{·"audio_id",·"play_order"·}; | |
339 | ········final·Playlist·playlist·=·new·Playlist(); | |
340 | ········final·String·s·=·"play_order"; | |
341 | ········final·Uri·uri·=·query; | |
342 | ········final·String[]·array2·=·array; | |
343 | ········final·String·s2·=·null; | |
344 | ········final·String[]·array3·=·null; | |
345 | ········try·{ | |
346 | ············query·=·(Uri)contentProviderClient.query(uri,·array2,·s2,·array3,·s); | |
347 | ············try·{ | |
348 | ················String·s3; | |
349 | ················while·(true)·{ | |
350 | ····················final·boolean·moveToNext·=·((Cursor)query).moveToNext(); | |
351 | ····················s3·=·"MediaProvider"; | |
352 | ····················if·(!moveToNext)·{ | |
353 | ························break; | |
354 | ····················} | |
355 | ····················final·long·long1·=·((Cursor)query).getLong(0); | |
356 | ····················final·int·int1·=·((Cursor)query).getInt(1); | |
357 | ····················final·String·queryForData·=·this.queryForData(contentProviderClient,·MediaStore.rewriteToLegacy(ContentUris.withAppendedId(MediaStore$Files.getContentUri(this.mVolumeName),·long1))); | |
358 | ····················if·(queryForData·==·null)·{ | |
359 | ························final·StringBuilder·sb·=·new·StringBuilder(); | |
360 | ························sb.append("Couldn't·find·audio·file·for·"); | |
361 | ························sb.append(long1); | |
362 | ························sb.append(",·continuing.."); | |
363 | ························Log.e(s3,·sb.toString()); | |
364 | ····················} | |
365 | ····················else·{ | |
366 | ························playlist.add(int1,·file.toPath().getParent().relativize(new·File(queryForData).toPath())); | |
367 | ····················} | |
368 | ················} | |
369 | ················try·{ | |
370 | ····················writeToPlaylistFileWithRetry(file,·playlist); | |
371 | ················} | |
372 | ················catch·(IOException·ex2)·{ | |
373 | ····················final·StringBuilder·sb2·=·new·StringBuilder(); | |
374 | ····················sb2.append("Couldn't·migrate·playlist·file·"); | |
375 | ····················sb2.append(file); | |
376 | ····················Log.wtf(s3,·sb2.toString()); | |
377 | ················} | |
378 | ················if·(query·!=·null)·{ | |
379 | ····················((Cursor)query).close(); | |
380 | ················} | |
381 | ············} | |
382 | ············finally·{ | |
383 | ················if·(query·!=·null)·{ | |
384 | ····················try·{ | |
385 | ························((Cursor)query).close(); | |
386 | ····················} | |
387 | ····················finally·{ | |
388 | ························final·Throwable·t; | |
389 | ························final·Throwable·t2; | |
390 | ························t.addSuppressed(t2); | |
391 | ····················} | |
392 | ················} | |
393 | ············} | |
394 | ········} | |
395 | ········catch·(RemoteException·ex)·{ | |
396 | ············throw·new·IllegalStateException((Throwable)ex); | |
397 | ········} | |
398 | ····} | |
399 | ···· | |
400 | ····private·static·void·deleteLegacyThumbnailData()·{ | 323 | ····private·static·void·deleteLegacyThumbnailData()·{ |
401 | ········File[]·listFiles·=·new·File(Environment.getExternalStorageDirectory(),·"/DCIM/.thumbnails").listFiles((FilenameFilter)-$$Lambda$DatabaseHelper$mjNM6NKW1wog4qZIJGvH3Io8aIc.INSTANCE); | 324 | ········File[]·listFiles·=·new·File(Environment.getExternalStorageDirectory(),·"/DCIM/.thumbnails").listFiles((FilenameFilter)-$$Lambda$DatabaseHelper$mjNM6NKW1wog4qZIJGvH3Io8aIc.INSTANCE); |
402 | ········int·i·=·0; | 325 | ········int·i·=·0; |
403 | ········if·(listFiles·==·null)·{ | 326 | ········if·(listFiles·==·null)·{ |
404 | ············listFiles·=·new·File[0]; | 327 | ············listFiles·=·new·File[0]; |
405 | ········} | 328 | ········} |
406 | ········while·(i·<·listFiles.length)·{ | 329 | ········while·(i·<·listFiles.length)·{ |
Offset 439, 15 lines modified | Offset 362, 15 lines modified |
439 | ············} | 362 | ············} |
440 | ············return; | 363 | ············return; |
441 | ········} | 364 | ········} |
442 | ········throw·new·IllegalStateException("No·transaction·in·progress"); | 365 | ········throw·new·IllegalStateException("No·transaction·in·progress"); |
443 | ····} | 366 | ····} |
444 | ···· | 367 | ···· |
445 | ····public·static·int·getDatabaseVersion(final·Context·context)·{ | 368 | ····public·static·int·getDatabaseVersion(final·Context·context)·{ |
446 | ········return·1114; | 369 | ········return·1115; |
447 | ····} | 370 | ····} |
448 | ···· | 371 | ···· |
449 | ····public·static·long·getGeneration(final·SQLiteDatabase·sqLiteDatabase)·{ | 372 | ····public·static·long·getGeneration(final·SQLiteDatabase·sqLiteDatabase)·{ |
450 | ········return·android.database.DatabaseUtils.longForQuery(sqLiteDatabase,·"SELECT·generation·FROM·local_metadata;",·(String[])null); | 373 | ········return·android.database.DatabaseUtils.longForQuery(sqLiteDatabase,·"SELECT·generation·FROM·local_metadata;",·(String[])null); |
451 | ····} | 374 | ····} |
452 | ···· | 375 | ···· |
453 | ····public·static·long·getItemCount(final·SQLiteDatabase·sqLiteDatabase)·{ | 376 | ····public·static·long·getItemCount(final·SQLiteDatabase·sqLiteDatabase)·{ |
Offset 751, 15 lines modified | Offset 674, 15 lines modified |
751 | ········//···217:·astore··········12 | 674 | ········//···217:·astore··········12 |
752 | ········//···219:·aload···········12 | 675 | ········//···219:·aload···········12 |
753 | ········//···221:·invokespecial···android/content/ContentValues.<init>:()V | 676 | ········//···221:·invokespecial···android/content/ContentValues.<init>:()V |
754 | ········//···224:·aload···········11 | 677 | ········//···224:·aload···········11 |
755 | ········//···226:·invokeinterface·android/database/Cursor.moveToNext:()Z | 678 | ········//···226:·invokeinterface·android/database/Cursor.moveToNext:()Z |
756 | ········//···231:·istore··········13 | 679 | ········//···231:·istore··········13 |
757 | ········//···233:·iload···········13 | 680 | ········//···233:·iload···········13 |
758 | ········//···235:·ifeq············979 | 681 | ········//···235:·ifeq············735 |
759 | ········//···238:·aload···········12 | 682 | ········//···238:·aload···········12 |
760 | ········//···240:·invokevirtual···android/content/ContentValues.clear:()V | 683 | ········//···240:·invokevirtual···android/content/ContentValues.clear:()V |
761 | ········//···243:·aload···········11 | 684 | ········//···243:·aload···········11 |
762 | ········//···245:·aload_3········ | 685 | ········//···245:·aload_3········ |
763 | ········//···246:·invokeinterface·android/database/Cursor.getColumnIndex:(Ljava/lang/String;)I | 686 | ········//···246:·invokeinterface·android/database/Cursor.getColumnIndex:(Ljava/lang/String;)I |
764 | ········//···251:·istore··········13 | 687 | ········//···251:·istore··········13 |
765 | ········//···253:·aload···········11 | 688 | ········//···253:·aload···········11 |
Offset 793, 504 lines modified | Offset 716, 370 lines modified |
793 | ········//···322:·aload···········11 | 716 | ········//···322:·aload···········11 |
794 | ········//···324:·aload···········12 | 717 | ········//···324:·aload···········12 |
795 | ········//···326:·invokestatic····com/android/providers/media/util/DatabaseUtils.copyFromCursorToContentValues:(Ljava/lang/String;Landroid/database/Cursor;Landroid/content/ContentValues;)V | 718 | ········//···326:·invokestatic····com/android/providers/media/util/DatabaseUtils.copyFromCursorToContentValues:(Ljava/lang/String;Landroid/database/Cursor;Landroid/content/ContentValues;)V |
796 | ········//···329:·goto············290 | 719 | ········//···329:·goto············290 |
797 | ········//···332:·aload···········4 | 720 | ········//···332:·aload···········4 |
798 | ········//···334:·invokestatic····com/android/providers/media/util/FileUtils.extractVolumePath:(Ljava/lang/String;)Ljava/lang/String; | 721 | ········//···334:·invokestatic····com/android/providers/media/util/FileUtils.extractVolumePath:(Ljava/lang/String;)Ljava/lang/String; |
799 | ········//···337:·astore··········7 | 722 | ········//···337:·astore··········7 |
800 | ········//···339:·ldc·············"media_type" | 723 | ········//···339:·ldc_w···········";·continuing" |
801 | ········//···341:·astore··········8 | 724 | ········//···342:·astore··········8 |
802 | ········//···343:·aload···········11 | 725 | ········//···344:·aload···········7 |
803 | ········//···345:·aload···········8 | 726 | ········//···346:·ifnull··········469 |
804 | ········//···347:·invokeinterface·android/database/Cursor.getColumnIndex:(Ljava/lang/String;)I | 727 | ········//···349:·new·············Ljava/io/File; |
805 | ········//···352:·istore··········14 | 728 | ········//···352:·astore··········10 |
806 | ········//···354:·aload···········11 | 729 | ········//···354:·aload···········10 |
807 | ········//···356:·iload···········14 | 730 | ········//···356:·aload···········7 |
808 | ········//···358:·invokeinterface·android/database/Cursor.getInt:(I)I | 731 | ········//···358:·invokespecial···java/io/File.<init>:(Ljava/lang/String;)V |
809 | ········//···363:·istore··········14 | 732 | ········//···361:·aload···········12 |
810 | ········//···365:·aload_2········ | 733 | ········//···363:·aload···········10 |
811 | ········//···366:·getfield········com/android/providers/media/DatabaseHelper.mInternal:Z | 734 | ········//···365:·iconst_0······· |
812 | ········//···369:·istore··········9 | 735 | ········//···366:·invokestatic····com/android/providers/media/util/FileUtils.computeDataFromValues:(Landroid/content/ContentValues;Ljava/io/File;Z)V |
813 | ········//···371:·iload···········9 | 736 | ········//···369:·aload···········12 |
814 | ········//···373:·ifne············583 | 737 | ········//···371:·aload_3········ |
815 | ········//···376:·aload···········7 | 738 | ········//···372:·invokevirtual···android/content/ContentValues.getAsString:(Ljava/lang/String;)Ljava/lang/String; |
816 | ········//···378:·ifnull··········583 | 739 | ········//···375:·astore··········7 |
817 | ········//···381:·iconst_4······· | 740 | ········//···377:·aload···········4 |
818 | ········//···382:·istore··········9 | 741 | ········//···379:·aload···········7 |
819 | ········//···384:·iload···········14 | 742 | ········//···381:·invokestatic····java/util/Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z |
| 743 | ········//···384:·istore··········9 |
820 | ········//···386:·iload···········9 | 744 | ········//···386:·iload···········9 |
821 | ········//···388:·if_icmpne·······583 | 745 | ········//···388:·ifne············469 |
822 | ········//···391:·new·············Ljava/io/File; | 746 | ········//···391:·aload···········4 |
823 | ········//···394:·astore··········8 | 747 | ········//···393:·aload···········7 |
824 | ········//···396:·aload···········8 | 748 | ········//···395:·invokestatic····com/android/providers/media/DatabaseHelper.renameWithRetry:(Ljava/lang/String;Ljava/lang/String;)V |
825 | ········//···398:·aload···········4 | 749 | ········//···398:·goto············469 |
826 | ········//···400:·invokespecial···java/io/File.<init>:(Ljava/lang/String;)V | 750 | ········//···401:·astore··········4 |
827 | ········//···403:·aload···········8 | 751 | ········//···403:·aload···········4 |
828 | ········//···405:·invokevirtual···java/io/File.exists:()Z | 752 | ········//···405:·astore··········7 |
829 | ········//···408:·istore··········9 | 753 | ········//···407:·new·············Ljava/lang/StringBuilder; |
830 | ········//···410:·iload···········9 | 754 | ········//···410:·astore··········4 |
831 | ········//···412:·ifne············583 | 755 | ········//···412:·aload···········4 |
832 | ········//···415:·getstatic·······com/android/providers/media/util/Logging.LOGV:Z | 756 | ········//···414:·invokespecial···java/lang/StringBuilder.<init>:()V |
833 | ········//···418:·istore··········9 | 757 | ········//···417:·ldc_w···········"Failed·to·rename·" |
834 | ········//···420:·iload···········9 | 758 | ········//···420:·astore··········10 |
835 | ········//···422:·ifeq············471 | 759 | ········//···422:·aload···········4 |
836 | ········//···425:·new·············Ljava/lang/StringBuilder; | 760 | ········//···424:·aload···········10 |
837 | ········//···428:·astore··········10 | 761 | ········//···426:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; |
838 | ········//···430:·aload···········10 | 762 | ········//···429:·pop············ |
839 | ········//···432:·invokespecial···java/lang/StringBuilder.<init>:()V | 763 | ········//···430:·aload···········4 |
840 | ········//···435:·ldc_w···········"Migrating·playlist·file·" | 764 | ········//···432:·aload···········12 |
841 | ········//···438:·astore··········15 | 765 | ········//···434:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; |
842 | ········//···440:·aload···········10 | 766 | ········//···437:·pop············ |
843 | ········//···442:·aload···········15 | 767 | ········//···438:·aload···········4 |
844 | ········//···444:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | 768 | ········//···440:·aload···········8 |
845 | ········//···447:·pop············ | 769 | ········//···442:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; |
846 | ········//···448:·aload···········10 | 770 | ········//···445:·pop············ |
847 | ········//···450:·aload···········8 | 771 | ········//···446:·aload···········4 |
848 | ········//···452:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; | 772 | ········//···448:·invokevirtual···java/lang/StringBuilder.toString:()Ljava/lang/String; |
849 | ········//···455:·pop············ | 773 | ········//···451:·astore··········4 |
850 | ········//···456:·aload···········10 | 774 | ········//···453:·aload···········6 |
851 | ········//···458:·invokevirtual···java/lang/StringBuilder.toString:()Ljava/lang/String; | 775 | ········//···455:·aload···········4 |
852 | ········//···461:·astore··········8 | 776 | ········//···457:·aload···········7 |
853 | ········//···463:·aload···········6 | 777 | ········//···459:·invokestatic····android/util/Log.wtf:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I |
854 | ········//···465:·aload···········8 | 778 | ········//···462:·pop············ |
855 | ········//···467:·invokestatic····android/util/Log.v:(Ljava/lang/String;Ljava/lang/String;)I | 779 | ········//···463:·aload···········12 |
856 | ········//···470:·pop············ | 780 | ········//···465:·iconst_0······· |
857 | ········//···471:·ldc·············"_id" | 781 | ········//···466:·invokestatic····com/android/providers/media/util/FileUtils.computeValuesFromData:(Landroid/content/ContentValues;Z)V |
858 | ········//···473:·astore··········8 | 782 | ········//···469:·ldc_w···········"files" |
859 | ········//···475:·aload···········11 | 783 | ········//···472:·astore··········4 |
860 | ········//···477:·aload···········8 | 784 | ········//···474:·aload_1········ |
861 | ········//···479:·invokeinterface·android/database/Cursor.getColumnIndex:(Ljava/lang/String;)I | 785 | ········//···475:·aload···········4 |
862 | ········//···484:·istore··········14 | 786 | ········//···477:·aconst_null···· |
863 | ········//···486:·aload···········11 | 787 | ········//···478:·aload···········12 |
864 | ········//···488:·iload···········14 | 788 | ········//···480:·invokevirtual···android/database/sqlite/SQLiteDatabase.insert:(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J |
865 | ········//···490:·invokeinterface·android/database/Cursor.getLong:(I)J | 789 | ········//···483:·lstore··········15 |
866 | ········//···495:·lstore··········16 | 790 | ········//···485:·iconst_m1······ |
867 | ········//···497:·aload_2········ | 791 | ········//···486:·i2l············ |
868 | ········//···498:·aload···········5 | 792 | ········//···487:·lstore··········17 |
869 | ········//···500:·lload···········16 | 793 | ········//···489:·lload···········15 |
870 | ········//···502:·invokespecial···com/android/providers/media/DatabaseHelper.migratePlaylistFiles:(Landroid/content/ContentProviderClient;J)Ljava/lang/String; | 794 | ········//···491:·lload···········17 |
871 | ········//···505:·astore··········8 | 795 | ········//···493:·lcmp··········· |
872 | ········//···507:·aload···········8 | 796 | ········//···494:·istore··········13 |
873 | ········//···509:·ifnonnull·······569 | 797 | ········//···496:·iload···········13 |
874 | ········//···512:·aload···········4 | 798 | ········//···498:·ifne············555 |
875 | ········//···514:·astore··········8 | 799 | ········//···501:·new·············Ljava/lang/StringBuilder; |
876 | ········//···516:·goto············569 | 800 | ········//···504:·astore··········4 |
877 | ········//···519:·pop············ | 801 | ········//···506:·aload···········4 |
878 | ········//···520:·new·············Ljava/lang/StringBuilder; | 802 | ········//···508:·invokespecial···java/lang/StringBuilder.<init>:()V |
879 | ········//···523:·astore··········8 | 803 | ········//···511:·ldc_w···········"Failed·to·insert·" |
880 | ········//···525:·aload···········8 | 804 | ········//···514:·astore··········7 |
881 | ········//···527:·invokespecial···java/lang/StringBuilder.<init>:()V | 805 | ········//···516:·aload···········4 |
882 | ········//···530:·ldc_w···········"Couldn't·migrate·playlist·file·" | 806 | ········//···518:·aload···········7 |
883 | ········//···533:·astore··········10 | 807 | ········//···520:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; |
884 | ········//···535:·aload···········8 | 808 | ········//···523:·pop············ |
885 | ········//···537:·aload···········10 | 809 | ········//···524:·aload···········4 |
886 | ········//···539:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | 810 | ········//···526:·aload···········12 |
887 | ········//···542:·pop············ | 811 | ········//···528:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; |
888 | ········//···543:·aload···········8 | 812 | ········//···531:·pop············ |
889 | ········//···545:·aload···········4 | 813 | ········//···532:·aload···········4 |
890 | ········//···547:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | 814 | ········//···534:·aload···········8 |
891 | ········//···550:·pop············ | 815 | ········//···536:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; |
892 | ········//···551:·aload···········8 | 816 | ········//···539:·pop············ |
893 | ········//···553:·invokevirtual···java/lang/StringBuilder.toString:()Ljava/lang/String; | 817 | ········//···540:·aload···········4 |
894 | ········//···556:·astore··········8 | 818 | ········//···542:·invokevirtual···java/lang/StringBuilder.toString:()Ljava/lang/String; |
895 | ········//···558:·aload···········6 | 819 | ········//···545:·astore··········4 |
896 | ········//···560:·aload···········8 | 820 | ········//···547:·aload···········6 |
897 | ········//···562:·invokestatic····android/util/Log.wtf:(Ljava/lang/String;Ljava/lang/String;)I | 821 | ········//···549:·aload···········4 |
898 | ········//···565:·pop············ | 822 | ········//···551:·invokestatic····android/util/Log.w:(Ljava/lang/String;Ljava/lang/String;)I |
899 | ········//···566:·goto············512 | 823 | ········//···554:·pop············ |
900 | ········//···569:·aload···········12 | 824 | ········//···555:·aload···········11 |
901 | ········//···571:·aload_3········ | 825 | ········//···557:·invokeinterface·android/database/Cursor.getPosition:()I |
902 | ········//···572:·aload···········8 | 826 | ········//···562:·istore··········13 |
903 | ········//···574:·invokevirtual···android/content/ContentValues.put:(Ljava/lang/String;Ljava/lang/String;)V | 827 | ········//···564:·iload···········13 |
904 | ········//···577:·aload···········12 | 828 | ········//···566:·sipush··········2000 |
905 | ········//···579:·iconst_0······· | 829 | ········//···569:·irem··········· |
906 | ········//···580:·invokestatic····com/android/providers/media/util/FileUtils.computeValuesFromData:(Landroid/content/ContentValues;Z)V | 830 | ········//···570:·istore··········13 |
907 | ········//···583:·ldc_w···········";·continuing" | 831 | ········//···572:·iload···········13 |
908 | ········//···586:·astore··········8 | 832 | ········//···574:·ifne············732 |
909 | ········//···588:·aload···········7 | 833 | ········//···577:·aload_1········ |
910 | ········//···590:·ifnull··········713 | 834 | ········//···578:·invokevirtual···android/database/sqlite/SQLiteDatabase.setTransactionSuccessful:()V |
911 | ········//···593:·new·············Ljava/io/File; | 835 | ········//···581:·aload_1········ |
912 | ········//···596:·astore··········10 | 836 | ········//···582:·invokevirtual···android/database/sqlite/SQLiteDatabase.endTransaction:()V |
913 | ········//···598:·aload···········10 | 837 | ········//···585:·aload_1········ |
914 | ········//···600:·aload···········7 | 838 | ········//···586:·invokevirtual···android/database/sqlite/SQLiteDatabase.beginTransaction:()V |
915 | ········//···602:·invokespecial···java/io/File.<init>:(Ljava/lang/String;)V | 839 | ········//···589:·aload···········11 |
916 | ········//···605:·aload···········12 | 840 | ········//···591:·invokeinterface·android/database/Cursor.getPosition:()I |
917 | ········//···607:·aload···········10 | 841 | ········//···596:·istore··········13 |
918 | ········//···609:·iconst_0······· | 842 | ········//···598:·aload···········11 |
919 | ········//···610:·invokestatic····com/android/providers/media/util/FileUtils.computeDataFromValues:(Landroid/content/ContentValues;Ljava/io/File;Z)V | 843 | ········//···600:·invokeinterface·android/database/Cursor.getCount:()I |
920 | ········//···613:·aload···········12 | 844 | ········//···605:·istore··········19 |
921 | ········//···615:·aload_3········ | 845 | ········//···607:·new·············Ljava/lang/StringBuilder; |
922 | ········//···616:·invokevirtual···android/content/ContentValues.getAsString:(Ljava/lang/String;)Ljava/lang/String; | 846 | ········//···610:·astore··········8 |
923 | ········//···619:·astore··········7 | 847 | ········//···612:·aload···········8 |
924 | ········//···621:·aload···········4 | 848 | ········//···614:·invokespecial···java/lang/StringBuilder.<init>:()V |
925 | ········//···623:·aload···········7 | 849 | ········//···617:·ldc_w···········"Migrated·" |
926 | ········//···625:·invokestatic····java/util/Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z | 850 | ········//···620:·astore··········10 |
927 | ········//···628:·istore··········9 | 851 | ········//···622:·aload···········8 |
928 | ········//···630:·iload···········9 | 852 | ········//···624:·aload···········10 |
929 | ········//···632:·ifne············713 | 853 | ········//···626:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; |
930 | ········//···635:·aload···········4 | 854 | ········//···629:·pop············ |
931 | ········//···637:·aload···········7 | 855 | ········//···630:·aload···········8 |
932 | ········//···639:·invokestatic····com/android/providers/media/DatabaseHelper.renameWithRetry:(Ljava/lang/String;Ljava/lang/String;)V | 856 | ········//···632:·iload···········13 |
933 | ········//···642:·goto············713 | 857 | ········//···634:·invokevirtual···java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; |
934 | ········//···645:·astore··········4 | 858 | ········//···637:·pop············ |
935 | ········//···647:·aload···········4 | 859 | ········//···638:·ldc_w···········"·of·" |
936 | ········//···649:·astore··········7 | 860 | ········//···641:·astore··········10 |
937 | ········//···651:·new·············Ljava/lang/StringBuilder; | 861 | ········//···643:·aload···········8 |
938 | ········//···654:·astore··········4 | 862 | ········//···645:·aload···········10 |
939 | ········//···656:·aload···········4 | 863 | ········//···647:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; |
940 | ········//···658:·invokespecial···java/lang/StringBuilder.<init>:()V | 864 | ········//···650:·pop············ |
941 | ········//···661:·ldc_w···········"Failed·to·rename·" | 865 | ········//···651:·aload···········8 |
942 | ········//···664:·astore··········10 | 866 | ········//···653:·iload···········19 |
943 | ········//···666:·aload···········4 | 867 | ········//···655:·invokevirtual···java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; |
944 | ········//···668:·aload···········10 | 868 | ········//···658:·pop············ |
945 | ········//···670:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | 869 | ········//···659:·ldc_w···········"..." |
946 | ········//···673:·pop············ | 870 | ········//···662:·astore··········10 |
947 | ········//···674:·aload···········4 | 871 | ········//···664:·aload···········8 |
948 | ········//···676:·aload···········12 | 872 | ········//···666:·aload···········10 |
949 | ········//···678:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; | 873 | ········//···668:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; |
950 | ········//···681:·pop············ | 874 | ········//···671:·pop············ |
951 | ········//···682:·aload···········4 | 875 | ········//···672:·aload···········8 |
952 | ········//···684:·aload···········8 | 876 | ········//···674:·invokevirtual···java/lang/StringBuilder.toString:()Ljava/lang/String; |
953 | ········//···686:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | 877 | ········//···677:·astore··········8 |
954 | ········//···689:·pop············ | 878 | ········//···679:·aload···········6 |
955 | ········//···690:·aload···········4 | 879 | ········//···681:·aload···········8 |
956 | ········//···692:·invokevirtual···java/lang/StringBuilder.toString:()Ljava/lang/String; | 880 | ········//···683:·invokestatic····android/util/Log.v:(Ljava/lang/String;Ljava/lang/String;)I |
957 | ········//···695:·astore··········4 | 881 | ········//···686:·pop············ |
958 | ········//···697:·aload···········6 | 882 | ········//···687:·aload_2········ |
959 | ········//···699:·aload···········4 | 883 | ········//···688:·getfield········com/android/providers/media/DatabaseHelper.mMigrationListener:Lcom/android/providers/media/DatabaseHelper$OnLegacyMigrationListener; |
960 | ········//···701:·aload···········7 | 884 | ········//···691:·astore··········8 |
961 | ········//···703:·invokestatic····android/util/Log.wtf:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I | 885 | ········//···693:·aload_2········ |
962 | ········//···706:·pop············ | 886 | ········//···694:·getfield········com/android/providers/media/DatabaseHelper.mVolumeName:Ljava/lang/String; |
963 | ········//···707:·aload···········12 | 887 | ········//···697:·astore··········10 |
964 | ········//···709:·iconst_0······· | 888 | ········//···699:·iload···········13 |
965 | ········//···710:·invokestatic····com/android/providers/media/util/FileUtils.computeValuesFromData:(Landroid/content/ContentValues;Z)V | 889 | ········//···701:·i2l············ |
966 | ········//···713:·ldc_w···········"files" | 890 | ········//···702:·lstore··········20 |
967 | ········//···716:·astore··········4 | 891 | ········//···704:·iload···········19 |
968 | ········//···718:·aload_1········ | 892 | ········//···706:·i2l············ |
969 | ········//···719:·aload···········4 | 893 | ········//···707:·lstore··········22 |
970 | ········//···721:·aconst_null···· | 894 | ········//···709:·aload···········8 |
971 | ········//···722:·aload···········12 | 895 | ········//···711:·astore··········7 |
972 | ········//···724:·invokevirtual···android/database/sqlite/SQLiteDatabase.insert:(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J | 896 | ········//···713:·aload···········5 |
973 | ········//···727:·lstore··········18 | 897 | ········//···715:·astore··········8 |
974 | ········//···729:·iconst_m1······ | 898 | ········//···717:·aload···········7 |
975 | ········//···730:·i2l············ | 899 | ········//···719:·aload···········5 |
976 | ········//···731:·lstore··········20 | 900 | ········//···721:·aload···········10 |
977 | ········//···733:·lload···········18 | 901 | ········//···723:·lload···········20 |
978 | ········//···735:·lload···········20 | 902 | ········//···725:·lload···········22 |
979 | ········//···737:·lcmp··········· | 903 | ········//···727:·invokeinterface·com/android/providers/media/DatabaseHelper$OnLegacyMigrationListener.onProgress:(Landroid/content/ContentProviderClient;Ljava/lang/String;JJ)V |
980 | ········//···738:·istore··········13 | 904 | ········//···732:·goto············224 |
981 | ········//···740:·iload···········13 | 905 | ········//···735:·ldc_w···········"Finished·migration·from·legacy·provider" |
982 | ········//···742:·ifne············799 | 906 | ········//···738:·astore··········4 |
983 | ········//···745:·new·············Ljava/lang/StringBuilder; | 907 | ········//···740:·aload···········6 |
984 | ········//···748:·astore··········4 | 908 | ········//···742:·aload···········4 |
985 | ········//···750:·aload···········4 | 909 | ········//···744:·invokestatic····android/util/Log.d:(Ljava/lang/String;Ljava/lang/String;)I |
986 | ········//···752:·invokespecial···java/lang/StringBuilder.<init>:()V | 910 | ········//···747:·pop············ |
987 | ········//···755:·ldc_w···········"Failed·to·insert·" | 911 | ········//···748:·aload···········11 |
988 | ········//···758:·astore··········7 | 912 | ········//···750:·ifnull··········812 |
989 | ········//···760:·aload···········4 | 913 | ········//···753:·aload···········11 |
990 | ········//···762:·aload···········7 | 914 | ········//···755:·invokeinterface·android/database/Cursor.close:()V |
991 | ········//···764:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | 915 | ········//···760:·goto············812 |
992 | ········//···767:·pop············ | 916 | ········//···763:·astore··········4 |
993 | ········//···768:·aload···········4 | 917 | ········//···765:·aload···········4 |
994 | ········//···770:·aload···········12 | 918 | ········//···767:·astore_3······· |
995 | ········//···772:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; | 919 | ········//···768:·aload···········11 |
996 | ········//···775:·pop············ | 920 | ········//···770:·ifnull··········795 |
997 | ········//···776:·aload···········4 | 921 | ········//···773:·aload···········11 |
998 | ········//···778:·aload···········8 | 922 | ········//···775:·invokeinterface·android/database/Cursor.close:()V |
999 | ········//···780:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | 923 | ········//···780:·goto············795 |
1000 | ········//···783:·pop············ | 924 | ········//···783:·astore··········4 |
1001 | ········//···784:·aload···········4 | 925 | ········//···785:·aload···········4 |
1002 | ········//···786:·invokevirtual···java/lang/StringBuilder.toString:()Ljava/lang/String; | 926 | ········//···787:·astore··········7 |
1003 | ········//···789:·astore··········4 | 927 | ········//···789:·aload_3········ |
1004 | ········//···791:·aload···········6 | 928 | ········//···790:·aload···········4 |
1005 | ········//···793:·aload···········4 | 929 | ········//···792:·invokevirtual···java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V |
1006 | ········//···795:·invokestatic····android/util/Log.w:(Ljava/lang/String;Ljava/lang/String;)I | 930 | ········//···795:·aload_3········ |
1007 | ········//···798:·pop············ | 931 | ········//···796:·athrow········· |
1008 | ········//···799:·aload···········11 | 932 | ········//···797:·astore··········4 |
1009 | ········//···801:·invokeinterface·android/database/Cursor.getPosition:()I | 933 | ········//···799:·ldc_w···········"Failed·migration·from·legacy·provider" |
1010 | ········//···806:·istore··········13 | 934 | ········//···802:·astore_3······· |
1011 | ········//···808:·iload···········13 | 935 | ········//···803:·aload···········6 |
1012 | ········//···810:·sipush··········2000 | 936 | ········//···805:·aload_3········ |
1013 | ········//···813:·irem··········· | 937 | ········//···806:·aload···········4 |
1014 | ········//···814:·istore··········13 | 938 | ········//···808:·invokestatic····android/util/Log.wtf:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I |
1015 | ········//···816:·iload···········13 | 939 | ········//···811:·pop············ |
1016 | ········//···818:·ifne············976 | 940 | ········//···812:·aload_1········ |
1017 | ········//···821:·aload_1········ | 941 | ········//···813:·invokevirtual···android/database/sqlite/SQLiteDatabase.setTransactionSuccessful:()V |
1018 | ········//···822:·invokevirtual···android/database/sqlite/SQLiteDatabase.setTransactionSuccessful:()V | 942 | ········//···816:·aload_1········ |
1019 | ········//···825:·aload_1········ | 943 | ········//···817:·invokevirtual···android/database/sqlite/SQLiteDatabase.endTransaction:()V |
1020 | ········//···826:·invokevirtual···android/database/sqlite/SQLiteDatabase.endTransaction:()V | 944 | ········//···820:·aload_2········ |
1021 | ········//···829:·aload_1········ | 945 | ········//···821:·getfield········com/android/providers/media/DatabaseHelper.mMigrationListener:Lcom/android/providers/media/DatabaseHelper$OnLegacyMigrationListener; |
1022 | ········//···830:·invokevirtual···android/database/sqlite/SQLiteDatabase.beginTransaction:()V | 946 | ········//···824:·astore··········4 |
1023 | ········//···833:·aload···········11 | 947 | ········//···826:·aload_2········ |
1024 | ········//···835:·invokeinterface·android/database/Cursor.getPosition:()I | 948 | ········//···827:·getfield········com/android/providers/media/DatabaseHelper.mVolumeName:Ljava/lang/String; |
1025 | ········//···840:·istore··········13 | 949 | ········//···830:·astore_2······· |
1026 | ········//···842:·aload···········11 | 950 | ········//···831:·aload···········4 |
1027 | ········//···844:·invokeinterface·android/database/Cursor.getCount:()I | 951 | ········//···833:·aload···········5 |
1028 | ········//···849:·istore··········22 | 952 | ········//···835:·aload_2········ |
1029 | ········//···851:·new·············Ljava/lang/StringBuilder; | 953 | ········//···836:·invokeinterface·com/android/providers/media/DatabaseHelper$OnLegacyMigrationListener.onFinished:(Landroid/content/ContentProviderClient;Ljava/lang/String;)V |
1030 | ········//···854:·astore··········8 | 954 | ········//···841:·aload···········5 |
1031 | ········//···856:·aload···········8 | 955 | ········//···843:·ifnull··········851 |
1032 | ········//···858:·invokespecial···java/lang/StringBuilder.<init>:()V | 956 | ········//···846:·aload···········5 |
1033 | ········//···861:·ldc_w···········"Migrated·" | 957 | ········//···848:·invokevirtual···android/content/ContentProviderClient.close:()V |
1034 | ········//···864:·astore··········10 | 958 | ········//···851:·return········· |
1035 | ········//···866:·aload···········8 | 959 | ········//···852:·astore··········4 |
1036 | ········//···868:·aload···········10 | 960 | ········//···854:·aload···········4 |
1037 | ········//···870:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | 961 | ········//···856:·astore_2······· |
1038 | ········//···873:·pop············ | 962 | ········//···857:·aload···········5 |
1039 | ········//···874:·aload···········8 | 963 | ········//···859:·ifnull··········881 |
1040 | ········//···876:·iload···········13 | 964 | ········//···862:·aload···········5 |
1041 | ········//···878:·invokevirtual···java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; | 965 | ········//···864:·invokevirtual···android/content/ContentProviderClient.close:()V |
1042 | ········//···881:·pop············ | 966 | ········//···867:·goto············881 |
1043 | ········//···882:·ldc_w···········"·of·" | 967 | ········//···870:·astore··········4 |
1044 | ········//···885:·astore··········10 | 968 | ········//···872:·aload···········4 |
1045 | ········//···887:·aload···········8 | 969 | ········//···874:·astore_3······· |
1046 | ········//···889:·aload···········10 | 970 | ········//···875:·aload_2········ |
1047 | ········//···891:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | 971 | ········//···876:·aload···········4 |
1048 | ········//···894:·pop············ | 972 | ········//···878:·invokevirtual···java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V |
1049 | ········//···895:·aload···········8 | 973 | ········//···881:·aload_2········ |
1050 | ········//···897:·iload···········22 | 974 | ········//···882:·athrow········· |
1051 | ········//···899:·invokevirtual···java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; | |
1052 | ········//···902:·pop············ | |
1053 | ········//···903:·ldc_w···········"..." | |
1054 | ········//···906:·astore··········10 | |
1055 | ········//···908:·aload···········8 | |
1056 | ········//···910:·aload···········10 | |
1057 | ········//···912:·invokevirtual···java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
1058 | ········//···915:·pop············ | |
1059 | ········//···916:·aload···········8 | |
1060 | ········//···918:·invokevirtual···java/lang/StringBuilder.toString:()Ljava/lang/String; | |
1061 | ········//···921:·astore··········8 | |
1062 | ········//···923:·aload···········6 | |
1063 | ········//···925:·aload···········8 | |
1064 | ········//···927:·invokestatic····android/util/Log.v:(Ljava/lang/String;Ljava/lang/String;)I | |
1065 | ········//···930:·pop············ | |
1066 | ········//···931:·aload_2········ | |
1067 | ········//···932:·getfield········com/android/providers/media/DatabaseHelper.mMigrationListener:Lcom/android/providers/media/DatabaseHelper$OnLegacyMigrationListener; | |
1068 | ········//···935:·astore··········8 | |
1069 | ········//···937:·aload_2········ | |
1070 | ········//···938:·getfield········com/android/providers/media/DatabaseHelper.mVolumeName:Ljava/lang/String; | |
1071 | ········//···941:·astore··········10 | |
1072 | ········//···943:·iload···········13 | |
1073 | ········//···945:·i2l············ | |
1074 | ········//···946:·lstore··········23 | |
1075 | ········//···948:·iload···········22 | |
1076 | ········//···950:·i2l············ | |
1077 | ········//···951:·lstore··········25 | |
1078 | ········//···953:·aload···········8 | |
1079 | ········//···955:·astore··········7 | |
1080 | ········//···957:·aload···········5 | |
1081 | ········//···959:·astore··········8 | |
1082 | ········//···961:·aload···········7 | |
1083 | ········//···963:·aload···········5 | |
1084 | ········//···965:·aload···········10 | |
1085 | ········//···967:·lload···········23 | |
1086 | ········//···969:·lload···········25 | |
1087 | ········//···971:·invokeinterface·com/android/providers/media/DatabaseHelper$OnLegacyMigrationListener.onProgress:(Landroid/content/ContentProviderClient;Ljava/lang/String;JJ)V | |
1088 | ········//···976:·goto············224 | |
1089 | ········//···979:·ldc_w···········"Finished·migration·from·legacy·provider" | |
1090 | ········//···982:·astore··········4 | |
1091 | ········//···984:·aload···········6 | |
1092 | ········//···986:·aload···········4 | |
1093 | ········//···988:·invokestatic····android/util/Log.d:(Ljava/lang/String;Ljava/lang/String;)I | |
1094 | ········//···991:·pop············ | |
1095 | ········//···992:·aload···········11 | |
1096 | ········//···994:·ifnull··········1056 | |
1097 | ········//···997:·aload···········11 | |
1098 | ········//···999:·invokeinterface·android/database/Cursor.close:()V | |
1099 | ········//··1004:·goto············1056 | |
1100 | ········//··1007:·astore··········4 | |
1101 | ········//··1009:·aload···········4 | |
1102 | ········//··1011:·astore_3······· | |
1103 | ········//··1012:·aload···········11 | |
1104 | ········//··1014:·ifnull··········1039 | |
1105 | ········//··1017:·aload···········11 | |
1106 | ········//··1019:·invokeinterface·android/database/Cursor.close:()V | |
1107 | ········//··1024:·goto············1039 | |
1108 | ········//··1027:·astore··········4 | |
1109 | ········//··1029:·aload···········4 | |
1110 | ········//··1031:·astore··········7 | |
1111 | ········//··1033:·aload_3········ | |
1112 | ········//··1034:·aload···········4 | |
1113 | ········//··1036:·invokevirtual···java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V | |
1114 | ········//··1039:·aload_3········ | |
1115 | ········//··1040:·athrow········· | |
1116 | ········//··1041:·astore··········4 | |
1117 | ········//··1043:·ldc_w···········"Failed·migration·from·legacy·provider" | |
1118 | ········//··1046:·astore_3······· | |
1119 | ········//··1047:·aload···········6 | |
1120 | ········//··1049:·aload_3········ | |
1121 | ········//··1050:·aload···········4 | |
1122 | ········//··1052:·invokestatic····android/util/Log.wtf:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I | |
1123 | ········//··1055:·pop············ | |
1124 | ········//··1056:·aload_1········ | |
1125 | ········//··1057:·invokevirtual···android/database/sqlite/SQLiteDatabase.setTransactionSuccessful:()V | |
1126 | ········//··1060:·aload_1········ | |
1127 | ········//··1061:·invokevirtual···android/database/sqlite/SQLiteDatabase.endTransaction:()V | |
1128 | ········//··1064:·aload_2········ | |
1129 | ········//··1065:·getfield········com/android/providers/media/DatabaseHelper.mMigrationListener:Lcom/android/providers/media/DatabaseHelper$OnLegacyMigrationListener; | |
1130 | ········//··1068:·astore··········4 | |
1131 | ········//··1070:·aload_2········ | |
1132 | ········//··1071:·getfield········com/android/providers/media/DatabaseHelper.mVolumeName:Ljava/lang/String; | |
1133 | ········//··1074:·astore_2······· | |
1134 | ········//··1075:·aload···········4 | |
1135 | ········//··1077:·aload···········5 | |
1136 | ········//··1079:·aload_2········ | |
1137 | ········//··1080:·invokeinterface·com/android/providers/media/DatabaseHelper$OnLegacyMigrationListener.onFinished:(Landroid/content/ContentProviderClient;Ljava/lang/String;)V | |
1138 | ········//··1085:·aload···········5 | |
1139 | ········//··1087:·ifnull··········1095 | |
1140 | ········//··1090:·aload···········5 | |
1141 | ········//··1092:·invokevirtual···android/content/ContentProviderClient.close:()V | |
1142 | ········//··1095:·return········· | |
1143 | ········//··1096:·astore··········4 | |
1144 | ········//··1098:·aload···········4 | |
1145 | ········//··1100:·astore_2······· | |
1146 | ········//··1101:·aload···········5 | |
1147 | ········//··1103:·ifnull··········1125 | |
1148 | ········//··1106:·aload···········5 | |
1149 | ········//··1108:·invokevirtual···android/content/ContentProviderClient.close:()V | |
1150 | ········//··1111:·goto············1125 | |
1151 | ········//··1114:·astore··········4 | |
1152 | ········//··1116:·aload···········4 | |
1153 | ········//··1118:·astore_3······· | |
1154 | ········//··1119:·aload_2········ | |
1155 | ········//··1120:·aload···········4 | |
1156 | ········//··1122:·invokevirtual···java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V | |
1157 | ········//··1125:·aload_2········ | |
1158 | ········//··1126:·athrow········· | |
1159 | ········//····Exceptions: | 975 | ········//····Exceptions: |
1160 | ········//··Try···········Handler | 976 | ········//··Try···········Handler |
1161 | ········//··Start··End····Start··End····Type················· | 977 | ········//··Start··End····Start··End····Type················· |
1162 | ········//··-----··-----··-----··-----··--------------------- | 978 | ········//··-----··-----··-----··-----··--------------------- |
1163 | ········//··41·····47·····1096···1127···Any | 979 | ········//··41·····47·····852····883····Any |
1164 | ········//··58·····62·····1096···1127···Any | 980 | ········//··58·····62·····852····883····Any |
1165 | ········//··64·····69·····1096···1127···Any | 981 | ········//··64·····69·····852····883····Any |
1166 | ········//··71·····76·····1096···1127···Any | 982 | ········//··71·····76·····852····883····Any |
1167 | ········//··78·····81·····1096···1127···Any | 983 | ········//··78·····81·····852····883····Any |
1168 | ········//··83·····88·····1096···1127···Any | 984 | ········//··83·····88·····852····883····Any |
1169 | ········//··100····105····1096···1127···Any | 985 | ········//··100····105····852····883····Any |
1170 | ········//··114····119····1096···1127···Any | 986 | ········//··114····119····852····883····Any |
1171 | ········//··128····133····1096···1127···Any | 987 | ········//··128····133····852····883····Any |
1172 | ········//··133····137····1096···1127···Any | 988 | ········//··133····137····852····883····Any |
1173 | ········//··144····150····1096···1127···Any | 989 | ········//··144····150····852····883····Any |
1174 | ········//··150····154····1096···1127···Any | 990 | ········//··150····154····852····883····Any |
1175 | ········//··156····160····1096···1127···Any | 991 | ········//··156····160····852····883····Any |
1176 | ········//··166····173····1096···1127···Any | 992 | ········//··166····173····852····883····Any |
1177 | ········//··173····176····1041···1056···Ljava/lang/Exception; | 993 | ········//··173····176····797····812····Ljava/lang/Exception; |
1178 | ········//··173····176····1096···1127···Any | 994 | ········//··173····176····852····883····Any |
1179 | ········//··178····182····1041···1056···Ljava/lang/Exception; | 995 | ········//··178····182····797····812····Ljava/lang/Exception; |
1180 | ········//··178····182····1096···1127···Any | 996 | ········//··178····182····852····883····Any |
1181 | ········//··186····191····1041···1056···Ljava/lang/Exception; | 997 | ········//··186····191····797····812····Ljava/lang/Exception; |
1182 | ········//··186····191····1096···1127···Any | 998 | ········//··186····191····852····883····Any |
1183 | ········//··193····198····1041···1056···Ljava/lang/Exception; | 999 | ········//··193····198····797····812····Ljava/lang/Exception; |
1184 | ········//··193····198····1096···1127···Any | 1000 | ········//··193····198····852····883····Any |
1185 | ········//··208····212····1041···1056···Ljava/lang/Exception; | 1001 | ········//··208····212····797····812····Ljava/lang/Exception; |
1186 | ········//··208····212····1096···1127···Any | 1002 | ········//··208····212····852····883····Any |
1187 | ········//··214····217····1007···1041···Any | 1003 | ········//··214····217····763····797····Any |
1188 | ········//··219····224····1007···1041···Any | 1004 | ········//··219····224····763····797····Any |
1189 | ········//··224····231····1007···1041···Any | 1005 | ········//··224····231····763····797····Any |
1190 | ········//··238····243····1007···1041···Any | 1006 | ········//··238····243····763····797····Any |
1191 | ········//··245····251····1007···1041···Any | 1007 | ········//··245····251····763····797····Any |
1192 | ········//··255····262····1007···1041···Any | 1008 | ········//··255····262····763····797····Any |
1193 | ········//··267····272····1007···1041···Any | 1009 | ········//··267····272····763····797····Any |
1194 | ········//··274····278····1007···1041···Any | 1010 | ········//··274····278····763····797····Any |
1195 | ········//··278····281····1007···1041···Any | 1011 | ········//··278····281····763····797····Any |
1196 | ········//··283····288····1007···1041···Any | 1012 | ········//··283····288····763····797····Any |
1197 | ········//··290····297····1007···1041···Any | 1013 | ········//··290····297····763····797····Any |
1198 | ········//··304····311····1007···1041···Any | 1014 | ········//··304····311····763····797····Any |
1199 | ········//··313····318····1007···1041···Any | 1015 | ········//··313····318····763····797····Any |
1200 | ········//··324····329····1007···1041···Any | 1016 | ········//··324····329····763····797····Any |
1201 | ········//··332····337····1007···1041···Any | 1017 | ········//··332····337····763····797····Any |
1202 | ········//··345····352····1007···1041···Any | 1018 | ········//··349····352····763····797····Any |
1203 | ········//··356····363····1007···1041···Any | 1019 | ········//··356····361····763····797····Any |
1204 | ········//··365····369····1007···1041···Any | 1020 | ········//··365····369····763····797····Any |
1205 | ········//··391····394····1007···1041···Any | 1021 | ········//··371····375····763····797····Any |
1206 | ········//··398····403····1007···1041···Any | 1022 | ········//··379····384····763····797····Any |
1207 | ········//··403····408····1007···1041···Any | 1023 | ········//··393····398····401····469····Ljava/io/IOException; |
1208 | ········//··415····418····1007···1041···Any | 1024 | ········//··393····398····763····797····Any |
1209 | ········//··425····428····1007···1041···Any | 1025 | ········//··407····410····763····797····Any |
1210 | ········//··430····435····1007···1041···Any | 1026 | ········//··412····417····763····797····Any |
1211 | ········//··442····448····1007···1041···Any | 1027 | ········//··424····430····763····797····Any |
1212 | ········//··450····456····1007···1041···Any | 1028 | ········//··432····438····763····797····Any |
1213 | ········//··456····461····1007···1041···Any | 1029 | ········//··440····446····763····797····Any |
1214 | ········//··465····471····1007···1041···Any | 1030 | ········//··446····451····763····797····Any |
1215 | ········//··477····484····519····569····Ljava/lang/Exception; | 1031 | ········//··457····463····763····797····Any |
1216 | ········//··477····484····1007···1041···Any | 1032 | ········//··465····469····763····797····Any |
1217 | ········//··488····495····519····569····Ljava/lang/Exception; | 1033 | ········//··478····483····763····797····Any |
1218 | ········//··488····495····1007···1041···Any | 1034 | ········//··501····504····763····797····Any |
1219 | ········//··500····505····519····569····Ljava/lang/Exception; | 1035 | ········//··506····511····763····797····Any |
1220 | ········//··500····505····1007···1041···Any | 1036 | ········//··518····524····763····797····Any |
1221 | ········//··520····523····1007···1041···Any | 1037 | ········//··526····532····763····797····Any |
1222 | ········//··525····530····1007···1041···Any | 1038 | ········//··534····540····763····797····Any |
1223 | ········//··537····543····1007···1041···Any | 1039 | ········//··540····545····763····797····Any |
1224 | ········//··545····551····1007···1041···Any | 1040 | ········//··549····555····763····797····Any |
1225 | ········//··551····556····1007···1041···Any | 1041 | ········//··555····562····763····797····Any |
1226 | ········//··560····566····1007···1041···Any | 1042 | ········//··566····570····763····797····Any |
1227 | ········//··572····577····1007···1041···Any | 1043 | ········//··577····581····763····797····Any |
1228 | ········//··579····583····1007···1041···Any | 1044 | ········//··581····585····763····797····Any |
1229 | ········//··593····596····1007···1041···Any | 1045 | ········//··585····589····763····797····Any |
1230 | ········//··600····605····1007···1041···Any | 1046 | ········//··589····596····763····797····Any |
1231 | ········//··609····613····1007···1041···Any | 1047 | ········//··598····605····763····797····Any |
1232 | ········//··615····619····1007···1041···Any | 1048 | ········//··607····610····763····797····Any |
1233 | ········//··623····628····1007···1041···Any | 1049 | ········//··612····617····763····797····Any |
1234 | ········//··637····642····645····713····Ljava/io/IOException; | 1050 | ········//··624····630····763····797····Any |
1235 | ········//··637····642····1007···1041···Any | 1051 | ········//··632····638····763····797····Any |
1236 | ········//··651····654····1007···1041···Any | 1052 | ········//··645····651····763····797····Any |
1237 | ········//··656····661····1007···1041···Any | 1053 | ········//··653····659····763····797····Any |
1238 | ········//··668····674····1007···1041···Any | 1054 | ········//··666····672····763····797····Any |
1239 | ········//··676····682····1007···1041···Any | 1055 | ········//··672····677····763····797····Any |
1240 | ········//··684····690····1007···1041···Any | 1056 | ········//··681····687····763····797····Any |
1241 | ········//··690····695····1007···1041···Any | 1057 | ········//··687····691····763····797····Any |
1242 | ········//··701····707····1007···1041···Any | 1058 | ········//··693····697····763····797····Any |
1243 | ········//··709····713····1007···1041···Any | 1059 | ········//··725····732····763····797····Any |
1244 | ········//··722····727····1007···1041···Any | 1060 | ········//··742····748····763····797····Any |
1245 | ········//··745····748····1007···1041···Any | 1061 | ········//··753····760····797····812····Ljava/lang/Exception; |
1246 | ········//··750····755····1007···1041···Any | 1062 | ········//··753····760····852····883····Any |
1247 | ········//··762····768····1007···1041···Any | 1063 | ········//··773····780····783····795····Any |
1248 | ········//··770····776····1007···1041···Any | 1064 | ········//··790····795····797····812····Ljava/lang/Exception; |
1249 | ········//··778····784····1007···1041···Any | 1065 | ········//··790····795····852····883····Any |
1250 | ········//··784····789····1007···1041···Any | 1066 | ········//··795····797····797····812····Ljava/lang/Exception; |
1251 | ········//··793····799····1007···1041···Any | 1067 | ········//··795····797····852····883····Any |
1252 | ········//··799····806····1007···1041···Any | 1068 | ········//··806····812····852····883····Any |
1253 | ········//··810····814····1007···1041···Any | 1069 | ········//··812····816····852····883····Any |
1254 | ········//··821····825····1007···1041···Any | 1070 | ········//··816····820····852····883····Any |
1255 | ········//··825····829····1007···1041···Any | 1071 | ········//··820····824····852····883····Any |
1256 | ········//··829····833····1007···1041···Any | 1072 | ········//··826····830····852····883····Any |
1257 | ········//··833····840····1007···1041···Any | 1073 | ········//··835····841····852····883····Any |
1258 | ········//··842····849····1007···1041···Any | 1074 | ········//··862····867····870····881····Any |
1259 | ········//··851····854····1007···1041···Any | |
1260 | ········//··856····861····1007···1041···Any | |
1261 | ········//··868····874····1007···1041···Any | |
1262 | ········//··876····882····1007···1041···Any | |
1263 | ········//··889····895····1007···1041···Any | |
1264 | ········//··897····903····1007···1041···Any | |
1265 | ········//··910····916····1007···1041···Any | |
1266 | ········//··916····921····1007···1041···Any | |
1267 | ········//··925····931····1007···1041···Any | |
1268 | ········//··931····935····1007···1041···Any | |
1269 | ········//··937····941····1007···1041···Any | |
1270 | ········//··969····976····1007···1041···Any | |
1271 | ········//··986····992····1007···1041···Any | |
1272 | ········//··997····1004···1041···1056···Ljava/lang/Exception; | |
1273 | ········//··997····1004···1096···1127···Any | |
1274 | ········//··1017···1024···1027···1039···Any | |
1275 | ········//··1034···1039···1041···1056···Ljava/lang/Exception; | |
1276 | ········//··1034···1039···1096···1127···Any | |
1277 | ········//··1039···1041···1041···1056···Ljava/lang/Exception; | |
1278 | ········//··1039···1041···1096···1127···Any | |
1279 | ········//··1050···1056···1096···1127···Any | |
1280 | ········//··1056···1060···1096···1127···Any | |
1281 | ········//··1060···1064···1096···1127···Any | |
1282 | ········//··1064···1068···1096···1127···Any | |
1283 | ········//··1070···1074···1096···1127···Any | |
1284 | ········//··1079···1085···1096···1127···Any | |
1285 | ········//··1106···1111···1114···1125···Any | |
1286 | ········//· | 1075 | ········//· |
1287 | ········//·The·error·that·occurred·was: | 1076 | ········//·The·error·that·occurred·was: |
1288 | ········//· | 1077 | ········//· |
1289 | ········//·java.lang.IndexOutOfBoundsException:·Index:·506,·Size:·506 | 1078 | ········//·java.lang.IndexOutOfBoundsException:·Index:·399,·Size:·399 |
1290 | ········//·····at·java.util.ArrayList.rangeCheck(ArrayList.java:659) | 1079 | ········//·····at·java.util.ArrayList.rangeCheck(ArrayList.java:659) |
1291 | ········//·····at·java.util.ArrayList.get(ArrayList.java:435) | 1080 | ········//·····at·java.util.ArrayList.get(ArrayList.java:435) |
1292 | ········//·····at·com.strobel.decompiler.ast.AstBuilder.convertToAst(AstBuilder.java:3321) | 1081 | ········//·····at·com.strobel.decompiler.ast.AstBuilder.convertToAst(AstBuilder.java:3321) |
1293 | ········//·····at·com.strobel.decompiler.ast.AstBuilder.convertToAst(AstBuilder.java:3569) | 1082 | ········//·····at·com.strobel.decompiler.ast.AstBuilder.convertToAst(AstBuilder.java:3569) |
1294 | ········//·····at·com.strobel.decompiler.ast.AstBuilder.build(AstBuilder.java:113) | 1083 | ········//·····at·com.strobel.decompiler.ast.AstBuilder.build(AstBuilder.java:113) |
1295 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:211) | 1084 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:211) |
1296 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:99) | 1085 | ········//·····at·com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:99) |
Offset 1305, 100 lines modified | Offset 1094, 18 lines modified |
1305 | ········//·····at·com.strobel.decompiler.languages.java.JavaLanguage.decompileType(JavaLanguage.java:59) | 1094 | ········//·····at·com.strobel.decompiler.languages.java.JavaLanguage.decompileType(JavaLanguage.java:59) |
1306 | ········//·····at·com.strobel.decompiler.DecompilerDriver.decompileType(DecompilerDriver.java:336) | 1095 | ········//·····at·com.strobel.decompiler.DecompilerDriver.decompileType(DecompilerDriver.java:336) |
1307 | ········//·····at·com.strobel.decompiler.DecompilerDriver.main(DecompilerDriver.java:144) | 1096 | ········//·····at·com.strobel.decompiler.DecompilerDriver.main(DecompilerDriver.java:144) |
1308 | ········//· | 1097 | ········//· |
1309 | ········throw·new·IllegalStateException("An·error·occurred·while·decompiling·this·method."); | 1098 | ········throw·new·IllegalStateException("An·error·occurred·while·decompiling·this·method."); |
1310 | ····} | 1099 | ····} |
1311 | ···· | 1100 | ···· |
1312 | ····private·String·migratePlaylistFiles(final·ContentProviderClient·contentProviderClient,·final·long·n)·{ | |
1313 | ········final·StringBuilder·sb·=·new·StringBuilder(); | |
1314 | ········sb.append("media_type=4·AND·_id="); | |
1315 | ········sb.append(n); | |
1316 | ········final·String·string·=·sb.toString(); | |
1317 | ········final·String·s·=·"_id"; | |
1318 | ········final·String·s2·=·"_data"; | |
1319 | ········final·String·s3·=·"mime_type"; | |
1320 | ········final·String·s4·=·"name"; | |
1321 | ········final·String[]·array·=·{·s,·s2,·s3,·s4·}; | |
1322 | ········final·Uri·rewriteToLegacy·=·MediaStore.rewriteToLegacy(MediaStore$Files.getContentUri(this.mVolumeName)); | |
1323 | ········final·String[]·array2·=·array; | |
1324 | ········final·String·s5·=·string; | |
1325 | ········final·String[]·array3·=·null; | |
1326 | ········try·{ | |
1327 | ············final·Cursor·query·=·contentProviderClient.query(rewriteToLegacy,·array2,·s5,·array3,·(String)null); | |
1328 | ············try·{ | |
1329 | ················if·(!query.moveToFirst())·{ | |
1330 | ····················final·StringBuilder·sb2·=·new·StringBuilder(); | |
1331 | ····················sb2.append("Couldn't·find·database·row·for·playlist·file"); | |
1332 | ····················sb2.append(n); | |
1333 | ····················throw·new·IllegalStateException(sb2.toString()); | |
1334 | ················} | |
1335 | ················final·String·string2·=·query.getString(query.getColumnIndex(s2)); | |
1336 | ················File·buildUniqueFile·=·new·File(string2); | |
1337 | ················if·(!buildUniqueFile.exists())·{ | |
1338 | ····················String·string3·=·query.getString(query.getColumnIndex(s3)); | |
1339 | ····················if·(!MimeUtils.isPlaylistMimeType(string3))·{ | |
1340 | ························string3·=·"audio/mpegurl"; | |
1341 | ····················} | |
1342 | ····················File·parentFile·=·buildUniqueFile.getParentFile(); | |
1343 | ····················if·(parentFile.getName().equalsIgnoreCase("Playlists"))·{ | |
1344 | ························parentFile·=·new·File(parentFile.getParentFile(),·Environment.DIRECTORY_MUSIC); | |
1345 | ····················} | |
1346 | ····················final·String·string4·=·query.getString(query.getColumnIndex(s4)); | |
1347 | ····················final·File·file·=·parentFile; | |
1348 | ····················final·String·s6·=·string3; | |
1349 | ····················try·{ | |
1350 | ························buildUniqueFile·=·FileUtils.buildUniqueFile(file,·s6,·string4); | |
1351 | ····················} | |
1352 | ····················catch·(FileNotFoundException·ex)·{ | |
1353 | ························final·String·s7·=·"MediaProvider"; | |
1354 | ························final·StringBuilder·sb3·=·new·StringBuilder(); | |
1355 | ························sb3.append("Couldn't·create·unique·file·for·"); | |
1356 | ························sb3.append(buildUniqueFile); | |
1357 | ························sb3.append(",·using·actual·playlist·file·name"); | |
1358 | ························Log.e(s7,·sb3.toString(),·(Throwable)ex); | |
1359 | ····················} | |
1360 | ····················this.createPlaylistFile(contentProviderClient,·MediaStore.rewriteToLegacy(MediaStore$Audio$Playlists$Members.getContentUri(this.mVolumeName,·query.getLong(query.getColumnIndex(s)))),·buildUniqueFile); | |
1361 | ····················final·String·absolutePath·=·buildUniqueFile.getAbsolutePath(); | |
1362 | ····················if·(query·!=·null)·{ | |
1363 | ························query.close(); | |
1364 | ····················} | |
1365 | ····················return·absolutePath; | |
1366 | ················} | |
1367 | ················final·StringBuilder·sb4·=·new·StringBuilder(); | |
1368 | ················sb4.append("Playlist·file·exists·"); | |
1369 | ················sb4.append(string2); | |
1370 | ················throw·new·IllegalStateException(sb4.toString()); | |
1371 | ············} | |
1372 | ············finally·{ | |
1373 | ················if·(query·!=·null)·{ | |
1374 | ····················try·{ | |
1375 | ························query.close(); | |
1376 | ····················} | |
1377 | ····················finally·{ | |
1378 | ························final·Throwable·t; | |
1379 | ························final·Throwable·t2; | |
1380 | ························t.addSuppressed(t2); | |
1381 | ····················} | |
1382 | ················} | |
1383 | ············} | |
1384 | ········} | |
1385 | ········catch·(RemoteException·ex2)·{ | |
1386 | ············throw·new·IllegalStateException((Throwable)ex2); | |
1387 | ········} | |
1388 | ····} | |
1389 | ···· | |
1390 | ····private·void·notifyChangeInternal(final·Collection·collection,·final·int·n)·{ | 1101 | ····private·void·notifyChangeInternal(final·Collection·collection,·final·int·n)·{ |
1391 | ········Trace.beginSection("notifyChange"); | 1102 | ········Trace.beginSection("notifyChange"); |
1392 | ········final·int·n2·=·256; | |
1393 | ········try·{ | 1103 | ········try·{ |
1394 | ············final·Iterator·iterator·=·Iterables.partition((Iterable)collection,·n2).iterator(); | 1104 | ············this.mContext.getContentResolver().notifyChange(collection,·(ContentObserver)null,·n); |
1395 | ············while·(iterator.hasNext())·{ | |
1396 | ················this.mContext.getContentResolver().notifyChange((Collection)(List)iterator.next(),·(ContentObserver)null,·n); | |
1397 | ············} | |
1398 | ········} | 1105 | ········} |
1399 | ········finally·{ | 1106 | ········finally·{ |
1400 | ············Trace.endSection(); | 1107 | ············Trace.endSection(); |
1401 | ········} | 1108 | ········} |
1402 | ····} | 1109 | ····} |
1403 | ···· | 1110 | ···· |
1404 | ····private·void·notifySingleChangeInternal(final·Uri·uri,·final·int·n)·{ | 1111 | ····private·void·notifySingleChangeInternal(final·Uri·uri,·final·int·n)·{ |
Offset 1407, 58 lines modified | Offset 1114, 14 lines modified |
1407 | ············this.mContext.getContentResolver().notifyChange(uri,·(ContentObserver)null,·n); | 1114 | ············this.mContext.getContentResolver().notifyChange(uri,·(ContentObserver)null,·n); |
1408 | ········} | 1115 | ········} |
1409 | ········finally·{ | 1116 | ········finally·{ |
1410 | ············Trace.endSection(); | 1117 | ············Trace.endSection(); |
1411 | ········} | 1118 | ········} |
1412 | ····} | 1119 | ····} |
1413 | ···· | 1120 | ···· |
1414 | ····private·String·queryForData(ContentProviderClient·query,·final·Uri·uri)·{ | |
1415 | ········final·String·s·=·"_data"; | |
1416 | ········try·{ | |
1417 | ············final·String[]·array·=·{·s·}; | |
1418 | ············try·{ | |
1419 | ················query·=·(ContentProviderClient)query.query(uri,·array,·Bundle.EMPTY,·(CancellationSignal)null); | |
1420 | ················try·{ | |
1421 | ····················if·(((Cursor)query).moveToFirst())·{ | |
1422 | ························final·String·string·=·((Cursor)query).getString(0); | |
1423 | ························if·(query·!=·null)·{ | |
1424 | ····························((Cursor)query).close(); | |
1425 | ························} | |
1426 | ························return·string; | |
1427 | ····················} | |
1428 | ····················if·(query·!=·null)·{ | |
1429 | ························((Cursor)query).close(); | |
1430 | ························return·null; | |
1431 | ····················} | |
1432 | ····················return·null; | |
1433 | ················} | |
1434 | ················finally·{ | |
1435 | ····················if·(query·!=·null)·{ | |
1436 | ························try·{ | |
1437 | ····························((Cursor)query).close(); | |
1438 | ························} | |
1439 | ························finally·{ | |
1440 | ····························final·Throwable·t; | |
1441 | ····························final·Throwable·t2; | |
1442 | ····························t.addSuppressed(t2); | |
1443 | ························} | |
1444 | ····················} | |
1445 | ················} | |
1446 | ············} | |
1447 | ············catch·(Exception·ex)·{ | |
1448 | ················final·StringBuilder·sb·=·new·StringBuilder(); | |
1449 | ················sb.append("Exception·occurred·while·querying·for·data·file·for·"); | |
1450 | ················sb.append(uri); | |
1451 | ················Log.wtf("MediaProvider",·sb.toString(),·(Throwable)ex); | |
1452 | ············} | |
1453 | ········} | |
1454 | ········catch·(Exception·ex2)·{} | |
1455 | ········return·null; | |
1456 | ····} | |
1457 | ···· | |
1458 | ····private·static·void·recomputeDataValues(final·SQLiteDatabase·sqLiteDatabase,·final·boolean·b)·{ | 1121 | ····private·static·void·recomputeDataValues(final·SQLiteDatabase·sqLiteDatabase,·final·boolean·b)·{ |
1459 | ········final·String·s·=·"_data"; | 1122 | ········final·String·s·=·"_data"; |
1460 | ········final·Cursor·query·=·sqLiteDatabase.query("files",·new·String[]·{·"_id",·s·},·(String)null,·(String[])null,·(String)null,·(String)null,·(String)null,·(String)null); | 1123 | ········final·Cursor·query·=·sqLiteDatabase.query("files",·new·String[]·{·"_id",·s·},·(String)null,·(String[])null,·(String)null,·(String)null,·(String)null,·(String)null); |
1461 | ········final·String·s2·=·"MediaProvider"; | 1124 | ········final·String·s2·=·"MediaProvider"; |
1462 | ········try·{ | 1125 | ········try·{ |
1463 | ············final·StringBuilder·sb·=·new·StringBuilder(); | 1126 | ············final·StringBuilder·sb·=·new·StringBuilder(); |
1464 | ············sb.append("Recomputing·"); | 1127 | ············sb.append("Recomputing·"); |
Offset 1701, 14 lines modified | Offset 1364, 18 lines modified |
1701 | ···· | 1364 | ···· |
1702 | ····private·static·void·updateAddXmpMm(final·SQLiteDatabase·sqLiteDatabase,·final·boolean·b)·{ | 1365 | ····private·static·void·updateAddXmpMm(final·SQLiteDatabase·sqLiteDatabase,·final·boolean·b)·{ |
1703 | ········sqLiteDatabase.execSQL("ALTER·TABLE·files·ADD·COLUMN·document_id·TEXT·DEFAULT·NULL;"); | 1366 | ········sqLiteDatabase.execSQL("ALTER·TABLE·files·ADD·COLUMN·document_id·TEXT·DEFAULT·NULL;"); |
1704 | ········sqLiteDatabase.execSQL("ALTER·TABLE·files·ADD·COLUMN·instance_id·TEXT·DEFAULT·NULL;"); | 1367 | ········sqLiteDatabase.execSQL("ALTER·TABLE·files·ADD·COLUMN·instance_id·TEXT·DEFAULT·NULL;"); |
1705 | ········sqLiteDatabase.execSQL("ALTER·TABLE·files·ADD·COLUMN·original_document_id·TEXT·DEFAULT·NULL;"); | 1368 | ········sqLiteDatabase.execSQL("ALTER·TABLE·files·ADD·COLUMN·original_document_id·TEXT·DEFAULT·NULL;"); |
1706 | ····} | 1369 | ····} |
1707 | ···· | 1370 | ···· |
| 1371 | ····private·static·void·updateAudioAlbumId(final·SQLiteDatabase·sqLiteDatabase,·final·boolean·b)·{ |
| 1372 | ········sqLiteDatabase.execSQL("UPDATE·files·SET·date_modified=0·WHERE·media_type=2;"); |
| 1373 | ····} |
| 1374 | ···· |
1708 | ····private·static·void·updateClearDirectories(final·SQLiteDatabase·sqLiteDatabase,·final·boolean·b)·{ | 1375 | ····private·static·void·updateClearDirectories(final·SQLiteDatabase·sqLiteDatabase,·final·boolean·b)·{ |
1709 | ········sqLiteDatabase.execSQL("UPDATE·files·SET·primary_directory=NULL,·secondary_directory=NULL;"); | 1376 | ········sqLiteDatabase.execSQL("UPDATE·files·SET·primary_directory=NULL,·secondary_directory=NULL;"); |
1710 | ····} | 1377 | ····} |
1711 | ···· | 1378 | ···· |
1712 | ····private·static·void·updateClearLocation(final·SQLiteDatabase·sqLiteDatabase,·final·boolean·b)·{ | 1379 | ····private·static·void·updateClearLocation(final·SQLiteDatabase·sqLiteDatabase,·final·boolean·b)·{ |
1713 | ········sqLiteDatabase.execSQL("UPDATE·files·SET·latitude=NULL,·longitude=NULL;"); | 1380 | ········sqLiteDatabase.execSQL("UPDATE·files·SET·latitude=NULL,·longitude=NULL;"); |
1714 | ····} | 1381 | ····} |
Offset 1821, 14 lines modified | Offset 1488, 17 lines modified |
1821 | ············} | 1488 | ············} |
1822 | ············if·(n·<·1111)·{ | 1489 | ············if·(n·<·1111)·{ |
1823 | ················recomputeMediaTypeValues(sqLiteDatabase); | 1490 | ················recomputeMediaTypeValues(sqLiteDatabase); |
1824 | ············} | 1491 | ············} |
1825 | ············if·(n·<·1112)·{ | 1492 | ············if·(n·<·1112)·{ |
1826 | ················updateAddXmp(sqLiteDatabase,·mInternal); | 1493 | ················updateAddXmp(sqLiteDatabase,·mInternal); |
1827 | ············} | 1494 | ············} |
| 1495 | ············if·(n·<·1115)·{ |
| 1496 | ················updateAudioAlbumId(sqLiteDatabase,·mInternal); |
| 1497 | ············} |
1828 | ············if·(!this.mLegacyProvider)·{ | 1498 | ············if·(!this.mLegacyProvider)·{ |
1829 | ················n4·=·n5; | 1499 | ················n4·=·n5; |
1830 | ············} | 1500 | ············} |
1831 | ············if·(n4·!=·0)·{ | 1501 | ············if·(n4·!=·0)·{ |
1832 | ················recomputeDataValues(sqLiteDatabase,·mInternal); | 1502 | ················recomputeDataValues(sqLiteDatabase,·mInternal); |
1833 | ············} | 1503 | ············} |
1834 | ········} | 1504 | ········} |
Offset 1903, 41 lines modified | Offset 1573, 14 lines modified |
1903 | ········final·StringBuilder·sb·=·new·StringBuilder(); | 1573 | ········final·StringBuilder·sb·=·new·StringBuilder(); |
1904 | ········sb.append("UPDATE·files·SET·is_download=1·WHERE·_data·REGEXP·'"); | 1574 | ········sb.append("UPDATE·files·SET·is_download=1·WHERE·_data·REGEXP·'"); |
1905 | ········sb.append(FileUtils.PATTERN_DOWNLOADS_FILE); | 1575 | ········sb.append(FileUtils.PATTERN_DOWNLOADS_FILE); |
1906 | ········sb.append("'"); | 1576 | ········sb.append("'"); |
1907 | ········sqLiteDatabase.execSQL(sb.toString()); | 1577 | ········sqLiteDatabase.execSQL(sb.toString()); |
1908 | ····} | 1578 | ····} |
1909 | ···· | 1579 | ···· |
1910 | ····private·static·String·writeToPlaylistFileWithRetry(final·File·file,·final·Playlist·playlist)·{ | |
1911 | ········final·String·s·=·"MediaProvider"; | |
1912 | ········while·(SystemClock.elapsedRealtime()·-·SystemClock.elapsedRealtime()·<=·10000L)·{ | |
1913 | ············try·{ | |
1914 | ················final·File·parentFile·=·file.getParentFile(); | |
1915 | ················try·{ | |
1916 | ····················parentFile.mkdirs(); | |
1917 | ····················file.createNewFile(); | |
1918 | ····················try·{ | |
1919 | ························playlist.write(file); | |
1920 | ····················} | |
1921 | ····················catch·(IOException·ex)·{ | |
1922 | ························final·StringBuilder·sb·=·new·StringBuilder(); | |
1923 | ························sb.append("Failed·to·migrate·playlist·file,·retrying·"); | |
1924 | ························sb.append(ex); | |
1925 | ························Log.i(s,·sb.toString()); | |
1926 | ····················} | |
1927 | ················} | |
1928 | ················catch·(IOException·ex2)·{} | |
1929 | ············} | |
1930 | ············catch·(IOException·ex3)·{} | |
1931 | ············Log.i(s,·"Waiting·for·passthrough·to·be·mounted..."); | |
1932 | ············SystemClock.sleep((long)100); | |
1933 | ········} | |
1934 | ········throw·new·IOException("Passthrough·failed·to·mount"); | |
1935 | ····} | |
1936 | ···· | |
1937 | ····public·void·beginTransaction()·{ | 1580 | ····public·void·beginTransaction()·{ |
1938 | ········final·StringBuilder·sb·=·new·StringBuilder(); | 1581 | ········final·StringBuilder·sb·=·new·StringBuilder(); |
1939 | ········sb.append("transaction·"); | 1582 | ········sb.append("transaction·"); |
1940 | ········sb.append(this.getDatabaseName()); | 1583 | ········sb.append(this.getDatabaseName()); |
1941 | ········Trace.beginSection(sb.toString()); | 1584 | ········Trace.beginSection(sb.toString()); |
1942 | ········Trace.beginSection("beginTransaction"); | 1585 | ········Trace.beginSection("beginTransaction"); |
1943 | ········try·{ | 1586 | ········try·{ |