Ver Fonte

Refs #16 fix nullptr exceptions

isundil há 7 anos atrás
pai
commit
fe89218836

+ 11 - 9
app/src/main/java/info/knacki/pass/io/GPGUtil.java

@@ -276,15 +276,17 @@ public class GPGUtil {
                             passwordGetter.SetStep(FileInterfaceFactory.ChangePasswordGetter.eStep.eNewPassword).GetPassword(new GitInterface.OnResponseListener<String>() {
                                 @Override
                                 public void onResponse(String result) {
-                                    try {
-                                        ArrayList<PGPSecretKeyRing> keyringCollection = new ArrayList<>();
-                                        keyringCollection.add(DoChangePassword(secretKey, sKey, result));
-                                        ByteArrayOutputStream stream = new ByteArrayOutputStream();
-                                        new PGPSecretKeyRingCollection(keyringCollection).encode(stream);
-                                        SettingsManager.SetGPGKeyContent(ctx, SettingsManager.GPG_GENERATED, new ByteArrayInputStream(stream.toByteArray()));
-                                        onDone.run();
-                                    } catch (PGPException | IOException e) {
-                                        onError(e.getMessage(), e);
+                                    if (result != null) {
+                                        try {
+                                            ArrayList<PGPSecretKeyRing> keyringCollection = new ArrayList<>();
+                                            keyringCollection.add(DoChangePassword(secretKey, sKey, result));
+                                            ByteArrayOutputStream stream = new ByteArrayOutputStream();
+                                            new PGPSecretKeyRingCollection(keyringCollection).encode(stream);
+                                            SettingsManager.SetGPGKeyContent(ctx, SettingsManager.GPG_GENERATED, new ByteArrayInputStream(stream.toByteArray()));
+                                            onDone.run();
+                                        } catch (PGPException | IOException e) {
+                                            onError(e.getMessage(), e);
+                                        }
                                     }
                                 }
 

+ 9 - 3
app/src/main/java/info/knacki/pass/ui/passwordPicker/PasswordPicker.java

@@ -77,8 +77,12 @@ public class PasswordPicker implements FileInterfaceFactory.PasswordGetter {
         private GitInterface.OnResponseListener<String> fOnFirstPassEntered = new GitInterface.OnResponseListener<String>() {
             @Override
             public void onResponse(String result) {
-                fFirstPassword = result;
-                SetStep(eStep.eRetypePassword).GetPassword(fListener);
+                if (result != null) {
+                    fFirstPassword = result;
+                    SetStep(eStep.eRetypePassword).GetPassword(fListener);
+                } else {
+                    fListener.onResponse(null);
+                }
             }
 
             @Override
@@ -90,7 +94,9 @@ public class PasswordPicker implements FileInterfaceFactory.PasswordGetter {
         private GitInterface.OnResponseListener<String> fOnRetypePassEntered = new GitInterface.OnResponseListener<String>() {
             @Override
             public void onResponse(String result) {
-                if (fFirstPassword.equals(result)) {
+                if (result == null) {
+                    SetStep(eStep.eNewPassword).GetPassword(fListener);
+                } else if (fFirstPassword.equals(result)) {
                     fListener.onResponse(result);
                 } else {
                     Toast.makeText(fContext, fContext.getResources().getString(R.string.password_missmatch), Toast.LENGTH_LONG).show();