Android Open Source - music-tag Suggestion Item Adapter






From Project

Back to project page music-tag.

License

The source code is released under:

Apache License

If you think the Android project music-tag 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 binauld.pierre.musictag.adapter;
/*  w ww .  ja  v  a  2s  . c om*/
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;

import java.util.ArrayList;
import java.util.List;

import binauld.pierre.musictag.R;
import binauld.pierre.musictag.item.SuggestionItem;


public class SuggestionItemAdapter extends BaseAdapter {

    private List<SuggestionItem> suggestionItems;
    private int selectedPosition;

    public SuggestionItemAdapter(SuggestionItem suggestion) {
        this.selectedPosition = 0;
        this.suggestionItems = new ArrayList<>();
        this.suggestionItems.add(suggestion);
    }

    @Override
    public int getCount() {
        return suggestionItems.size();
    }

    @Override
    public Object getItem(int position) {
        return suggestionItems.get(position);
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        SuggestionViewHolder viewHolder;

        if (convertView == null) {

            // inflate the layout
            convertView = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.suggestion_item_view, parent, false);

            // well set up the ViewHolder
            viewHolder = new SuggestionViewHolder(convertView);

            // store the holder with the view.
            convertView.setTag(viewHolder);

        } else {
            // just use the viewHolder
            viewHolder = (SuggestionViewHolder) convertView.getTag();
        }

        // object item based on the position
        SuggestionItem item = suggestionItems.get(position);

        // assign values if the object is not null
        if (item != null) {
            viewHolder.txtTrack.setText(item.getTrack());
            viewHolder.txtTitle.setText(item.getTitle());
            viewHolder.txtAlbum.setText(item.getTAlbum());
            viewHolder.txtArtist.setText(item.getArtist());
            viewHolder.txtYear.setText(item.getYear());

            viewHolder.rbItem.setChecked(position == selectedPosition);
            if(viewHolder.rbItem.isChecked()) {
                //TODO: put this in res
                viewHolder.card.setCardElevation(10);
            } else {
                viewHolder.card.setCardElevation(3);
            }
            viewHolder.card.setTag(position);
            viewHolder.card.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    selectedPosition = (Integer)view.getTag();
                    notifyDataSetChanged();
                }
            });

            convertView.setTag(viewHolder);
        }

        return convertView;
    }

    /**
     * Check if the first item is selected.
     * @return True if it is, else false.
     */
    public boolean isLocalSuggestionSelected() {
        if(0 == selectedPosition) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * Return the current selected suggestion item.
     * @return the current selected suggestion item.
     */
    public SuggestionItem getSelectedSuggestion() {
        return suggestionItems.get(selectedPosition);
    }

    public void putSuggestions(List<List<SuggestionItem>> lists) {
        this.suggestionItems.addAll(lists.get(0));
    }
}




Java Source Code List

binauld.pierre.musictag.ApplicationTest.java
binauld.pierre.musictag.activities.MainActivity.java
binauld.pierre.musictag.activities.SettingsActivity.java
binauld.pierre.musictag.activities.TagFormActivity.java
binauld.pierre.musictag.activities.TagSuggestionActivity.java
binauld.pierre.musictag.adapter.LibraryItemAdapter.java
binauld.pierre.musictag.adapter.SuggestionItemAdapter.java
binauld.pierre.musictag.adapter.SuggestionViewHolder.java
binauld.pierre.musictag.collection.LibraryItemComparator.java
binauld.pierre.musictag.collection.MultipleBufferedList.java
binauld.pierre.musictag.decoder.AudioFileBitmapDecoder.java
binauld.pierre.musictag.decoder.BitmapDecoder.java
binauld.pierre.musictag.decoder.ResourceBitmapDecoder.java
binauld.pierre.musictag.factory.FileFilterFactory.java
binauld.pierre.musictag.factory.LibraryItemFactory.java
binauld.pierre.musictag.fragments.SettingsFragment.java
binauld.pierre.musictag.helper.LibraryItemFactoryHelper.java
binauld.pierre.musictag.helper.LoaderHelper.java
binauld.pierre.musictag.io.ArtworkLoader.java
binauld.pierre.musictag.io.AsyncDrawable.java
binauld.pierre.musictag.io.DefaultArtworkLoader.java
binauld.pierre.musictag.io.LibraryItemLoaderManager.java
binauld.pierre.musictag.io.LibraryItemLoader.java
binauld.pierre.musictag.io.SuggestionLoader.java
binauld.pierre.musictag.item.AudioItem.java
binauld.pierre.musictag.item.ChildItem.java
binauld.pierre.musictag.item.FolderItem.java
binauld.pierre.musictag.item.LibraryItem.java
binauld.pierre.musictag.item.LoadingState.java
binauld.pierre.musictag.item.NodeItem.java
binauld.pierre.musictag.item.SuggestionItem.java
binauld.pierre.musictag.service.ArtworkService.java
binauld.pierre.musictag.service.CacheService.java
binauld.pierre.musictag.service.Locator.java
binauld.pierre.musictag.tag.Id3TagParcelable.java
binauld.pierre.musictag.tag.Id3Tag.java
binauld.pierre.musictag.tag.SupportedTag.java
binauld.pierre.musictag.widget.AnimatedProgressBar.java