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

Commit 5ff818e9 authored by Steve McKay's avatar Steve McKay Committed by Android (Google) Code Review
Browse files

Merge "Performe save when ENTER is pressed."

parents b451c2c7 0c2a0a81
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -469,15 +469,19 @@ abstract class BaseActivity extends Activity {
    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (DEBUG) Log.d(mTag, "onKeyUp: keycode = " + keyCode);
        DirectoryFragment dir = DirectoryFragment.get(getFragmentManager());

        // TODO: Support for RecentsCreateFragment.
        DirectoryFragment fragment = DirectoryFragment.get(getFragmentManager());
        if (fragment != null) {
            switch (keyCode) {
                case KeyEvent.KEYCODE_MOVE_HOME:
                dir.focusFirstFile();
                    fragment.focusFirstFile();
                    return true;
                case KeyEvent.KEYCODE_MOVE_END:
                dir.focusLastFile();
                    fragment.focusLastFile();
                    return true;
            }
        }
        return super.onKeyUp(keyCode, event);
    }

+5 −2
Original line number Diff line number Diff line
@@ -205,9 +205,12 @@ public class DirectoryFragment extends Fragment {
        return builder.toString();
    }

    public static DirectoryFragment get(FragmentManager fm) {
    public static @Nullable DirectoryFragment get(FragmentManager fm) {
        // TODO: deal with multiple directories shown at once
        return (DirectoryFragment) fm.findFragmentById(R.id.container_directory);
        Fragment fragment = fm.findFragmentById(R.id.container_directory);
        return fragment instanceof DirectoryFragment
                ? (DirectoryFragment) fragment
                : null;
    }

    @Override
+1 −1
Original line number Diff line number Diff line
@@ -337,7 +337,7 @@ public class DocumentsActivity extends BaseActivity {

        if (mState.action == ACTION_CREATE) {
            final FragmentManager fm = getFragmentManager();
            SaveFragment.get(fm).setSaveEnabled(cwd != null && cwd.isCreateSupported());
            SaveFragment.get(fm).prepareForDirectory(cwd);
        }

        Menus.disableHiddenItems(menu);
+30 −9
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.content.Context;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -79,6 +80,17 @@ public class SaveFragment extends Fragment {
        mDisplayName = (EditText) view.findViewById(android.R.id.title);
        mDisplayName.addTextChangedListener(mDisplayNameWatcher);
        mDisplayName.setText(getArguments().getString(EXTRA_DISPLAY_NAME));
        mDisplayName.setOnKeyListener(
                new View.OnKeyListener() {
                    @Override
                    public boolean onKey(View v, int keyCode, KeyEvent event) {
                        if (keyCode == KeyEvent.KEYCODE_ENTER && mSave.isEnabled()) {
                            performSave();
                            return true;
                        }
                        return false;
                    }
                });

        mSave = (Button) view.findViewById(android.R.id.button1);
        mSave.setOnClickListener(mSaveListener);
@@ -113,6 +125,12 @@ public class SaveFragment extends Fragment {
    private View.OnClickListener mSaveListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performSave();
        }

    };

    private void performSave() {
        final DocumentsActivity activity = DocumentsActivity.get(SaveFragment.this);
        if (mReplaceTarget != null) {
            activity.onSaveRequested(mReplaceTarget);
@@ -122,7 +140,6 @@ public class SaveFragment extends Fragment {
            activity.onSaveRequested(mimeType, displayName);
        }
    }
    };

    /**
     * Set given document as target for in-place writing if user hits save
@@ -139,7 +156,11 @@ public class SaveFragment extends Fragment {
        }
    }

    public void setSaveEnabled(boolean enabled) {
    public void prepareForDirectory(DocumentInfo cwd) {
        setSaveEnabled(cwd != null && cwd.isCreateSupported());
    }

    private void setSaveEnabled(boolean enabled) {
        mSave.setEnabled(enabled);
    }