Search in sources :

Example 1 with Helper

use of me.devsaki.hentoid.util.Helper in project Hentoid by avluis.

the class QueueFragment method onCreateView.

@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    rootView = inflater.inflate(R.layout.fragment_queue, container, false);
    mEmptyText = requireViewById(rootView, R.id.queue_empty_txt);
    btnStart = requireViewById(rootView, R.id.btnStart);
    btnPause = requireViewById(rootView, R.id.btnPause);
    queueStatus = requireViewById(rootView, R.id.queueStatus);
    queueInfo = requireViewById(rootView, R.id.queueInfo);
    dlPreparationProgressBar = requireViewById(rootView, R.id.queueDownloadPreparationProgressBar);
    // Both queue control buttons actually just need to send a signal that will be processed accordingly by whom it may concern
    btnStart.setOnClickListener(v -> EventBus.getDefault().post(new DownloadEvent(DownloadEvent.Type.EV_UNPAUSE)));
    btnPause.setOnClickListener(v -> EventBus.getDefault().post(new DownloadEvent(DownloadEvent.Type.EV_PAUSE)));
    // Book list
    recyclerView = requireViewById(rootView, R.id.queue_list);
    ContentItem item = new ContentItem(ContentItem.ViewType.QUEUE);
    fastAdapter.registerItemFactory(item.getType(), item);
    // Gets (or creates and attaches if not yet existing) the extension from the given `FastAdapter`
    selectExtension = fastAdapter.getOrCreateExtension(SelectExtension.class);
    if (selectExtension != null) {
        selectExtension.setSelectable(true);
        selectExtension.setMultiSelect(true);
        selectExtension.setSelectOnLongClick(true);
        selectExtension.setSelectWithItemUpdate(true);
        selectExtension.setSelectionListener((i, b) -> this.onSelectionChanged());
        FastAdapterPreClickSelectHelper<ContentItem> helper = new FastAdapterPreClickSelectHelper<>(selectExtension);
        fastAdapter.setOnPreClickListener(helper::onPreClickListener);
        fastAdapter.setOnPreLongClickListener(helper::onPreLongClickListener);
    }
    recyclerView.setAdapter(fastAdapter);
    recyclerView.setHasFixedSize(true);
    llm = (LinearLayoutManager) recyclerView.getLayoutManager();
    // Fast scroller
    new FastScrollerBuilder(recyclerView).build();
    // Drag, drop & swiping
    SimpleSwipeDrawerDragCallback dragSwipeCallback = new SimpleSwipeDrawerDragCallback(this, ItemTouchHelper.LEFT, this).withSwipeLeft(Helper.dimensAsDp(requireContext(), R.dimen.delete_drawer_width_list)).withSensitivity(1.5f).withSurfaceThreshold(0.3f).withNotifyAllDrops(true);
    // Despite its name, that's actually to disable drag on long tap
    dragSwipeCallback.setIsDragEnabled(false);
    touchHelper = new ItemTouchHelper(dragSwipeCallback);
    touchHelper.attachToRecyclerView(recyclerView);
    // Item click listener
    fastAdapter.setOnClickListener((v, a, i, p) -> onItemClick(i));
    initToolbar();
    initSelectionToolbar();
    attachButtons(fastAdapter);
    // Network usage display refresh
    compositeDisposable.add(Observable.timer(1, TimeUnit.SECONDS).subscribeOn(Schedulers.computation()).repeat().observeOn(Schedulers.computation()).map(v -> NetworkHelper.getIncomingNetworkUsage(requireContext())).observeOn(AndroidSchedulers.mainThread()).subscribe(this::updateNetworkUsage));
    addCustomBackControl();
    return rootView;
}
Also used : ItemTouchHelper(androidx.recyclerview.widget.ItemTouchHelper) ImageButton(android.widget.ImageButton) Content(me.devsaki.hentoid.database.domains.Content) Bundle(android.os.Bundle) QueueActivity(me.devsaki.hentoid.activities.QueueActivity) NonNull(androidx.annotation.NonNull) FastAdapterDiffUtil(com.mikepenz.fastadapter.diff.FastAdapterDiffUtil) NetworkHelper(me.devsaki.hentoid.util.network.NetworkHelper) MaterialAlertDialogBuilder(com.google.android.material.dialog.MaterialAlertDialogBuilder) ISwipeableViewHolder(me.devsaki.hentoid.viewholders.ISwipeableViewHolder) ClickEventHook(com.mikepenz.fastadapter.listeners.ClickEventHook) AndroidSchedulers(io.reactivex.android.schedulers.AndroidSchedulers) ContentHelper(me.devsaki.hentoid.util.ContentHelper) OnBackPressedCallback(androidx.activity.OnBackPressedCallback) ItemAdapter(com.mikepenz.fastadapter.adapters.ItemAdapter) StringHelper(me.devsaki.hentoid.util.StringHelper) Handler(android.os.Handler) Looper(android.os.Looper) Consumer(com.annimon.stream.function.Consumer) Fragment(androidx.fragment.app.Fragment) View(android.view.View) Schedulers(io.reactivex.schedulers.Schedulers) RecyclerView(androidx.recyclerview.widget.RecyclerView) ItemTouchCallback(com.mikepenz.fastadapter.drag.ItemTouchCallback) BlinkAnimation(me.devsaki.hentoid.ui.BlinkAnimation) DownloadEvent(me.devsaki.hentoid.events.DownloadEvent) SimpleSwipeDrawerDragCallback(com.mikepenz.fastadapter.swipe_drag.SimpleSwipeDrawerDragCallback) Set(java.util.Set) ToastHelper(me.devsaki.hentoid.util.ToastHelper) SearchView(androidx.appcompat.widget.SearchView) ThreadMode(org.greenrobot.eventbus.ThreadMode) ViewGroup(android.view.ViewGroup) Timber(timber.log.Timber) ViewModelFactory(me.devsaki.hentoid.viewmodels.ViewModelFactory) ViewCompat.requireViewById(androidx.core.view.ViewCompat.requireViewById) StringRes(androidx.annotation.StringRes) List(java.util.List) CompositeDisposable(io.reactivex.disposables.CompositeDisposable) TextView(android.widget.TextView) Nullable(androidx.annotation.Nullable) ProcessEvent(me.devsaki.hentoid.events.ProcessEvent) ThemeHelper(me.devsaki.hentoid.util.ThemeHelper) QueueViewModel(me.devsaki.hentoid.viewmodels.QueueViewModel) FastAdapter(com.mikepenz.fastadapter.FastAdapter) Toolbar(androidx.appcompat.widget.Toolbar) LinearLayoutManager(androidx.recyclerview.widget.LinearLayoutManager) NotNull(org.jetbrains.annotations.NotNull) Snackbar(com.google.android.material.snackbar.Snackbar) CircularProgressView(me.devsaki.hentoid.views.CircularProgressView) Context(android.content.Context) Debouncer(me.devsaki.hentoid.util.Debouncer) ContentItem(me.devsaki.hentoid.viewholders.ContentItem) Preferences(me.devsaki.hentoid.util.Preferences) Stream(com.annimon.stream.Stream) PrefsBundle(me.devsaki.hentoid.activities.bundles.PrefsBundle) IDraggableViewHolder(me.devsaki.hentoid.viewholders.IDraggableViewHolder) Intent(android.content.Intent) BaseTransientBottomBar(com.google.android.material.snackbar.BaseTransientBottomBar) PrefsActivity(me.devsaki.hentoid.activities.PrefsActivity) MenuItem(android.view.MenuItem) ArrayList(java.util.ArrayList) SuppressLint(android.annotation.SuppressLint) TooltipHelper(me.devsaki.hentoid.util.TooltipHelper) FastAdapterPreClickSelectHelper(me.devsaki.hentoid.widget.FastAdapterPreClickSelectHelper) ItemTouchHelper(androidx.recyclerview.widget.ItemTouchHelper) DownloadPreparationEvent(me.devsaki.hentoid.events.DownloadPreparationEvent) Helper(me.devsaki.hentoid.util.Helper) SelectExtension(com.mikepenz.fastadapter.select.SelectExtension) EventBus(org.greenrobot.eventbus.EventBus) Observable(io.reactivex.Observable) PermissionHelper(me.devsaki.hentoid.util.PermissionHelper) WeakReference(java.lang.ref.WeakReference) ViewModelProvider(androidx.lifecycle.ViewModelProvider) ServiceDestroyedEvent(me.devsaki.hentoid.events.ServiceDestroyedEvent) LayoutInflater(android.view.LayoutInflater) ContentQueueManager(me.devsaki.hentoid.util.download.ContentQueueManager) FileHelper(me.devsaki.hentoid.util.FileHelper) DragDropUtil(com.mikepenz.fastadapter.utils.DragDropUtil) FastScrollerBuilder(me.zhanghai.android.fastscroll.FastScrollerBuilder) ObjectBoxDAO(me.devsaki.hentoid.database.ObjectBoxDAO) TimeUnit(java.util.concurrent.TimeUnit) ArrowOrientation(com.skydoves.balloon.ArrowOrientation) R(me.devsaki.hentoid.R) SimpleSwipeDrawerCallback(com.mikepenz.fastadapter.swipe.SimpleSwipeDrawerCallback) Subscribe(org.greenrobot.eventbus.Subscribe) ProgressDialogFragment(me.devsaki.hentoid.fragments.ProgressDialogFragment) DownloadSpeedCalculator(me.devsaki.hentoid.util.network.DownloadSpeedCalculator) QueueRecord(me.devsaki.hentoid.database.domains.QueueRecord) FastScrollerBuilder(me.zhanghai.android.fastscroll.FastScrollerBuilder) DownloadEvent(me.devsaki.hentoid.events.DownloadEvent) SimpleSwipeDrawerDragCallback(com.mikepenz.fastadapter.swipe_drag.SimpleSwipeDrawerDragCallback) SelectExtension(com.mikepenz.fastadapter.select.SelectExtension) FastAdapterPreClickSelectHelper(me.devsaki.hentoid.widget.FastAdapterPreClickSelectHelper) ContentItem(me.devsaki.hentoid.viewholders.ContentItem)

