package tk.djcrazy.MyCC98.fragment;
import roboguice.inject.InjectView;
import tk.djcrazy.MyCC98.EditActivity;
import tk.djcrazy.MyCC98.HomeActivity;
import tk.djcrazy.MyCC98.LoginActivity;
import tk.djcrazy.MyCC98.ProfileActivity;
import tk.djcrazy.MyCC98.R;
import tk.djcrazy.MyCC98.SettingsActivity;
import tk.djcrazy.MyCC98.adapter.AccountListAdapter;
import tk.djcrazy.MyCC98.dialog.AboutDialog;
import tk.djcrazy.MyCC98.dialog.FeedbackDialog;
import tk.djcrazy.MyCC98.util.Intents;
import tk.djcrazy.libCC98.CachedCC98Service;
import tk.djcrazy.libCC98.ICC98UrlManager;
import tk.djcrazy.libCC98.data.LoginType;
import android.R.integer;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnLongClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import com.github.rtyley.android.sherlock.roboguice.fragment.RoboSherlockFragment;
import android.support.v4.app.FragmentManager;
import com.google.inject.Inject;
public class HomeBehindMenuFragment extends RoboSherlockFragment implements OnItemLongClickListener, OnItemClickListener, android.view.View.OnClickListener {
@InjectView(R.id.home_behind_listview)
private ListView mAccountListView;
@InjectView(R.id.add_caccount)
private ImageView mAddAccountView;
@InjectView(R.id.home_menu_profile)
private Button mProfileButton;
@InjectView(R.id.home_menu_about)
private Button mAboutButton;
@InjectView(R.id.home_menu_feedback)
private Button mFeedbackButton;
@InjectView(R.id.home_menu_setting)
private Button mSettingButton;
@Inject
private CachedCC98Service service;
@Inject
private ICC98UrlManager urlManager;
AccountListAdapter adapter;
private ICC98UrlManager getUrlManager() {
return urlManager;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_home_menu, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
adapter = new AccountListAdapter(getActivity(), service.getusersInfo(),service.getUserAvatars());
mAccountListView.setAdapter(adapter);
mAccountListView.setOnItemClickListener(this);
mAddAccountView.setOnClickListener(this);
mProfileButton.setOnClickListener(this);
mFeedbackButton.setOnClickListener(this);
mSettingButton.setOnClickListener(this);
mAboutButton.setOnClickListener(this);
mAccountListView.setOnItemLongClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
final int pos = position;
if (pos!=service.getusersInfo().currentUserIndex) {
AlertDialog.Builder builder = new Builder(getActivity());
builder.setTitle("提醒").setMessage("确认切换账号?").setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
service.switchToUser(pos);
dialog.dismiss();
startActivity(new Intent(getActivity(), HomeActivity.class));
getActivity().finish();
}
});
builder.create().show();
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.add_caccount:
Intent intent = new Intents.Builder(getActivity(), LoginActivity.class).needLogin(true).toIntent();
startActivity(intent);
break;
case R.id.home_menu_about:
new AboutDialog(getActivity()).show();
break;
case R.id.home_menu_feedback:
//tk.djcrazy.MyCC98.util.Intents.Builder builder = new Intents.Builder(getActivity(), EditActivity.class);
//Intent intent1 = builder.requestType(EditActivity.REQUEST_PM)
// .pmToUser("MyCC.98").pmTitle("MyCC98软件反馈").toIntent();
//startActivity(intent1);
showFeedbackDialog();
break;
case R.id.home_menu_profile:
Intent profiIntent = new Intent();
profiIntent.setClass(getActivity(), ProfileActivity.class);
profiIntent.putExtra("userName", service.getCurrentUserName());
startActivity(profiIntent);
break;
case R.id.home_menu_setting:
startActivity(new Intent(getActivity(), SettingsActivity.class));
break;
default:
break;
}
}
private void showFeedbackDialog() {
FragmentManager fm = getActivity().getSupportFragmentManager();
FeedbackDialog feedbackDialog = new FeedbackDialog();
String username = service.getCurrentUserName();
feedbackDialog.setUserInfo(username, getUrlManager().getUserProfileUrl(LoginType.NORMAL, username));
feedbackDialog.show(fm, "feedback_dialog");
}
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
final int pos = position;
if (pos!=service.getusersInfo().currentUserIndex) {
AlertDialog.Builder builder = new Builder(getActivity());
builder.setTitle("提醒").setMessage("确认删除账号?").setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
service.deleteUserInfo(pos);
adapter.notifyDataSetChanged();
dialog.dismiss();
}
});
builder.create().show();
}
return true;
}
}