package com.fastaccess.ui.modules.floating; import android.graphics.Point; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.content.Loader; import android.view.WindowManager; import com.fastaccess.ui.widgets.floating.FloatingTouchCallback; import com.fastaccess.ui.widgets.floating.FloatingView; import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; import java.util.List; /** * Created by Kosh on 23 Oct 2016, 12:14 AM */ public interface BaseFloatingMvp { interface BaseView<M> { Loader getLoader(); BaseRecyclerAdapter getAdapter(); BaseFloatingPresenter<M, ? extends BaseView<M>> getPresenter(); void onLoaderLoaded(@Nullable List<M> data); void onViewMoving(int x, int y); void onStoppedMoving(); void onLongPressed(); void onDoubleTapped(); void onSingleTapped(); void onTouchedOutside(); void onBackPressed(); void onDestroy(); void onToggleVisibility(boolean showFloating); void onConfigChanged(int orientation); void onUpdateXY(); void setupParamsSize(); } interface BasePresenter<M, V extends BaseView<M>> extends BaseViewHolder.OnItemClickListener<M>, FloatingTouchCallback, Loader.OnLoadCompleteListener<List<M>> { void onUpdateWindowParams(@NonNull WindowManager windowManager, @NonNull WindowManager.LayoutParams originalParams, @NonNull FloatingView floatingView, int x, int y); void onToggleVisibility(boolean showFloating, @NonNull WindowManager windowManager, @NonNull WindowManager.LayoutParams originalParams, @NonNull android.view.View view, @NonNull FloatingView floatingView, boolean isHorizontal); void onMoveToEdge(@NonNull WindowManager windowManager, @NonNull WindowManager.LayoutParams originalParams, @NonNull FloatingView floatingView, @NonNull Point szWindow); } }