package com.code44.finance.ui.user;
import android.os.Bundle;
import android.support.annotation.Nullable;
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.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.code44.finance.R;
import com.code44.finance.api.User;
import com.code44.finance.ui.BaseFragment;
import javax.inject.Inject;
public class UserFragment extends BaseFragment implements View.OnClickListener {
@Inject User user;
private ImageView cover_IV;
private ImageView photo_IV;
private TextView name_TV;
private Button login_B;
public static UserFragment newInstance() {
return new UserFragment();
}
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_user, container, false);
}
@Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// Get views
cover_IV = (ImageView) view.findViewById(R.id.cover_IV);
photo_IV = (ImageView) view.findViewById(R.id.photo_IV);
name_TV = (TextView) view.findViewById(R.id.name_TV);
login_B = (Button) view.findViewById(R.id.login_B);
// Setup
login_B.setOnClickListener(this);
}
@Override public void onResume() {
super.onResume();
updateViews();
}
@Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.user, menu);
}
@Override public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_logout:
logout();
break;
}
return super.onOptionsItemSelected(item);
}
@Override public void onClick(View view) {
switch (view.getId()) {
case R.id.login_B:
LoginActivity.start(getActivity());
break;
}
}
// @SuppressWarnings("UnusedDeclaration")
// TODO public void onEventMainThread(User.UserChangedEvent event) {
// updateViews();
// }
private void updateViews() {
if (user.isLoggedIn()) {
cover_IV.setVisibility(View.VISIBLE);
photo_IV.setVisibility(View.VISIBLE);
name_TV.setVisibility(View.VISIBLE);
login_B.setVisibility(View.GONE);
name_TV.setText(user.getFirstName() + " " + user.getLastName());
} else {
cover_IV.setVisibility(View.GONE);
photo_IV.setVisibility(View.GONE);
name_TV.setVisibility(View.GONE);
login_B.setVisibility(View.VISIBLE);
}
}
private void logout() {
user.logout();
}
}