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

Commit e5eb43b5 authored by Glenn Kasten's avatar Glenn Kasten Committed by Android Git Automerger
Browse files

am 7d7dcb5e: am 4528a7db: Merge "Bug 4016329 do full string comparisons" into honeycomb-mr1

* commit '7d7dcb5e':
  Bug 4016329 do full string comparisons
parents 7896f1bd 7d7dcb5e
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 := \
    libmedia \

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__ */
Loading