public void writeToParcel(Parcel dest, int parcelableFlags) {
   if (activityInfo != null) {
     dest.writeInt(1);
     activityInfo.writeToParcel(dest, parcelableFlags);
   } else if (serviceInfo != null) {
     dest.writeInt(2);
     serviceInfo.writeToParcel(dest, parcelableFlags);
   } else if (providerInfo != null) {
     dest.writeInt(3);
     providerInfo.writeToParcel(dest, parcelableFlags);
   } else {
     dest.writeInt(0);
   }
   if (filter != null) {
     dest.writeInt(1);
     filter.writeToParcel(dest, parcelableFlags);
   } else {
     dest.writeInt(0);
   }
   dest.writeInt(priority);
   dest.writeInt(preferredOrder);
   dest.writeInt(match);
   dest.writeInt(specificIndex);
   dest.writeInt(labelRes);
   TextUtils.writeToParcel(nonLocalizedLabel, dest, parcelableFlags);
   dest.writeInt(icon);
   dest.writeString(resolvePackageName);
   dest.writeInt(system ? 1 : 0);
 }