Merge "Bug 4016329 do full string comparisons" into honeycomb-mr1
This commit is contained in:
@ -45,7 +45,7 @@ bool DrmSupportInfo::isSupportedMimeType(const String8& mimeType) const {
|
|||||||
for (unsigned int i = 0; i < mMimeTypeVector.size(); i++) {
|
for (unsigned int i = 0; i < mMimeTypeVector.size(); i++) {
|
||||||
const String8 item = mMimeTypeVector.itemAt(i);
|
const String8 item = mMimeTypeVector.itemAt(i);
|
||||||
|
|
||||||
if (String8("") != mimeType && item.find(mimeType) != -1) {
|
if (!strcasecmp(item.string(), mimeType.string())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -56,7 +56,7 @@ bool DrmSupportInfo::isSupportedFileSuffix(const String8& fileType) const {
|
|||||||
for (unsigned int i = 0; i < mFileSuffixVector.size(); i++) {
|
for (unsigned int i = 0; i < mFileSuffixVector.size(); i++) {
|
||||||
const String8 item = mFileSuffixVector.itemAt(i);
|
const String8 item = mFileSuffixVector.itemAt(i);
|
||||||
|
|
||||||
if (item.find(fileType) != -1) {
|
if (!strcasecmp(item.string(), fileType.string())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,8 +19,7 @@ include $(CLEAR_VARS)
|
|||||||
LOCAL_SRC_FILES:= \
|
LOCAL_SRC_FILES:= \
|
||||||
main_drmserver.cpp \
|
main_drmserver.cpp \
|
||||||
DrmManager.cpp \
|
DrmManager.cpp \
|
||||||
DrmManagerService.cpp \
|
DrmManagerService.cpp
|
||||||
StringTokenizer.cpp
|
|
||||||
|
|
||||||
LOCAL_SHARED_LIBRARIES := \
|
LOCAL_SHARED_LIBRARIES := \
|
||||||
libutils \
|
libutils \
|
||||||
|
@ -1,66 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
@ -230,11 +230,9 @@ private:
|
|||||||
*/
|
*/
|
||||||
bool isPlugIn(const struct dirent* pEntry) const {
|
bool isPlugIn(const struct dirent* pEntry) const {
|
||||||
String8 sName(pEntry->d_name);
|
String8 sName(pEntry->d_name);
|
||||||
int extentionPos = sName.size() - String8(PLUGIN_EXTENSION).size();
|
String8 extension(sName.getPathExtension());
|
||||||
if (extentionPos < 0) {
|
// Note that the plug-in extension must exactly match case
|
||||||
return false;
|
return extension == String8(PLUGIN_EXTENSION);
|
||||||
}
|
|
||||||
return extentionPos == (int)sName.find(PLUGIN_EXTENSION);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,87 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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__ */
|
|
||||||
|
|
@ -165,8 +165,8 @@ public:
|
|||||||
String8 walkPath(String8* outRemains = NULL) const;
|
String8 walkPath(String8* outRemains = NULL) const;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return the filename extension. This is the last '.' and up to
|
* Return the filename extension. This is the last '.' and any number
|
||||||
* four characters that follow it. The '.' is included in case we
|
* of characters that follow it. The '.' is included in case we
|
||||||
* decide to expand our definition of what constitutes an extension.
|
* decide to expand our definition of what constitutes an extension.
|
||||||
*
|
*
|
||||||
* "/tmp/foo/bar.c" --> ".c"
|
* "/tmp/foo/bar.c" --> ".c"
|
||||||
|
Reference in New Issue
Block a user