Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1b76786 authored by Glenn Kasten's avatar Glenn Kasten Committed by Android (Google) Code Review
Browse files

Merge "Bug 4016329 do full string comparisons" into honeycomb-mr1

parents 505bd99e 41b3d3be
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ bool DrmSupportInfo::isSupportedMimeType(const String8& mimeType) const {
    for (unsigned int i = 0; i < mMimeTypeVector.size(); i++) {
        const String8 item = mMimeTypeVector.itemAt(i);

        if (String8("") != mimeType && item.find(mimeType) != -1) {
        if (!strcasecmp(item.string(), mimeType.string())) {
            return true;
        }
    }
@@ -56,7 +56,7 @@ bool DrmSupportInfo::isSupportedFileSuffix(const String8& fileType) const {
    for (unsigned int i = 0; i < mFileSuffixVector.size(); i++) {
        const String8 item = mFileSuffixVector.itemAt(i);

        if (item.find(fileType) != -1) {
        if (!strcasecmp(item.string(), fileType.string())) {
            return true;
        }
    }
+1 −2
Original line number Diff line number Diff line
@@ -19,8 +19,7 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
    main_drmserver.cpp \
    DrmManager.cpp \
    DrmManagerService.cpp \
    StringTokenizer.cpp
    DrmManagerService.cpp

LOCAL_SHARED_LIBRARIES := \
    libutils \

drm/drmserver/StringTokenizer.cpp

deleted100644 → 0
+0 −66
Original line number Diff line number Diff line
/*
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "StringTokenizer.h"

using namespace android;

StringTokenizer::StringTokenizer(const String8& string, const String8& delimiter) {
    splitString(string, delimiter);
}

void StringTokenizer::splitString(const String8& string, const String8& delimiter) {
    for (unsigned int i = 0; i < string.length(); i++) {
        unsigned int position = string.find(delimiter.string(), i);
        if (string.length() != position) {
            String8 token(string.string()+i, position-i);
            if (token.length()) {
                mStringTokenizerVector.push(token);
                i = position + delimiter.length() - 1;
            }
        } else {
            mStringTokenizerVector.push(String8(string.string()+i, string.length()-i));
            break;
        }
    }
}

StringTokenizer::Iterator StringTokenizer::iterator() {
    return Iterator(this);
}

StringTokenizer::Iterator::Iterator(const StringTokenizer::Iterator& iterator) :
    mStringTokenizer(iterator.mStringTokenizer),
    mIndex(iterator.mIndex) {
}

StringTokenizer::Iterator& StringTokenizer::Iterator::operator=(
            const StringTokenizer::Iterator& iterator) {
    mStringTokenizer = iterator.mStringTokenizer;
    mIndex = iterator.mIndex;
    return *this;
}

bool StringTokenizer::Iterator::hasNext() {
    return mIndex < mStringTokenizer->mStringTokenizerVector.size();
}

String8& StringTokenizer::Iterator::next() {
    String8& value = mStringTokenizer->mStringTokenizerVector.editItemAt(mIndex);
    mIndex++;
    return value;
}
+3 −5
Original line number Diff line number Diff line
@@ -230,11 +230,9 @@ private:
     */
    bool isPlugIn(const struct dirent* pEntry) const {
        String8 sName(pEntry->d_name);
        int extentionPos = sName.size() - String8(PLUGIN_EXTENSION).size();
        if (extentionPos < 0) {
            return false;
        }
        return extentionPos == (int)sName.find(PLUGIN_EXTENSION);
        String8 extension(sName.getPathExtension());
        // Note that the plug-in extension must exactly match case
        return extension == String8(PLUGIN_EXTENSION);
    }

    /**
+0 −87
Original line number Diff line number Diff line
/*
 * Copyright (C) 2010 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef __STRING_TOKENIZER_H__
#define __STRING_TOKENIZER_H__

#include <drm/drm_framework_common.h>

namespace android {

/**
 * This is an utility class for String manipulation.
 *
 */
class StringTokenizer {
public:
    /**
     * Iterator for string tokens
     */
    class Iterator {
        friend class StringTokenizer;
    private:
        Iterator(StringTokenizer* StringTokenizer)
         : mStringTokenizer(StringTokenizer), mIndex(0) {}

    public:
        Iterator(const Iterator& iterator);
        Iterator& operator=(const Iterator& iterator);
        virtual ~Iterator() {}

    public:
        bool hasNext();
        String8& next();

    private:
        StringTokenizer* mStringTokenizer;
        unsigned int mIndex;
    };

public:
    /**
     * Constructor for StringTokenizer
     *
     * @param[in] string Complete string data
     * @param[in] delimeter Delimeter used to split the string
     */
    StringTokenizer(const String8& string, const String8& delimeter);

    /**
     * Destructor for StringTokenizer
     */
    ~StringTokenizer() {}

private:
    /**
     * Splits the string according to the delimeter
     */
    void splitString(const String8& string, const String8& delimeter);

public:
    /**
     * Returns Iterator object to walk through the split string values
     *
     * @return Iterator object
     */
    Iterator iterator();

private:
    Vector<String8> mStringTokenizerVector;
};

};
#endif /* __STRING_TOKENIZER_H__ */