Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63595859 authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android Git Automerger
Browse files

am e6d419de: Merge "Grab Activity reference before leaving fragment." into klp-dev

* commit 'e6d419de':
  Grab Activity reference before leaving fragment.
parents 18225508 e6d419de
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ public class CreateDirectoryFragment extends DialogFragment {
                final DocumentsActivity activity = (DocumentsActivity) getActivity();
                final DocumentInfo cwd = activity.getCurrentDirectory();

                new CreateDirectoryTask(displayName).executeOnExecutor(
                new CreateDirectoryTask(activity, cwd, displayName).executeOnExecutor(
                        ProviderExecutor.forAuthority(cwd.authority));
            }
        });
@@ -83,25 +83,26 @@ public class CreateDirectoryFragment extends DialogFragment {
    }

    private class CreateDirectoryTask extends AsyncTask<Void, Void, DocumentInfo> {
        private final DocumentsActivity mActivity;
        private final DocumentInfo mCwd;
        private final String mDisplayName;

        public CreateDirectoryTask(String displayName) {
        public CreateDirectoryTask(
                DocumentsActivity activity, DocumentInfo cwd, String displayName) {
            mActivity = activity;
            mCwd = cwd;
            mDisplayName = displayName;
        }

        @Override
        protected DocumentInfo doInBackground(Void... params) {
            final DocumentsActivity activity = (DocumentsActivity) getActivity();
            final ContentResolver resolver = activity.getContentResolver();

            final DocumentInfo cwd = activity.getCurrentDirectory();

            final ContentResolver resolver = mActivity.getContentResolver();
            ContentProviderClient client = null;
            try {
                client = DocumentsApplication.acquireUnstableProviderOrThrow(
                        resolver, cwd.derivedUri.getAuthority());
                        resolver, mCwd.derivedUri.getAuthority());
                final Uri childUri = DocumentsContract.createDocument(
                        client, cwd.derivedUri, Document.MIME_TYPE_DIR, mDisplayName);
                        client, mCwd.derivedUri, Document.MIME_TYPE_DIR, mDisplayName);
                return DocumentInfo.fromUri(resolver, childUri);
            } catch (Exception e) {
                Log.w(TAG, "Failed to create directory", e);
@@ -113,12 +114,11 @@ public class CreateDirectoryFragment extends DialogFragment {

        @Override
        protected void onPostExecute(DocumentInfo result) {
            final DocumentsActivity activity = (DocumentsActivity) getActivity();
            if (result != null) {
                // Navigate into newly created child
                activity.onDocumentPicked(result);
                mActivity.onDocumentPicked(result);
            } else {
                Toast.makeText(activity, R.string.create_error, Toast.LENGTH_SHORT).show();
                Toast.makeText(mActivity, R.string.create_error, Toast.LENGTH_SHORT).show();
            }
        }
    }