mirror of
https://github.com/nextcloud/android.git
synced 2024-11-27 09:39:25 +03:00
codacy: Avoid really long methods.
refactor updatePublicShareSection method Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
parent
dfc1a5e89f
commit
56e74d2e8a
1 changed files with 151 additions and 114 deletions
|
@ -67,13 +67,12 @@ import androidx.fragment.app.Fragment;
|
||||||
/**
|
/**
|
||||||
* Fragment for Sharing a file with sharees (users or groups) or creating
|
* Fragment for Sharing a file with sharees (users or groups) or creating
|
||||||
* a public link.
|
* a public link.
|
||||||
* <p/>
|
*
|
||||||
* A simple {@link Fragment} subclass.
|
* A simple {@link Fragment} subclass.
|
||||||
* <p/>
|
*
|
||||||
* Activities that contain this fragment must implement the
|
* Activities that contain this fragment must implement the
|
||||||
* {@link ShareFragmentListener} interface
|
* {@link ShareFragmentListener} interface to handle interaction events.
|
||||||
* to handle interaction events.
|
*
|
||||||
* <p/>
|
|
||||||
* Use the {@link ShareFileFragment#newInstance} factory method to
|
* Use the {@link ShareFileFragment#newInstance} factory method to
|
||||||
* create an instance of this fragment.
|
* create an instance of this fragment.
|
||||||
*/
|
*/
|
||||||
|
@ -694,16 +693,9 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
|
||||||
*/
|
*/
|
||||||
private void updatePublicShareSection() {
|
private void updatePublicShareSection() {
|
||||||
if (mPublicShare != null && ShareType.PUBLIC_LINK.equals(mPublicShare.getShareType())) {
|
if (mPublicShare != null && ShareType.PUBLIC_LINK.equals(mPublicShare.getShareType())) {
|
||||||
/// public share bound -> expand section
|
// public share bound -> expand section
|
||||||
SwitchCompat shareViaLinkSwitch = getShareViaLinkSwitch();
|
updateShareViaLinkSwitch(mOnShareViaLinkSwitchCheckedChangeListener);
|
||||||
if (!shareViaLinkSwitch.isChecked()) {
|
|
||||||
// set null listener before setChecked() to prevent infinite loop of calls
|
|
||||||
shareViaLinkSwitch.setOnCheckedChangeListener(null);
|
|
||||||
shareViaLinkSwitch.setChecked(true);
|
|
||||||
shareViaLinkSwitch.setOnCheckedChangeListener(
|
|
||||||
mOnShareViaLinkSwitchCheckedChangeListener
|
|
||||||
);
|
|
||||||
}
|
|
||||||
getExpirationDateSection().setVisibility(View.VISIBLE);
|
getExpirationDateSection().setVisibility(View.VISIBLE);
|
||||||
getPasswordSection().setVisibility(View.VISIBLE);
|
getPasswordSection().setVisibility(View.VISIBLE);
|
||||||
if (mFile.isFolder() && !mCapabilities.getFilesSharingPublicUpload().isFalse()) {
|
if (mFile.isFolder() && !mCapabilities.getFilesSharingPublicUpload().isFalse()) {
|
||||||
|
@ -713,116 +705,161 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
|
||||||
getEditPermissionSection().setVisibility(View.GONE);
|
getEditPermissionSection().setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetLink button
|
// init link button
|
||||||
MaterialButton getLinkButton = getGetLinkButton();
|
initLinkButton();
|
||||||
getLinkButton.getBackground().setColorFilter(ThemeUtils.primaryColor(getContext()),
|
|
||||||
PorterDuff.Mode.SRC_ATOP);
|
|
||||||
getLinkButton.setVisibility(View.VISIBLE);
|
|
||||||
getLinkButton.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
//GetLink from the server and show ShareLinkToDialog
|
|
||||||
((FileActivity) getActivity()).getFileOperationsHelper().
|
|
||||||
getFileWithLink(mFile);
|
|
||||||
|
|
||||||
}
|
/// update state of expiration date switch
|
||||||
});
|
updateExpirationDateSwitch(mPublicShare.getExpirationDate(), mOnExpirationDateInteractionListener);
|
||||||
|
|
||||||
/// update state of expiration date switch and message depending on expiration date
|
/// update state of password switch
|
||||||
SwitchCompat expirationDateSwitch = getExpirationDateSwitch();
|
updatePasswordSwitch(mPublicShare.isPasswordProtected(), mOnPasswordInteractionListener);
|
||||||
// set null listener before setChecked() to prevent infinite loop of calls
|
|
||||||
expirationDateSwitch.setOnCheckedChangeListener(null);
|
|
||||||
long expirationDate = mPublicShare.getExpirationDate();
|
|
||||||
if (expirationDate > 0) {
|
|
||||||
if (!expirationDateSwitch.isChecked()) {
|
|
||||||
expirationDateSwitch.toggle();
|
|
||||||
}
|
|
||||||
String formattedDate =
|
|
||||||
SimpleDateFormat.getDateInstance().format(
|
|
||||||
new Date(expirationDate)
|
|
||||||
);
|
|
||||||
getExpirationDateValue().setText(formattedDate);
|
|
||||||
} else {
|
|
||||||
if (expirationDateSwitch.isChecked()) {
|
|
||||||
expirationDateSwitch.toggle();
|
|
||||||
}
|
|
||||||
getExpirationDateValue().setText(R.string.empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
// recover listener
|
|
||||||
expirationDateSwitch.setOnCheckedChangeListener(mOnExpirationDateInteractionListener);
|
|
||||||
|
|
||||||
/// update state of password switch and message depending on password protection
|
|
||||||
SwitchCompat passwordSwitch = getPasswordSwitch();
|
|
||||||
// set null listener before setChecked() to prevent infinite loop of calls
|
|
||||||
passwordSwitch.setOnCheckedChangeListener(null);
|
|
||||||
if (mPublicShare.isPasswordProtected()) {
|
|
||||||
if (!passwordSwitch.isChecked()) {
|
|
||||||
passwordSwitch.toggle();
|
|
||||||
}
|
|
||||||
getPasswordValue().setVisibility(View.VISIBLE);
|
|
||||||
} else {
|
|
||||||
if (passwordSwitch.isChecked()) {
|
|
||||||
passwordSwitch.toggle();
|
|
||||||
}
|
|
||||||
getPasswordValue().setVisibility(View.INVISIBLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
// recover listener
|
|
||||||
passwordSwitch.setOnCheckedChangeListener(mOnPasswordInteractionListener);
|
|
||||||
|
|
||||||
/// update state of the edit permission switch
|
/// update state of the edit permission switch
|
||||||
SwitchCompat editPermissionSwitch = getEditPermissionSwitch();
|
updatePermissionSwitch(mPublicShare.getPermissions(), mOnEditPermissionInteractionListener);
|
||||||
|
|
||||||
// set null listener before setChecked() to prevent infinite loop of calls
|
|
||||||
editPermissionSwitch.setOnCheckedChangeListener(null);
|
|
||||||
if (mPublicShare.getPermissions() > OCShare.READ_PERMISSION_FLAG) {
|
|
||||||
if (!editPermissionSwitch.isChecked()) {
|
|
||||||
editPermissionSwitch.toggle();
|
|
||||||
}
|
|
||||||
getHideFileListingPermissionSection().setVisibility(View.VISIBLE);
|
|
||||||
} else {
|
|
||||||
if (editPermissionSwitch.isChecked()) {
|
|
||||||
editPermissionSwitch.toggle();
|
|
||||||
}
|
|
||||||
getHideFileListingPermissionSection().setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
// recover listener
|
|
||||||
editPermissionSwitch.setOnCheckedChangeListener(mOnEditPermissionInteractionListener);
|
|
||||||
|
|
||||||
/// update state of the hide file listing permission switch
|
/// update state of the hide file listing permission switch
|
||||||
SwitchCompat hideFileListingPermissionSwitch = getHideFileListingPermissionSwitch();
|
updateHideFileListingPermissionSwitch(mPublicShare.getPermissions(),
|
||||||
|
mOnHideFileListingPermissionInteractionListener);
|
||||||
// set null listener before setChecked() to prevent infinite loop of calls
|
|
||||||
hideFileListingPermissionSwitch.setOnCheckedChangeListener(null);
|
|
||||||
|
|
||||||
boolean readOnly = (mPublicShare.getPermissions() & OCShare.READ_PERMISSION_FLAG) != 0;
|
|
||||||
hideFileListingPermissionSwitch.setChecked(!readOnly);
|
|
||||||
|
|
||||||
// recover listener
|
|
||||||
hideFileListingPermissionSwitch.setOnCheckedChangeListener(
|
|
||||||
mOnHideFileListingPermissionInteractionListener
|
|
||||||
);
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/// no public share -> collapse section
|
// no public share -> collapse section
|
||||||
SwitchCompat shareViaLinkSwitch = getShareViaLinkSwitch();
|
collapsePublicShareSection();
|
||||||
if (shareViaLinkSwitch.isChecked()) {
|
|
||||||
shareViaLinkSwitch.setOnCheckedChangeListener(null);
|
|
||||||
getShareViaLinkSwitch().setChecked(false);
|
|
||||||
shareViaLinkSwitch.setOnCheckedChangeListener(
|
|
||||||
mOnShareViaLinkSwitchCheckedChangeListener
|
|
||||||
);
|
|
||||||
}
|
|
||||||
getExpirationDateSection().setVisibility(View.GONE);
|
|
||||||
getPasswordSection().setVisibility(View.GONE);
|
|
||||||
getEditPermissionSection().setVisibility(View.GONE);
|
|
||||||
getHideFileListingPermissionSection().setVisibility(View.GONE);
|
|
||||||
getGetLinkButton().setVisibility(View.GONE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateShareViaLinkSwitch(
|
||||||
|
CompoundButton.OnCheckedChangeListener onShareViaLinkSwitchCheckedChangeListener) {
|
||||||
|
SwitchCompat shareViaLinkSwitch = getShareViaLinkSwitch();
|
||||||
|
if (!shareViaLinkSwitch.isChecked()) {
|
||||||
|
// set null listener before setChecked() to prevent infinite loop of calls
|
||||||
|
shareViaLinkSwitch.setOnCheckedChangeListener(null);
|
||||||
|
shareViaLinkSwitch.setChecked(true);
|
||||||
|
shareViaLinkSwitch.setOnCheckedChangeListener(onShareViaLinkSwitchCheckedChangeListener);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateHideFileListingPermissionSwitch(
|
||||||
|
int permissions,
|
||||||
|
OnHideFileListingPermissionInteractionListener onHideFileListingPermissionInteractionListener)
|
||||||
|
{
|
||||||
|
SwitchCompat hideFileListingPermissionSwitch = getHideFileListingPermissionSwitch();
|
||||||
|
|
||||||
|
// set null listener before setChecked() to prevent infinite loop of calls
|
||||||
|
hideFileListingPermissionSwitch.setOnCheckedChangeListener(null);
|
||||||
|
|
||||||
|
boolean readOnly = (permissions & OCShare.READ_PERMISSION_FLAG) != 0;
|
||||||
|
hideFileListingPermissionSwitch.setChecked(!readOnly);
|
||||||
|
|
||||||
|
// recover listener
|
||||||
|
hideFileListingPermissionSwitch.setOnCheckedChangeListener(onHideFileListingPermissionInteractionListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updatePermissionSwitch(
|
||||||
|
int permissions,
|
||||||
|
OnEditPermissionInteractionListener onEditPermissionInteractionListener)
|
||||||
|
{
|
||||||
|
SwitchCompat editPermissionSwitch = getEditPermissionSwitch();
|
||||||
|
|
||||||
|
// set null listener before setChecked() to prevent infinite loop of calls
|
||||||
|
editPermissionSwitch.setOnCheckedChangeListener(null);
|
||||||
|
|
||||||
|
if (permissions > OCShare.READ_PERMISSION_FLAG) {
|
||||||
|
if (!editPermissionSwitch.isChecked()) {
|
||||||
|
editPermissionSwitch.toggle();
|
||||||
|
}
|
||||||
|
getHideFileListingPermissionSection().setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
if (editPermissionSwitch.isChecked()) {
|
||||||
|
editPermissionSwitch.toggle();
|
||||||
|
}
|
||||||
|
getHideFileListingPermissionSection().setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// recover listener
|
||||||
|
editPermissionSwitch.setOnCheckedChangeListener(onEditPermissionInteractionListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updatePasswordSwitch(
|
||||||
|
boolean isPasswordProtected,
|
||||||
|
OnPasswordInteractionListener onPasswordInteractionListener)
|
||||||
|
{
|
||||||
|
SwitchCompat passwordSwitch = getPasswordSwitch();
|
||||||
|
// set null listener before setChecked() to prevent infinite loop of calls
|
||||||
|
passwordSwitch.setOnCheckedChangeListener(null);
|
||||||
|
|
||||||
|
if (isPasswordProtected) {
|
||||||
|
if (!passwordSwitch.isChecked()) {
|
||||||
|
passwordSwitch.toggle();
|
||||||
|
}
|
||||||
|
getPasswordValue().setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
if (passwordSwitch.isChecked()) {
|
||||||
|
passwordSwitch.toggle();
|
||||||
|
}
|
||||||
|
getPasswordValue().setVisibility(View.INVISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// recover listener
|
||||||
|
passwordSwitch.setOnCheckedChangeListener(onPasswordInteractionListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateExpirationDateSwitch(
|
||||||
|
long expirationDate,
|
||||||
|
OnExpirationDateInteractionListener onExpirationDateInteractionListener)
|
||||||
|
{
|
||||||
|
SwitchCompat expirationDateSwitch = getExpirationDateSwitch();
|
||||||
|
// set null listener before setChecked() to prevent infinite loop of calls
|
||||||
|
expirationDateSwitch.setOnCheckedChangeListener(null);
|
||||||
|
|
||||||
|
if (expirationDate > 0) {
|
||||||
|
if (!expirationDateSwitch.isChecked()) {
|
||||||
|
expirationDateSwitch.toggle();
|
||||||
|
}
|
||||||
|
String formattedDate = SimpleDateFormat.getDateInstance().format(new Date(expirationDate));
|
||||||
|
getExpirationDateValue().setText(formattedDate);
|
||||||
|
} else {
|
||||||
|
if (expirationDateSwitch.isChecked()) {
|
||||||
|
expirationDateSwitch.toggle();
|
||||||
|
}
|
||||||
|
getExpirationDateValue().setText(R.string.empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
// recover listener
|
||||||
|
expirationDateSwitch.setOnCheckedChangeListener(onExpirationDateInteractionListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initLinkButton() {
|
||||||
|
MaterialButton getLinkButton = getGetLinkButton();
|
||||||
|
getLinkButton.getBackground().setColorFilter(ThemeUtils.primaryColor(getContext()),
|
||||||
|
PorterDuff.Mode.SRC_ATOP);
|
||||||
|
getLinkButton.setVisibility(View.VISIBLE);
|
||||||
|
getLinkButton.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
//GetLink from the server and show ShareLinkToDialog
|
||||||
|
((FileActivity) getActivity()).getFileOperationsHelper().
|
||||||
|
getFileWithLink(mFile);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void collapsePublicShareSection() {
|
||||||
|
SwitchCompat shareViaLinkSwitch = getShareViaLinkSwitch();
|
||||||
|
if (shareViaLinkSwitch.isChecked()) {
|
||||||
|
shareViaLinkSwitch.setOnCheckedChangeListener(null);
|
||||||
|
getShareViaLinkSwitch().setChecked(false);
|
||||||
|
shareViaLinkSwitch.setOnCheckedChangeListener(
|
||||||
|
mOnShareViaLinkSwitchCheckedChangeListener
|
||||||
|
);
|
||||||
|
}
|
||||||
|
getExpirationDateSection().setVisibility(View.GONE);
|
||||||
|
getPasswordSection().setVisibility(View.GONE);
|
||||||
|
getEditPermissionSection().setVisibility(View.GONE);
|
||||||
|
getHideFileListingPermissionSection().setVisibility(View.GONE);
|
||||||
|
getGetLinkButton().setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// BEWARE: following methods will fail with NullPointerException if called before onCreateView() finishes
|
// BEWARE: following methods will fail with NullPointerException if called before onCreateView() finishes
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue