Android Open Source - MentorMe Drawer List Adapter






From Project

Back to project page MentorMe.

License

The source code is released under:

MIT License

If you think the Android project MentorMe listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.codepath.wwcmentorme.adapters;
/*from   ww w  .  j av  a  2 s.  co  m*/
import org.json.JSONException;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.codepath.wwcmentorme.R;
import com.codepath.wwcmentorme.activities.EditProfileActivity;
import com.codepath.wwcmentorme.activities.UserListActivity;
import com.codepath.wwcmentorme.helpers.Async;
import com.codepath.wwcmentorme.helpers.Constants.Persona;
import com.codepath.wwcmentorme.helpers.Constants.UserDisplayMode;
import com.codepath.wwcmentorme.helpers.UIUtils;
import com.codepath.wwcmentorme.helpers.ViewHolder;
import com.codepath.wwcmentorme.models.User;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

public class DrawerListAdapter extends
    ArrayAdapter<DrawerListAdapter.DrawerItem> {

  public static class DrawerItem {
    public int stringId;
    public int iconId;

    public DrawerItem(final int stringId, final int iconId) {
      this.stringId = stringId;
      this.iconId = iconId;
    }
  }

  public DrawerListAdapter(Context context) {
    super(context, 0);
  }

  public View getHeaderView() {
    final User user = User.me();
    if (user == null) {
      final View view = UIUtils.getLoginView(getContext());
      final Button loginButton = (Button) view.findViewById(R.id.loginButton);
      loginButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          UIUtils.login((Activity)getContext(), null, Persona.BOTH, new Async.Block<User>() {
            @Override
            public void call(User result) {
              
            }
            
          }, true);
        }
      });
      return view;
    }
    LayoutInflater inflator = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    final View view = inflator.inflate(R.layout.user_header, null);
    final ViewHolder.UserItem holder = new ViewHolder.UserItem();
    holder.ivMentorProfile = (ImageView) view
        .findViewById(R.id.ivMentorProfile);
    holder.tvFirstName = (TextView) view.findViewById(R.id.tvFirstName);
    holder.tvLastName = (TextView) view.findViewById(R.id.tvLastName);
    holder.tvPosition = (TextView) view.findViewById(R.id.tvPosition);
    try {
      populate(holder, user);
    } catch (JSONException e) {
      e.printStackTrace();
    }
    return view;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    return getView(getItem(position), convertView, parent);
  }

  private View getView(final DrawerItem item, View convertView,
      ViewGroup parent) {
    View view = convertView;
    if (view == null) {
      LayoutInflater inflator = (LayoutInflater) getContext()
          .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      view = inflator.inflate(R.layout.drawer_list_item, null);
      final ViewHolder.DrawerItem holder = new ViewHolder.DrawerItem();
      holder.btnItem = (Button) view.findViewById(R.id.btnDrawerItem);
      view.setTag(holder);
    }
    final ViewHolder.DrawerItem holder = (ViewHolder.DrawerItem) view
        .getTag();
    holder.btnItem.setCompoundDrawablesWithIntrinsicBounds(item.iconId, 0,
        0, 0);
    holder.btnItem.setText(item.stringId);
    
    holder.btnItem.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        Button btnItem = (Button) v;        
        String buttonText = btnItem.getText().toString();
        if (buttonText == getContext().getResources().getString(R.string.drawer_requests_received)) {
          final Intent intent = new Intent(getContext(), UserListActivity.class);
          intent.putExtra("userId", User.meId());
          intent.putExtra("persona", Persona.MENTOR);
          getContext().startActivity(intent);
        } else if (buttonText == getContext().getResources().getString(R.string.drawer_requests_Sent)) {
          final Intent intent = new Intent(getContext(), UserListActivity.class);
          intent.putExtra("persona", Persona.MENTEE);
          intent.putExtra("userId", User.meId());
          getContext().startActivity(intent);
        } else if (buttonText == getContext().getResources().getString(R.string.drawer_edit_profile)) {
          final Intent intent = new Intent(getContext(), EditProfileActivity.class);
          getContext().startActivity(intent);
        } else if (buttonText == getContext().getResources().getString(R.string.drawer_sign_out)) {
          UIUtils.logout(getContext());
        } else if (buttonText == getContext().getResources().getString(R.string.drawer_messages)) {
          final Intent intent = new Intent(getContext(), UserListActivity.class);
          intent.putExtra("userId", User.meId());
          intent.putExtra("persona", Persona.MENTOR);
          intent.putExtra("userDisplayMode", UserDisplayMode.CHAT);
          getContext().startActivity(intent);
        }
      }
    });
    return view;
  }

  private void populate(final ViewHolder.UserItem holder, User user)
      throws JSONException {
    final ImageLoader imageLoader = ImageLoader.getInstance();
    imageLoader.init(ImageLoaderConfiguration.createDefault(getContext()));
    imageLoader.displayImage(user.getProfileImageUrl(200),
        holder.ivMentorProfile);

    holder.tvFirstName.setText(user.getFirstName());
    holder.tvLastName.setText(user.getLastName());

    String formattedPosition = user.getJobTitle() + ", "
        + user.getCompanyName();
    holder.tvPosition.setText(Html.fromHtml(formattedPosition));
  }
}




Java Source Code List

com.codepath.wwcmentorme.activities.AppActivity.java
com.codepath.wwcmentorme.activities.ChatActivity.java
com.codepath.wwcmentorme.activities.EditProfileActivity.java
com.codepath.wwcmentorme.activities.HomeActivity.java
com.codepath.wwcmentorme.activities.MapActivity.java
com.codepath.wwcmentorme.activities.MentorListActivity.java
com.codepath.wwcmentorme.activities.ThankMentorActivity.java
com.codepath.wwcmentorme.activities.UserListActivity.java
com.codepath.wwcmentorme.activities.ViewProfileActivity.java
com.codepath.wwcmentorme.adapters.ChatAdapter.java
com.codepath.wwcmentorme.adapters.DrawerListAdapter.java
com.codepath.wwcmentorme.adapters.MentorListAdapter.java
com.codepath.wwcmentorme.app.MentorMeApp.java
com.codepath.wwcmentorme.data.DataService.java
com.codepath.wwcmentorme.fragments.AbstractEditProfileFragment.java
com.codepath.wwcmentorme.fragments.EditProfileExperiencesFragment.java
com.codepath.wwcmentorme.fragments.EditProfileLocationFragment.java
com.codepath.wwcmentorme.fragments.EditProfileSkillsFragment.java
com.codepath.wwcmentorme.fragments.RefineResultsDialogFragment.java
com.codepath.wwcmentorme.helpers.Async.java
com.codepath.wwcmentorme.helpers.Constants.java
com.codepath.wwcmentorme.helpers.MentorMeReceiver.java
com.codepath.wwcmentorme.helpers.NotificationCenter.java
com.codepath.wwcmentorme.helpers.RoundedImageView.java
com.codepath.wwcmentorme.helpers.UIUtils.java
com.codepath.wwcmentorme.helpers.Utils.java
com.codepath.wwcmentorme.helpers.ViewHolder.java
com.codepath.wwcmentorme.models.Message.java
com.codepath.wwcmentorme.models.Rating.java
com.codepath.wwcmentorme.models.Request.java
com.codepath.wwcmentorme.models.User.java