diff --git a/scripts/analysis/findbugs-results.txt b/scripts/analysis/findbugs-results.txt index aeccadf78362..df90c3c76ca4 100644 --- a/scripts/analysis/findbugs-results.txt +++ b/scripts/analysis/findbugs-results.txt @@ -1 +1 @@ -386 +385 diff --git a/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.java b/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.java index 4be10da5cf11..ceec782b690e 100644 --- a/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.java +++ b/src/main/java/com/owncloud/android/ui/dialog/ChooseTemplateDialogFragment.java @@ -27,6 +27,7 @@ import android.annotation.SuppressLint; import android.app.Activity; import android.app.Dialog; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.PorterDuff; @@ -241,35 +242,36 @@ protected String doInBackground(Void... voids) { new DirectEditingCreateFileRemoteOperation(path, creator.getEditor(), creator.getId(), - template.getTitle()) - .execute(client); - - if (result.isSuccess()) { - // get file - RemoteOperationResult newFileResult = new ReadFileRemoteOperation(path) - .execute(client); - - if (newFileResult.isSuccess()) { - OCFile temp = FileStorageUtils.fillOCFile((RemoteFile) newFileResult.getData().get(0)); - - if (chooseTemplateDialogFragmentWeakReference.get() != null) { - FileDataStorageManager storageManager = new FileDataStorageManager( - user.toPlatformAccount(), - chooseTemplateDialogFragmentWeakReference.get().requireContext().getContentResolver()); - storageManager.saveFile(temp); - file = storageManager.getFileByPath(path); - - return result.getData().get(0).toString(); - } - else { - return ""; - } - } else { - return ""; - } - } else { + template.getTitle()).execute(client); + if (!result.isSuccess()) { + return ""; + } + + RemoteOperationResult newFileResult = new ReadFileRemoteOperation(path).execute(client); + if (!newFileResult.isSuccess()) { return ""; } + + OCFile temp = FileStorageUtils.fillOCFile((RemoteFile) newFileResult.getData().get(0)); + + final ChooseTemplateDialogFragment fragment = chooseTemplateDialogFragmentWeakReference.get(); + if (fragment == null) { + return ""; + } + + final Context context = fragment.getContext(); + if (context == null) { + // fragment has been detached + return ""; + } + + FileDataStorageManager storageManager = new FileDataStorageManager(user.toPlatformAccount(), + context.getContentResolver()); + storageManager.saveFile(temp); + file = storageManager.getFileByPath(path); + + return result.getData().get(0).toString(); + } catch (ClientFactory.CreationException e) { Log_OC.e(TAG, "Error creating file from template!", e); return "";