From 5453a3e5afb40fda35a768dda9a13d33f9035486 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Sat, 11 Oct 2014 19:55:19 +0200 Subject: DeleteResult: add custom createNotify --- .../keychain/operations/results/DeleteResult.java | 96 ++++++++++++++++++++++ 1 file changed, 96 insertions(+) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/DeleteResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/DeleteResult.java index 1dce8f89e..1ca5ad20a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/DeleteResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/DeleteResult.java @@ -18,7 +18,21 @@ package org.sufficientlysecure.keychain.operations.results; +import android.app.Activity; +import android.content.Intent; import android.os.Parcel; +import android.os.Parcelable; +import android.view.View; + +import com.github.johnpersano.supertoasts.SuperCardToast; +import com.github.johnpersano.supertoasts.SuperToast; +import com.github.johnpersano.supertoasts.SuperToast.Duration; +import com.github.johnpersano.supertoasts.util.OnClickWrapper; +import com.github.johnpersano.supertoasts.util.Style; + +import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.ui.LogDisplayActivity; +import org.sufficientlysecure.keychain.ui.LogDisplayFragment; public class DeleteResult extends OperationResult { @@ -54,4 +68,86 @@ public class DeleteResult extends OperationResult { } }; + public SuperCardToast createNotify(final Activity activity) { + + int resultType = getResult(); + + String str; + int duration, color; + + // Not an overall failure + if ((resultType & OperationResult.RESULT_ERROR) == 0) { + String untilCancelled; + + duration = Duration.EXTRA_LONG; + color = Style.GREEN; + untilCancelled = ""; + + // Any warnings? + if ((resultType & ImportKeyResult.RESULT_CANCELLED) > 0) { + duration = 0; + color = Style.ORANGE; + untilCancelled += activity.getString(R.string.with_cancelled); + } + + // New and updated keys + if (mOk > 0 && mFail > 0) { + color = Style.ORANGE; + duration = 0; + str = activity.getResources().getQuantityString( + R.plurals.delete_ok_but_fail_1, mOk, mOk); + str += " " + activity.getResources().getQuantityString( + R.plurals.delete_ok_but_fail_2, mFail, mFail, untilCancelled); + } else if (mOk > 0) { + str = activity.getResources().getQuantityString( + R.plurals.delete_ok, mOk, mOk, untilCancelled); + } else if ((resultType & ImportKeyResult.RESULT_CANCELLED) > 0) { + str = activity.getString(R.string.delete_cancelled); + } else { + duration = 0; + color = Style.RED; + str = "internal error"; + } + + } else { + duration = 0; + color = Style.RED; + if (mFail == 0) { + str = activity.getString(R.string.delete_nothing); + } else { + str = activity.getResources().getQuantityString(R.plurals.delete_fail, mFail); + } + } + + boolean button = getLog() != null && !getLog().isEmpty(); + SuperCardToast toast = new SuperCardToast(activity, + button ? SuperToast.Type.BUTTON : SuperToast.Type.STANDARD, + Style.getStyle(color, SuperToast.Animations.POPUP)); + toast.setText(str); + toast.setDuration(duration); + toast.setIndeterminate(duration == 0); + toast.setSwipeToDismiss(true); + // If we have a log and it's non-empty, show a View Log button + if (button) { + toast.setButtonIcon(R.drawable.ic_action_view_as_list, + activity.getResources().getString(R.string.view_log)); + toast.setButtonTextColor(activity.getResources().getColor(R.color.black)); + toast.setTextColor(activity.getResources().getColor(R.color.black)); + toast.setOnClickWrapper(new OnClickWrapper("supercardtoast", + new SuperToast.OnClickListener() { + @Override + public void onClick(View view, Parcelable token) { + Intent intent = new Intent( + activity, LogDisplayActivity.class); + intent.putExtra(LogDisplayFragment.EXTRA_RESULT, DeleteResult.this); + activity.startActivity(intent); + } + } + )); + } + + return toast; + + } + } -- cgit v1.2.3