package com.ericliudeveloper.sharedbillhelper.ui.fragment; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; 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.widget.TextView; import com.ericliudeveloper.sharedbillhelper.R; import com.ericliudeveloper.sharedbillhelper.model.Member; import com.ericliudeveloper.sharedbillhelper.model.MemberDAO; import com.ericliudeveloper.sharedbillhelper.ui.activity.CalculationParameterActivity; import com.ericliudeveloper.sharedbillhelper.ui.activity.EditMemberActivity; import com.ericliudeveloper.sharedbillhelper.ui.dialog.DeleteDialog; import com.ericliudeveloper.sharedbillhelper.util.CustomEvents; import com.ericliudeveloper.sharedbillhelper.util.Router; import butterknife.ButterKnife; import butterknife.InjectView; import de.greenrobot.event.EventBus; /** * A simple {@link Fragment} subclass. */ public class ViewMemberDetailsFragment extends BaseFragment { private Member mMember; @InjectView(R.id.tvFristName) TextView tvFirstName; @InjectView(R.id.tvLastName) TextView tvLastName; @InjectView(R.id.tvPhoneNumber) TextView tvPhoneNumber; @InjectView(R.id.tvEmail) TextView tvEmail; @InjectView(R.id.tvMoveInDate) TextView tvMoveInDate; @InjectView(R.id.tvMoveOutDate) TextView tvMoveOutDate; public ViewMemberDetailsFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View root = inflater.inflate(R.layout.fragment_view_member_details, container, false); ButterKnife.inject(this, root); return root; } @Override public void onResume() { EventBus.getDefault().registerSticky(this); super.onResume(); } public void onEvent(CustomEvents.EventViewMember eventViewMember) { mMember = eventViewMember.member; refreshDisplay(mMember); } private void refreshDisplay(Member mMember) { String firstName = mMember.getFirstName(); if (!TextUtils.isEmpty(firstName)) { tvFirstName.setText(firstName); } String lastName = mMember.getLastName(); if (!TextUtils.isEmpty(lastName)) { tvLastName.setText(lastName); } String phone = mMember.getPhone(); if (!TextUtils.isEmpty(phone)) { tvPhoneNumber.setText(phone); } String email = mMember.getEmail(); if (!TextUtils.isEmpty(email)) { tvEmail.setText(email); } String moveIn = mMember.getMoveInDate(); if (!TextUtils.isEmpty(moveIn)) { tvMoveInDate.setText(moveIn); } String moveOut = mMember.getMoveOutDate(); if (!TextUtils.isEmpty(moveOut)) { tvMoveOutDate.setText(moveOut); } } public void onEvent(CustomEvents.EventActionDelete eventActionDelete) { if (mMember == null) { return; } int yesDeleted = 1; mMember.setDeleted(yesDeleted); MemberDAO.saveMember(mMember, null); if (getActivity() != null) { getActivity().finish(); } } public void onEvent(CustomEvents.EventFABClicked eventFABClicked) { Router.startActivity(getActivity(), CalculationParameterActivity.class, null); } @Override public void onPause() { super.onPause(); EventBus.getDefault().unregister(this); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.menu_view_details, menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); switch (id) { case R.id.action_edit: EventBus.getDefault().postSticky(new CustomEvents.EventEditMember(mMember)); Intent gotoEditIntent = new Intent(getActivity(), EditMemberActivity.class); getActivity().startActivity(gotoEditIntent); if (getActivity() != null) { getActivity().finish(); } break; case R.id.action_delete: showDeleteMemberDialog(); break; default: break; } return super.onOptionsItemSelected(item); } private void showDeleteMemberDialog() { Bundle args = new Bundle(); args.putString(DeleteDialog.TITLE, getResources().getString(R.string.confirm_delete)); args.putString(DeleteDialog.MESSAGE, getResources().getString(R.string.delete_member)); DeleteDialog deleteDialog = DeleteDialog.newInstance(args); deleteDialog.show(getFragmentManager(), "delete"); } }