static QNdefMessage _bookmarkToMessage(QString url,
                                       QString name,
                                       QString icon)
{
    (void) icon;

    QNdefMessage message;

    QNdefNfcUriRecord u;
    u.setUri(url);

    if (name != "") {
        SmartPosterRecord sp;

        sp.setUri(u);

        QNdefNfcTextRecord t;
        t.setText(name);
        t.setLocale(Util::currentLanguageCode());

        QList<QNdefNfcTextRecord> ts;
        ts << t;
        sp.setTitles(ts);

        message << sp;
    } else {
        message << u;
    }

    return message;
}
void TextRecordEditor::setRecord(const QNdefNfcTextRecord &textRecord)
{
    ui->text->setText(textRecord.text());
    ui->locale->setText(textRecord.locale());

    if (textRecord.encoding() == QNdefNfcTextRecord::Utf8)
        ui->encoding->setCurrentIndex(0);
    else if (textRecord.encoding() == QNdefNfcTextRecord::Utf16)
        ui->encoding->setCurrentIndex(1);
}
Ejemplo n.º 3
0
void tst_QNdefRecord::tst_textRecord()
{
    QFETCH(QString, locale);
    QFETCH(QString, text);
    QFETCH(bool, utf8);
    QFETCH(QByteArray, payload);

    // test setters
    {
        QNdefNfcTextRecord record;
        record.setLocale(locale);
        record.setText(text);
        record.setEncoding(utf8 ? QNdefNfcTextRecord::Utf8 : QNdefNfcTextRecord::Utf16);

        QCOMPARE(record.payload(), payload);

        QVERIFY(record != QNdefRecord());
    }

    // test getters
    {
        QNdefNfcTextRecord record;
        record.setPayload(payload);

        QCOMPARE(record.locale(), locale);
        QCOMPARE(record.text(), text);
        QCOMPARE(record.encoding() == QNdefNfcTextRecord::Utf8, utf8);
    }

    // test copy
    {
        QNdefRecord record;
        record.setTypeNameFormat(QNdefRecord::NfcRtd);
        record.setType("T");
        record.setPayload(payload);

        QVERIFY(!record.isRecordType<QNdefRecord>());
        QVERIFY(record.isRecordType<QNdefNfcTextRecord>());
        QVERIFY(!record.isRecordType<QNdefNfcUriRecord>());

        QNdefNfcTextRecord textRecord(record);

        QVERIFY(!textRecord.isEmpty());

        QVERIFY(record == textRecord);

        QCOMPARE(textRecord.locale(), locale);
        QCOMPARE(textRecord.text(), text);
        QCOMPARE(textRecord.encoding() == QNdefNfcTextRecord::Utf8, utf8);
    }
}
QNdefNfcTextRecord TextRecordEditor::record() const
{
    QNdefNfcTextRecord record;

    if (ui->encoding->currentIndex() == 0)
        record.setEncoding(QNdefNfcTextRecord::Utf8);
    else if (ui->encoding->currentIndex() == 1)
        record.setEncoding(QNdefNfcTextRecord::Utf16);

    record.setLocale(ui->locale->text());

    record.setText(ui->text->text());

    return record;
}
Ejemplo n.º 5
0
QNdefNfcTextRecord* NfcModelToNdef::convertTextFromModel(const int startIndex, int& endIndex, bool expectHeader)
{
    QNdefNfcTextRecord* newRecord = new QNdefNfcTextRecord();
    int curIndex = startIndex;
    if (expectHeader) {
        if (m_recordItems[startIndex]->messageType() != NfcTypes::MsgText ||
                m_recordItems[startIndex]->recordContent() != NfcTypes::RecordHeader) {
            return newRecord;
        }
        // Start at the next item after the header
        curIndex = startIndex + 1;
    }

    bool reachedRecordEnd = false;
    bool foundText = false;
    bool foundLocale = false;
    while (curIndex < m_recordItems.size()) {
        NfcRecordItem* curItem = m_recordItems[curIndex];
        switch (curItem->recordContent()) {

        case NfcTypes::RecordText:
            if (foundText) {
                reachedRecordEnd = true;
            } else {
                newRecord->setText(curItem->currentText());
                foundText = true;
            }
            break;
        case NfcTypes::RecordTextLanguage:
            if (foundLocale) {
                reachedRecordEnd = true;
            } else {
                newRecord->setLocale(curItem->currentText());
                foundLocale = true;
            }
            break;
        default:
            // Unknown record content that doesn't belong to this record
            reachedRecordEnd = true;
            break;
        }
        if (reachedRecordEnd)
            break;
        curIndex ++;
    }
    endIndex = curIndex;
    return newRecord;
}