diff --git a/SMBSync2/build.gradle b/SMBSync2/build.gradle index 799c61dd..5d43118a 100644 --- a/SMBSync2/build.gradle +++ b/SMBSync2/build.gradle @@ -12,8 +12,8 @@ android { targetSdkVersion 29 // - versionCode 268 - versionName "2.37" + versionCode 269 + versionName "2.38" compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 diff --git a/SMBSync2/src/main/java/com/sentaroh/android/SMBSync2/Constants.java b/SMBSync2/src/main/java/com/sentaroh/android/SMBSync2/Constants.java index ec20f689..17213ead 100644 --- a/SMBSync2/src/main/java/com/sentaroh/android/SMBSync2/Constants.java +++ b/SMBSync2/src/main/java/com/sentaroh/android/SMBSync2/Constants.java @@ -186,13 +186,13 @@ public class Constants { new String[]{"*.aac","*.aif", "*.aifc", "*.aiff", "*.flac", "*.kar", "*.m3u", "*.m4a", "*.mid", "*.midi", "*.mp2", "*.mp3", "*.mpga", "*.ogg", "*.ra", "*.ram", "*.wav"}; public static final String[] SYNC_FILE_TYPE_IMAGE= - new String[]{"*.bmp", "*.cgm", "*.djv", "*.djvu", "*.gif", "*.ico", "*.ief", "*.jpe", "*.jpeg", "*.jpg", "*.pbm", + new String[]{"*.bmp", "*.cgm", "*.djv", "*.djvu", "*.dng", "*.gif", "*.ico", "*.ief", "*.jpe", "*.jpeg", "*.jpg", "*.pbm", "*.pgm", "*.png", "*.pnm", "*.ppm", "*.ras", "*.rgb", "*.svg", "*.tif", "*.tiff", "*.wbmp", "*.xbm", "*.xpm", "*.xwd"}; public static final String[] SYNC_FILE_TYPE_VIDEO= new String[]{"*.avi", "*.m4u", "*.mov", "*.mp4", "*.movie", "*.mpe", "*.mpeg", "*.mpg", "*.mxu", "*.qt", "*.wmv"}; public static final String[] ARCHIVE_FILE_TYPE= - new String[]{"gif", "jpg", "jpeg", "jpe", "png", "mp4", "mov"}; + new String[]{"dng", "gif", "jpg", "jpeg", "jpe", "png", "mp4", "mov"}; } diff --git a/SMBSync2/src/main/java/com/sentaroh/android/SMBSync2/GlobalParameters.java b/SMBSync2/src/main/java/com/sentaroh/android/SMBSync2/GlobalParameters.java index 73dfd4c9..d745a3d1 100644 --- a/SMBSync2/src/main/java/com/sentaroh/android/SMBSync2/GlobalParameters.java +++ b/SMBSync2/src/main/java/com/sentaroh/android/SMBSync2/GlobalParameters.java @@ -160,7 +160,7 @@ public class GlobalParameters extends CommonGlobalParms { public String settingNoCompressFileType = DEFAULT_NOCOMPRESS_FILE_TYPE; static final public String DEFAULT_NOCOMPRESS_FILE_TYPE = - "aac;apk;avi;gif;ico;gz;jar;jpe;jpeg;jpg;m3u;m4a;m4u;mov;movie;mp2;mp3;mpe;mpeg;mpg;mpga;png;qt;ra;ram;svg;tgz;wmv;zip;"; + "aac;apk;avi;dng;gif;ico;gz;jar;jpe;jpeg;jpg;m3u;m4a;m4u;mov;movie;mp2;mp3;mpe;mpeg;mpg;mpga;png;qt;ra;ram;svg;tgz;wmv;zip;"; public boolean settingSupressAppSpecifiDirWarning = false; public boolean settingSupressLocationServiceWarning =false; diff --git a/SMBSync2/src/main/java/com/sentaroh/android/SMBSync2/SyncThreadArchiveFile.java b/SMBSync2/src/main/java/com/sentaroh/android/SMBSync2/SyncThreadArchiveFile.java index 84a843ca..78ce3463 100644 --- a/SMBSync2/src/main/java/com/sentaroh/android/SMBSync2/SyncThreadArchiveFile.java +++ b/SMBSync2/src/main/java/com/sentaroh/android/SMBSync2/SyncThreadArchiveFile.java @@ -544,14 +544,17 @@ static private int archiveFileInternalToSmb(SyncThreadWorkArea stwa, SyncTaskIte if (!sti.isArchiveUseRename()) {//Renameしない JcifsFile jf=new JcifsFile(converted_to_path+"/"+item.file_name, stwa.targetAuth); if (jf.exists()) { - String new_name=createArchiveSmbNewFilePath(stwa, sti, converted_to_path, converted_to_path+"/"+to_file_name, to_file_ext) ; - if (new_name.equals("")) { - stwa.util.addLogMsg("E","Archive sequence number overflow error."); - sync_result=SyncTaskItem.SYNC_STATUS_ERROR; - break; - } else { - jf=new JcifsFile(new_name, stwa.targetAuth); - sync_result= moveFileInternalToSmb(stwa, sti, item.full_path, (File)item.file, jf, jf.getPath()); + if (SyncThread.isFileChangedForLocalToRemote(stwa, sti, from_path, (File)item.file, jf, stwa.ALL_COPY) && + SyncThread.checkMasterFileNewerThanTargetFile(stwa, sti, ((File)item.file).getAbsolutePath(), ((File)item.file).lastModified(), jf.getLastModified())) { + String new_name = createArchiveSmbNewFilePath(stwa, sti, converted_to_path, converted_to_path + "/" + to_file_name, to_file_ext); + if (new_name.equals("")) { + stwa.util.addLogMsg("E", "Archive sequence number overflow error."); + sync_result = SyncTaskItem.SYNC_STATUS_ERROR; + break; + } else { + jf = new JcifsFile(new_name, stwa.targetAuth); + sync_result = moveFileInternalToSmb(stwa, sti, item.full_path, (File) item.file, jf, jf.getPath()); + } } } else { sync_result= moveFileInternalToSmb(stwa, sti, item.full_path, (File)item.file, jf, jf.getPath()); @@ -562,14 +565,17 @@ static private int archiveFileInternalToSmb(SyncThreadWorkArea stwa, SyncTaskIte JcifsFile jf=new JcifsFile(converted_to_path+"/"+temp_dir+to_file_name+to_file_seqno+to_file_ext, stwa.targetAuth); if (jf.exists()) { - String new_name=createArchiveSmbNewFilePath(stwa, sti, converted_to_path, converted_to_path+"/"+temp_dir+to_file_name+to_file_seqno,to_file_ext) ; - if (new_name.equals("")) { - stwa.util.addLogMsg("E","Archive sequence number overflow error."); - sync_result=SyncTaskItem.SYNC_STATUS_ERROR; - break; - } else { - jf=new JcifsFile(new_name, stwa.targetAuth); - sync_result= moveFileInternalToSmb(stwa, sti, item.full_path, (File)item.file, jf, jf.getPath()); + if (SyncThread.isFileChangedForLocalToRemote(stwa, sti, from_path, (File)item.file, jf, stwa.ALL_COPY) && + SyncThread.checkMasterFileNewerThanTargetFile(stwa, sti, ((File)item.file).getAbsolutePath(), ((File)item.file).lastModified(), jf.getLastModified())) { + String new_name = createArchiveSmbNewFilePath(stwa, sti, converted_to_path, converted_to_path + "/" + temp_dir + to_file_name + to_file_seqno, to_file_ext); + if (new_name.equals("")) { + stwa.util.addLogMsg("E", "Archive sequence number overflow error."); + sync_result = SyncTaskItem.SYNC_STATUS_ERROR; + break; + } else { + jf = new JcifsFile(new_name, stwa.targetAuth); + sync_result = moveFileInternalToSmb(stwa, sti, item.full_path, (File) item.file, jf, jf.getPath()); + } } } else { sync_result= moveFileInternalToSmb(stwa, sti, item.full_path, (File)item.file, jf, jf.getPath()); @@ -1976,14 +1982,17 @@ static private int archiveFileSmbToSmb(SyncThreadWorkArea stwa, SyncTaskItem sti if (!sti.isArchiveUseRename()) { JcifsFile tf=new JcifsFile(converted_to_path+"/"+item.file_name, stwa.targetAuth); if (tf.exists()) { - String new_name=createArchiveSmbNewFilePath(stwa, sti, converted_to_path, converted_to_path+"/"+to_file_name, to_file_ext) ; - if (new_name.equals("")) { - stwa.util.addLogMsg("E","Archive sequence number overflow error."); - sync_result=SyncTaskItem.SYNC_STATUS_ERROR; - break; - } else { - tf=new JcifsFile(new_name, stwa.targetAuth); - sync_result= moveFileSmbToSmb(stwa, sti, item.full_path, (JcifsFile)item.file, tf, tf.getPath(), new_name); + if (SyncThread.isFileChangedForLocalToRemote(stwa, sti, from_path, (File)item.file, tf, stwa.ALL_COPY) && + SyncThread.checkMasterFileNewerThanTargetFile(stwa, sti, ((File)item.file).getAbsolutePath(), ((File)item.file).lastModified(), tf.getLastModified())) { + String new_name = createArchiveSmbNewFilePath(stwa, sti, converted_to_path, converted_to_path + "/" + to_file_name, to_file_ext); + if (new_name.equals("")) { + stwa.util.addLogMsg("E", "Archive sequence number overflow error."); + sync_result = SyncTaskItem.SYNC_STATUS_ERROR; + break; + } else { + tf = new JcifsFile(new_name, stwa.targetAuth); + sync_result = moveFileSmbToSmb(stwa, sti, item.full_path, (JcifsFile) item.file, tf, tf.getPath(), new_name); + } } } else { sync_result= moveFileSmbToSmb(stwa, sti, item.full_path, (JcifsFile)item.file, tf, tf.getPath(), to_file_name); @@ -1994,14 +2003,17 @@ static private int archiveFileSmbToSmb(SyncThreadWorkArea stwa, SyncTaskItem sti JcifsFile tf=new JcifsFile(converted_to_path+"/"+temp_dir+to_file_name+to_file_seqno+to_file_ext, stwa.targetAuth); if (tf.exists()) { - String new_name=createArchiveSmbNewFilePath(stwa, sti, converted_to_path, converted_to_path+"/"+temp_dir+to_file_name+to_file_seqno,to_file_ext) ; - if (new_name.equals("")) { - stwa.util.addLogMsg("E","Archive sequence number overflow error."); - sync_result=SyncTaskItem.SYNC_STATUS_ERROR; - break; - } else { - tf=new JcifsFile(new_name, stwa.targetAuth); - sync_result= moveFileSmbToSmb(stwa, sti, item.full_path, (JcifsFile)item.file, tf, tf.getPath(), new_name); + if (SyncThread.isFileChangedForLocalToRemote(stwa, sti, from_path, (File)item.file, tf, stwa.ALL_COPY) && + SyncThread.checkMasterFileNewerThanTargetFile(stwa, sti, ((File)item.file).getAbsolutePath(), ((File)item.file).lastModified(), tf.getLastModified())) { + String new_name = createArchiveSmbNewFilePath(stwa, sti, converted_to_path, converted_to_path + "/" + temp_dir + to_file_name + to_file_seqno, to_file_ext); + if (new_name.equals("")) { + stwa.util.addLogMsg("E", "Archive sequence number overflow error."); + sync_result = SyncTaskItem.SYNC_STATUS_ERROR; + break; + } else { + tf = new JcifsFile(new_name, stwa.targetAuth); + sync_result = moveFileSmbToSmb(stwa, sti, item.full_path, (JcifsFile) item.file, tf, tf.getPath(), new_name); + } } } else { sync_result= moveFileSmbToSmb(stwa, sti, item.full_path, (JcifsFile)item.file, tf, tf.getPath(), diff --git a/SMBSync2/src/main/res/layout-land/edit_sync_folder_dlg_archive.xml b/SMBSync2/src/main/res/layout-land/edit_sync_folder_dlg_archive.xml index dc4102e8..c9c0ecb0 100644 --- a/SMBSync2/src/main/res/layout-land/edit_sync_folder_dlg_archive.xml +++ b/SMBSync2/src/main/res/layout-land/edit_sync_folder_dlg_archive.xml @@ -43,7 +43,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="30dp" - android:text="*.gif, *.jpg, *.png, *.mp4, *.mov" + android:text="*.dng, *.gif, *.jpg, *.png, *.mp4, *.mov" android:textAppearance="?android:attr/textAppearanceMedium" /> diff --git a/SMBSync2/src/main/res/layout-large/edit_sync_folder_dlg_archive.xml b/SMBSync2/src/main/res/layout-large/edit_sync_folder_dlg_archive.xml index 40d908b2..9368b93b 100644 --- a/SMBSync2/src/main/res/layout-large/edit_sync_folder_dlg_archive.xml +++ b/SMBSync2/src/main/res/layout-large/edit_sync_folder_dlg_archive.xml @@ -46,7 +46,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="30dp" - android:text="*.gif, *.jpg, *.png, *.mp4, *.mov" + android:text="*.dng, *.gif, *.jpg, *.png, *.mp4, *.mov" android:textAppearance="?android:attr/textAppearanceMedium" />