package com.pinthecloud.athere.fragment;
import java.util.List;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
import com.handmark.pulltorefresh.library.PullToRefreshGridView;
import com.pinthecloud.athere.AhGlobalVariable;
import com.pinthecloud.athere.R;
import com.pinthecloud.athere.activity.ChupaChatActivity;
import com.pinthecloud.athere.activity.ProfileImageActivity;
import com.pinthecloud.athere.adapter.MemberGridAdapter;
import com.pinthecloud.athere.dialog.ProfileDialog;
import com.pinthecloud.athere.interfaces.AhDialogCallback;
import com.pinthecloud.athere.model.AhUser;
public class MemberFragment extends AhFragment{
private PullToRefreshGridView pullToRefreshGridView;
private GridView memberGridView;
private MemberGridAdapter memberGridAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.fragment_member, container, false);
findComponent(view);
setMemberGrid();
return view;
}
@Override
public void onStart() {
super.onStart();
updateMemberGrid();
}
@Override
public void onSaveInstanceState(Bundle outState) {
//first saving my state, so the bundle wont be empty.
outState.putString("VIEWPAGER_BUG_FIX", "VIEWPAGER_BUG_FIX");
super.onSaveInstanceState(outState);
}
private void findComponent(View view){
pullToRefreshGridView = (PullToRefreshGridView)view.findViewById(R.id.member_frag_grid);
memberGridView = pullToRefreshGridView.getRefreshableView();
registerForContextMenu(memberGridView);
}
private void setMemberGrid(){
memberGridAdapter = new MemberGridAdapter(context, thisFragment);
memberGridView.setAdapter(memberGridAdapter);
memberGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
gaHelper.sendEventGA(
thisFragment.getClass().getSimpleName(),
"ViewOtherProfile",
"MemberProfile");
final AhUser user = memberGridAdapter.getItem(position);
ProfileDialog profileDialog = new ProfileDialog(thisFragment, user, new AhDialogCallback() {
@Override
public void doPositiveThing(Bundle bundle) {
gaHelper.sendEventGA(
thisFragment.getClass().getSimpleName(),
"SendChupa",
"MemberSendChupa");
Intent intent = new Intent(context, ChupaChatActivity.class);
intent.putExtra(AhGlobalVariable.USER_KEY, user);
context.startActivity(intent);
}
@Override
public void doNegativeThing(Bundle bundle) {
Intent intent = new Intent(context, ProfileImageActivity.class);
intent.putExtra(AhGlobalVariable.USER_KEY, user);
context.startActivity(intent);
}
});
profileDialog.show(getFragmentManager(), AhGlobalVariable.DIALOG_KEY);
}
});
pullToRefreshGridView.setOnRefreshListener(new OnRefreshListener<GridView>() {
@Override
public void onRefresh(PullToRefreshBase<GridView> refreshView) {
updateMemberGrid();
refreshView.onRefreshComplete();
}
});
}
private void updateMemberGrid() {
final List<AhUser> userList = userDBHelper.getAllUsers(false);
userList.add(0, userHelper.getMyUserInfo());
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
memberGridAdapter.clear();
memberGridAdapter.addAll(userList);
}
});
}
}