Android Open Source - androidkeystore Log View






From Project

Back to project page androidkeystore.

License

The source code is released under:

Apache License

If you think the Android project androidkeystore listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2013 The Android Open Source Project
 *//from ww w. j a  v a  2  s. c  om
 * 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.example.keystore.common.logger;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;

/**
 * Created by alexlucas on 6/4/13.
 */

public class LogView extends TextView implements LogNode {

  public LogView(Context context) {
    super(context);
  }

  public LogView(Context context, AttributeSet attrs) {
    super(context, attrs);
  }

  public LogView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
  }

  /**
   * Formats the log data and prints it out to the LogView.
   * 
   * @param priority
   *            Log level of the data being logged. Verbose, Error, etc.
   * @param tag
   *            Tag for for the log data. Can be used to organize log
   *            statements.
   * @param msg
   *            The actual message to be logged. The actual message to be
   *            logged.
   * @param tr
   *            If an exception was thrown, this can be sent along for the
   *            logging facilities to extract and print useful information.
   */
  @Override
  public void println(int priority, String tag, String msg, Throwable tr) {
    String priorityStr = null;

    // For the purposes of this View, we want to print the priority as
    // readable text.
    switch (priority) {
    case android.util.Log.VERBOSE:
      priorityStr = "VERBOSE";
      break;
    case android.util.Log.DEBUG:
      priorityStr = "DEBUG";
      break;
    case android.util.Log.INFO:
      priorityStr = "INFO";
      break;
    case android.util.Log.WARN:
      priorityStr = "WARN";
      break;
    case android.util.Log.ERROR:
      priorityStr = "ERROR";
      break;
    case android.util.Log.ASSERT:
      priorityStr = "ASSERT";
      break;
    default:
      break;
    }

    // Handily, the Log class has a facility for converting a stack trace
    // into a useable string.
    String exceptionStr = null;
    if (tr != null) {
      exceptionStr = android.util.Log.getStackTraceString(tr);
    }

    // Take the priority, tag, message, and exception, and concatenate as
    // necessary
    // into one usable line of text.
    StringBuilder outputBuilder = new StringBuilder();

    String delimiter = "\t";

    appendIfNotNull(outputBuilder, priorityStr, delimiter);
    appendIfNotNull(outputBuilder, tag, delimiter);
    appendIfNotNull(outputBuilder, msg, delimiter);
    appendIfNotNull(outputBuilder, exceptionStr, delimiter);

    // Actually display the text we just generated within the LogView.
    appendToLog(outputBuilder.toString());

    if (mNext != null) {
      mNext.println(priority, tag, msg, tr);
    }
  }

  public LogNode getNext() {
    return mNext;
  }

  public void setNext(LogNode node) {
    mNext = node;
  }

  /**
   * Takes a string and adds to it, with a seperator, if the bit to be added
   * isn't null. Since the logger takes so many arguments that might be null,
   * this method helps cut out some of the agonizing tedium of writing the
   * same 3 lines over and over.
   * 
   * @param source
   *            Stringbuilder containing the text to append to.
   * @param addStrStr
   *            The String to append
   * @param delimiter
   *            The String to seperate the source and appendee strings. A tab
   *            or comma, for instance.
   * @return The fully concatenated String as a StringBuilder
   */
  private StringBuilder appendIfNotNull(StringBuilder source, String addStr,
      String delimiter) {
    if (addStr != null) {
      if (addStr.length() == 0) {
        delimiter = "";
      }

      return source.append(addStr).append(delimiter);
    }
    return source;
  }

  // The next LogNode in the chain.
  LogNode mNext;

  /** Outputs the string as a new line of log data in the LogView. */
  public void appendToLog(String s) {
    append(s + "\n");
  }

}




Java Source Code List

com.example.keystore.KeyStoreHelper.java
com.example.keystore.common.SecurityConstants.java
com.example.keystore.common.SimpleTextFragment.java
com.example.keystore.common.logger.LogNode.java
com.example.keystore.common.logger.LogView.java
com.example.keystore.common.logger.LogWrapper.java
com.example.keystore.common.logger.Log.java
com.example.keystore.common.logger.MessageOnlyLogFilter.java
com.example.keystore.ui.LogFragment.java
com.example.keystore.ui.MainActivity.java