|
|
@ -21,7 +21,7 @@ package eu.faircode.email;
|
|
|
|
|
|
|
|
|
|
|
|
import android.app.Dialog;
|
|
|
|
import android.app.Dialog;
|
|
|
|
import android.content.Context;
|
|
|
|
import android.content.Context;
|
|
|
|
import android.content.DialogInterface;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.text.Spanned;
|
|
|
|
import android.text.Spanned;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
@ -41,6 +41,8 @@ import androidx.fragment.app.DialogFragment;
|
|
|
|
|
|
|
|
|
|
|
|
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
|
|
|
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import static android.app.Activity.RESULT_OK;
|
|
|
|
|
|
|
|
|
|
|
|
public class FragmentAnswer extends FragmentBase {
|
|
|
|
public class FragmentAnswer extends FragmentBase {
|
|
|
|
private ViewGroup view;
|
|
|
|
private ViewGroup view;
|
|
|
|
private EditText etName;
|
|
|
|
private EditText etName;
|
|
|
@ -53,6 +55,8 @@ public class FragmentAnswer extends FragmentBase {
|
|
|
|
|
|
|
|
|
|
|
|
private long id = -1;
|
|
|
|
private long id = -1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final static int REQUEST_DELETE = 1;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
@ -143,13 +147,21 @@ public class FragmentAnswer extends FragmentBase {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void onActionDelete() {
|
|
|
|
private void onActionDelete() {
|
|
|
|
new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner())
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
.setMessage(R.string.title_ask_delete_answer)
|
|
|
|
args.putString("question", getString(R.string.title_ask_delete_answer));
|
|
|
|
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
FragmentDialogAsk fragment = new FragmentDialogAsk();
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
|
fragment.setArguments(args);
|
|
|
|
|
|
|
|
fragment.setTargetFragment(FragmentAnswer.this, REQUEST_DELETE);
|
|
|
|
|
|
|
|
fragment.show(getFragmentManager(), "answer:delete");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void onActionSave() {
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
args.putLong("id", id);
|
|
|
|
args.putLong("id", id);
|
|
|
|
|
|
|
|
args.putString("name", etName.getText().toString());
|
|
|
|
|
|
|
|
args.putBoolean("hide", cbHide.isChecked());
|
|
|
|
|
|
|
|
args.putString("text", HtmlHelper.toHtml(etText.getText()));
|
|
|
|
|
|
|
|
|
|
|
|
new SimpleTask<Void>() {
|
|
|
|
new SimpleTask<Void>() {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -165,7 +177,25 @@ public class FragmentAnswer extends FragmentBase {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
protected Void onExecute(Context context, Bundle args) {
|
|
|
|
protected Void onExecute(Context context, Bundle args) {
|
|
|
|
long id = args.getLong("id");
|
|
|
|
long id = args.getLong("id");
|
|
|
|
DB.getInstance(context).answer().deleteAnswer(id);
|
|
|
|
String name = args.getString("name");
|
|
|
|
|
|
|
|
boolean hide = args.getBoolean("hide");
|
|
|
|
|
|
|
|
String text = args.getString("text");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DB db = DB.getInstance(context);
|
|
|
|
|
|
|
|
if (id < 0) {
|
|
|
|
|
|
|
|
EntityAnswer answer = new EntityAnswer();
|
|
|
|
|
|
|
|
answer.name = name;
|
|
|
|
|
|
|
|
answer.hide = hide;
|
|
|
|
|
|
|
|
answer.text = text;
|
|
|
|
|
|
|
|
answer.id = db.answer().insertAnswer(answer);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
EntityAnswer answer = db.answer().getAnswer(id);
|
|
|
|
|
|
|
|
answer.name = name;
|
|
|
|
|
|
|
|
answer.hide = hide;
|
|
|
|
|
|
|
|
answer.text = text;
|
|
|
|
|
|
|
|
db.answer().updateAnswer(answer);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -178,19 +208,24 @@ public class FragmentAnswer extends FragmentBase {
|
|
|
|
protected void onException(Bundle args, Throwable ex) {
|
|
|
|
protected void onException(Bundle args, Throwable ex) {
|
|
|
|
Helper.unexpectedError(getFragmentManager(), ex);
|
|
|
|
Helper.unexpectedError(getFragmentManager(), ex);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}.execute(FragmentAnswer.this, args, "answer:delete");
|
|
|
|
}.execute(this, args, "answer:save");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
|
|
|
|
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch (requestCode) {
|
|
|
|
|
|
|
|
case REQUEST_DELETE:
|
|
|
|
|
|
|
|
if (resultCode == RESULT_OK)
|
|
|
|
|
|
|
|
onDelete();
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
.setNegativeButton(android.R.string.cancel, null)
|
|
|
|
|
|
|
|
.show();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void onActionSave() {
|
|
|
|
private void onDelete() {
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
args.putLong("id", id);
|
|
|
|
args.putLong("id", id);
|
|
|
|
args.putString("name", etName.getText().toString());
|
|
|
|
|
|
|
|
args.putBoolean("hide", cbHide.isChecked());
|
|
|
|
|
|
|
|
args.putString("text", HtmlHelper.toHtml(etText.getText()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
new SimpleTask<Void>() {
|
|
|
|
new SimpleTask<Void>() {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -206,25 +241,7 @@ public class FragmentAnswer extends FragmentBase {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
protected Void onExecute(Context context, Bundle args) {
|
|
|
|
protected Void onExecute(Context context, Bundle args) {
|
|
|
|
long id = args.getLong("id");
|
|
|
|
long id = args.getLong("id");
|
|
|
|
String name = args.getString("name");
|
|
|
|
DB.getInstance(context).answer().deleteAnswer(id);
|
|
|
|
boolean hide = args.getBoolean("hide");
|
|
|
|
|
|
|
|
String text = args.getString("text");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DB db = DB.getInstance(context);
|
|
|
|
|
|
|
|
if (id < 0) {
|
|
|
|
|
|
|
|
EntityAnswer answer = new EntityAnswer();
|
|
|
|
|
|
|
|
answer.name = name;
|
|
|
|
|
|
|
|
answer.hide = hide;
|
|
|
|
|
|
|
|
answer.text = text;
|
|
|
|
|
|
|
|
answer.id = db.answer().insertAnswer(answer);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
EntityAnswer answer = db.answer().getAnswer(id);
|
|
|
|
|
|
|
|
answer.name = name;
|
|
|
|
|
|
|
|
answer.hide = hide;
|
|
|
|
|
|
|
|
answer.text = text;
|
|
|
|
|
|
|
|
db.answer().updateAnswer(answer);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -237,7 +254,7 @@ public class FragmentAnswer extends FragmentBase {
|
|
|
|
protected void onException(Bundle args, Throwable ex) {
|
|
|
|
protected void onException(Bundle args, Throwable ex) {
|
|
|
|
Helper.unexpectedError(getFragmentManager(), ex);
|
|
|
|
Helper.unexpectedError(getFragmentManager(), ex);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}.execute(this, args, "answer:save");
|
|
|
|
}.execute(FragmentAnswer.this, args, "answer:delete");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static class FragmentInfo extends DialogFragment {
|
|
|
|
public static class FragmentInfo extends DialogFragment {
|
|
|
|