Example 2 with Helper

use of me.devsaki.hentoid.util.Helper in project Hentoid by avluis.

the class BookmarksDialogFragment method onViewCreated.

@Override
public void onViewCreated(@NonNull View rootView, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(rootView, savedInstanceState);
    MaterialButton homepage = requireViewById(rootView, R.id.bookmark_homepage_btn);
    homepage.setIcon(ContextCompat.getDrawable(requireContext(), site.getIco()));
    homepage.setOnClickListener(v -> parent.loadUrl(site.getUrl()));
    List<SiteBookmark> bookmarks = reloadBookmarks();
    // Gets (or creates and attaches if not yet existing) the extension from the given `FastAdapter`
    selectExtension = fastAdapter.getOrCreateExtension(SelectExtension.class);
    if (selectExtension != null) {
        selectExtension.setSelectable(true);
        selectExtension.setMultiSelect(true);
        selectExtension.setSelectOnLongClick(true);
        selectExtension.setSelectWithItemUpdate(true);
        selectExtension.setSelectionListener((i, b) -> this.onSelectionChanged());
        FastAdapterPreClickSelectHelper<TextItem<SiteBookmark>> helper = new FastAdapterPreClickSelectHelper<>(selectExtension);
        fastAdapter.setOnPreClickListener(helper::onPreClickListener);
        fastAdapter.setOnPreLongClickListener(helper::onPreLongClickListener);
    }
    recyclerView = requireViewById(rootView, R.id.bookmarks_list);
    // Activate drag & drop
    SimpleDragCallback dragCallback = new SimpleDragCallback(this);
    dragCallback.setNotifyAllDrops(true);
    touchHelper = new ItemTouchHelper(dragCallback);
    touchHelper.attachToRecyclerView(recyclerView);
    recyclerView.setAdapter(fastAdapter);
    fastAdapter.setOnClickListener((v, a, i, p) -> onItemClick(i));
    fastAdapter.addEventHook(new TextItem.DragHandlerTouchEvent<>(position -> {
        RecyclerView.ViewHolder vh = recyclerView.findViewHolderForAdapterPosition(position);
        if (vh != null)
            touchHelper.startDrag(vh);
    }));
    selectionToolbar = requireViewById(rootView, R.id.toolbar);
    selectionToolbar.setOnMenuItemClickListener(this::selectionToolbarOnItemClicked);
    editMenu = selectionToolbar.getMenu().findItem(R.id.action_edit);
    copyMenu = selectionToolbar.getMenu().findItem(R.id.action_copy);
    homeMenu = selectionToolbar.getMenu().findItem(R.id.action_home);
    bookmarkCurrentBtn = requireViewById(rootView, R.id.bookmark_current_btn);
    Optional<SiteBookmark> currentBookmark = Stream.of(bookmarks).filter(b -> SiteBookmark.urlsAreSame(b.getUrl(), url)).findFirst();
    if (currentBookmark.isPresent())
        bookmarkId = currentBookmark.get().id;
    updateBookmarkButton();
}
Also used : InputDialog(me.devsaki.hentoid.ui.InputDialog) Context(android.content.Context) Bundle(android.os.Bundle) TextItem(me.devsaki.hentoid.viewholders.TextItem) Stream(com.annimon.stream.Stream) NonNull(androidx.annotation.NonNull) SimpleDragCallback(com.mikepenz.fastadapter.drag.SimpleDragCallback) Completable(io.reactivex.Completable) IDraggableViewHolder(me.devsaki.hentoid.viewholders.IDraggableViewHolder) MenuItem(android.view.MenuItem) FragmentActivity(androidx.fragment.app.FragmentActivity) SuppressLint(android.annotation.SuppressLint) Optional(com.annimon.stream.Optional) Site(me.devsaki.hentoid.enums.Site) FastAdapterPreClickSelectHelper(me.devsaki.hentoid.widget.FastAdapterPreClickSelectHelper) ItemTouchHelper(androidx.recyclerview.widget.ItemTouchHelper) ItemAdapter(com.mikepenz.fastadapter.adapters.ItemAdapter) MaterialButton(com.google.android.material.button.MaterialButton) Helper(me.devsaki.hentoid.util.Helper) SelectExtension(com.mikepenz.fastadapter.select.SelectExtension) Handler(android.os.Handler) Looper(android.os.Looper) View(android.view.View) Schedulers(io.reactivex.schedulers.Schedulers) RecyclerView(androidx.recyclerview.widget.RecyclerView) ContextCompat(androidx.core.content.ContextCompat) ItemTouchCallback(com.mikepenz.fastadapter.drag.ItemTouchCallback) LayoutInflater(android.view.LayoutInflater) Set(java.util.Set) ToastHelper(me.devsaki.hentoid.util.ToastHelper) SiteBookmark(me.devsaki.hentoid.database.domains.SiteBookmark) ViewGroup(android.view.ViewGroup) DragDropUtil(com.mikepenz.fastadapter.utils.DragDropUtil) ObjectBoxDAO(me.devsaki.hentoid.database.ObjectBoxDAO) R(me.devsaki.hentoid.R) ViewCompat.requireViewById(androidx.core.view.ViewCompat.requireViewById) List(java.util.List) Disposable(io.reactivex.disposables.Disposable) Nullable(androidx.annotation.Nullable) FastAdapter(com.mikepenz.fastadapter.FastAdapter) Toolbar(androidx.appcompat.widget.Toolbar) CollectionDAO(me.devsaki.hentoid.database.CollectionDAO) NotNull(org.jetbrains.annotations.NotNull) DialogFragment(androidx.fragment.app.DialogFragment) TextItem(me.devsaki.hentoid.viewholders.TextItem) SimpleDragCallback(com.mikepenz.fastadapter.drag.SimpleDragCallback) SelectExtension(com.mikepenz.fastadapter.select.SelectExtension) MaterialButton(com.google.android.material.button.MaterialButton) ItemTouchHelper(androidx.recyclerview.widget.ItemTouchHelper) SiteBookmark(me.devsaki.hentoid.database.domains.SiteBookmark) IDraggableViewHolder(me.devsaki.hentoid.viewholders.IDraggableViewHolder) FastAdapterPreClickSelectHelper(me.devsaki.hentoid.widget.FastAdapterPreClickSelectHelper)

