package com.fastaccess.ui.modules.floating.apps; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.content.Loader; import android.widget.Toast; import com.fastaccess.R; import com.fastaccess.data.dao.AppsModel; import com.fastaccess.provider.loader.SelectedAppsLoader; import com.fastaccess.ui.adapter.FloatingAppsAdapter; import com.fastaccess.ui.adapter.viewholder.FloatingAppsViewHolder; import com.fastaccess.ui.modules.floating.BaseFloatingView; import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; import java.util.ArrayList; import java.util.List; /** * Created by Kosh on 14 Oct 2016, 9:12 PM */ public class FloatingVHView extends BaseFloatingView<AppsModel> { private FloatingAppsAdapter adapter; private SelectedAppsLoader appsLoader; private FloatingVHPresenter presenter; protected FloatingVHView(@NonNull Context context, boolean isHorizontal) { super(context, isHorizontal); } public static FloatingVHView with(@NonNull Context context, boolean isHorizontal) { return new FloatingVHView(context, isHorizontal); } @Override public Loader getLoader() { if (appsLoader == null) { appsLoader = new SelectedAppsLoader(context); appsLoader.registerListener(10, getPresenter()); appsLoader.startLoading(); } return appsLoader; } @Override public void onLoaderLoaded(@Nullable List<AppsModel> data) { if (data == null || data.isEmpty()) { Toast.makeText(context, R.string.no_apps_selected, Toast.LENGTH_LONG).show(); } super.onLoaderLoaded(data); } @Override public BaseRecyclerAdapter<AppsModel, FloatingAppsViewHolder, BaseViewHolder.OnItemClickListener<AppsModel>> getAdapter() { if (adapter == null) { adapter = new FloatingAppsAdapter(new ArrayList<AppsModel>(), getPresenter(), isHorizontal); } return adapter; } @Override public FloatingVHPresenter getPresenter() { if (presenter == null) presenter = new FloatingVHPresenter(this); return presenter; } }