|  |  | @ -18,7 +18,7 @@ import io.legado.app.help.storage.Restore | 
			
		
	
		
		
			
				
					
					|  |  |  | import io.legado.app.help.storage.WebDavHelp |  |  |  | import io.legado.app.help.storage.WebDavHelp | 
			
		
	
		
		
			
				
					
					|  |  |  | import io.legado.app.ui.filepicker.FilePicker |  |  |  | import io.legado.app.ui.filepicker.FilePicker | 
			
		
	
		
		
			
				
					
					|  |  |  | import io.legado.app.utils.getPrefString |  |  |  | import io.legado.app.utils.getPrefString | 
			
		
	
		
		
			
				
					
					|  |  |  | import io.legado.app.utils.isContentPath |  |  |  | import io.legado.app.utils.isContentScheme | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | import io.legado.app.utils.longToast |  |  |  | import io.legado.app.utils.longToast | 
			
		
	
		
		
			
				
					
					|  |  |  | import io.legado.app.utils.toast |  |  |  | import io.legado.app.utils.toast | 
			
		
	
		
		
			
				
					
					|  |  |  | import kotlinx.coroutines.Dispatchers.Main |  |  |  | import kotlinx.coroutines.Dispatchers.Main | 
			
		
	
	
		
		
			
				
					|  |  | @ -35,7 +35,7 @@ object BackupRestoreUi { | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (backupPath.isNullOrEmpty()) { |  |  |  |         if (backupPath.isNullOrEmpty()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             selectBackupFolder(fragment, backupSelectRequestCode) |  |  |  |             selectBackupFolder(fragment, backupSelectRequestCode) | 
			
		
	
		
		
			
				
					
					|  |  |  |         } else { |  |  |  |         } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (backupPath.isContentPath()) { |  |  |  |             if (backupPath.isContentScheme()) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 val uri = Uri.parse(backupPath) |  |  |  |                 val uri = Uri.parse(backupPath) | 
			
		
	
		
		
			
				
					
					|  |  |  |                 val doc = DocumentFile.fromTreeUri(fragment.requireContext(), uri) |  |  |  |                 val doc = DocumentFile.fromTreeUri(fragment.requireContext(), uri) | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (doc?.canWrite() == true) { |  |  |  |                 if (doc?.canWrite() == true) { | 
			
		
	
	
		
		
			
				
					|  |  | @ -82,7 +82,7 @@ object BackupRestoreUi { | 
			
		
	
		
		
			
				
					
					|  |  |  |             fragment.longToast("WebDavError:${it.localizedMessage}\n将从本地备份恢复。") |  |  |  |             fragment.longToast("WebDavError:${it.localizedMessage}\n将从本地备份恢复。") | 
			
		
	
		
		
			
				
					
					|  |  |  |             val backupPath = fragment.getPrefString(PreferKey.backupPath) |  |  |  |             val backupPath = fragment.getPrefString(PreferKey.backupPath) | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (backupPath?.isNotEmpty() == true) { |  |  |  |             if (backupPath?.isNotEmpty() == true) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (backupPath.isContentPath()) { |  |  |  |                 if (backupPath.isContentScheme()) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     val uri = Uri.parse(backupPath) |  |  |  |                     val uri = Uri.parse(backupPath) | 
			
		
	
		
		
			
				
					
					|  |  |  |                     val doc = DocumentFile.fromTreeUri(fragment.requireContext(), uri) |  |  |  |                     val doc = DocumentFile.fromTreeUri(fragment.requireContext(), uri) | 
			
		
	
		
		
			
				
					
					|  |  |  |                     if (doc?.canWrite() == true) { |  |  |  |                     if (doc?.canWrite() == true) { | 
			
		
	
	
		
		
			
				
					|  |  | @ -125,7 +125,7 @@ object BackupRestoreUi { | 
			
		
	
		
		
			
				
					
					|  |  |  |         when (requestCode) { |  |  |  |         when (requestCode) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             backupSelectRequestCode -> if (resultCode == RESULT_OK) { |  |  |  |             backupSelectRequestCode -> if (resultCode == RESULT_OK) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 data?.data?.let { uri -> |  |  |  |                 data?.data?.let { uri -> | 
			
		
	
		
		
			
				
					
					|  |  |  |                     if (uri.isContentPath()) { |  |  |  |                     if (uri.isContentScheme()) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                         App.INSTANCE.contentResolver.takePersistableUriPermission( |  |  |  |                         App.INSTANCE.contentResolver.takePersistableUriPermission( | 
			
		
	
		
		
			
				
					
					|  |  |  |                             uri, |  |  |  |                             uri, | 
			
		
	
		
		
			
				
					
					|  |  |  |                             Intent.FLAG_GRANT_READ_URI_PERMISSION |  |  |  |                             Intent.FLAG_GRANT_READ_URI_PERMISSION | 
			
		
	
	
		
		
			
				
					|  |  | @ -151,7 +151,7 @@ object BackupRestoreUi { | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |             restoreSelectRequestCode -> if (resultCode == RESULT_OK) { |  |  |  |             restoreSelectRequestCode -> if (resultCode == RESULT_OK) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 data?.data?.let { uri -> |  |  |  |                 data?.data?.let { uri -> | 
			
		
	
		
		
			
				
					
					|  |  |  |                     if (uri.isContentPath()) { |  |  |  |                     if (uri.isContentScheme()) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                         App.INSTANCE.contentResolver.takePersistableUriPermission( |  |  |  |                         App.INSTANCE.contentResolver.takePersistableUriPermission( | 
			
		
	
		
		
			
				
					
					|  |  |  |                             uri, |  |  |  |                             uri, | 
			
		
	
		
		
			
				
					
					|  |  |  |                             Intent.FLAG_GRANT_READ_URI_PERMISSION |  |  |  |                             Intent.FLAG_GRANT_READ_URI_PERMISSION | 
			
		
	
	
		
		
			
				
					|  |  | @ -173,7 +173,7 @@ object BackupRestoreUi { | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |             selectFolderRequestCode -> if (resultCode == RESULT_OK) { |  |  |  |             selectFolderRequestCode -> if (resultCode == RESULT_OK) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 data?.data?.let { uri -> |  |  |  |                 data?.data?.let { uri -> | 
			
		
	
		
		
			
				
					
					|  |  |  |                     if (uri.isContentPath()) { |  |  |  |                     if (uri.isContentScheme()) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                         App.INSTANCE.contentResolver.takePersistableUriPermission( |  |  |  |                         App.INSTANCE.contentResolver.takePersistableUriPermission( | 
			
		
	
		
		
			
				
					
					|  |  |  |                             uri, |  |  |  |                             uri, | 
			
		
	
		
		
			
				
					
					|  |  |  |                             Intent.FLAG_GRANT_READ_URI_PERMISSION |  |  |  |                             Intent.FLAG_GRANT_READ_URI_PERMISSION | 
			
		
	
	
		
		
			
				
					|  |  | 
 |