code: public static ResolveInfo newResolveInfo(ResolveInfo orig) {
      ResolveInfo copy;
      if (Build.VERSION.SDK_INT >= 17) {
        copy = new ResolveInfo(orig);
      } else {
        copy = new ResolveInfo();
        copy.activityInfo = orig.activityInfo;
        copy.serviceInfo = orig.serviceInfo;
        copy.filter = orig.filter;
        copy.priority = orig.priority;
        copy.preferredOrder = orig.preferredOrder;
        copy.match = orig.match;
        copy.specificIndex = orig.specificIndex;
        copy.labelRes = orig.labelRes;
        copy.nonLocalizedLabel = orig.nonLocalizedLabel;
        copy.icon = orig.icon;
        copy.resolvePackageName = orig.resolvePackageName;
      }
      // For some reason isDefault field is not copied by the copy constructor.
      copy.isDefault = orig.isDefault;
      return copy;
    }
docs: Copies {@link ResolveInfo}.
  
  <p>Note that this is shallow copy as performed by the copy constructor existing in API 17.