Example 3 with Helper

use of me.devsaki.hentoid.util.Helper in project Hentoid by avluis.

the class LibraryContentFragment method setPagingMethod.

/**
 * Initialize the paging method of the screen
 *
 * @param isEndless True if endless mode has to be set; false if paged mode has to be set
 */
private void setPagingMethod(boolean isEndless, boolean isEditMode) {
    // Editing will always be done in Endless mode
    viewModel.setPagingMethod(isEndless || isEditMode);
    // RecyclerView horizontal centering
    ViewGroup.LayoutParams layoutParams = recyclerView.getLayoutParams();
    recyclerView.setLayoutParams(layoutParams);
    // Pager appearance
    if (!isEndless && !isEditMode) {
        pager.setCurrentPage(1);
        pager.show();
    } else
        pager.hide();
    // Adapter initialization
    if (isEndless && !isEditMode) {
        @ContentItem.ViewType int viewType;
        if (Preferences.Constant.LIBRARY_DISPLAY_LIST == Preferences.getLibraryDisplay())
            viewType = ContentItem.ViewType.LIBRARY;
        else
            viewType = ContentItem.ViewType.LIBRARY_GRID;
        pagedItemAdapter = new PagedModelAdapter<>(asyncDifferConfig, i -> new ContentItem(viewType), c -> new ContentItem(c, touchHelper, viewType, this::onDeleteSwipedBook));
        fastAdapter = FastAdapter.with(pagedItemAdapter);
        ContentItem item = new ContentItem(viewType);
        fastAdapter.registerItemFactory(item.getType(), item);
        itemAdapter = null;
    } else {
        // Paged mode or edit mode
        itemAdapter = new ItemAdapter<>();
        fastAdapter = FastAdapter.with(itemAdapter);
        pagedItemAdapter = null;
    }
    if (!fastAdapter.hasObservers())
        fastAdapter.setHasStableIds(true);
    // Item click listener
    fastAdapter.setOnClickListener((v, a, i, p) -> onItemClick(p, i));
    // Favourite button click listener
    fastAdapter.addEventHook(new ClickEventHook<ContentItem>() {

        @Override
        public void onClick(@NotNull View view, int i, @NotNull FastAdapter<ContentItem> fastAdapter, @NotNull ContentItem item) {
            if (item.getContent() != null)
                onBookFavouriteClick(item.getContent());
        }

        @org.jetbrains.annotations.Nullable
        @Override
        public View onBind(RecyclerView.@NotNull ViewHolder viewHolder) {
            if (viewHolder instanceof ContentItem.ContentViewHolder) {
                return ((ContentItem.ContentViewHolder) viewHolder).getFavouriteButton();
            }
            return super.onBind(viewHolder);
        }
    });
    // Site button click listener
    fastAdapter.addEventHook(new ClickEventHook<ContentItem>() {

        @Override
        public void onClick(@NotNull View view, int i, @NotNull FastAdapter<ContentItem> fastAdapter, @NotNull ContentItem item) {
            if (item.getContent() != null)
                onBookSourceClick(item.getContent());
        }

        @org.jetbrains.annotations.Nullable
        @Override
        public View onBind(RecyclerView.@NotNull ViewHolder viewHolder) {
            if (viewHolder instanceof ContentItem.ContentViewHolder) {
                return ((ContentItem.ContentViewHolder) viewHolder).getSiteButton();
            }
            return super.onBind(viewHolder);
        }
    });
    // "To top" button click listener (groups view only)
    fastAdapter.addEventHook(new ClickEventHook<ContentItem>() {

        @Override
        public void onClick(@NotNull View view, int position, @NotNull FastAdapter<ContentItem> fastAdapter, @NotNull ContentItem item) {
            itemTouchOnMove(position, 0);
        }

        @org.jetbrains.annotations.Nullable
        @Override
        public View onBind(RecyclerView.@NotNull ViewHolder viewHolder) {
            if (viewHolder instanceof ContentItem.ContentViewHolder) {
                return ((ContentItem.ContentViewHolder) viewHolder).getTopButton();
            }
            return super.onBind(viewHolder);
        }
    });
    // "To bottom" button click listener (groups view only)
    fastAdapter.addEventHook(new ClickEventHook<ContentItem>() {

        @Override
        public void onClick(@NotNull View view, int position, @NotNull FastAdapter<ContentItem> fastAdapter, @NotNull ContentItem item) {
            itemTouchOnMove(position, fastAdapter.getItemCount() - 1);
        }

        @org.jetbrains.annotations.Nullable
        @Override
        public View onBind(RecyclerView.@NotNull ViewHolder viewHolder) {
            if (viewHolder instanceof ContentItem.ContentViewHolder) {
                return ((ContentItem.ContentViewHolder) viewHolder).getBottomButton();
            }
            return super.onBind(viewHolder);
        }
    });
    // Gets (or creates and attaches if not yet existing) the extension from the given `FastAdapter`
    selectExtension = fastAdapter.getOrCreateExtension(SelectExtension.class);
    if (selectExtension != null) {
        selectExtension.setSelectable(true);
        selectExtension.setMultiSelect(true);
        selectExtension.setSelectOnLongClick(true);
        selectExtension.setSelectWithItemUpdate(true);
        selectExtension.setSelectionListener((item, b) -> this.onSelectionChanged());
        FastAdapterPreClickSelectHelper<ContentItem> helper = new FastAdapterPreClickSelectHelper<>(selectExtension);
        fastAdapter.setOnPreClickListener(helper::onPreClickListener);
        fastAdapter.setOnPreLongClickListener(helper::onPreLongClickListener);
    }
    // Drag, drop & swiping
    @DimenRes int dimen = (Preferences.Constant.LIBRARY_DISPLAY_LIST == Preferences.getLibraryDisplay()) ? R.dimen.delete_drawer_width_list : R.dimen.delete_drawer_width_grid;
    SimpleSwipeDrawerDragCallback dragSwipeCallback = new SimpleSwipeDrawerDragCallback(this, ItemTouchHelper.LEFT, this).withSwipeLeft(Helper.dimensAsDp(requireContext(), dimen)).withSensitivity(1.5f).withSurfaceThreshold(0.3f).withNotifyAllDrops(true);
    // Despite its name, that's actually to disable drag on long tap
    dragSwipeCallback.setIsDragEnabled(false);
    touchHelper = new ItemTouchHelper(dragSwipeCallback);
    touchHelper.attachToRecyclerView(recyclerView);
    recyclerView.setAdapter(fastAdapter);
    recyclerView.setHasFixedSize(true);
}
Also used : Bundle(android.os.Bundle) QueueActivity(me.devsaki.hentoid.activities.QueueActivity) NonNull(androidx.annotation.NonNull) AsyncDifferConfig(androidx.recyclerview.widget.AsyncDifferConfig) Uri(android.net.Uri) ImageView(android.widget.ImageView) ISwipeableViewHolder(me.devsaki.hentoid.viewholders.ISwipeableViewHolder) ClickEventHook(com.mikepenz.fastadapter.listeners.ClickEventHook) Attribute(me.devsaki.hentoid.database.domains.Attribute) AutofitGridLayoutManager(me.devsaki.hentoid.widget.AutofitGridLayoutManager) Chapter(me.devsaki.hentoid.database.domains.Chapter) OnBackPressedCallback(androidx.activity.OnBackPressedCallback) Site(me.devsaki.hentoid.enums.Site) Handler(android.os.Handler) Looper(android.os.Looper) Fragment(androidx.fragment.app.Fragment) EV_SEARCH(me.devsaki.hentoid.events.CommunicationEvent.EV_SEARCH) ItemTouchCallback(com.mikepenz.fastadapter.drag.ItemTouchCallback) RC_CONTENTS(me.devsaki.hentoid.events.CommunicationEvent.RC_CONTENTS) Set(java.util.Set) ToastHelper(me.devsaki.hentoid.util.ToastHelper) CommunicationEvent(me.devsaki.hentoid.events.CommunicationEvent) IdRes(androidx.annotation.IdRes) StringRes(androidx.annotation.StringRes) Nullable(androidx.annotation.Nullable) ProcessEvent(me.devsaki.hentoid.events.ProcessEvent) ThemeHelper(me.devsaki.hentoid.util.ThemeHelper) FastAdapter(com.mikepenz.fastadapter.FastAdapter) ExtensionsFactories(com.mikepenz.fastadapter.extensions.ExtensionsFactories) QUEUE_NEW_DOWNLOADS_POSITION_TOP(me.devsaki.hentoid.util.Preferences.Constant.QUEUE_NEW_DOWNLOADS_POSITION_TOP) LinearLayoutManager(androidx.recyclerview.widget.LinearLayoutManager) QUEUE_NEW_DOWNLOADS_POSITION_BOTTOM(me.devsaki.hentoid.util.Preferences.Constant.QUEUE_NEW_DOWNLOADS_POSITION_BOTTOM) Debouncer(me.devsaki.hentoid.util.Debouncer) Stream(com.annimon.stream.Stream) IDraggableViewHolder(me.devsaki.hentoid.viewholders.IDraggableViewHolder) AddQueueMenu(me.devsaki.hentoid.widget.AddQueueMenu) SystemClock(android.os.SystemClock) BaseTransientBottomBar(com.google.android.material.snackbar.BaseTransientBottomBar) AppUpdatedEvent(me.devsaki.hentoid.events.AppUpdatedEvent) ArrayList(java.util.ArrayList) ItemTouchHelper(androidx.recyclerview.widget.ItemTouchHelper) Helper(me.devsaki.hentoid.util.Helper) ViewModelProvider(androidx.lifecycle.ViewModelProvider) FastScrollerBuilder(me.zhanghai.android.fastscroll.FastScrollerBuilder) Gravity(android.view.Gravity) R(me.devsaki.hentoid.R) SimpleSwipeDrawerCallback(com.mikepenz.fastadapter.swipe.SimpleSwipeDrawerCallback) SharedPreferences(android.content.SharedPreferences) EV_ADVANCED_SEARCH(me.devsaki.hentoid.events.CommunicationEvent.EV_ADVANCED_SEARCH) SelectExtensionFactory(com.mikepenz.fastadapter.select.SelectExtensionFactory) Content(me.devsaki.hentoid.database.domains.Content) LibraryViewModel(me.devsaki.hentoid.viewmodels.LibraryViewModel) DimenRes(androidx.annotation.DimenRes) LibraryPager(me.devsaki.hentoid.widget.LibraryPager) FastAdapterDiffUtil(com.mikepenz.fastadapter.diff.FastAdapterDiffUtil) MaterialAlertDialogBuilder(com.google.android.material.dialog.MaterialAlertDialogBuilder) StartActivityForResult(androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult) PagedList(androidx.paging.PagedList) ContentHelper(me.devsaki.hentoid.util.ContentHelper) ContentItemBundle(me.devsaki.hentoid.activities.bundles.ContentItemBundle) Optional(com.annimon.stream.Optional) BuildConfig(me.devsaki.hentoid.BuildConfig) ItemAdapter(com.mikepenz.fastadapter.adapters.ItemAdapter) StringHelper(me.devsaki.hentoid.util.StringHelper) Consumer(com.annimon.stream.function.Consumer) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) EV_UPDATE_SORT(me.devsaki.hentoid.events.CommunicationEvent.EV_UPDATE_SORT) DiffUtil(androidx.recyclerview.widget.DiffUtil) EV_DISABLE(me.devsaki.hentoid.events.CommunicationEvent.EV_DISABLE) SimpleSwipeDrawerDragCallback(com.mikepenz.fastadapter.swipe_drag.SimpleSwipeDrawerDragCallback) ThreadMode(org.greenrobot.eventbus.ThreadMode) ViewGroup(android.view.ViewGroup) Timber(timber.log.Timber) ViewModelFactory(me.devsaki.hentoid.viewmodels.ViewModelFactory) Objects(java.util.Objects) ViewCompat.requireViewById(androidx.core.view.ViewCompat.requireViewById) List(java.util.List) CompositeDisposable(io.reactivex.disposables.CompositeDisposable) TextView(android.widget.TextView) Grouping(me.devsaki.hentoid.enums.Grouping) DocumentFile(androidx.documentfile.provider.DocumentFile) NotNull(org.jetbrains.annotations.NotNull) Snackbar(com.google.android.material.snackbar.Snackbar) Group(me.devsaki.hentoid.database.domains.Group) InputDialog(me.devsaki.hentoid.ui.InputDialog) Context(android.content.Context) LibraryActivity(me.devsaki.hentoid.activities.LibraryActivity) ContentItem(me.devsaki.hentoid.viewholders.ContentItem) Preferences(me.devsaki.hentoid.util.Preferences) DiffCallback(com.mikepenz.fastadapter.diff.DiffCallback) Intent(android.content.Intent) StatusContent(me.devsaki.hentoid.enums.StatusContent) MenuItem(android.view.MenuItem) IAdapter(com.mikepenz.fastadapter.IAdapter) SuppressLint(android.annotation.SuppressLint) QUEUE_NEW_DOWNLOADS_POSITION_ASK(me.devsaki.hentoid.util.Preferences.Constant.QUEUE_NEW_DOWNLOADS_POSITION_ASK) FastAdapterPreClickSelectHelper(me.devsaki.hentoid.widget.FastAdapterPreClickSelectHelper) EV_ENABLE(me.devsaki.hentoid.events.CommunicationEvent.EV_ENABLE) SelectExtension(com.mikepenz.fastadapter.select.SelectExtension) EventBus(org.greenrobot.eventbus.EventBus) WeakReference(java.lang.ref.WeakReference) SearchActivityBundle(me.devsaki.hentoid.activities.bundles.SearchActivityBundle) ActivityResultLauncher(androidx.activity.result.ActivityResultLauncher) LayoutInflater(android.view.LayoutInflater) FirebaseCrashlytics(com.google.firebase.crashlytics.FirebaseCrashlytics) FileHelper(me.devsaki.hentoid.util.FileHelper) DragDropUtil(com.mikepenz.fastadapter.utils.DragDropUtil) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) PopupMenu(androidx.appcompat.widget.PopupMenu) Subscribe(org.greenrobot.eventbus.Subscribe) SearchActivity(me.devsaki.hentoid.activities.SearchActivity) ProgressDialogFragment(me.devsaki.hentoid.fragments.ProgressDialogFragment) Collectors.toCollection(com.annimon.stream.Collectors.toCollection) Activity(android.app.Activity) PagedModelAdapter(com.mikepenz.fastadapter.paged.PagedModelAdapter) Collections(java.util.Collections) ActivityResult(androidx.activity.result.ActivityResult) SimpleSwipeDrawerDragCallback(com.mikepenz.fastadapter.swipe_drag.SimpleSwipeDrawerDragCallback) ViewGroup(android.view.ViewGroup) SelectExtension(com.mikepenz.fastadapter.select.SelectExtension) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) TextView(android.widget.TextView) NotNull(org.jetbrains.annotations.NotNull) SuppressLint(android.annotation.SuppressLint) DimenRes(androidx.annotation.DimenRes) ItemTouchHelper(androidx.recyclerview.widget.ItemTouchHelper) RecyclerView(androidx.recyclerview.widget.RecyclerView) FastAdapterPreClickSelectHelper(me.devsaki.hentoid.widget.FastAdapterPreClickSelectHelper) ContentItem(me.devsaki.hentoid.viewholders.ContentItem)

Aggregations

SuppressLint (android.annotation.SuppressLint)3 Context (android.content.Context)3 Bundle (android.os.Bundle)3 Handler (android.os.Handler)3 Looper (android.os.Looper)3 LayoutInflater (android.view.LayoutInflater)3 MenuItem (android.view.MenuItem)3 View (android.view.View)3 ViewGroup (android.view.ViewGroup)3 NonNull (androidx.annotation.NonNull)3 Nullable (androidx.annotation.Nullable)3 ViewCompat.requireViewById (androidx.core.view.ViewCompat.requireViewById)3 ItemTouchHelper (androidx.recyclerview.widget.ItemTouchHelper)3 RecyclerView (androidx.recyclerview.widget.RecyclerView)3 Stream (com.annimon.stream.Stream)3 FastAdapter (com.mikepenz.fastadapter.FastAdapter)3 ItemAdapter (com.mikepenz.fastadapter.adapters.ItemAdapter)3 ItemTouchCallback (com.mikepenz.fastadapter.drag.ItemTouchCallback)3 SelectExtension (com.mikepenz.fastadapter.select.SelectExtension)3 DragDropUtil (com.mikepenz.fastadapter.utils.DragDropUtil)3