Android Open Source - PhoneProfiles_Eclipse Activate Profile List Adapter






From Project

Back to project page PhoneProfiles_Eclipse.

License

The source code is released under:

Apache License

If you think the Android project PhoneProfiles_Eclipse 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 sk.henrichg.phoneprofiles;
// w ww.j a  v  a 2 s .  co  m
import java.util.List;

import android.app.Fragment;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class ActivateProfileListAdapter extends BaseAdapter
{

  private List<Profile> profileList;
  private Fragment fragment;
  
  public ActivateProfileListAdapter(Fragment f, List<Profile> pl)
  {
    fragment = f;
    profileList = pl;
  }   
  
  public void release()
  {
    fragment = null;
    profileList = null;
  }
  
  public int getCount()
  {
    return profileList.size();
  }

  public Object getItem(int position)
  {
    return profileList.get(position);
  }

  public long getItemId(int position)
  {
    return position;
  }

  public int getItemId(Profile profile)
  {
    for (int i = 0; i < profileList.size(); i++)
    {
      if (profileList.get(i)._id == profile._id)
        return i;
    }
    return -1;
  }
  
  public void setList(List<Profile> pl)
  {
    profileList = pl;
    notifyDataSetChanged();
  }
  
  public void addItem(Profile profile)
  {
    int maxPOrder = 0;
    int pOrder;
    for (Profile p : profileList)
    {
      pOrder = p._porder;
      if (pOrder > maxPOrder) maxPOrder = pOrder;
    }
    profile._porder = maxPOrder+1;
    profileList.add(profile);
    notifyDataSetChanged();
  }

  public void updateItem(Profile profile)
  {
    notifyDataSetChanged();
  }
  
  public void deleteItem(Profile profile)
  {
    profileList.remove(profile);
    notifyDataSetChanged();
  }
  
  public void changeItemOrder(int from, int to)
  {
    Profile profile = profileList.get(from);
    profileList.remove(from);
    profileList.add(to, profile);
    for (int i = 0; i < profileList.size(); i++)
    {
      profileList.get(i)._porder = i+1;
    }
    notifyDataSetChanged();
  }
  
  public Profile getActivatedProfile()
  {
    for (Profile p : profileList)
    {
      if (p._checked)
      {
        return p;
      }
    }
    
    return null;
  }

  static class ViewHolder {
      RelativeLayout listItemRoot;
      ImageView profileIcon;
      TextView profileName;
      ImageView profileIndicator;
      int position;
    }
  
  public View getView(int position, View convertView, ViewGroup parent)
  {
    ViewHolder holder;
    
    View vi = convertView;
        if (convertView == null)
        {
            holder = new ViewHolder();
        LayoutInflater inflater = LayoutInflater.from(fragment.getActivity());
      if (!GlobalData.applicationActivatorGridLayout)
      {
            if (GlobalData.applicationActivatorPrefIndicator)
              vi = inflater.inflate(R.layout.activate_profile_list_item, parent, false);
            else
              vi = inflater.inflate(R.layout.activate_profile_list_item_no_indicator, parent, false);
              holder.listItemRoot = (RelativeLayout)vi.findViewById(R.id.act_prof_list_item_root);
              holder.profileName = (TextView)vi.findViewById(R.id.act_prof_list_item_profile_name);
              holder.profileIcon = (ImageView)vi.findViewById(R.id.act_prof_list_item_profile_icon);
          if (GlobalData.applicationActivatorPrefIndicator)
            holder.profileIndicator = (ImageView)vi.findViewById(R.id.act_prof_list_profile_pref_indicator);
      }
      else
      {
            vi = inflater.inflate(R.layout.activate_profile_grid_item, parent, false);
            holder.listItemRoot = (RelativeLayout)vi.findViewById(R.id.act_prof_list_item_root);
            holder.profileName = (TextView)vi.findViewById(R.id.act_prof_list_item_profile_name);
            holder.profileIcon = (ImageView)vi.findViewById(R.id.act_prof_list_item_profile_icon);
      }
            vi.setTag(holder);        
        }
        else
        {
          holder = (ViewHolder)vi.getTag();
        }

        Profile profile = profileList.get(position);

        if (profile._checked && (!GlobalData.applicationActivatorHeader))
        {
          if (GlobalData.applicationTheme.equals("material"))
            holder.listItemRoot.setBackgroundResource(R.drawable.header_card);
          else
             if (GlobalData.applicationTheme.equals("dark"))
               holder.listItemRoot.setBackgroundResource(R.drawable.header_card_dark);
          else
             if (GlobalData.applicationTheme.equals("dlight"))
               holder.listItemRoot.setBackgroundResource(R.drawable.header_card);
          holder.profileName.setTypeface(null, Typeface.BOLD);
        }
        else
        {
          if (GlobalData.applicationTheme.equals("material"))
            holder.listItemRoot.setBackgroundResource(R.drawable.card);
          else
             if (GlobalData.applicationTheme.equals("dark"))
               holder.listItemRoot.setBackgroundResource(R.drawable.card_dark);
          else
             if (GlobalData.applicationTheme.equals("dlight"))
               holder.listItemRoot.setBackgroundResource(R.drawable.card);
          holder.profileName.setTypeface(null, Typeface.NORMAL);
        }
        
        holder.profileName.setText(profile._name);
        if (profile.getIsIconResourceID())
        {
          holder.profileIcon.setImageResource(0);
          int res = vi.getResources().getIdentifier(profile.getIconIdentifier(), "drawable", 
                vi.getContext().getPackageName());
          holder.profileIcon.setImageResource(res); // resource na ikonu
        }
        else
        {
          //profileIcon.setImageBitmap(null);
        /*  Resources resources = vi.getResources();
        int height = (int) resources.getDimension(android.R.dimen.app_icon_size);
        int width = (int) resources.getDimension(android.R.dimen.app_icon_size);
        Bitmap bitmap = BitmapResampler.resample(profile.getIconIdentifier(), width, height);
          profileIcon.setImageBitmap(bitmap); */
          holder.profileIcon.setImageBitmap(profile._iconBitmap);
        }

    if ((GlobalData.applicationActivatorPrefIndicator) && (!GlobalData.applicationActivatorGridLayout))
    {
      //profilePrefIndicatorImageView.setImageBitmap(null);
      //Bitmap bitmap = ProfilePreferencesIndicator.paint(profile, vi.getContext());
      //profilePrefIndicatorImageView.setImageBitmap(bitmap);
      holder.profileIndicator.setImageBitmap(profile._preferencesIndicator);
    }

        /*    ImageView profileItemEditMenu = (ImageView)vi.findViewById(R.id.act_prof_list_item_edit_menu);
    profileItemEditMenu.setTag(position);
    profileItemEditMenu.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
          //Log.d("ActivateProfileListAdapter.onClick", "x");
          activity.openContextMenu(v);
        }
      });
*/    
      
    //Log.d("ActivateProfileListAdapter.onGetView", "memory usage (after complete View)=" + Debug.getNativeHeapAllocatedSize());
  
        //Log.d("ProfileListAdapter.getView", profile.getName());

    return vi;
  }

}




