package com.code44.finance.ui.common; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.LinearLayout; import com.code44.finance.App; import com.code44.finance.R; import com.code44.finance.utils.ActiveInterval; import com.code44.finance.utils.EventBus; import com.squareup.otto.Subscribe; import javax.inject.Inject; public class ActiveIntervalView extends LinearLayout implements View.OnClickListener { private final Button intervalButton; @Inject ActiveInterval activeInterval; @Inject EventBus eventBus; public ActiveIntervalView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public ActiveIntervalView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); inflate(context, R.layout.view_active_interval, this); if (!isInEditMode()) { App.with(context).inject(this); } // Get views final ImageButton previousImageButton = (ImageButton) findViewById(R.id.previousImageButton); final ImageButton nextImageButton = (ImageButton) findViewById(R.id.nextImageButton); intervalButton = (Button) findViewById(R.id.intervalButton); // Setup previousImageButton.setOnClickListener(this); nextImageButton.setOnClickListener(this); intervalButton.setOnClickListener(this); if (!isInEditMode()) { eventBus.register(this); } } @Override public void onClick(View view) { switch (view.getId()) { case R.id.previousImageButton: previous(); break; case R.id.nextImageButton: next(); break; case R.id.intervalButton: reset(); break; } } @Subscribe public void onActiveIntervalChanged(ActiveInterval activeInterval) { update(activeInterval); } private void update(ActiveInterval activeInterval) { intervalButton.setText(activeInterval.getTitle()); } private void previous() { activeInterval.previous(); } private void next() { activeInterval.next(); } private void reset() { activeInterval.reset(); } }