Skip to content

Commit

Permalink
Check output file name length
Browse files Browse the repository at this point in the history
  • Loading branch information
Sentaroh committed Jun 15, 2021
1 parent f0fdbd6 commit cbdecd9
Show file tree
Hide file tree
Showing 15 changed files with 262 additions and 237 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ private SavedViewContents saveViewContents() {
final Spinner sp_file_size_unit=(Spinner)mDialog.findViewById(R.id.sync_filter_file_size_unit_spinner);

final CheckedTextView ctvIgnore_0_byte_file=(CheckedTextView)mDialog.findViewById(R.id.edit_sync_task_option_ignore_file_size_0_bytes_file);
final EditText et_ignore_file_name_length_value=(EditText)mDialog.findViewById(R.id.edit_sync_task_option_ignore_file_name_length_value);
final EditText et_ignore_file_name_length_value=(EditText)mDialog.findViewById(R.id.edit_sync_task_option_max_file_name_length);

final Spinner sp_file_date_type=(Spinner)mDialog.findViewById(R.id.sync_filter_file_date_type_spinner);
final EditText et_file_date_value=(EditText)mDialog.findViewById(R.id.sync_filter_file_date_value);
Expand Down Expand Up @@ -550,7 +550,7 @@ private void restoreViewContents(final SavedViewContents sv) {
final Spinner sp_file_size_unit=(Spinner)mDialog.findViewById(R.id.sync_filter_file_size_unit_spinner);

final CheckedTextView ctvIgnore_0_byte_file=(CheckedTextView)mDialog.findViewById(R.id.edit_sync_task_option_ignore_file_size_0_bytes_file);
final EditText et_ignore_file_name_length_value=(EditText)mDialog.findViewById(R.id.edit_sync_task_option_ignore_file_name_length_value);
final EditText et_ignore_file_name_length_value=(EditText)mDialog.findViewById(R.id.edit_sync_task_option_max_file_name_length);

final Spinner sp_file_date_type=(Spinner)mDialog.findViewById(R.id.sync_filter_file_date_type_spinner);
final EditText et_file_date_value=(EditText)mDialog.findViewById(R.id.sync_filter_file_date_value);
Expand Down Expand Up @@ -3901,8 +3901,8 @@ public void onNothingSelected(AdapterView<?> parent) {

final CheckedTextView ctvIgnore_0_byte_file=(CheckedTextView)mDialog.findViewById(R.id.edit_sync_task_option_ignore_file_size_0_bytes_file);

final EditText et_ignore_file_name_length_value=(EditText)mDialog.findViewById(R.id.edit_sync_task_option_ignore_file_name_length_value);
et_ignore_file_name_length_value.setText(String.valueOf(n_sti.getSyncOptionIgnoreFileNameLengthValue()));
final EditText et_ignore_file_name_length_value=(EditText)mDialog.findViewById(R.id.edit_sync_task_option_max_file_name_length);
et_ignore_file_name_length_value.setText(String.valueOf(n_sti.getSyncOptionMaxFileNameLength()));
et_ignore_file_name_length_value.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
Expand Down Expand Up @@ -5173,7 +5173,7 @@ private SyncTaskItem buildSyncTaskListItem(Dialog dialog, SyncTaskItem base_stli
final Spinner sp_file_size_unit=(Spinner)dialog.findViewById(R.id.sync_filter_file_size_unit_spinner);

final CheckedTextView ctvIgnore_0_byte_file=(CheckedTextView)dialog.findViewById(R.id.edit_sync_task_option_ignore_file_size_0_bytes_file);
final EditText et_ignore_file_name_length_value=(EditText)mDialog.findViewById(R.id.edit_sync_task_option_ignore_file_name_length_value);
final EditText et_ignore_file_name_length_value=(EditText)mDialog.findViewById(R.id.edit_sync_task_option_max_file_name_length);

final Spinner sp_file_date_type=(Spinner)dialog.findViewById(R.id.sync_filter_file_date_type_spinner);
final EditText et_file_date_value=(EditText)dialog.findViewById(R.id.sync_filter_file_date_value);
Expand Down Expand Up @@ -5266,7 +5266,7 @@ private SyncTaskItem buildSyncTaskListItem(Dialog dialog, SyncTaskItem base_stli
nstli.getDirFilter().clear();
}

nstli.setSyncOptionIgnoreFileNameLengthValue(Integer.parseInt(et_ignore_file_name_length_value.getText().toString()));
nstli.setSyncOptionMaxFileNameLength(Integer.parseInt(et_ignore_file_name_length_value.getText().toString()));

nstli.setSyncOptionMoveOnlyRemoveMasterDirectoryIfEmpty(ctv_sync_remove_master_if_empty.isChecked());

Expand Down Expand Up @@ -5433,7 +5433,7 @@ private void checkSyncTaskOkButtonEnabled(Dialog dialog, String type, SyncTaskIt
final CheckedTextView ctvEnsureTargetExactMirror = (CheckedTextView) mDialog.findViewById(R.id.edit_sync_task_option_ctv_sync_ensure_target_is_exact_mirror);
final LinearLayout ll_sync_ensure_target_is_exact_mirror=(LinearLayout)mDialog.findViewById(R.id.edit_sync_task_option_ll_sync_ensure_target_is_exact_mirror);

final EditText et_ignore_file_name_length_value=(EditText)mDialog.findViewById(R.id.edit_sync_task_option_ignore_file_name_length_value);
final EditText et_ignore_file_name_length_value=(EditText)mDialog.findViewById(R.id.edit_sync_task_option_max_file_name_length);

final EditText et_sync_main_task_name = (EditText) mDialog.findViewById(R.id.edit_sync_task_task_name);

Expand Down Expand Up @@ -5610,7 +5610,7 @@ private String checkFilter(Dialog dialog, String type, SyncTaskItem n_sti) {
final Spinner sp_file_size_unit=(Spinner)mDialog.findViewById(R.id.sync_filter_file_size_unit_spinner);

final CheckedTextView ctvIgnore_0_byte_file=(CheckedTextView)mDialog.findViewById(R.id.edit_sync_task_option_ignore_file_size_0_bytes_file);
final EditText et_ignore_file_name_length_value=(EditText)mDialog.findViewById(R.id.edit_sync_task_option_ignore_file_name_length_value);
final EditText et_ignore_file_name_length_value=(EditText)mDialog.findViewById(R.id.edit_sync_task_option_max_file_name_length);

final Spinner sp_file_date_type=(Spinner)mDialog.findViewById(R.id.sync_filter_file_date_type_spinner);
final EditText et_file_date_value=(EditText)mDialog.findViewById(R.id.sync_filter_file_date_value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -513,9 +513,10 @@ public void initOffsetOfDst() {
public boolean isSyncOptionIgnoreFileSize0ByteFile() {return syncSyncOptionIgnoreFileSize0ByteFile;}
public void setSyncOptionIgnoreFileSize0ByteFile(boolean p) {syncSyncOptionIgnoreFileSize0ByteFile = p;}

private int syncSyncOptionIgnoreFileNameLengthValue = 255;
public int getSyncOptionIgnoreFileNameLengthValue() {return syncSyncOptionIgnoreFileNameLengthValue;}
public void setSyncOptionIgnoreFileNameLengthValue(int p) {syncSyncOptionIgnoreFileNameLengthValue = p;}
private int syncSyncOptionMaxFileNameLength = 255;
public int getSyncOptionMaxFileNameLength() {return syncSyncOptionMaxFileNameLength;}
public void setSyncOptionMaxFileNameLength(int p) {
syncSyncOptionMaxFileNameLength = p;}

static final public String FILTER_FILE_SIZE_VALUE_DEFAULT= "1";
private String syncFilterFileSizeValue = FILTER_FILE_SIZE_VALUE_DEFAULT;
Expand Down Expand Up @@ -804,7 +805,7 @@ public boolean isSame(SyncTaskItem sti) {

(syncSyncOptionIgnoreFileSize0ByteFile ==sti.isSyncOptionIgnoreFileSize0ByteFile()) &&

(syncSyncOptionIgnoreFileNameLengthValue == sti.getSyncOptionIgnoreFileNameLengthValue()) &&
(syncSyncOptionMaxFileNameLength == sti.getSyncOptionMaxFileNameLength()) &&

(syncFilterFileSizeValue.equals(sti.getSyncFilterFileSizeValue())) &&
(syncFilterFileSizeType.equals(sti.getSyncFilterFileSizeType())) &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7986,9 +7986,9 @@ private static void addSyncTaskListVer9(Context c, GlobalParameters gp, boolean

if (!parm[101].equals("") && !parm[101].equals("end")) {
if (parm[101].length() <= 3 && TextUtils.isDigitsOnly(parm[101]) && Integer.parseInt(parm[101]) > 0) { //max 3 digits allowed and value > 1
stli.setSyncOptionIgnoreFileNameLengthValue(Integer.parseInt(parm[101]));
stli.setSyncOptionMaxFileNameLength(Integer.parseInt(parm[101]));
} else {
stli.setSyncOptionIgnoreFileNameLengthValue(255);
stli.setSyncOptionMaxFileNameLength(255);
putTaskListValueErrorMessage(util, "File name length ignore Value", 255);
}
}
Expand Down Expand Up @@ -8543,7 +8543,7 @@ else if (!item.getTargetZipPassword().equals("")) {
(item.getSyncFilterFileDateType()) + "\t" + //99
(item.getSyncFilterFileDateValue()) + "\t" + //100

(item.getSyncOptionIgnoreFileNameLengthValue()) + "\t" + //101
(item.getSyncOptionMaxFileNameLength()) + "\t" + //101

"end"
;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -885,6 +885,33 @@ private int checkStorageAccess(SyncTaskItem sti) {
return sync_result;
}

private final static int MAX_SMB_FILE_NAME_BYTE_COUNT=237;
static public boolean isValidFileNameLength(SyncThreadWorkArea stwa, SyncTaskItem sti, String file_name) {
if (sti.getTargetFolderType().equals(SyncTaskItem.SYNC_FOLDER_TYPE_SMB)) {
if (MAX_SMB_FILE_NAME_BYTE_COUNT>sti.getSyncOptionMaxFileNameLength()) {
if (file_name.getBytes().length>sti.getSyncOptionMaxFileNameLength()) {
String e_msg=stwa.context.getString(R.string.msgs_mirror_file_name_gt_255_byte, sti.getSyncOptionMaxFileNameLength(), file_name.getBytes().length, file_name);
stwa.util.addLogMsg("W", e_msg);
return false;
}
} else {
if (file_name.getBytes().length>MAX_SMB_FILE_NAME_BYTE_COUNT) {
String e_msg=stwa.context.getString(R.string.msgs_mirror_file_name_gt_smb_file_name_length_237_byte, MAX_SMB_FILE_NAME_BYTE_COUNT);
stwa.util.addLogMsg("W", e_msg);
return false;
}
}
} else {
if (file_name.getBytes().length>sti.getSyncOptionMaxFileNameLength()) {
String e_msg=stwa.context.getString(R.string.msgs_mirror_file_name_gt_255_byte, sti.getSyncOptionMaxFileNameLength(), file_name.getBytes().length, file_name);
stwa.util.addLogMsg("W", e_msg);
return false;
}
}
return true;
}


private boolean isIpaddressConnectable(String addr, int port) {
// int cnt = 3;
boolean result = false;
Expand Down
Loading

0 comments on commit cbdecd9

Please sign in to comment.