package eu.hgross.blaubot.android.views; import android.content.Context; import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.Looper; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import org.apache.commons.collections4.queue.CircularFifoQueue; import java.util.ArrayList; import eu.hgross.blaubot.android.R; import eu.hgross.blaubot.core.Blaubot; import eu.hgross.blaubot.core.statemachine.IBlaubotConnectionStateMachineListener; import eu.hgross.blaubot.core.statemachine.states.FreeState; import eu.hgross.blaubot.core.statemachine.states.IBlaubotState; import eu.hgross.blaubot.core.statemachine.states.IBlaubotSubordinatedState; import eu.hgross.blaubot.core.statemachine.states.KingState; import eu.hgross.blaubot.core.statemachine.states.PrinceState; import eu.hgross.blaubot.core.statemachine.states.StoppedState; import eu.hgross.blaubot.ui.IBlaubotDebugView; import eu.hgross.blaubot.util.PingMeasurerResult; /** * Android view to display results of the PingMeasurer * * @author Henning Gross {@literal (mail.to@henning-gross.de)} */ public class PingMeasureResultView extends LinearLayout { private static final String LOG_TAG = "PingMeasureResultView"; private Handler mUiHandler; /** * Contains the whole view and all sub elements. */ private LinearLayout mMainView; public PingMeasureResultView(Context context) { this(context, null); } public PingMeasureResultView(Context context, AttributeSet attrs) { super(context, attrs); initView(); } public PingMeasureResultView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initView(); } private void initView() { mUiHandler = new Handler(Looper.getMainLooper()); mMainView = (LinearLayout) inflate(getContext(), R.layout.blaubot_ping_measure_result, this); } /** * Updates the whole ui */ private void updateUI(final PingMeasurerResult result) { mUiHandler.post(new Runnable() { @Override public void run() { TextView min = (TextView) mMainView.findViewById(R.id.minRtt); TextView max = (TextView) mMainView.findViewById(R.id.maxRtt); TextView avg = (TextView) mMainView.findViewById(R.id.avgRtt); TextView count = (TextView) mMainView.findViewById(R.id.count); TextView size = (TextView) mMainView.findViewById(R.id.size); min.setText(""+ result.getMinRtt()); max.setText("" + result.getMaxRtt()); avg.setText("" + result.getAvgRtt()); count.setText("" + result.getNumberOfPings()); size.setText("" + result.getPingMessageSize()); } }); } /** * Applies a ping measurere result to this view. * * @param result the result */ public void setPingMeasureResult(PingMeasurerResult result) { updateUI(result); } }