Android Open Source - GuildViewerApp2 News Adapter






From Project

Back to project page GuildViewerApp2.

License

The source code is released under:

Apache License

If you think the Android project GuildViewerApp2 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.skywomantechnology.app.guildviewer;
//from   ww  w .j  av  a  2  s .  c o  m
/*
 * Guild Viewer is an Android app that allows users to view news feeds and news feed details
 * on a mobile device and while not logged into the game servers.
 *
 * Copyright 2014 Sky Woman Technology LLC
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

import android.content.Context;
import android.content.res.Resources;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CursorAdapter;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * This CursorAdapter handles the list item view
 * for the guild news items and displays
 * an icon for the news item type and then the news item and timestamp
 */
public class NewsAdapter extends CursorAdapter {

    //public final String LOG_TAG = NewsAdapter.class.getSimpleName();

    public static class ViewHolder {
        public final ImageView newsIconView;
        public final TextView newsTypeView;
        public final TextView newsTimestampView;
        public ViewHolder(View view) {
            newsIconView = (ImageView) view.findViewById(R.id.list_item_icon);
            newsTypeView = (TextView) view.findViewById(R.id.list_item_news_type);
            newsTimestampView = (TextView) view.findViewById(R.id.list_item_news_timestamp);
        }
    }

    /**
     * Constructor
     * @param context for view
     * @param c cursor with data
     * @param flags int
     */
    public NewsAdapter(Context context, Cursor c, int flags) {
        super(context, c, flags);
    }

    /**
     *
     * @param context for view
     * @param cursor with data
     * @param parent View Group
     * @return View
     */
    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {
        View view = LayoutInflater.from(context).inflate(R.layout.list_item_news, parent, false);
        ViewHolder viewHolder = new ViewHolder(view);
        view.setTag(viewHolder);
        return view;
    }

    /**
     * Add data to the list view
     * @param view to add data to
     * @param context for view
     * @param cursor with data
     */
    @Override
    public void bindView(View view, Context context, Cursor cursor) {

        Resources res = context.getResources();
        ViewHolder viewHolder = (ViewHolder) view.getTag();

        // create the timestamp
        String timestamp =
                Utility.getReadableDateString(cursor.getLong(NewsListFragment.COL_TIMESTAMP),
                        res.getString(R.string.format_timestamp_list_view));
        viewHolder.newsTimestampView.setText(timestamp);

        // collect the data needed to summarize the news item
        String newsType = cursor.getString(NewsListFragment.COL_TYPE);
        String verb = Utility.getNewsTypeVerb(context, newsType);
        String character = cursor.getString(NewsListFragment.COL_CHARACTER);
        String itemName = cursor.getString(NewsListFragment.COL_ITEM_NAME);
        String achievementTitle = cursor.getString(NewsListFragment.COL_ACHIEVEMENT_TITLE);

        // format the primary pieces of data into a simple list display format
        String news = String.format(context.getString(R.string.format_simple_display),
                character, verb, ((newsType.contains(Constants.ITEM)) ? itemName : achievementTitle));
        viewHolder.newsTypeView.setText(news);

        // add a pretty picture to make it simpler to find news type items
        viewHolder.newsIconView.setImageResource(Utility.getImageResourceForNews(newsType));
    }
}




Java Source Code List

com.skywomantechnology.app.guildviewer.Constants.java
com.skywomantechnology.app.guildviewer.NewsAdapter.java
com.skywomantechnology.app.guildviewer.NewsDetailActivity.java
com.skywomantechnology.app.guildviewer.NewsDetailFragment.java
com.skywomantechnology.app.guildviewer.NewsListActivity.java
com.skywomantechnology.app.guildviewer.NewsListFragment.java
com.skywomantechnology.app.guildviewer.SetPreferenceActivity.java
com.skywomantechnology.app.guildviewer.SettingsFragment.java
com.skywomantechnology.app.guildviewer.Utility.java
com.skywomantechnology.app.guildviewer.data.GuildViewerAchievement.java
com.skywomantechnology.app.guildviewer.data.GuildViewerContract.java
com.skywomantechnology.app.guildviewer.data.GuildViewerDbHelper.java
com.skywomantechnology.app.guildviewer.data.GuildViewerGuild.java
com.skywomantechnology.app.guildviewer.data.GuildViewerItem.java
com.skywomantechnology.app.guildviewer.data.GuildViewerMember.java
com.skywomantechnology.app.guildviewer.data.GuildViewerNewsItem.java
com.skywomantechnology.app.guildviewer.data.NewsProvider.java
com.skywomantechnology.app.guildviewer.sync.GuildViewerAuthenticatorService.java
com.skywomantechnology.app.guildviewer.sync.GuildViewerAuthenticator.java
com.skywomantechnology.app.guildviewer.sync.GuildViewerSyncAdapter.java
com.skywomantechnology.app.guildviewer.sync.GuildViewerSyncService.java