Java Source Code List

sk.henrichg.phoneprofiles.ActivateProfileActivity.java
sk.henrichg.phoneprofiles.ActivateProfileHelper.java
sk.henrichg.phoneprofiles.ActivateProfileListAdapter.java
sk.henrichg.phoneprofiles.ActivateProfileListFragment.java
sk.henrichg.phoneprofiles.ApplicationsCache.java
sk.henrichg.phoneprofiles.ApplicationsPreferenceAdapter.java
sk.henrichg.phoneprofiles.ApplicationsPreferenceDialog.java
sk.henrichg.phoneprofiles.ApplicationsPreference.java
sk.henrichg.phoneprofiles.BackgroundActivateProfileActivity.java
sk.henrichg.phoneprofiles.BitmapManipulator.java
sk.henrichg.phoneprofiles.BootUpReceiver.java
sk.henrichg.phoneprofiles.BrightnessDialogPreference.java
sk.henrichg.phoneprofiles.BrightnessView.java
sk.henrichg.phoneprofiles.DashClockBroadcastReceiver.java
sk.henrichg.phoneprofiles.DataWrapper.java
sk.henrichg.phoneprofiles.DatabaseHandler.java
sk.henrichg.phoneprofiles.EditorProfileListAdapter.java
sk.henrichg.phoneprofiles.EditorProfileListFragment.java
sk.henrichg.phoneprofiles.EditorProfilesActivity.java
sk.henrichg.phoneprofiles.ExecuteRadioProfilePrefsService.java
sk.henrichg.phoneprofiles.ExecuteVolumeProfilePrefsService.java
sk.henrichg.phoneprofiles.FirstStartService.java
sk.henrichg.phoneprofiles.GUIData.java
sk.henrichg.phoneprofiles.GlobalData.java
sk.henrichg.phoneprofiles.IconWidgetProvider.java
sk.henrichg.phoneprofiles.ImageViewPreferenceAdapter.java
sk.henrichg.phoneprofiles.ImageViewPreferenceDialog.java
sk.henrichg.phoneprofiles.ImageViewPreference.java
sk.henrichg.phoneprofiles.KeyguardService.java
sk.henrichg.phoneprofiles.Keyguard.java
sk.henrichg.phoneprofiles.LocaleChangedReceiver.java
sk.henrichg.phoneprofiles.NumberPickerPreference.java
sk.henrichg.phoneprofiles.OneRowWidgetProvider.java
sk.henrichg.phoneprofiles.PackageReplacedReceiver.java
sk.henrichg.phoneprofiles.PhoneCallBroadcastReceiver.java
sk.henrichg.phoneprofiles.PhoneCallReceiver.java
sk.henrichg.phoneprofiles.PhoneProfilesDashClockExtension.java
sk.henrichg.phoneprofiles.PhoneProfilesHelper.java
sk.henrichg.phoneprofiles.PhoneProfilesPreferencesActivity.java
sk.henrichg.phoneprofiles.PhoneProfilesPreferencesFragment.java
sk.henrichg.phoneprofiles.ProfileDurationAlarmBroadcastReceiver.java
sk.henrichg.phoneprofiles.ProfileListWidgetFactory.java
sk.henrichg.phoneprofiles.ProfileListWidgetProvider.java
sk.henrichg.phoneprofiles.ProfileListWidgetService.java
sk.henrichg.phoneprofiles.ProfilePreferenceAdapter.java
sk.henrichg.phoneprofiles.ProfilePreferenceDialog.java
sk.henrichg.phoneprofiles.ProfilePreference.java
sk.henrichg.phoneprofiles.ProfilePreferencesFragmentActivity.java
sk.henrichg.phoneprofiles.ProfilePreferencesFragment.java
sk.henrichg.phoneprofiles.ProfilePreferencesIndicator.java
sk.henrichg.phoneprofiles.Profile.java
sk.henrichg.phoneprofiles.ReceiversService.java
sk.henrichg.phoneprofiles.RefreshGUIBroadcastReceiver.java
sk.henrichg.phoneprofiles.RemoteExportDataActivity.java
sk.henrichg.phoneprofiles.RemoveBrightnessViewBroadcastReceiver.java
sk.henrichg.phoneprofiles.ScreenOnOffBroadcastReceiver.java
sk.henrichg.phoneprofiles.ShortcutCreatorActivity.java
sk.henrichg.phoneprofiles.ShortcutCreatorListFragment.java
sk.henrichg.phoneprofiles.ShortcutProfileListAdapter.java
sk.henrichg.phoneprofiles.UpgradePPHelperActivity.java
sk.henrichg.phoneprofiles.VolumeDialogPreference.java