/*
* Copyright (C) 2015 Brent Marriott
*
* 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.hookedonplay.decoviewsample;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.hookedonplay.decoviewlib.DecoView;
import com.hookedonplay.decoviewlib.charts.SeriesItem;
import com.hookedonplay.decoviewlib.events.DecoEvent;
import com.hookedonplay.decoviewlib.events.DecoEvent.EventType;
public class Sample1Fragment extends SampleFragment {
private int mSeries1Index;
public Sample1Fragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_sample1, container, false);
}
@Override
protected void createTracks() {
setDemoFinished(false);
final DecoView decoView = getDecoView();
final View view = getView();
if (decoView == null || view == null) {
return;
}
decoView.deleteAll();
decoView.configureAngles(280, 0);
final float seriesMax = 50f;
decoView.addSeries(new SeriesItem.Builder(Color.argb(255, 64, 255, 64), Color.argb(255, 255, 0, 0))
.setRange(0, seriesMax, seriesMax)
.setInitialVisibility(false)
.setLineWidth(getDimension(50f))
.build());
decoView.addSeries(new SeriesItem.Builder(Color.argb(255, 0, 0, 0))
.setRange(0, seriesMax, seriesMax)
.setInitialVisibility(false)
.setLineWidth(getDimension(24f))
.build());
SeriesItem seriesItem1 = new SeriesItem.Builder(Color.argb(255, 64, 255, 64), Color.argb(255, 255, 0, 0))
.setRange(0, seriesMax, 0)
.setInitialVisibility(false)
.setLineWidth(getDimension(50f))
.setCapRounded(true)
.setShowPointWhenEmpty(true)
.build();
mSeries1Index = decoView.addSeries(seriesItem1);
final TextView textPercent = (TextView) view.findViewById(R.id.textPercentage);
textPercent.setText("");
addProgressListener(seriesItem1, textPercent, "%.0f%%");
}
@Override
protected void setupEvents() {
final DecoView decoView = getDecoView();
if (decoView == null || decoView.isEmpty()) {
throw new IllegalStateException("Unable to add events to empty DecoView");
}
decoView.executeReset();
decoView.addEvent(new DecoEvent.Builder(EventType.EVENT_SHOW, true)
.setDelay(1000)
.setDuration(2000)
.build());
decoView.addEvent(new DecoEvent.Builder(25).setIndex(mSeries1Index).setDelay(3300).build());
decoView.addEvent(new DecoEvent.Builder(50).setIndex(mSeries1Index).setDelay(9000).build());
decoView.addEvent(new DecoEvent.Builder(0).setIndex(mSeries1Index).setDelay(13000).setDuration(6000).build());
decoView.addEvent(new DecoEvent.Builder(EventType.EVENT_HIDE, false)
.setDelay(19000)
.setDuration(2000)
.setListener(new DecoEvent.ExecuteEventListener() {
@Override
public void onEventStart(DecoEvent event) {
}
@Override
public void onEventEnd(DecoEvent event) {
setDemoFinished(true);
}
})
.build());
}
}