/*
* Copyright (C) 2016 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.loganalysis.parser;
import com.android.loganalysis.item.IItem;
import com.android.loganalysis.item.BootEventItem;
import com.android.loganalysis.item.LatencyItem;
import com.android.loganalysis.item.TransitionDelayItem;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Parse the events logs.
*/
public class EventsLogParser implements IParser {
private static final String DATE = "date";
private static final String TIME = "time";
private static final String TRANSITION_INFO = "transitioninfo";
private static final String PACKAGE_KEY = "806";
private static final String ACTIVITY_KEY = "871";
private static final String TRANSITION_DELAY_KEY = "319";
private static final String STARTING_WINDOW_DELAY_KEY = "321";
private static final String COLD_LAUNCH_KEY = "945";
private static final String WINDOWS_DRAWN_DELAY_KEY = "322";
private static final String BOOT_PROGRESS = "boot_progress_";
private static final String STOP_ANIM = "sf_stop_bootanim";
// 09-18 23:56:19.376 1140 1221 I sysui_multi_action:
// [319,51,321,50,322,190,325,670,757,761,758,7,759,1,806,com.google.android.calculator,871,
// com.android.calculator2.Calculator,905,0,945,41]
private static final Pattern SYSUI_TRANSITION_INFO_PATTERN = Pattern.compile(
"^(?[0-9-]*)\\s+(?