public void SetCategories(ICollection <string> categories)
 {
     CardMetadata.Data metadata      = GetMetadata();
     string[]          categoriesArr = new string[categories.Count];
     categories.CopyTo(categoriesArr, 0);
     metadata.categories = categoriesArr;
     SetMetadata(metadata);
 }
        void SetMetadata(CardMetadata.Data data)
        {
            string metadataJson = item.GetMetadataJson();
            var    existing     = metadataJson != null && metadataJson != "" ?
                                  JsonUtility.FromJson <CardMetadata>(metadataJson) : CardMetadata.DefaultCardMetadata;

            existing.cardSystemCardData = data;
            item.SetMetadataJson(JsonUtility.ToJson(existing));
        }
 public static string[] GetEffectiveCardCategories(Behavior data)
 {
     if (data.metadataJson == null || data.metadataJson.Length == 0)
     {
         // Legacy cards just go in the misc category
         return(CUSTOM_CATEGORIES);
     }
     else
     {
         CardMetadata.Data md = GetMetaDataFor(data);
         if (md.isCard)
         {
             return(md.categories);
         }
         else
         {
             // Probably a panel.
             return(null);
         }
     }
 }
        public CardMetadata.Data GetMetadata()
        {
            if (!item.GetMetadataJson().IsNullOrEmpty())
            {
                var existing = JsonUtility.FromJson <CardMetadata>(item.GetMetadataJson());
                if (existing.cardSystemCardData.isCard)
                {
                    return(existing.cardSystemCardData);
                }
            }
            // Create MD structure using the legacy fields Consider them custom cards.
            // NOTE: This will only happen for user embedded legacy behaviors, since
            // builtin legacy ones get filtered out before hand.
            var md = new CardMetadata.Data();

            md.categories        = BehaviorCards.CUSTOM_CATEGORIES;
            md.description       = item.GetDescription();
            md.imageResourcePath = placeHolderImageResPath;
            md.isCard            = false;
            md.listPriority      = 0;
            md.title             = item.GetName();
            return(md);
        }
 public void SetImagePath(string imagePath)
 {
     CardMetadata.Data data = GetMetadata();
     data.imageResourcePath = imagePath;
     SetMetadata(data);
 }
 public void SetDescription(string description)
 {
     CardMetadata.Data data = GetMetadata();
     data.description = description;
     SetMetadata(data);
 }
 public void SetTitle(string title)
 {
     CardMetadata.Data data = GetMetadata();
     data.title = title;
     SetMetadata(data);
 }