Search in sources :

Example 1 with CENTER_HORIZONTAL

use of android.view.Gravity.CENTER_HORIZONTAL in project Player by moneytoo.

the class onShowListener method onShow.

@Override
public void onShow(final DialogInterface dialog) {
    // ensure that the buttons have the right order
    _c.get()._neutralBtn = _c.get()._alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL);
    _c.get()._negativeBtn = _c.get()._alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE);
    _c.get()._positiveBtn = _c.get()._alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
    ViewGroup buttonBar = (ViewGroup) _c.get()._positiveBtn.getParent();
    ViewGroup.LayoutParams btnParams = buttonBar.getLayoutParams();
    btnParams.width = MATCH_PARENT;
    buttonBar.setLayoutParams(btnParams);
    buttonBar.removeAllViews();
    btnParams = _c.get()._neutralBtn.getLayoutParams();
    if (buttonBar instanceof LinearLayout) {
        ((LinearLayout.LayoutParams) btnParams).weight = 1;
        ((LinearLayout.LayoutParams) btnParams).width = 0;
    }
    if (_c.get()._enableOptions) {
        buttonBar.addView(_c.get()._neutralBtn, 0, btnParams);
    } else {
        buttonBar.addView(new Space(_c.get()._context), 0, btnParams);
    }
    buttonBar.addView(_c.get()._negativeBtn, 1);
    buttonBar.addView(_c.get()._positiveBtn, 2);
    if (_c.get()._enableMultiple) {
        _c.get()._positiveBtn.setVisibility(View.INVISIBLE);
    }
    if (_c.get()._enableOptions) {
        final int buttonColor = _c.get()._neutralBtn.getCurrentTextColor();
        final PorterDuffColorFilter filter = new PorterDuffColorFilter(buttonColor, PorterDuff.Mode.SRC_IN);
        _c.get()._neutralBtn.setText("");
        _c.get()._neutralBtn.setVisibility(View.VISIBLE);
        Drawable dots;
        if (_c.get()._optionsIconRes != -1) {
            dots = ContextCompat.getDrawable(_c.get()._context, _c.get()._optionsIconRes);
        } else if (_c.get()._optionsIcon != null) {
            dots = _c.get()._optionsIcon;
        } else {
            dots = ContextCompat.getDrawable(_c.get()._context, R.drawable.ic_menu_24dp);
        }
        if (dots != null) {
            dots.setColorFilter(filter);
            _c.get()._neutralBtn.setCompoundDrawablesWithIntrinsicBounds(dots, null, null, null);
        }
        final class Integer {

            int Int = 0;
        }
        final Integer scroll = new Integer();
        _c.get()._list.addOnLayoutChangeListener((v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
            int oldHeight = oldBottom - oldTop;
            if (v.getHeight() != oldHeight) {
                int offset = oldHeight - v.getHeight();
                int newScroll = getListYScroll(_c.get()._list);
                if (scroll.Int != newScroll)
                    offset += scroll.Int - newScroll;
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                    _c.get()._list.scrollListBy(offset);
                } else {
                    _c.get()._list.scrollBy(0, offset);
                }
            }
        });
        final Runnable showOptions = new Runnable() {

            @Override
            public void run() {
                if (_c.get()._options.getHeight() == 0) {
                    ViewTreeObserver viewTreeObserver = _c.get()._options.getViewTreeObserver();
                    viewTreeObserver.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {

                        @Override
                        public boolean onPreDraw() {
                            if (_c.get()._options.getHeight() <= 0) {
                                return false;
                            }
                            viewTreeObserver.removeOnPreDrawListener(this);
                            scroll.Int = getListYScroll(_c.get()._list);
                            if (_c.get()._options.getParent() instanceof FrameLayout) {
                                final ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) _c.get()._list.getLayoutParams();
                                params.bottomMargin = _c.get()._options.getHeight();
                                _c.get()._list.setLayoutParams(params);
                            }
                            _c.get()._options.setVisibility(View.VISIBLE);
                            _c.get()._options.requestFocus();
                            return true;
                        }
                    });
                } else {
                    scroll.Int = getListYScroll(_c.get()._list);
                    _c.get()._options.setVisibility(View.VISIBLE);
                    _c.get()._options.requestFocus();
                    if (_c.get()._options.getParent() instanceof FrameLayout) {
                        final ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) _c.get()._list.getLayoutParams();
                        params.bottomMargin = _c.get()._options.getHeight();
                        _c.get()._list.setLayoutParams(params);
                    }
                }
            }
        };
        final Runnable hideOptions = () -> {
            scroll.Int = getListYScroll(_c.get()._list);
            _c.get()._options.setVisibility(View.GONE);
            if (_c.get()._options.getParent() instanceof FrameLayout) {
                ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) _c.get()._list.getLayoutParams();
                params.bottomMargin = 0;
                _c.get()._list.setLayoutParams(params);
            }
        };
        _c.get()._neutralBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(final View view) {
                if (_c.get()._newFolderView != null && _c.get()._newFolderView.getVisibility() == View.VISIBLE) {
                    return;
                }
                if (_c.get()._options == null) {
                    // region Draw options view. (this only happens the first time one clicks on options)
                    // Root view (FrameLayout) of the ListView in the AlertDialog.
                    int rootId = _c.get()._context.getResources().getIdentifier("contentPanel", "id", _c.get()._context.getPackageName());
                    ViewGroup tmpRoot = ((AlertDialog) dialog).findViewById(rootId);
                    // In case the root id was changed or not found.
                    if (tmpRoot == null) {
                        rootId = _c.get()._context.getResources().getIdentifier("contentPanel", "id", "android");
                        tmpRoot = ((AlertDialog) dialog).findViewById(rootId);
                        if (tmpRoot == null)
                            return;
                    }
                    final ViewGroup root = tmpRoot;
                    // Create options view.
                    final FrameLayout options = new FrameLayout(_c.get()._context);
                    ViewGroup.MarginLayoutParams params;
                    if (root instanceof LinearLayout) {
                        params = new LinearLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT);
                        LinearLayout.LayoutParams param = ((LinearLayout.LayoutParams) _c.get()._list.getLayoutParams());
                        param.weight = 1;
                        _c.get()._list.setLayoutParams(param);
                    } else {
                        params = new FrameLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT, BOTTOM);
                    }
                    root.addView(options, params);
                    options.setFocusable(false);
                    if (root instanceof FrameLayout) {
                        _c.get()._list.bringToFront();
                    }
                    TypedArray ta = _c.get()._context.obtainStyledAttributes(R.styleable.FileChooser);
                    final int style = ta.getResourceId(R.styleable.FileChooser_fileChooserDialogStyle, R.style.FileChooserDialogStyle);
                    ta.recycle();
                    final Context buttonContext = new ContextThemeWrapper(_c.get()._context, style);
                    // Create a button for the option to create a new directory/folder.
                    final Button createDir = new Button(buttonContext, null, android.R.attr.buttonBarButtonStyle);
                    if (_c.get()._createDirRes != -1) {
                        createDir.setText(_c.get()._createDirRes);
                    } else if (_c.get()._createDir != null) {
                        createDir.setText(_c.get()._createDir);
                    } else {
                        createDir.setText(R.string.option_create_folder);
                    }
                    createDir.setTextColor(buttonColor);
                    // Drawable for the button.
                    final Drawable plus;
                    if (_c.get()._createDirIconRes != -1) {
                        plus = ContextCompat.getDrawable(_c.get()._context, _c.get()._createDirIconRes);
                    } else if (_c.get()._createDirIcon != null) {
                        plus = _c.get()._createDirIcon;
                    } else {
                        plus = ContextCompat.getDrawable(_c.get()._context, R.drawable.ic_add_24dp);
                    }
                    if (plus != null) {
                        plus.setColorFilter(filter);
                        createDir.setCompoundDrawablesWithIntrinsicBounds(plus, null, null, null);
                    }
                    params = new FrameLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT, START | CENTER_VERTICAL);
                    params.leftMargin = UiUtil.dip2px(10);
                    options.addView(createDir, params);
                    // Create a button for the option to delete a file.
                    final Button delete = new Button(buttonContext, null, android.R.attr.buttonBarButtonStyle);
                    if (_c.get()._deleteRes != -1) {
                        delete.setText(_c.get()._deleteRes);
                    } else if (_c.get()._delete != null) {
                        delete.setText(_c.get()._delete);
                    } else {
                        delete.setText(R.string.options_delete);
                    }
                    delete.setTextColor(buttonColor);
                    final Drawable bin;
                    if (_c.get()._deleteIconRes != -1) {
                        bin = ContextCompat.getDrawable(_c.get()._context, _c.get()._deleteIconRes);
                    } else if (_c.get()._deleteIcon != null) {
                        bin = _c.get()._deleteIcon;
                    } else {
                        bin = ContextCompat.getDrawable(_c.get()._context, R.drawable.ic_delete_24dp);
                    }
                    if (bin != null) {
                        bin.setColorFilter(filter);
                        delete.setCompoundDrawablesWithIntrinsicBounds(bin, null, null, null);
                    }
                    params = new FrameLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT, END | CENTER_VERTICAL);
                    params.rightMargin = UiUtil.dip2px(10);
                    options.addView(delete, params);
                    _c.get()._options = options;
                    showOptions.run();
                    // Event Listeners.
                    createDir.setOnClickListener(new View.OnClickListener() {

                        private EditText input = null;

                        @Override
                        public void onClick(final View view) {
                            // Toast.makeText(getBaseContext(), "new folder clicked", Toast
                            // .LENGTH_SHORT).show();
                            hideOptions.run();
                            File newFolder = new File(_c.get()._currentDir, "New folder");
                            for (int i = 1; newFolder.exists(); i++) {
                                newFolder = new File(_c.get()._currentDir, "New folder (" + i + ')');
                            }
                            if (this.input != null) {
                                this.input.setText(newFolder.getName());
                            }
                            if (_c.get()._newFolderView == null) {
                                // region Draw a view with input to create new folder. (this only
                                // happens the first time one clicks on New folder)
                                TypedArray ta = _c.get()._context.obtainStyledAttributes(R.styleable.FileChooser);
                                final int style = ta.getResourceId(R.styleable.FileChooser_fileChooserNewFolderStyle, R.style.FileChooserNewFolderStyle);
                                final Context context = new ContextThemeWrapper(_c.get()._context, style);
                                ta.recycle();
                                ta = context.obtainStyledAttributes(R.styleable.FileChooser);
                                try {
                                    // noinspection ConstantConditions
                                    ((AlertDialog) dialog).getWindow().clearFlags(FLAG_NOT_FOCUSABLE | FLAG_ALT_FOCUSABLE_IM);
                                    // noinspection ConstantConditions
                                    ((AlertDialog) dialog).getWindow().setSoftInputMode(SOFT_INPUT_STATE_VISIBLE | ta.getInt(R.styleable.FileChooser_fileChooserNewFolderSoftInputMode, 0x30));
                                } catch (NullPointerException e) {
                                    e.printStackTrace();
                                }
                                // A semitransparent background overlay.
                                final FrameLayout overlay = new FrameLayout(_c.get()._context);
                                overlay.setBackgroundColor(ta.getColor(R.styleable.FileChooser_fileChooserNewFolderOverlayColor, 0x60ffffff));
                                overlay.setScrollContainer(true);
                                ViewGroup.MarginLayoutParams params;
                                if (root instanceof FrameLayout) {
                                    params = new FrameLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT, CENTER);
                                } else {
                                    params = new LinearLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT);
                                }
                                root.addView(overlay, params);
                                overlay.setOnClickListener(null);
                                overlay.setVisibility(View.INVISIBLE);
                                _c.get()._newFolderView = overlay;
                                // A LinearLayout and a pair of Space to center views.
                                LinearLayout linearLayout = new LinearLayout(_c.get()._context);
                                params = new FrameLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT, CENTER);
                                overlay.addView(linearLayout, params);
                                overlay.setFocusable(false);
                                float widthWeight = ta.getFloat(R.styleable.FileChooser_fileChooserNewFolderWidthWeight, 0.56f);
                                if (widthWeight <= 0)
                                    widthWeight = 0.56f;
                                if (widthWeight > 1f)
                                    widthWeight = 1f;
                                Space leftSpace = new Space(_c.get()._context);
                                params = new LinearLayout.LayoutParams(0, WRAP_CONTENT, (1f - widthWeight) / 2);
                                linearLayout.addView(leftSpace, params);
                                leftSpace.setFocusable(false);
                                // A solid holder view for the EditText and Buttons.
                                final LinearLayout holder = new LinearLayout(_c.get()._context);
                                holder.setOrientation(LinearLayout.VERTICAL);
                                holder.setBackgroundColor(ta.getColor(R.styleable.FileChooser_fileChooserNewFolderBackgroundColor, 0xffffffff));
                                final int elevation = ta.getInt(R.styleable.FileChooser_fileChooserNewFolderElevation, 25);
                                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                                    holder.setElevation(elevation);
                                } else {
                                    ViewCompat.setElevation(holder, elevation);
                                }
                                params = new LinearLayout.LayoutParams(0, WRAP_CONTENT, widthWeight);
                                linearLayout.addView(holder, params);
                                holder.setFocusable(false);
                                Space rightSpace = new Space(_c.get()._context);
                                params = new LinearLayout.LayoutParams(0, WRAP_CONTENT, (1f - widthWeight) / 2);
                                linearLayout.addView(rightSpace, params);
                                rightSpace.setFocusable(false);
                                final EditText input = new EditText(_c.get()._context);
                                final int color = ta.getColor(R.styleable.FileChooser_fileChooserNewFolderTextColor, buttonColor);
                                input.setTextColor(color);
                                input.getBackground().mutate().setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
                                input.setText(newFolder.getName());
                                input.setSelectAllOnFocus(true);
                                input.setSingleLine(true);
                                // There should be no suggestions, but...
                                input.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
                                input.setFilters(new InputFilter[] { _c.get()._newFolderFilter != null ? _c.get()._newFolderFilter : new FileUtil.NewFolderFilter() });
                                input.setGravity(CENTER_HORIZONTAL);
                                input.setImeOptions(EditorInfo.IME_ACTION_DONE);
                                params = new LinearLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT);
                                params.setMargins(3, 2, 3, 0);
                                holder.addView(input, params);
                                this.input = input;
                                // A horizontal LinearLayout to hold buttons
                                final FrameLayout buttons = new FrameLayout(_c.get()._context);
                                params = new LinearLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT);
                                holder.addView(buttons, params);
                                // The Cancel button.
                                final Button cancel = new Button(buttonContext, null, android.R.attr.buttonBarButtonStyle);
                                if (_c.get()._newFolderCancelRes != -1) {
                                    cancel.setText(_c.get()._newFolderCancelRes);
                                } else if (_c.get()._newFolderCancel != null) {
                                    cancel.setText(_c.get()._newFolderCancel);
                                } else {
                                    cancel.setText(R.string.new_folder_cancel);
                                }
                                cancel.setTextColor(buttonColor);
                                params = new FrameLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT, START);
                                buttons.addView(cancel, params);
                                // The OK button.
                                final Button ok = new Button(buttonContext, null, android.R.attr.buttonBarButtonStyle);
                                if (_c.get()._newFolderOkRes != -1) {
                                    ok.setText(_c.get()._newFolderOkRes);
                                } else if (_c.get()._newFolderOk != null) {
                                    ok.setText(_c.get()._newFolderOk);
                                } else {
                                    ok.setText(R.string.new_folder_ok);
                                }
                                ok.setTextColor(buttonColor);
                                params = new FrameLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT, END);
                                buttons.addView(ok, params);
                                final int id = cancel.hashCode();
                                cancel.setId(id);
                                ok.setNextFocusLeftId(id);
                                input.setNextFocusLeftId(id);
                                // Event Listeners.
                                input.setOnEditorActionListener((v, actionId, event) -> {
                                    if (actionId == EditorInfo.IME_ACTION_DONE) {
                                        UiUtil.hideKeyboardFrom(_c.get()._context, input);
                                        _c.get().createNewDirectory(input.getText().toString());
                                        overlay.setVisibility(View.GONE);
                                        overlay.clearFocus();
                                        if (_c.get()._enableDpad) {
                                            Button b = _c.get()._neutralBtn;
                                            b.setFocusable(true);
                                            b.requestFocus();
                                            _c.get()._list.setFocusable(true);
                                        }
                                        return true;
                                    }
                                    return false;
                                });
                                cancel.setOnClickListener(v -> {
                                    UiUtil.hideKeyboardFrom(_c.get()._context, input);
                                    overlay.setVisibility(View.GONE);
                                    overlay.clearFocus();
                                    if (_c.get()._enableDpad) {
                                        Button b = _c.get()._neutralBtn;
                                        b.setFocusable(true);
                                        b.requestFocus();
                                        _c.get()._list.setFocusable(true);
                                    }
                                });
                                ok.setOnClickListener(v -> {
                                    UiUtil.hideKeyboardFrom(_c.get()._context, input);
                                    _c.get().createNewDirectory(input.getText().toString());
                                    UiUtil.hideKeyboardFrom(_c.get()._context, input);
                                    overlay.setVisibility(View.GONE);
                                    overlay.clearFocus();
                                    if (_c.get()._enableDpad) {
                                        Button b = _c.get()._neutralBtn;
                                        b.setFocusable(true);
                                        b.requestFocus();
                                        _c.get()._list.setFocusable(true);
                                    }
                                });
                                ta.recycle();
                            // endregion
                            }
                            if (_c.get()._newFolderView.getVisibility() != View.VISIBLE) {
                                _c.get()._newFolderView.setVisibility(View.VISIBLE);
                                if (_c.get()._enableDpad) {
                                    _c.get()._newFolderView.requestFocus();
                                    _c.get()._neutralBtn.setFocusable(false);
                                    _c.get()._list.setFocusable(false);
                                }
                                if (_c.get()._pathView != null && _c.get()._pathView.getVisibility() == View.VISIBLE) {
                                    _c.get()._newFolderView.setPadding(0, UiUtil.dip2px(32), 0, UiUtil.dip2px(12));
                                } else {
                                    _c.get()._newFolderView.setPadding(0, UiUtil.dip2px(12), 0, UiUtil.dip2px(12));
                                }
                            } else {
                                _c.get()._newFolderView.setVisibility(View.GONE);
                                if (_c.get()._enableDpad) {
                                    _c.get()._newFolderView.clearFocus();
                                    _c.get()._neutralBtn.setFocusable(true);
                                    _c.get()._list.setFocusable(true);
                                }
                            }
                        }
                    });
                    delete.setOnClickListener(v1 -> {
                        // Toast.makeText(_c.get()._context, "delete clicked", Toast.LENGTH_SHORT).show();
                        hideOptions.run();
                        if (_c.get()._chooseMode == CHOOSE_MODE_SELECT_MULTIPLE) {
                            boolean success = true;
                            for (File file : _c.get()._adapter.getSelected()) {
                                _c.get()._result.onChoosePath(file.getAbsolutePath(), file);
                                if (success) {
                                    try {
                                        FileUtil.deleteFileRecursively(file);
                                    } catch (IOException e) {
                                        Toast.makeText(_c.get()._context, e.getMessage(), Toast.LENGTH_LONG).show();
                                        success = false;
                                    }
                                }
                            }
                            _c.get()._adapter.clearSelected();
                            _c.get()._positiveBtn.setVisibility(View.INVISIBLE);
                            _c.get()._chooseMode = CHOOSE_MODE_NORMAL;
                            _c.get().refreshDirs();
                            return;
                        }
                        _c.get()._chooseMode = _c.get()._chooseMode != CHOOSE_MODE_DELETE ? CHOOSE_MODE_DELETE : CHOOSE_MODE_NORMAL;
                        if (_c.get()._deleteModeIndicator == null) {
                            _c.get()._deleteModeIndicator = () -> {
                                if (_c.get()._chooseMode == CHOOSE_MODE_DELETE) {
                                    final int color1 = 0x80ff0000;
                                    final PorterDuffColorFilter red = new PorterDuffColorFilter(color1, PorterDuff.Mode.SRC_IN);
                                    _c.get()._neutralBtn.getCompoundDrawables()[0].setColorFilter(red);
                                    _c.get()._neutralBtn.setTextColor(color1);
                                    delete.getCompoundDrawables()[0].setColorFilter(red);
                                    delete.setTextColor(color1);
                                } else {
                                    _c.get()._neutralBtn.getCompoundDrawables()[0].clearColorFilter();
                                    _c.get()._neutralBtn.setTextColor(buttonColor);
                                    delete.getCompoundDrawables()[0].clearColorFilter();
                                    delete.setTextColor(buttonColor);
                                }
                            };
                        }
                        _c.get()._deleteModeIndicator.run();
                    });
                // endregion
                } else if (_c.get()._options.getVisibility() == View.VISIBLE) {
                    hideOptions.run();
                } else {
                    showOptions.run();
                }
            }
        });
    }
}
Also used : AlertDialog(androidx.appcompat.app.AlertDialog) Context(android.content.Context) LinearLayout(android.widget.LinearLayout) AlertDialog(androidx.appcompat.app.AlertDialog) Space(android.widget.Space) FrameLayout(android.widget.FrameLayout) Drawable(android.graphics.drawable.Drawable) BOTTOM(android.view.Gravity.BOTTOM) END(androidx.core.view.GravityCompat.END) TypedArray(android.content.res.TypedArray) Toast(android.widget.Toast) SOFT_INPUT_STATE_VISIBLE(android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE) View(android.view.View) Button(android.widget.Button) UiUtil(com.obsez.android.lib.filechooser.internals.UiUtil) MATCH_PARENT(androidx.appcompat.widget.ListPopupWindow.MATCH_PARENT) Build(android.os.Build) WeakReference(java.lang.ref.WeakReference) ContextCompat(androidx.core.content.ContextCompat) FLAG_ALT_FOCUSABLE_IM(android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM) DialogInterface(android.content.DialogInterface) CHOOSE_MODE_NORMAL(com.obsez.android.lib.filechooser.ChooserDialog.CHOOSE_MODE_NORMAL) CHOOSE_MODE_SELECT_MULTIPLE(com.obsez.android.lib.filechooser.ChooserDialog.CHOOSE_MODE_SELECT_MULTIPLE) ViewCompat(androidx.core.view.ViewCompat) FileUtil(com.obsez.android.lib.filechooser.internals.FileUtil) START(androidx.core.view.GravityCompat.START) WRAP_CONTENT(androidx.appcompat.widget.ListPopupWindow.WRAP_CONTENT) InputType(android.text.InputType) FLAG_NOT_FOCUSABLE(android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) IOException(java.io.IOException) PorterDuff(android.graphics.PorterDuff) ViewGroup(android.view.ViewGroup) File(java.io.File) ContextThemeWrapper(androidx.appcompat.view.ContextThemeWrapper) CENTER_HORIZONTAL(android.view.Gravity.CENTER_HORIZONTAL) PorterDuffColorFilter(android.graphics.PorterDuffColorFilter) ViewTreeObserver(android.view.ViewTreeObserver) UiUtil.getListYScroll(com.obsez.android.lib.filechooser.internals.UiUtil.getListYScroll) CENTER_VERTICAL(android.view.Gravity.CENTER_VERTICAL) InputFilter(android.text.InputFilter) CHOOSE_MODE_DELETE(com.obsez.android.lib.filechooser.ChooserDialog.CHOOSE_MODE_DELETE) EditorInfo(android.view.inputmethod.EditorInfo) EditText(android.widget.EditText) CENTER(android.view.Gravity.CENTER) PorterDuffColorFilter(android.graphics.PorterDuffColorFilter) Button(android.widget.Button) TypedArray(android.content.res.TypedArray) ViewTreeObserver(android.view.ViewTreeObserver) Space(android.widget.Space) Context(android.content.Context) EditText(android.widget.EditText) ViewGroup(android.view.ViewGroup) Drawable(android.graphics.drawable.Drawable) IOException(java.io.IOException) View(android.view.View) ContextThemeWrapper(androidx.appcompat.view.ContextThemeWrapper) FrameLayout(android.widget.FrameLayout) File(java.io.File) LinearLayout(android.widget.LinearLayout)

Aggregations

Context (android.content.Context)1 DialogInterface (android.content.DialogInterface)1 TypedArray (android.content.res.TypedArray)1 PorterDuff (android.graphics.PorterDuff)1 PorterDuffColorFilter (android.graphics.PorterDuffColorFilter)1 Drawable (android.graphics.drawable.Drawable)1 Build (android.os.Build)1 InputFilter (android.text.InputFilter)1 InputType (android.text.InputType)1 BOTTOM (android.view.Gravity.BOTTOM)1 CENTER (android.view.Gravity.CENTER)1 CENTER_HORIZONTAL (android.view.Gravity.CENTER_HORIZONTAL)1 CENTER_VERTICAL (android.view.Gravity.CENTER_VERTICAL)1 View (android.view.View)1 ViewGroup (android.view.ViewGroup)1 ViewTreeObserver (android.view.ViewTreeObserver)1 FLAG_ALT_FOCUSABLE_IM (android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM)1 FLAG_NOT_FOCUSABLE (android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)1 SOFT_INPUT_STATE_VISIBLE (android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)1 EditorInfo (android.view.inputmethod.EditorInfo)1