public void UpdateNDEFMessage(NDEFMessage message) { CleanupRecordItems(); float y = 0; List <NDEFRecord> records = message.Records; int length = records.Count; for (int i = 0; i < length; i++) { NDEFRecord record = records[i]; RecordItem recordItem = null; switch (record.Type) { case NDEFRecordType.TEXT: recordItem = CreateRecordItem(textRecordItemPrefab); TextRecord textRecord = (TextRecord)record; recordItem.UpdateLabel(string.Format(TEXT_RECORD_FORMAT, NDEFRecordType.TEXT, textRecord.text, textRecord.languageCode, textRecord.textEncoding)); tagInfoContentLabel.text = string.Format(TEXT_RECORD_FORMAT, NDEFRecordType.TEXT, textRecord.text, textRecord.languageCode, textRecord.textEncoding); //infosSenderText.text = textRecord.text; senderController.SendValue(textRecord.text); break; case NDEFRecordType.URI: recordItem = CreateRecordItem(uriRecordItemPrefab); UriRecord uriRecord = (UriRecord)record; recordItem.UpdateLabel(string.Format(URI_RECORD_FORMAT, NDEFRecordType.URI, uriRecord.fullUri, uriRecord.uri, uriRecord.protocol)); break; case NDEFRecordType.MIME_MEDIA: recordItem = CreateRecordItem(mimeMediaRecordItemPrefab); MimeMediaRecord mimeMediaRecord = (MimeMediaRecord)record; recordItem.UpdateLabel(string.Format(MIME_MEDIA_RECORD_FORMAT, NDEFRecordType.MIME_MEDIA, mimeMediaRecord.mimeType)); ((ImageRecordItem)recordItem).LoadImage(mimeMediaRecord.mimeData); break; case NDEFRecordType.EXTERNAL_TYPE: recordItem = CreateRecordItem(externalTypeRecordItemPrefab); ExternalTypeRecord externalTypeRecord = (ExternalTypeRecord)record; int dataLength = externalTypeRecord.domainData.Length; string dataValue = Encoding.UTF8.GetString(externalTypeRecord.domainData); recordItem.UpdateLabel(string.Format(EXTERNAL_TYPE_FORMAT, NDEFRecordType.EXTERNAL_TYPE, externalTypeRecord.domainName, externalTypeRecord.domainType, dataLength, dataValue)); break; case NDEFRecordType.SMART_POSTER: recordItem = CreateRecordItem(smartPosterRecordItemPrefab); SmartPosterRecord smartPosterRecord = (SmartPosterRecord)record; int totalRecords = smartPosterRecord.titleRecords.Count + smartPosterRecord.iconRecords.Count + smartPosterRecord.extraRecords.Count; recordItem.UpdateLabel(string.Format(SMART_POSTER_RECORD_FORMAT, NDEFRecordType.SMART_POSTER, smartPosterRecord.uriRecord.fullUri, smartPosterRecord.action, smartPosterRecord.size, smartPosterRecord.mimeType, totalRecords)); break; } recordItem.RectTransform.anchoredPosition = new Vector2(0, y); y -= recordItem.RectTransform.rect.height; y -= Y_SPACING; } ndefMessageScrollRect.content.sizeDelta = new Vector2(0, Mathf.Abs(y)); }
private RecordItem CreateRecordItem(RecordItem prefab) { RecordItem recordItem = Instantiate(prefab); Vector2 sizeDelta = recordItem.RectTransform.sizeDelta; recordItem.RectTransform.SetParent(ndefMessageScrollRect.content); recordItem.RectTransform.localScale = Vector2.one; recordItem.RectTransform.localRotation = Quaternion.identity; recordItem.RectTransform.localPosition = Vector3.zero; recordItem.RectTransform.sizeDelta = sizeDelta; return(recordItem); }