Fix wait dialog callback

This commit is contained in:
J-Jamet
2018-05-02 20:52:16 +02:00
parent 16288f98f7
commit 938c3a07af
5 changed files with 59 additions and 49 deletions

View File

@@ -79,15 +79,15 @@ public class DatabaseDescriptionPreferenceDialogFragmentCompat extends InputData
@Override
public void run() {
String descriptionToShow = mNewDescription;
if (!mSuccess) {
displayMessage(mActivity);
database.assignDescription(mOldDescription);
}
if (mActivity != null) {
mActivity.runOnUiThread(() -> {
String descriptionToShow = mNewDescription;
if (!mSuccess) {
displayMessage(mActivity);
database.assignDescription(mOldDescription);
}
getPreference().setSummary(descriptionToShow);
SaveDatabaseProgressTaskDialogFragment.stop(mActivity);
});

View File

@@ -19,17 +19,18 @@
*/
package com.kunzisoft.keepass.settings.preferenceDialogFragment;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.kunzisoft.keepass.R;
import com.kunzisoft.keepass.database.PwEncryptionAlgorithm;
import com.kunzisoft.keepass.database.edit.OnFinish;
import com.kunzisoft.keepass.database.action.OnFinishRunnable;
import com.kunzisoft.keepass.settings.preferenceDialogFragment.adapter.ListRadioItemAdapter;
import com.kunzisoft.keepass.tasks.SaveDatabaseProgressTaskDialogFragment;
public class DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat extends DatabaseSavePreferenceDialogFragmentCompat
implements ListRadioItemAdapter.RadioItemSelectedCallback<PwEncryptionAlgorithm> {
@@ -72,7 +73,7 @@ public class DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat extends D
database.assignEncryptionAlgorithm(newAlgorithm);
Handler handler = new Handler();
setAfterSaveDatabase(new AfterDescriptionSave(getContext(), handler, newAlgorithm, oldAlgorithm));
setAfterSaveDatabase(new AfterDescriptionSave((AppCompatActivity) getActivity(), handler, newAlgorithm, oldAlgorithm));
}
}
@@ -84,31 +85,35 @@ public class DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat extends D
this.algorithmSelected = item;
}
private class AfterDescriptionSave extends OnFinish {
private class AfterDescriptionSave extends OnFinishRunnable {
private PwEncryptionAlgorithm mNewAlgorithm;
private PwEncryptionAlgorithm mOldAlgorithm;
private Context mCtx;
private AppCompatActivity mActivity;
AfterDescriptionSave(Context ctx, Handler handler, PwEncryptionAlgorithm newAlgorithm, PwEncryptionAlgorithm oldAlgorithm) {
AfterDescriptionSave(AppCompatActivity activity, Handler handler, PwEncryptionAlgorithm newAlgorithm, PwEncryptionAlgorithm oldAlgorithm) {
super(handler);
mCtx = ctx;
mActivity = activity;
mNewAlgorithm = newAlgorithm;
mOldAlgorithm = oldAlgorithm;
}
@Override
public void run() {
PwEncryptionAlgorithm algorithmToShow = mNewAlgorithm;
if (mActivity != null) {
mActivity.runOnUiThread(() -> {
PwEncryptionAlgorithm algorithmToShow = mNewAlgorithm;
if (!mSuccess) {
displayMessage(mCtx);
database.assignEncryptionAlgorithm(mOldAlgorithm);
if (!mSuccess) {
displayMessage(mActivity);
database.assignEncryptionAlgorithm(mOldAlgorithm);
}
getPreference().setSummary(algorithmToShow.getName(mActivity.getResources()));
SaveDatabaseProgressTaskDialogFragment.stop(mActivity);
});
}
getPreference().setSummary(algorithmToShow.getName(mCtx.getResources()));
super.run();
}
}

View File

@@ -19,9 +19,9 @@
*/
package com.kunzisoft.keepass.settings.preferenceDialogFragment;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.preference.Preference;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
@@ -29,8 +29,9 @@ import android.view.View;
import com.kunzisoft.keepass.R;
import com.kunzisoft.keepass.crypto.keyDerivation.KdfEngine;
import com.kunzisoft.keepass.database.edit.OnFinish;
import com.kunzisoft.keepass.database.action.OnFinishRunnable;
import com.kunzisoft.keepass.settings.preferenceDialogFragment.adapter.ListRadioItemAdapter;
import com.kunzisoft.keepass.tasks.SaveDatabaseProgressTaskDialogFragment;
public class DatabaseKeyDerivationPreferenceDialogFragmentCompat extends DatabaseSavePreferenceDialogFragmentCompat
implements ListRadioItemAdapter.RadioItemSelectedCallback<KdfEngine> {
@@ -74,7 +75,7 @@ public class DatabaseKeyDerivationPreferenceDialogFragmentCompat extends Databas
database.assignKdfEngine(newKdfEngine);
Handler handler = new Handler();
setAfterSaveDatabase(new AfterDescriptionSave(getContext(), handler, newKdfEngine, oldKdfEngine));
setAfterSaveDatabase(new AfterDescriptionSave((AppCompatActivity) getActivity(), handler, newKdfEngine, oldKdfEngine));
}
}
@@ -90,32 +91,37 @@ public class DatabaseKeyDerivationPreferenceDialogFragmentCompat extends Databas
kdfEngineSelected = item;
}
private class AfterDescriptionSave extends OnFinish {
private class AfterDescriptionSave extends OnFinishRunnable {
private KdfEngine mNewKdfEngine;
private KdfEngine mOldKdfEngine;
private Context mCtx;
private AppCompatActivity mActivity;
AfterDescriptionSave(Context ctx, Handler handler, KdfEngine newKdfEngine, KdfEngine oldKdfEngine) {
AfterDescriptionSave(AppCompatActivity activity, Handler handler, KdfEngine newKdfEngine, KdfEngine oldKdfEngine) {
super(handler);
this.mCtx = ctx;
this.mActivity = activity;
this.mNewKdfEngine = newKdfEngine;
this.mOldKdfEngine = oldKdfEngine;
}
@Override
public void run() {
KdfEngine kdfEngineToShow = mNewKdfEngine;
if (mActivity != null) {
mActivity.runOnUiThread(() -> {
KdfEngine kdfEngineToShow = mNewKdfEngine;
if (!mSuccess) {
displayMessage(mCtx);
database.assignKdfEngine(mOldKdfEngine);
if (!mSuccess) {
displayMessage(mActivity);
database.assignKdfEngine(mOldKdfEngine);
}
getPreference().setSummary(kdfEngineToShow.getName(mActivity.getResources()));
roundPreference.setSummary(String.valueOf(kdfEngineToShow.getDefaultKeyRounds()));
SaveDatabaseProgressTaskDialogFragment.stop(mActivity);
});
}
getPreference().setSummary(kdfEngineToShow.getName(mCtx.getResources()));
roundPreference.setSummary(String.valueOf(kdfEngineToShow.getDefaultKeyRounds()));
super.run();
}
}

View File

@@ -79,16 +79,15 @@ public class DatabaseNamePreferenceDialogFragmentCompat extends InputDatabaseSav
@Override
public void run() {
String nameToShow = mNewName;
if (!mSuccess) {
displayMessage(mActivity);
database.assignName(mOldName);
}
if (mActivity != null) {
mActivity.runOnUiThread(() -> {
String nameToShow = mNewName;
if (!mSuccess) {
displayMessage(mActivity);
database.assignName(mOldName);
}
getPreference().setSummary(nameToShow);
SaveDatabaseProgressTaskDialogFragment.stop(mActivity);
});

View File

@@ -99,15 +99,15 @@ public class RoundsPreferenceDialogFragmentCompat extends InputDatabaseSavePrefe
@Override
public void run() {
long roundsToShow = mNewRounds;
if (!mSuccess) {
displayMessage(mActivity);
database.setNumberKeyEncryptionRounds(mOldRounds);
}
if (mActivity != null) {
mActivity.runOnUiThread(() -> {
long roundsToShow = mNewRounds;
if (!mSuccess) {
displayMessage(mActivity);
database.setNumberKeyEncryptionRounds(mOldRounds);
}
getPreference().setSummary(String.valueOf(roundsToShow));
SaveDatabaseProgressTaskDialogFragment.stop(mActivity);
});