package com.jpardogo.android.listbuddies.ui.fragments;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Toast;
import com.jpardogo.android.listbuddies.R;
import com.jpardogo.android.listbuddies.adapters.CircularAdapter;
import com.jpardogo.android.listbuddies.provider.ExtraArgumentKeys;
import com.jpardogo.android.listbuddies.provider.ImagesUrls;
import com.jpardogo.android.listbuddies.ui.DetailActivity;
import com.jpardogo.listbuddies.lib.provider.ScrollConfigOptions;
import com.jpardogo.listbuddies.lib.views.ListBuddiesLayout;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import butterknife.ButterKnife;
import butterknife.InjectView;
public class ListBuddiesFragment extends Fragment implements ListBuddiesLayout.OnBuddyItemClickListener {
private static final String TAG = ListBuddiesFragment.class.getSimpleName();
int mMarginDefault;
int[] mScrollConfig;
private boolean isOpenActivities;
private CircularAdapter mAdapterLeft;
private CircularAdapter mAdapterRight;
@InjectView(R.id.listbuddies)
ListBuddiesLayout mListBuddies;
private List<String> mImagesLeft = new ArrayList<String>();
private List<String> mImagesRight = new ArrayList<String>();
public static ListBuddiesFragment newInstance(boolean isOpenActivitiesActivated) {
ListBuddiesFragment fragment = new ListBuddiesFragment();
Bundle bundle = new Bundle();
bundle.putBoolean(ExtraArgumentKeys.OPEN_ACTIVITES.toString(), isOpenActivitiesActivated);
fragment.setArguments(bundle);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
isOpenActivities = getArguments().getBoolean(ExtraArgumentKeys.OPEN_ACTIVITES.toString(), false);
mMarginDefault = getResources().getDimensionPixelSize(com.jpardogo.listbuddies.lib.R.dimen.default_margin_between_lists);
mScrollConfig = getResources().getIntArray(R.attr.scrollFaster);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
ButterKnife.inject(this, rootView);
//If we do this we need to uncomment the container on the xml layout
//createListBuddiesLayoutDinamically(rootView);
mImagesLeft.addAll(Arrays.asList(ImagesUrls.imageUrls_left));
mImagesRight.addAll(Arrays.asList(ImagesUrls.imageUrls_right));
mAdapterLeft = new CircularAdapter(getActivity(), getResources().getDimensionPixelSize(R.dimen.item_height_small), mImagesLeft);
mAdapterRight = new CircularAdapter(getActivity(), getResources().getDimensionPixelSize(R.dimen.item_height_tall), mImagesRight);
mListBuddies.setAdapters(mAdapterLeft, mAdapterRight);
mListBuddies.setOnItemClickListener(this);
return rootView;
}
private void createListBuddiesLayoutDinamically(View rootView) {
mListBuddies = new ListBuddiesLayout(getActivity());
resetLayout();
//Once the container is created we can add the ListViewLayout into it
//((FrameLayout)rootView.findViewById(R.id.<container_id>)).addView(mListBuddies);
}
@Override
public void onBuddyItemClicked(AdapterView<?> parent, View view, int buddy, int position, long id) {
if (isOpenActivities) {
Intent intent = new Intent(getActivity(), DetailActivity.class);
intent.putExtra(DetailActivity.EXTRA_URL, getImage(buddy, position));
startActivity(intent);
} else {
Resources resources = getResources();
Toast.makeText(getActivity(), resources.getString(R.string.list) + ": " + buddy + " " + resources.getString(R.string.position) + ": " + position, Toast.LENGTH_SHORT).show();
}
}
private String getImage(int buddy, int position) {
return buddy == 0 ? ImagesUrls.imageUrls_left[position] : ImagesUrls.imageUrls_right[position];
}
public void setGap(int value) {
mListBuddies.setGap(value);
}
public void setSpeed(int value) {
mListBuddies.setSpeed(value);
}
public void setDividerHeight(int value) {
mListBuddies.setDividerHeight(value);
}
public void setGapColor(int color) {
mListBuddies.setGapColor(color);
}
public void setAutoScrollFaster(int option) {
mListBuddies.setAutoScrollFaster(option);
}
public void setScrollFaster(int option) {
mListBuddies.setManualScrollFaster(option);
}
public void setDivider(Drawable drawable) {
mListBuddies.setDivider(drawable);
}
public void setOpenActivities(Boolean openActivities) {
this.isOpenActivities = openActivities;
}
public void resetLayout() {
mListBuddies.setGap(mMarginDefault)
.setSpeed(ListBuddiesLayout.DEFAULT_SPEED)
.setDividerHeight(mMarginDefault)
.setGapColor(getResources().getColor(R.color.frame))
.setAutoScrollFaster(mScrollConfig[ScrollConfigOptions.RIGHT.getConfigValue()])
.setManualScrollFaster(mScrollConfig[ScrollConfigOptions.LEFT.getConfigValue()])
.setDivider(getResources().getDrawable(R.drawable.divider));
}
}