/*
* Copyright (C) 2014 asksven
*
* 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.asksven.android.common.privateapiproxies;
import java.io.Serializable;
import java.util.List;
import com.asksven.android.common.dto.MiscDto;
import com.asksven.android.common.nameutils.UidInfo;
import com.google.gson.annotations.SerializedName;
import android.util.Log;
/**
* @author sven
*
*/
public class Notification extends StatElement implements Comparable<Notification>, Serializable
{
/**
* the tag for logging
*/
private static transient final String TAG = "Notification";
/**
* the name of the object
*/
@SerializedName("name")
private String m_name;
/**
* the time on in ms
*/
@SerializedName("time_on_ms")
private long m_timeOn;
/**
* the time running in ms
*/
@SerializedName("time_runing_ms")
private long m_timeRunning;
/**
* Constructor
* @param name
* @param timeOn
* @param ratio
*/
public Notification(String name)
{
m_name = name;
m_timeOn = 0;
m_timeRunning = 0;
}
public Notification(MiscDto source)
{
this.setUid(source.m_uid);
this.m_name = source.m_name;
this.m_timeOn = source.m_timeOn;
this.m_timeRunning = source.m_timeRunning;
this.setTotal(source.m_total);
}
public MiscDto toDto()
{
MiscDto ret = new MiscDto();
ret.m_uid = this.getuid();
ret.m_timeOn = this.m_timeOn;
ret.m_timeRunning = this.m_timeRunning;
ret.m_total = this.getTotal();
ret.m_name = this.m_name;
return ret;
}
public Notification clone()
{
Notification clone = new Notification(m_name);
clone.setTotal(0);
return clone;
}
/**
* @return the name
*/
public String getName()
{
return m_name;
}
/**
* @return the time on
*/
public long getTimeOn()
{
return m_timeOn;
}
/**
* @return the time running
*/
public long getTimeRunning()
{
return m_timeRunning;
}
/**
* Compare a given Wakelock with this object.
* If the duration of this object is
* greater than the received object,
* then this object is greater than the other.
*/
public int compareTo(Notification o)
{
// we want to sort in descending order
return (int)( o.getTimeOn() - this.getTimeOn());
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Notification [m_name=" + m_name + "]";
}
/**
* returns a string representation of the data
*/
public String getData(long totalTime)
{
if (totalTime < getTimeOn())
{
totalTime = getTimeOn();
}
return this.formatDuration(getTimeOn())
+ " " + formatRatio(getTimeOn(), totalTime);
}
/**
* returns a string representation of the data
*/
public String getVals()
{
return m_name;
}
/**
* returns the values of the data
*/
public double[] getValues()
{
double[] retVal = new double[2];
retVal[0] = getTimeOn();
return retVal;
}
public double getMaxValue()
{
return getTimeOn();
}
}