mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 07:13:00 +00:00 
			
		
		
		
	Move ContentSettingsFragment.isValidPath to helpers and add unit test for it.
This commit is contained in:
		| @@ -26,6 +26,7 @@ import org.schabi.newpipe.extractor.NewPipe; | |||||||
| import org.schabi.newpipe.extractor.localization.ContentCountry; | import org.schabi.newpipe.extractor.localization.ContentCountry; | ||||||
| import org.schabi.newpipe.extractor.localization.Localization; | import org.schabi.newpipe.extractor.localization.Localization; | ||||||
| import org.schabi.newpipe.util.FilePickerActivityHelper; | import org.schabi.newpipe.util.FilePickerActivityHelper; | ||||||
|  | import org.schabi.newpipe.util.FilePathUtils; | ||||||
| import org.schabi.newpipe.util.ZipHelper; | import org.schabi.newpipe.util.ZipHelper; | ||||||
|  |  | ||||||
| import java.io.File; | import java.io.File; | ||||||
| @@ -67,7 +68,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { | |||||||
|                     .putExtra(FilePickerActivityHelper.EXTRA_MODE, |                     .putExtra(FilePickerActivityHelper.EXTRA_MODE, | ||||||
|                             FilePickerActivityHelper.MODE_FILE); |                             FilePickerActivityHelper.MODE_FILE); | ||||||
|             final String path = defaultPreferences.getString(importExportDataPathKey, ""); |             final String path = defaultPreferences.getString(importExportDataPathKey, ""); | ||||||
|             if (isValidPath(path)) { |             if (FilePathUtils.isValidDirectoryPath(path)) { | ||||||
|                 i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path); |                 i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path); | ||||||
|             } |             } | ||||||
|             startActivityForResult(i, REQUEST_IMPORT_PATH); |             startActivityForResult(i, REQUEST_IMPORT_PATH); | ||||||
| @@ -82,7 +83,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { | |||||||
|                     .putExtra(FilePickerActivityHelper.EXTRA_MODE, |                     .putExtra(FilePickerActivityHelper.EXTRA_MODE, | ||||||
|                             FilePickerActivityHelper.MODE_DIR); |                             FilePickerActivityHelper.MODE_DIR); | ||||||
|             final String path = defaultPreferences.getString(importExportDataPathKey, ""); |             final String path = defaultPreferences.getString(importExportDataPathKey, ""); | ||||||
|             if (isValidPath(path)) { |             if (FilePathUtils.isValidDirectoryPath(path)) { | ||||||
|                 i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path); |                 i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path); | ||||||
|             } |             } | ||||||
|             startActivityForResult(i, REQUEST_EXPORT_PATH); |             startActivityForResult(i, REQUEST_EXPORT_PATH); | ||||||
| @@ -254,14 +255,6 @@ public class ContentSettingsFragment extends BasePreferenceFragment { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private boolean isValidPath(final String path) { |  | ||||||
|         if (path == null || path.isEmpty()) { |  | ||||||
|             return false; |  | ||||||
|         } |  | ||||||
|         final File file = new File(path); |  | ||||||
|         return file.exists() && file.isDirectory(); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     private void setImportExportDataPath(final File file) { |     private void setImportExportDataPath(final File file) { | ||||||
|         final String directoryPath; |         final String directoryPath; | ||||||
|         if (!file.isDirectory()) { |         if (!file.isDirectory()) { | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								app/src/main/java/org/schabi/newpipe/util/FilePathUtils.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								app/src/main/java/org/schabi/newpipe/util/FilePathUtils.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | package org.schabi.newpipe.util; | ||||||
|  |  | ||||||
|  | import java.io.File; | ||||||
|  |  | ||||||
|  | public final class FilePathUtils { | ||||||
|  |     private FilePathUtils() { } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Check that the path is a valid directory path and it exists. | ||||||
|  |      * | ||||||
|  |      * @param path full path of directory, | ||||||
|  |      * @return is path valid or not | ||||||
|  |      */ | ||||||
|  |     public static boolean isValidDirectoryPath(final String path) { | ||||||
|  |         if (path == null || path.isEmpty()) { | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |         final File file = new File(path); | ||||||
|  |         return file.exists() && file.isDirectory(); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -0,0 +1,32 @@ | |||||||
|  | package org.schabi.newpipe.util; | ||||||
|  |  | ||||||
|  | import org.junit.Test; | ||||||
|  |  | ||||||
|  | import java.io.File; | ||||||
|  | import java.io.IOException; | ||||||
|  | import java.nio.file.Files; | ||||||
|  |  | ||||||
|  | import static org.junit.Assert.assertFalse; | ||||||
|  | import static org.junit.Assert.assertTrue; | ||||||
|  |  | ||||||
|  | public class FilePathHelperTest { | ||||||
|  |     @Test | ||||||
|  |     public void testIsValidDirectoryPath() throws IOException { | ||||||
|  |         // path that exists | ||||||
|  |         final File dir1 = Files.createTempDirectory("dir1").toFile(); | ||||||
|  |         assertTrue(FilePathUtils.isValidDirectoryPath(dir1.getAbsolutePath())); | ||||||
|  |  | ||||||
|  |         // a directory in above path that exists | ||||||
|  |         final File subDir = Files.createDirectory(dir1.toPath().resolve("subdir")).toFile(); | ||||||
|  |         assertTrue(FilePathUtils.isValidDirectoryPath(subDir.getAbsolutePath())); | ||||||
|  |  | ||||||
|  |         // a directory in above path that doesn't exist | ||||||
|  |         assertFalse(FilePathUtils.isValidDirectoryPath(dir1.toPath().resolve("not-exists-subdir"). | ||||||
|  |                 toFile().getAbsolutePath())); | ||||||
|  |  | ||||||
|  |         // file is not a valid direcotry path | ||||||
|  |         final File tempFile = Files.createFile(dir1.toPath().resolve("simple_file")).toFile(); | ||||||
|  |         assertFalse(FilePathUtils.isValidDirectoryPath(tempFile.getAbsolutePath())); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 Alireza Tofighi
					Alireza Tofighi