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 CREATOR = new Creator() { @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(); } }