package com.seafile.seadroid2.ui.dialog; import android.app.Dialog; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; import com.seafile.seadroid2.R; class GetShareLinkPasswordTask extends TaskDialog.Task { String password; String days; public GetShareLinkPasswordTask(String password, String days) { this.password = password; this.days = days; } @Override protected void runTask() { } public String getPassword() { return password; } public String getDays() { return days; } } public class GetShareLinkEncryptDialog extends TaskDialog implements CompoundButton.OnCheckedChangeListener { private EditText passwordText; private EditText days; private CheckBox cbExpiration; @Override protected View createDialogContentView(LayoutInflater inflater, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.dialog_share_password, null); passwordText = (EditText) view.findViewById(R.id.password); days = (EditText) view.findViewById(R.id.days); cbExpiration = (CheckBox) view.findViewById(R.id.add_expiration); cbExpiration.setOnCheckedChangeListener(this); return view; } @Override protected void onDialogCreated(Dialog dialog) { dialog.setTitle(getString(R.string.share_input_password)); dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); } @Override protected void onSaveDialogContentState(Bundle outState) { } @Override protected void onValidateUserInput() throws Exception { String password = passwordText.getText().toString().trim(); String day = days.getText().toString().trim(); if (password.length() == 0) { String err = getActivity().getResources().getString(R.string.password_empty); throw new Exception(err); } if (password.length() < getResources().getInteger(R.integer.minimum_password_length)) { throw new Exception(getResources().getString(R.string.err_passwd_too_short)); } if (cbExpiration.isChecked() && day.length() == 0) { String err = getActivity().getResources().getString(R.string.input_auto_expiration); throw new Exception(err); } } @Override protected void disableInput() { super.disableInput(); passwordText.setEnabled(false); } @Override protected void enableInput() { super.enableInput(); passwordText.setEnabled(true); } @Override protected boolean executeTaskImmediately() { return false; } @Override protected GetShareLinkPasswordTask prepareTask() { String days = null; String password = passwordText.getText().toString().trim(); if (cbExpiration.isChecked()) { days = this.days.getText().toString().trim(); } GetShareLinkPasswordTask task = new GetShareLinkPasswordTask(password, days); return task; } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (errorIsVisible()) { hideError(); } if (isChecked) { days.setVisibility(View.VISIBLE); } else { days.setVisibility(View.GONE); } } public String getPassword() { if (getTask() != null) { GetShareLinkPasswordTask task = (GetShareLinkPasswordTask) getTask(); return task.getPassword(); } return null; } public String getDays() { if (getTask() != null) { GetShareLinkPasswordTask task = (GetShareLinkPasswordTask) getTask(); return task.getDays(); } return null; } }