129 lines
3.3 KiB
Java
129 lines
3.3 KiB
Java
package com.uiuios.aios.bean;
|
|
|
|
import android.content.Context;
|
|
import android.content.pm.PackageManager;
|
|
import android.content.pm.ResolveInfo;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.JsonParser;
|
|
|
|
import java.io.Serializable;
|
|
|
|
public class DesktopIcon implements Serializable, Parcelable {
|
|
private static final long serialVersionUID = 3358230413497783708L;
|
|
|
|
protected String mTitle;
|
|
protected String mClass;
|
|
protected String mPackage;
|
|
protected Drawable icon;
|
|
|
|
int position;
|
|
|
|
public DesktopIcon() {
|
|
|
|
}
|
|
|
|
private DesktopIcon(Parcel in) {
|
|
mPackage = in.readString();
|
|
mTitle = in.readString();
|
|
position = in.readInt();
|
|
}
|
|
|
|
@Override
|
|
public void writeToParcel(Parcel dest, int flags) {
|
|
dest.writeString(mPackage);
|
|
dest.writeString(mTitle);
|
|
dest.writeInt(position);
|
|
}
|
|
|
|
@Override
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
public static final Creator<DesktopIcon> CREATOR = new Creator<DesktopIcon>() {
|
|
@Override
|
|
public DesktopIcon createFromParcel(Parcel in) {
|
|
return new DesktopIcon(in);
|
|
}
|
|
|
|
@Override
|
|
public DesktopIcon[] newArray(int size) {
|
|
return new DesktopIcon[size];
|
|
}
|
|
};
|
|
|
|
public String getPackage() {
|
|
return mPackage;
|
|
}
|
|
|
|
public void setPackage(String aPackage) {
|
|
this.mPackage = aPackage;
|
|
}
|
|
|
|
public String getClazz() {
|
|
return mClass;
|
|
}
|
|
|
|
public void setClass(String aClass) {
|
|
this.mClass = aClass;
|
|
}
|
|
|
|
public Drawable getIcon() {
|
|
return icon;
|
|
}
|
|
|
|
public void setIcon(Drawable icon) {
|
|
this.icon = icon;
|
|
}
|
|
|
|
public String getTitle() {
|
|
return mTitle;
|
|
}
|
|
|
|
public void setTitle(String title) {
|
|
this.mTitle = title;
|
|
}
|
|
|
|
public int getPosition() {
|
|
return position;
|
|
}
|
|
|
|
public void setPosition(int position) {
|
|
this.position = position;
|
|
}
|
|
|
|
public static DesktopIcon creatDesktopIcon(Context context, ResolveInfo resolveInfo) {
|
|
PackageManager pm = context.getPackageManager();
|
|
DesktopIcon desktopIcon = new DesktopIcon();
|
|
desktopIcon.setPackage(resolveInfo.activityInfo.packageName);
|
|
desktopIcon.setClass(resolveInfo.activityInfo.name);
|
|
desktopIcon.setIcon(resolveInfo.loadIcon(pm));
|
|
desktopIcon.setTitle(resolveInfo.loadLabel(pm).toString());
|
|
desktopIcon.setPosition(0);
|
|
return desktopIcon;
|
|
}
|
|
|
|
public static DesktopIcon creatDesktopIcon(Context context, ResolveInfo resolveInfo, int position) {
|
|
PackageManager pm = context.getPackageManager();
|
|
DesktopIcon desktopIcon = new DesktopIcon();
|
|
desktopIcon.setPackage(resolveInfo.activityInfo.packageName);
|
|
desktopIcon.setClass(resolveInfo.activityInfo.name);
|
|
desktopIcon.setIcon(resolveInfo.loadIcon(pm));
|
|
desktopIcon.setTitle(resolveInfo.loadLabel(pm).toString());
|
|
desktopIcon.setPosition(position);
|
|
return desktopIcon;
|
|
}
|
|
|
|
@NonNull
|
|
@Override
|
|
public String toString() {
|
|
return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();
|
|
}
|
|
}
|