119 lines
3.9 KiB
Java
119 lines
3.9 KiB
Java
/*
|
|
* 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.
|
|
*/
|
|
|
|
package com.android.dumprendertree2;
|
|
|
|
import android.util.Log;
|
|
import android.webkit.ConsoleMessage;
|
|
|
|
import java.net.MalformedURLException;
|
|
import java.net.URL;
|
|
|
|
/**
|
|
* A class that stores consoles messages, database callbacks, alert messages, etc.
|
|
*/
|
|
public class AdditionalTextOutput {
|
|
private static final String LOG_TAG = "AdditionalTextOutput";
|
|
|
|
/**
|
|
* Ordering of enums is important as it determines ordering of the toString method!
|
|
* StringBuilders will be printed in the order the corresponding types appear here.
|
|
*/
|
|
private enum OutputType {
|
|
JS_DIALOG,
|
|
EXCEEDED_DB_QUOTA_MESSAGE,
|
|
CONSOLE_MESSAGE;
|
|
}
|
|
|
|
StringBuilder[] mOutputs = new StringBuilder[OutputType.values().length];
|
|
|
|
private StringBuilder getStringBuilderForType(OutputType outputType) {
|
|
int index = outputType.ordinal();
|
|
if (mOutputs[index] == null) {
|
|
mOutputs[index] = new StringBuilder();
|
|
}
|
|
return mOutputs[index];
|
|
}
|
|
|
|
public void appendExceededDbQuotaMessage(String urlString, String databaseIdentifier) {
|
|
StringBuilder output = getStringBuilderForType(OutputType.EXCEEDED_DB_QUOTA_MESSAGE);
|
|
|
|
String protocol = "";
|
|
String host = "";
|
|
int port = 0;
|
|
|
|
try {
|
|
URL url = new URL(urlString);
|
|
protocol = url.getProtocol();
|
|
host = url.getHost();
|
|
if (url.getPort() > -1) {
|
|
port = url.getPort();
|
|
}
|
|
} catch (MalformedURLException e) {
|
|
Log.e(LOG_TAG, "urlString=" + urlString + " databaseIdentifier=" + databaseIdentifier,
|
|
e);
|
|
}
|
|
|
|
output.append("UI DELEGATE DATABASE CALLBACK: ");
|
|
output.append("exceededDatabaseQuotaForSecurityOrigin:{");
|
|
output.append(protocol + ", " + host + ", " + port + "} ");
|
|
output.append("database:" + databaseIdentifier + "\n");
|
|
}
|
|
|
|
public void appendConsoleMessage(ConsoleMessage consoleMessage) {
|
|
StringBuilder output = getStringBuilderForType(OutputType.CONSOLE_MESSAGE);
|
|
|
|
output.append("CONSOLE MESSAGE: line " + consoleMessage.lineNumber());
|
|
output.append(": " + consoleMessage.message() + "\n");
|
|
}
|
|
|
|
public void appendJsAlert(String message) {
|
|
StringBuilder output = getStringBuilderForType(OutputType.JS_DIALOG);
|
|
|
|
output.append("ALERT: ");
|
|
output.append(message);
|
|
output.append('\n');
|
|
}
|
|
|
|
public void appendJsConfirm(String message) {
|
|
StringBuilder output = getStringBuilderForType(OutputType.JS_DIALOG);
|
|
|
|
output.append("CONFIRM: ");
|
|
output.append(message);
|
|
output.append('\n');
|
|
}
|
|
|
|
public void appendJsPrompt(String message, String defaultValue) {
|
|
StringBuilder output = getStringBuilderForType(OutputType.JS_DIALOG);
|
|
|
|
output.append("PROMPT: ");
|
|
output.append(message);
|
|
output.append(", default text: ");
|
|
output.append(defaultValue);
|
|
output.append('\n');
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
StringBuilder result = new StringBuilder();
|
|
for (int i = 0; i < mOutputs.length; i++) {
|
|
if (mOutputs[i] != null) {
|
|
result.append(mOutputs[i].toString());
|
|
}
|
|
}
|
|
return result.toString();
|
|
}
|
|
} |