package com.iwedia.gui.mainmenu;
import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import com.iwedia.gui.MainActivity;
import com.iwedia.gui.R;
import com.iwedia.gui.components.A4TVMainMenuDot;
import java.util.ArrayList;
/**
* Class for handling main menu dots (number of them and selection)
*
* @author Branimir Pavlovic
*/
public class MainMenuDotsHandlingClass {
// private final String TAG = "A4TV2.0";
private MainActivity activity;
private LayoutInflater inflater;
/** Layout that holds dots */
private LinearLayout layoutForDots;
private ArrayList<LinearLayout> dots;
private int currentlySelected;
/**
* Default constructor
*
* @param activity
*/
public MainMenuDotsHandlingClass(MainActivity activity) {
this.activity = activity;
layoutForDots = (LinearLayout) this.activity.getMainMenuHandler()
.getMainMenuDialog()
.findViewById(R.id.linearLayoutForIconsDots);
dots = new ArrayList<LinearLayout>();
setParams();
}
/** Set size and position of views */
public void setParams() {
// Layout params for dots containter
FrameLayout.LayoutParams params1 = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_CONTENT,
FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
params1.bottomMargin = MainActivity.screenHeight / 6;
layoutForDots.setLayoutParams(params1);
}
/**
* Function for initial setting of dots
*
* @param number
* Total number of dots
*/
public void setNumberOfDots(int number) {
dots.clear();
layoutForDots.removeAllViews();
currentlySelected = 0;
for (int i = 0; i < number; i++) {
LinearLayout lay = inflateDot();
layoutForDots.addView(lay);
dots.add(lay);
}
layoutForDots.invalidate();
}
private LinearLayout inflateDot() {
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.dot,
null);
A4TVMainMenuDot dot = (A4TVMainMenuDot) layout
.findViewById(R.id.aTVMainMenuDotItem);
dot.setFocusable(false);
dot.setEnabled(false);
dot.setSelected(false);
return layout;
}
/**
* Function for setting selection to desired dot
*
* @param position
* Position of selection
*/
public void setSelectedDot(int position) {
if (dots != null) {
if (dots.size() > 0) {
for (int i = 0; i < dots.size(); i++) {
A4TVMainMenuDot dot = (A4TVMainMenuDot) dots.get(i)
.findViewById(R.id.aTVMainMenuDotItem);
if (i == position) {
dot.setSelected(true);
} else {
dot.setSelected(false);
}
}
currentlySelected = position;
}
}
}
/**
* Function for increasing selection of dots
*/
public void increaseSelectedByOne() {
A4TVMainMenuDot dot = (A4TVMainMenuDot) dots.get(currentlySelected)
.findViewById(R.id.aTVMainMenuDotItem);
dot.setSelected(false);
dot = (A4TVMainMenuDot) dots.get(currentlySelected + 1).findViewById(
R.id.aTVMainMenuDotItem);
dot.setSelected(true);
currentlySelected++;
}
/**
* Function for decreasing selection of dots
*/
public void decreaseSelectedByOne() {
A4TVMainMenuDot dot = (A4TVMainMenuDot) dots.get(currentlySelected)
.findViewById(R.id.aTVMainMenuDotItem);
dot.setSelected(false);
dot = (A4TVMainMenuDot) dots.get(currentlySelected - 1).findViewById(
R.id.aTVMainMenuDotItem);
dot.setSelected(true);
currentlySelected--;
}
public int getCurrentlySelected() {
return currentlySelected;
}
public void setCurrentlySelected(int currentlySelected) {
this.currentlySelected = currentlySelected;
}
}