package it.michelelacorte.androidshortcuts;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.GridView;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import it.michelelacorte.androidshortcuts.util.GridSize;
/**
* Created by Michele on 20/02/2017.
*/
public class ShortcutsBuilder {
private static final String TAG = "ShortcutsBuilder";
private AdapterView gridView;
private Activity activity;
private ViewGroup masterLayout;
private GridSize gridSize;
private int currentXPosition;
private int currentYPosition;
private int rowHeight;
private int optionLayoutStyle;
private Shortcuts[] shortcutsArray;
private List<Shortcuts> shortcutsList;
private Drawable packageImage;
private int bottomSpace;
private boolean isHotseatTouched;
private int positionInGrid;
private int dockItem;
private boolean IS_NORMAL = false;
private boolean IS_LAUNCHER3 = false;
public ShortcutsBuilder(NormalShortcuts normalShortcuts)
{
if(normalShortcuts.gridView == null){
Log.e(TAG, "Impossible to set AdapterView to NULL! Please Check it");
}
if(normalShortcuts.activity == null){
Log.e(TAG, "Impossible to set Activity to NULL! Please Check it");
}
if(normalShortcuts.masterLayout == null){
Log.e(TAG, "Impossible to set ViewGroup to NULL! Please Check it");
}
if(shortcutsArray == null || shortcutsArray.length == 0){
Log.e(TAG, "Impossible to set ShortcutsArray to NULL! Please Check it");
}
if(shortcutsList == null || shortcutsList.size() == 0){
Log.e(TAG, "Impossible to set ShortcutsList to NULL! Please Check it");
}
if(packageImage == null){
Log.e(TAG, "Impossible to set package image to NULL! Please Check it");
}
this.gridView = normalShortcuts.gridView;
this.activity = normalShortcuts.activity;
this.masterLayout = normalShortcuts.masterLayout;
this.currentXPosition = normalShortcuts.currentXPosition;
this.currentYPosition = normalShortcuts.currentYPosition;
this.rowHeight = normalShortcuts.rowHeight;
this.optionLayoutStyle = normalShortcuts.optionLayoutStyle;
this.shortcutsArray = normalShortcuts.shortcutsArray;
this.shortcutsList = normalShortcuts.shortcutsList;
this.packageImage = normalShortcuts.packageImage;
IS_NORMAL = true;
}
public ShortcutsBuilder(Launcher3Shortcuts launcher3Shortcuts)
{
if(launcher3Shortcuts.gridSize == null){
Log.e(TAG, "Impossible to set GridSize to NULL! Please Check it");
}
if(launcher3Shortcuts.activity == null){
Log.e(TAG, "Impossible to set Activity to NULL! Please Check it");
}
if(launcher3Shortcuts.masterLayout == null){
Log.e(TAG, "Impossible to set ViewGroup to NULL! Please Check it");
}
if(shortcutsArray == null || shortcutsArray.length == 0){
Log.e(TAG, "Impossible to set ShortcutsArray to NULL! Please Check it");
}
if(shortcutsList == null || shortcutsList.size() == 0){
Log.e(TAG, "Impossible to set ShortcutsList to NULL! Please Check it");
}
if(packageImage == null){
Log.e(TAG, "Impossible to set package image to NULL! Please Check it");
}
this.gridSize = launcher3Shortcuts.gridSize;
this.activity = launcher3Shortcuts.activity;
this.masterLayout = launcher3Shortcuts.masterLayout;
this.rowHeight = launcher3Shortcuts.rowHeight;
this.optionLayoutStyle = launcher3Shortcuts.optionLayoutStyle;
this.shortcutsArray = launcher3Shortcuts.shortcutsArray;
this.shortcutsList = launcher3Shortcuts.shortcutsList;
this.packageImage = launcher3Shortcuts.packageImage;
this.isHotseatTouched = launcher3Shortcuts.isHotseatTouched;
this.bottomSpace = launcher3Shortcuts.bottomSpace;
this.positionInGrid = launcher3Shortcuts.positionInGrid;
this.dockItem = launcher3Shortcuts.dockItem;
IS_LAUNCHER3 = true;
}
public static class Builder{
private Activity activity;
private ViewGroup masterLayout;
public Builder(Activity activity, ViewGroup masterLayout){
this.activity = activity;
this.masterLayout = masterLayout;
}
public NormalShortcuts normalShortcuts(AdapterView gridView, int currentXPosition, int currentYPosition, int rowHeight)
{
return new NormalShortcuts(activity, masterLayout, gridView, currentXPosition, currentYPosition, rowHeight);
}
public NormalShortcuts normalShortcuts(GridView gridView, int currentXPosition, int currentYPosition, int rowHeight)
{
return new NormalShortcuts(activity, masterLayout, gridView, currentXPosition, currentYPosition, rowHeight);
}
public Launcher3Shortcuts launcher3Shortcuts(GridSize gridSize, int positionInGrid, int rowHeight, int bottomSpace, boolean isHotseatTouched, int dockItem)
{
return new Launcher3Shortcuts(activity, masterLayout, gridSize, positionInGrid, rowHeight, bottomSpace, isHotseatTouched, dockItem);
}
}
public static class NormalShortcuts{
private AdapterView gridView;
private Activity activity;
private ViewGroup masterLayout;
private int currentXPosition;
private int currentYPosition;
private int rowHeight;
private int optionLayoutStyle;
private Shortcuts[] shortcutsArray;
private List<Shortcuts> shortcutsList;
private Drawable packageImage;
public NormalShortcuts(Activity activity, ViewGroup masterLayout, AdapterView gridView, int currentXPosition, int currentYPosition, int rowHeight){
this.activity = activity;
this.masterLayout = masterLayout;
this.gridView = gridView;
this.currentXPosition = currentXPosition;
this.currentYPosition = currentYPosition;
this.rowHeight = rowHeight;
}
public NormalShortcuts(Activity activity, ViewGroup masterLayout, GridView gridView, int currentXPosition, int currentYPosition, int rowHeight){
this.activity = activity;
this.masterLayout = masterLayout;
this.gridView = gridView;
this.currentXPosition = currentXPosition;
this.currentYPosition = currentYPosition;
this.rowHeight = rowHeight;
}
public NormalShortcuts setShortcutsArray(@NotNull Shortcuts... shortcuts){
this.shortcutsArray = shortcuts;
return this;
}
public NormalShortcuts setShortcutsList(@NotNull List<Shortcuts> shortcuts){
this.shortcutsList = new ArrayList<>(shortcuts);
return this;
}
public NormalShortcuts setPackageImage(Drawable packageImage){
this.packageImage = packageImage;
return this;
}
public NormalShortcuts setOptionLayoutStyle(int optionLayoutStyle)
{
this.optionLayoutStyle = optionLayoutStyle;
return this;
}
public ShortcutsBuilder build() {
return new ShortcutsBuilder(this);
}
}
public static class Launcher3Shortcuts{
private Activity activity;
private ViewGroup masterLayout;
private GridSize gridSize;
private int optionLayoutStyle;
private Shortcuts[] shortcutsArray;
private List<Shortcuts> shortcutsList;
private Drawable packageImage;
private int rowHeight;
private int bottomSpace;
private boolean isHotseatTouched;
private int positionInGrid;
private int dockItem;
public Launcher3Shortcuts(Activity activity, ViewGroup masterLayout, GridSize gridSize, int positionInGrid, int rowHeight, int bottomSpace, boolean isHotseatTouched, int dockItem){
this.activity = activity;
this.masterLayout = masterLayout;
this.gridSize = gridSize;
this.rowHeight = rowHeight;
this.bottomSpace = bottomSpace;
this.isHotseatTouched = isHotseatTouched;
this.positionInGrid = positionInGrid;
this.dockItem = dockItem;
}
public Launcher3Shortcuts setShortcutsArray(@NotNull Shortcuts... shortcuts){
this.shortcutsArray = shortcuts;
return this;
}
public Launcher3Shortcuts setShortcutsList(@NotNull List<Shortcuts> shortcuts){
this.shortcutsList = new ArrayList<>(shortcuts);
return this;
}
public Launcher3Shortcuts setPackageImage(Drawable packageImage){
this.packageImage = packageImage;
return this;
}
public Launcher3Shortcuts setOptionLayoutStyle(int optionLayoutStyle)
{
this.optionLayoutStyle = optionLayoutStyle;
return this;
}
public ShortcutsBuilder build() {
return new ShortcutsBuilder(this);
}
}
public Activity getActivity() {
return activity;
}
public AdapterView getGridView() {
return gridView;
}
public ViewGroup getMasterLayout() {
return masterLayout;
}
public GridSize getGridSize() {
return gridSize;
}
public int getCurrentXPosition() {
return currentXPosition;
}
public int getOptionLayoutStyle() {
return optionLayoutStyle;
}
public int getRowHeight() {
return rowHeight;
}
public int getCurrentYPosition() {
return currentYPosition;
}
public Shortcuts[] getShortcutsArray() {
return shortcutsArray;
}
public List<Shortcuts> getShortcutsList() {
return shortcutsList;
}
public boolean isLauncher3() {
return IS_LAUNCHER3;
}
public boolean isNormal() {
return IS_NORMAL;
}
public Drawable getPackageImage() {
return packageImage;
}
public boolean isHotseatTouched() {
return isHotseatTouched;
}
public int getPositionInGrid() {
return positionInGrid;
}
public int getBottomSpace() {
return bottomSpace;
}
public int getDockItem() {
return dockItem;
}
}