package com.pinthecloud.athere.fragment; import java.util.ArrayList; import java.util.List; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import com.pinthecloud.athere.AhGlobalVariable; import com.pinthecloud.athere.R; import com.pinthecloud.athere.activity.ProfileImageActivity; import com.pinthecloud.athere.activity.ProfileSettingsActivity; import com.pinthecloud.athere.adapter.AppDrawerListAdapter; import com.pinthecloud.athere.dialog.ProfileDialog; import com.pinthecloud.athere.helper.BlobStorageHelper; import com.pinthecloud.athere.interfaces.AhDialogCallback; import com.pinthecloud.athere.model.AhUser; import com.pinthecloud.athere.model.AppDrawerListItem; import com.pinthecloud.athere.view.DividerItemDecoration; public class AppDrawerFragment extends AhFragment{ private ImageView profileImageView; private TextView nickNameText; private TextView ageText; private TextView genderText; private Button profileSettingsButton; private RecyclerView appDrawerListView; private AppDrawerListAdapter appDrawerListAdapter; private RecyclerView.LayoutManager appDrawerListLayoutManager; private List<AppDrawerListItem> appDrawerList; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View view = inflater.inflate(R.layout.fragment_app_drawer, container, false); findComponent(view); return view; } @Override public void onStart() { super.onStart(); AhUser user = userHelper.getMyUserInfo(); setComponent(user); setAppDrawerList(user); setAppDrawerListItem(); setButtonEvent(user); } @Override public void onStop() { profileImageView.setImageBitmap(null); super.onStop(); } private void findComponent(View view){ profileImageView = (ImageView) view.findViewById(R.id.app_drawer_frag_profile_image); nickNameText = (TextView) view.findViewById(R.id.app_drawer_frag_nick_name); ageText = (TextView) view.findViewById(R.id.app_drawer_frag_age); genderText = (TextView) view.findViewById(R.id.app_drawer_frag_gender); profileSettingsButton = (Button) view.findViewById(R.id.app_drawer_frag_profile_settings_button); appDrawerListView = (RecyclerView) view.findViewById(R.id.app_drawer_frag_list); } private void setComponent(AhUser user){ blobStorageHelper.setImageViewAsync(thisFragment, BlobStorageHelper.USER_PROFILE, user.getId()+AhGlobalVariable.SMALL, R.drawable.profile_edit_profile_default_ico, profileImageView, true); nickNameText.setText(user.getNickName()); ageText.setText(""+user.getAge()); genderText.setText(user.getGenderString(context)); if(user.isMale()){ genderText.setTextColor(getResources().getColor(R.color.blue_man)); }else{ genderText.setTextColor(getResources().getColor(R.color.brand_red_color_dark)); } } private void setButtonEvent(final AhUser user){ profileImageView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ProfileDialog profileDialog = new ProfileDialog(thisFragment, user, new AhDialogCallback() { @Override public void doPositiveThing(Bundle bundle) { // Do noghing } @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); } }); profileSettingsButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { gaHelper.sendEventGA( thisFragment.getClass().getSimpleName(), "DrawerProfileSetting", "ProfileSetting"); Intent intent = new Intent(context, ProfileSettingsActivity.class); intent.putExtra(AhGlobalVariable.USER_KEY, user); startActivity(intent); } }); } private void setAppDrawerList(AhUser user){ appDrawerListView.setHasFixedSize(true); appDrawerListView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL_LIST)); appDrawerListLayoutManager = new LinearLayoutManager(context); appDrawerListView.setLayoutManager(appDrawerListLayoutManager); appDrawerList = new ArrayList<AppDrawerListItem>(); appDrawerListAdapter = new AppDrawerListAdapter(context, thisFragment, user, appDrawerList); appDrawerListView.setAdapter(appDrawerListAdapter); } private void setAppDrawerListItem(){ ArrayList<AppDrawerListItem> items = new ArrayList<AppDrawerListItem>(); items.add(new AppDrawerListItem(R.drawable.drawer_setting_ico, getResources().getString(R.string.app_settings))); items.add(new AppDrawerListItem(R.drawable.drawer_share_ico, getResources().getString(R.string.share))); items.add(new AppDrawerListItem(R.drawable.drawer_request_ico, getResources().getString(R.string.question))); appDrawerList.clear(); appDrawerList.addAll(items); appDrawerListAdapter.notifyDataSetChanged(); } }