package br.com.androidzin.launchablesitens;
import javax.xml.parsers.ParserConfigurationException;
import org.json.JSONException;
import org.json.JSONObject;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import android.graphics.drawable.Drawable;
public abstract class LaunchableItem implements Comparable<LaunchableItem> {
protected enum ItemType{ ACTIVITY, WIDGET};
protected static final String PACKAGE_NAME = "launcher:packageName";
protected static final String CLASS_NAME = "launcher:className";
protected static final String LAUNCHER_SCREEN = "launcher:screen";
protected static final String X = "launcher:x";
protected static final String Y = "launcher:y";
protected static final String SPAN_X = "launcher:spanX";
protected static final String SPAN_Y = "launcher:spanY";
private String itemLaunchable;
private String itemPackage;
private Drawable itemIcon;
private boolean isSelected;
private int homeScreenNumber;
public int getHomeScreenNumber() {
return homeScreenNumber;
}
public void setHomeScreenNumber(int homeScreenNumber) {
this.homeScreenNumber = homeScreenNumber;
}
public LaunchableItem(String itemLaunchable, String itemPackage,
Drawable itemIcon) {
super();
this.itemLaunchable = itemLaunchable;
this.itemPackage = itemPackage;
this.itemIcon = itemIcon;
isSelected = false;
}
public String getItemLaunchable() {
return itemLaunchable;
}
public void setItemLaunchable(String itemLaunchable) {
this.itemLaunchable = itemLaunchable;
}
public String getItemPackage() {
return itemPackage;
}
public void setItemPackage(String itemPackage) {
this.itemPackage = itemPackage;
}
public Drawable getItemIcon() {
return itemIcon;
}
public void setItemIcon(Drawable itemIcon) {
this.itemIcon = itemIcon;
}
public boolean isSelected() {
return isSelected;
}
public void setSelected(boolean isSelected) {
this.isSelected = isSelected;
}
public JSONObject toJSON(){
JSONObject root = new JSONObject();
try {
root.put("packageName", getItemPackage());
root.put("className", getItemLaunchable());
return root;
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
public abstract Element toXML(Document document) throws ParserConfigurationException;
public abstract ItemType getType();
@Override
public int compareTo(LaunchableItem another) {
if(homeScreenNumber < another.getHomeScreenNumber()){
return -1;
} else if (homeScreenNumber == another.getHomeScreenNumber()){
return 0;
} else {
return 1;
}
}
}