Moving string utils methods to a utils class
This commit is contained in:
parent
80ab4aff35
commit
431f5782ff
@ -154,24 +154,26 @@ public class AdBlock {
|
||||
while ((line = reader.readLine()) != null) {
|
||||
lineBuilder.append(line);
|
||||
|
||||
if (!isEmpty(lineBuilder) && !startsWith(lineBuilder, COMMENT)) {
|
||||
replace(lineBuilder, LOCAL_IP_V4, EMPTY);
|
||||
replace(lineBuilder, LOCAL_IP_V4_ALT, EMPTY);
|
||||
replace(lineBuilder, LOCAL_IP_V6, EMPTY);
|
||||
replace(lineBuilder, TAB, EMPTY);
|
||||
if (!StringBuilderUtils.isEmpty(lineBuilder) &&
|
||||
!StringBuilderUtils.startsWith(lineBuilder, COMMENT)) {
|
||||
StringBuilderUtils.replace(lineBuilder, LOCAL_IP_V4, EMPTY);
|
||||
StringBuilderUtils.replace(lineBuilder, LOCAL_IP_V4_ALT, EMPTY);
|
||||
StringBuilderUtils.replace(lineBuilder, LOCAL_IP_V6, EMPTY);
|
||||
StringBuilderUtils.replace(lineBuilder, TAB, EMPTY);
|
||||
|
||||
int comment = lineBuilder.indexOf(COMMENT);
|
||||
if (comment >= 0) {
|
||||
lineBuilder.replace(comment, lineBuilder.length(), EMPTY);
|
||||
}
|
||||
|
||||
trim(lineBuilder);
|
||||
StringBuilderUtils.trim(lineBuilder);
|
||||
|
||||
if (!isEmpty(lineBuilder) && !AdBlock.equals(lineBuilder, LOCALHOST)) {
|
||||
while (contains(lineBuilder, SPACE)) {
|
||||
if (!StringBuilderUtils.isEmpty(lineBuilder) &&
|
||||
!StringBuilderUtils.equals(lineBuilder, LOCALHOST)) {
|
||||
while (StringBuilderUtils.contains(lineBuilder, SPACE)) {
|
||||
int space = lineBuilder.indexOf(SPACE);
|
||||
String host = lineBuilder.substring(0, space);
|
||||
replace(lineBuilder, host, EMPTY);
|
||||
StringBuilderUtils.replace(lineBuilder, host, EMPTY);
|
||||
mBlockedDomainsList.add(host.trim());
|
||||
}
|
||||
if (lineBuilder.length() > 0) {
|
||||
@ -192,40 +194,4 @@ public class AdBlock {
|
||||
});
|
||||
}
|
||||
|
||||
// TODO: 4/23/17 Move all these methods to a StringUtils class
|
||||
private static void replace(@NonNull StringBuilder stringBuilder,
|
||||
@NonNull String toReplace,
|
||||
@NonNull String replacement) {
|
||||
int index = stringBuilder.indexOf(toReplace);
|
||||
if (index >= 0) {
|
||||
stringBuilder.replace(index, index + toReplace.length(), replacement);
|
||||
}
|
||||
}
|
||||
|
||||
private static void trim(@NonNull StringBuilder stringBuilder) {
|
||||
while (stringBuilder.indexOf(SPACE) == 0) {
|
||||
stringBuilder.replace(0, 1, EMPTY);
|
||||
}
|
||||
|
||||
while (stringBuilder.lastIndexOf(SPACE) == (stringBuilder.length() - 1)) {
|
||||
stringBuilder.replace(stringBuilder.length() - 1, stringBuilder.length(), EMPTY);
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isEmpty(@NonNull StringBuilder stringBuilder) {
|
||||
return stringBuilder.length() == 0;
|
||||
}
|
||||
|
||||
private static boolean startsWith(@NonNull StringBuilder stringBuilder, @NonNull String start) {
|
||||
return stringBuilder.indexOf(start) == 0;
|
||||
}
|
||||
|
||||
private static boolean contains(@NonNull StringBuilder stringBuilder, @NonNull String contains) {
|
||||
return stringBuilder.indexOf(contains) >= 0;
|
||||
}
|
||||
|
||||
private static boolean equals(@NonNull StringBuilder stringBuilder, @NonNull String equal) {
|
||||
int index = stringBuilder.indexOf(equal);
|
||||
return index >= 0 && stringBuilder.length() == equal.length();
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,99 @@
|
||||
package acr.browser.lightning.utils;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
/**
|
||||
* A collection of utils methods for
|
||||
* {@link StringBuilder} that provides
|
||||
* API equality with the {@link String}
|
||||
* API.
|
||||
*/
|
||||
public class StringBuilderUtils {
|
||||
|
||||
private static final String SPACE = " ";
|
||||
private static final String EMPTY = "";
|
||||
|
||||
/**
|
||||
* Replace a string in a string
|
||||
* builder with another string.
|
||||
*
|
||||
* @param stringBuilder the string builder.
|
||||
* @param toReplace the string to replace.
|
||||
* @param replacement the replacement string.
|
||||
*/
|
||||
public static void replace(@NonNull StringBuilder stringBuilder,
|
||||
@NonNull String toReplace,
|
||||
@NonNull String replacement) {
|
||||
int index = stringBuilder.indexOf(toReplace);
|
||||
if (index >= 0) {
|
||||
stringBuilder.replace(index, index + toReplace.length(), replacement);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Trims a string builder of
|
||||
* any spaces at the beginning
|
||||
* and end.
|
||||
*
|
||||
* @param stringBuilder the string builder.
|
||||
*/
|
||||
public static void trim(@NonNull StringBuilder stringBuilder) {
|
||||
while (stringBuilder.indexOf(SPACE) == 0) {
|
||||
stringBuilder.replace(0, 1, EMPTY);
|
||||
}
|
||||
|
||||
while (stringBuilder.lastIndexOf(SPACE) == (stringBuilder.length() - 1)) {
|
||||
stringBuilder.replace(stringBuilder.length() - 1, stringBuilder.length(), EMPTY);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the string builder is empty.
|
||||
*
|
||||
* @param stringBuilder the string builder.
|
||||
* @return true if the string builder is empty,
|
||||
* false otherwise.
|
||||
*/
|
||||
public static boolean isEmpty(@NonNull StringBuilder stringBuilder) {
|
||||
return stringBuilder.length() == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if a string builder starts with
|
||||
* a specific string.
|
||||
*
|
||||
* @param stringBuilder the string builder.
|
||||
* @param start the starting string.
|
||||
* @return true if the string builder starts
|
||||
* with the string, false otherwise.
|
||||
*/
|
||||
public static boolean startsWith(@NonNull StringBuilder stringBuilder, @NonNull String start) {
|
||||
return stringBuilder.indexOf(start) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if a string builder contains a string.
|
||||
*
|
||||
* @param stringBuilder the string builder.
|
||||
* @param contains the string that it might contain.
|
||||
* @return true if the string builder contains the
|
||||
* string, false otherwise.
|
||||
*/
|
||||
public static boolean contains(@NonNull StringBuilder stringBuilder, @NonNull String contains) {
|
||||
return stringBuilder.indexOf(contains) >= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines equality between a string
|
||||
* builder and a string.
|
||||
*
|
||||
* @param stringBuilder the string builder.
|
||||
* @param equal the string.
|
||||
* @return true if the string represented by
|
||||
* the string builder is equal to the string.
|
||||
*/
|
||||
public static boolean equals(@NonNull StringBuilder stringBuilder, @NonNull String equal) {
|
||||
int index = stringBuilder.indexOf(equal);
|
||||
return index >= 0 && stringBuilder.length() == equal.length();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user