Android Open Source - twitt4droid List Timeline Fragment






From Project

Back to project page twitt4droid.

License

The source code is released under:

Apache License

If you think the Android project twitt4droid 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

/*
 * Copyright 2014 Daniel Pedraza-Arcega/* w ww  . j a v  a2  s .c om*/
 *
 * 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.
 */
package com.twitt4droid.fragment;

import android.os.Bundle;

import com.twitt4droid.R;
import com.twitt4droid.data.dao.ListTimelineDAO;
import com.twitt4droid.data.dao.impl.DAOFactory;

import twitter4j.Paging;
import twitter4j.TwitterException;
import twitter4j.UserList;

import java.util.List;

/**
 * Shows the 20 most recent statuses from the given list. 
 * 
 * @author Daniel Pedraza-Arcega
 * @since version 1.0
 */
public class ListTimelineFragment extends TimelineFragment {

    protected static final String LIST_ARG = "LIST";

    /**
     * Creates a ListTimelineFragment.
     * 
     * @param userList a Twitter list.
     * @param enableDarkTheme if the dark theme is enabled.
     * @return a new ListTimelineFragment.
     */
    public static ListTimelineFragment newInstance(UserList userList, boolean enableDarkTheme) {
        ListTimelineFragment fragment = new ListTimelineFragment();
        Bundle args = new Bundle();
        args.putSerializable(LIST_ARG, userList);
        args.putBoolean(ENABLE_DARK_THEME_ARG, enableDarkTheme);
        fragment.setArguments(args);
        return fragment;
    }

    /**
     * Creates a ListTimelineFragment.
     * 
     * @param userList a Twitter list.
     * @return a new ListTimelineFragment.
     */
    public static ListTimelineFragment newInstance(UserList userList) {
        return newInstance(userList, false);
    }

    /** {@inheritDoc} */
    @Override
    protected ListStatusesLoaderTask initStatusesLoaderTask() {
        return new ListStatusesLoaderTask(new DAOFactory(getActivity().getApplicationContext()).getListTimelineDAO(), getList().getId());
    }

    /** {@inheritDoc} */
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        initStatusesLoaderTask().execute();
    }

    /** @return the Twitter list name. */
    public String getListTitle() {
        return getList().getName();
    }

    /** @return the Twitter list. */
    protected UserList getList() {
        return (UserList) getArguments().getSerializable(LIST_ARG);
    }

    /** 
     * {@inheritDoc}
     * 
     *  @deprecated use {@link #getListTitle()}
     */
    @Override
    @Deprecated
    public int getResourceTitle() {
        return R.string.twitt4droid_list_timeline_fragment_title;
    }

    /** {@inheritDoc} */
    @Override
    public int getResourceHoloLightIcon() {
        return R.drawable.twitt4droid_ic_list_holo_light;
    }

    /** {@inheritDoc} */
    @Override
    public int getResourceHoloDarkIcon() {
        return R.drawable.twitt4droid_ic_list_holo_dark;
    }

    /**
     * Loads twitter statuses asynchronously.
     * 
     * @author Daniel Pedraza-Arcega
     * @since version 1.0
     */
    private class ListStatusesLoaderTask extends StatusesLoaderTask {

        private final long listId;

        /**
         * Creates a ListStatusesLoaderTask.
         * 
         * @param timelineDao a TimelineDAO.
         * @param listId the list id.
         */
        protected ListStatusesLoaderTask(ListTimelineDAO timelineDao, long listId) {
            super(timelineDao);
            this.listId = listId;
        }

        /** {@inheritDoc} */
        @Override
        protected List<twitter4j.Status> loadTweetsInBackground() throws TwitterException {
            ListTimelineDAO timelineDAO = (ListTimelineDAO) getDAO();
            List<twitter4j.Status> statuses = null;
            if (isConnectedToInternet()) {
                statuses = getTwitter().getUserListStatuses(listId, new Paging(1));
                // TODO: update statuses instead of deleting all previous statuses and save new ones.
                timelineDAO.deleteAllByListId(listId);
                timelineDAO.save(statuses, listId);
            } else statuses = timelineDAO.fetchListByListId(listId);
            return statuses;
        }
    }
}




Java Source Code List

com.twitt4droid.Resources.java
com.twitt4droid.Twitt4droid.java
com.twitt4droid.activity.UserProfileActivity.java
com.twitt4droid.activity.WebLoginActivity.java
com.twitt4droid.app.activity.MainActivity.java
com.twitt4droid.app.activity.SettingsActivity.java
com.twitt4droid.app.activity.SignInActivity.java
com.twitt4droid.app.fragment.ListsFragment.java
com.twitt4droid.app.widget.DrawerItemAdapter.java
com.twitt4droid.app.widget.DrawerItem.java
com.twitt4droid.app.widget.ScrimInsetsFrameLayout.java
com.twitt4droid.data.dao.GenericDAO.java
com.twitt4droid.data.dao.ListTimelineDAO.java
com.twitt4droid.data.dao.TimelineDAO.java
com.twitt4droid.data.dao.UserDAO.java
com.twitt4droid.data.dao.UserTimelineDAO.java
com.twitt4droid.data.dao.impl.DAOFactory.java
com.twitt4droid.data.dao.impl.sqlite.ListSQLiteDAO.java
com.twitt4droid.data.dao.impl.sqlite.SQLiteTemplate.java
com.twitt4droid.data.dao.impl.sqlite.SQLiteUtils.java
com.twitt4droid.data.dao.impl.sqlite.StatusCursorImpl.java
com.twitt4droid.data.dao.impl.sqlite.TimelineSQLiteDAO.java
com.twitt4droid.data.dao.impl.sqlite.UserCursorImpl.java
com.twitt4droid.data.dao.impl.sqlite.UserSQLiteDAO.java
com.twitt4droid.data.dao.impl.sqlite.UserTimelineSQLiteDAO.java
com.twitt4droid.data.source.SQLFileParser.java
com.twitt4droid.data.source.Twitt4droidDatabaseHelper.java
com.twitt4droid.fragment.FixedQueryTimelineFragment.java
com.twitt4droid.fragment.HomeTimelineFragment.java
com.twitt4droid.fragment.ListTimelineFragment.java
com.twitt4droid.fragment.MentionsTimelineFragment.java
com.twitt4droid.fragment.QueryableTimelineFragment.java
com.twitt4droid.fragment.TimelineFragment.java
com.twitt4droid.fragment.UserTimelineFragment.java
com.twitt4droid.util.Files.java
com.twitt4droid.util.Images.java
com.twitt4droid.util.Objects.java
com.twitt4droid.util.Strings.java
com.twitt4droid.widget.LogInOutButton.java
com.twitt4droid.widget.TweetAdapter.java
com.twitt4droid.widget.TweetDialog.java