package com.noprom.app.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v7.widget.SearchView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.noprom.app.AppContext;
import com.noprom.app.AppException;
import com.noprom.app.R;
import com.noprom.app.bean.MyInformation;
import com.noprom.app.common.UIHelper;
import com.noprom.app.ui.LoginActivity;
/**
* 综合Tab MeFragment
*
* @author noprom (http://github.com/noprom)
* @version 1.0
* Created by noprom on 2014-2-25.
*/
public class MeFragment extends Fragment {
private final String TAG = "MeFragment";
private ImageView mUserInfoFace;
private TextView mUserInfoUsername;
private TextView mUserInfoScore;
private TextView mUserInfoFavorite;
private TextView mUserInfoFollows;
private TextView mUserInfoFans;
private MyInformation user;
private Handler mHandler;
private boolean mSearchCheck;
@Override
public View onCreateView(final LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(TAG, "onCreateView");
View rootView = inflater.inflate(R.layout.fragment_me, container, false);
rootView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
// 初始化视图控件
mUserInfoFace = (ImageView) rootView.findViewById(R.id.user_info_face);
mUserInfoUsername = (TextView) rootView.findViewById(R.id.user_info_username);
mUserInfoScore = (TextView) rootView.findViewById(R.id.user_info_score);
mUserInfoFavorite = (TextView) rootView.findViewById(R.id.user_info_favorite);
mUserInfoFollows = (TextView) rootView.findViewById(R.id.user_info_followers);
mUserInfoFans = (TextView) rootView.findViewById(R.id.user_info_fans);
// 初始化点击事件
mUserInfoFace.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), LoginActivity.class);
intent.putExtra("LOGINTYPE", 0x00);
startActivity(intent);
}
});
// 初始化视图数据
this.initData();
return rootView;
}
/**
* 初始化视图数据
*/
private void initData() {
mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what == 1 && msg.obj !=null){
user = (MyInformation) msg.obj;
// 加载用户头像
UIHelper.showUserFace(mUserInfoFace,user.getFace());
}
}
};
this.loadUserInfoThread(false);
}
private void loadUserInfoThread(final boolean isRefresh) {
new Thread(new Runnable() {
@Override
public void run() {
Message msg = new Message();
try{
MyInformation user = ((AppContext) getActivity().getApplication()).getMyInformation(isRefresh);
msg.what = 1;
msg.obj = user;
}catch (AppException e){
e.printStackTrace();
msg.what = -1;
msg.obj = e;
}
mHandler.sendMessage(msg);
}
}).start();
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu, menu);
//Select search item
final MenuItem menuItem = menu.findItem(R.id.menu_search);
menuItem.setVisible(true);
SearchView searchView = (SearchView) menuItem.getActionView();
searchView.setQueryHint(this.getString(R.string.search));
((EditText) searchView.findViewById(R.id.search_src_text))
.setHintTextColor(getResources().getColor(R.color.nliveo_white));
searchView.setOnQueryTextListener(onQuerySearchView);
menu.findItem(R.id.menu_add).setVisible(true);
mSearchCheck = false;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_add:
Toast.makeText(getActivity(), R.string.add, Toast.LENGTH_SHORT).show();
break;
case R.id.menu_search:
mSearchCheck = true;
Toast.makeText(getActivity(), R.string.search, Toast.LENGTH_SHORT).show();
break;
}
return true;
}
private SearchView.OnQueryTextListener onQuerySearchView = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
return false;
}
@Override
public boolean onQueryTextChange(String s) {
if (mSearchCheck) {
// implement your search here
}
return false;
}
};
}