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

Commit 382d63e6 authored by Jon Mann's avatar Jon Mann Committed by Android (Google) Code Review
Browse files

Merge "Fix crash on rotation or input change in RenameDocumentFragment." into arc-apps

parents b843033a cf120d44
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -832,7 +832,11 @@ public class DirectoryFragment extends Fragment

        // Model must be accessed in UI thread, since underlying cursor is not threadsafe.
        List<DocumentInfo> docs = mModel.getDocuments(selected);
        RenameDocumentFragment.show(getFragmentManager(), docs.get(0), mModel::hasFileWithName);
        RenameDocumentFragment.show(getChildFragmentManager(), docs.get(0));
    }

    Model getModel(){
        return mModel;
    }

    private boolean isDocumentEnabled(String mimeType, int flags) {
+3 −7
Original line number Diff line number Diff line
@@ -52,8 +52,6 @@ import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.Shared;
import com.android.documentsui.ui.Snackbars;

import java.util.function.Predicate;

/**
 * Dialog to rename file or directory.
 */
@@ -62,14 +60,11 @@ public class RenameDocumentFragment extends DialogFragment {
    private DocumentInfo mDocument;
    private EditText mEditText;
    private TextInputLayout mRenameInputWrapper;
    private Predicate<String> mHasFileNamed;
    private @Nullable DialogInterface mDialog;

    public static void show(
            FragmentManager fm, DocumentInfo document, Predicate<String> hasFileNamed) {
    public static void show(FragmentManager fm, DocumentInfo document) {
        final RenameDocumentFragment dialog = new RenameDocumentFragment();
        dialog.mDocument = document;
        dialog.mHasFileNamed = hasFileNamed;
        dialog.show(fm, TAG_RENAME_DOCUMENT);
    }

@@ -192,12 +187,13 @@ public class RenameDocumentFragment extends DialogFragment {

    private void renameDocuments(String newDisplayName) {
        BaseActivity activity = (BaseActivity) getActivity();
        DirectoryFragment directory = (DirectoryFragment) getParentFragment();

        if (!isValidDocumentName(newDisplayName)) {
            Log.w(TAG, "Failed to rename file - invalid name:" + newDisplayName);
            Snackbars.makeSnackbar(getActivity(), R.string.rename_error,
                    Snackbar.LENGTH_SHORT).show();
        } else if (mHasFileNamed.test(newDisplayName)){
        } else if (directory.getModel().hasFileWithName(newDisplayName)){
            mRenameInputWrapper.setError(getContext().getString(R.string.name_conflict));
            selectFileName(mEditText);
            Metrics.logRenameFileError(getContext());