diff options
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence/view/page/UserListFragment.java')
-rw-r--r-- | app/src/main/java/net/lacolaco/smileessence/view/page/UserListFragment.java | 192 |
1 files changed, 0 insertions, 192 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/page/UserListFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/page/UserListFragment.java deleted file mode 100644 index 3d19c5d6..00000000 --- a/app/src/main/java/net/lacolaco/smileessence/view/page/UserListFragment.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2012-2014 lacolaco.net - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package net.lacolaco.smileessence.view.page; - -import android.app.AlertDialog; -import android.os.Bundle; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageButton; -import android.widget.ListView; -import android.widget.TextView; -import com.handmark.pulltorefresh.library.PullToRefreshBase; -import com.handmark.pulltorefresh.library.PullToRefreshListView; -import net.lacolaco.smileessence.Application; -import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.activity.MainActivity; -import net.lacolaco.smileessence.entity.Tweet; -import net.lacolaco.smileessence.preference.InternalPreferenceHelper; -import net.lacolaco.smileessence.twitter.task.TimelineTask; -import net.lacolaco.smileessence.twitter.task.Timelines; -import net.lacolaco.smileessence.util.UIHandler; -import net.lacolaco.smileessence.view.adapter.TimelineAdapter; - -public class UserListFragment extends CustomListFragment<TimelineAdapter> implements View.OnClickListener { - private TextView textListName; - private String listFullName; - - @Override - protected PullToRefreshBase.Mode getRefreshMode() { - return PullToRefreshBase.Mode.BOTH; - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - TimelineAdapter adapter = new TimelineAdapter(getActivity()); - setAdapter(adapter); - - refresh(); - } - - @Override - public void refresh() {//TODO - String lastUserList = InternalPreferenceHelper.getInstance().get(R.string.key_last_used_user_list, ""); - if (!TextUtils.isEmpty(lastUserList)) { - startUserList(lastUserList); - } - } - - @Override - public void onClick(View v) { - int id = v.getId(); - switch (id) { - case R.id.button_userlist_lists: { - openUserListsDialog(); - break; - } - } - } - - @Override - public void onPullDownToRefresh(final PullToRefreshBase<ListView> refreshView) { - if (listFullName == null) { - new UIHandler().post(() -> { - notifyTextEmpty(); - refreshView.onRefreshComplete(); - }); - return; - } - runRefreshTask( - new Timelines.UserListStatusesTask(getWorld().getAccount(), listFullName) - .setSinceId(getAdapter().getTopID()), - () -> { - updateListViewWithNotice(refreshView.getRefreshableView(), true); - refreshView.onRefreshComplete(); - }); - } - - @Override - public void onPullUpToRefresh(final PullToRefreshBase<ListView> refreshView) { - if (listFullName == null) { - new UIHandler().post(() -> { - notifyTextEmpty(); - refreshView.onRefreshComplete(); - }); - return; - } - runRefreshTask( - new Timelines.UserListStatusesTask(getWorld().getAccount(), listFullName) - .setMaxId(getAdapter().getLastID() - 1), - () -> { - updateListViewWithNotice(refreshView.getRefreshableView(), false); - refreshView.onRefreshComplete(); - }); - } - - // ------------------------ OVERRIDE METHODS ------------------------ - - @Override - protected PullToRefreshListView getListView(View page) { - return (PullToRefreshListView) page.findViewById(R.id.listview_userlist); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View page = inflater.inflate(R.layout.fragment_userlist, container, false); - PullToRefreshListView listView = getListView(page); - TimelineAdapter adapter = getAdapter(); - listView.setAdapter(adapter); - listView.setOnScrollListener(this); - listView.setOnRefreshListener(this); - listView.setMode(getRefreshMode()); - ImageButton buttonUserLists = getUserListsButton(page); - buttonUserLists.setOnClickListener(this); - textListName = getTextListName(page); - textListName.setText(listFullName != null ? listFullName : "<none>"); - return page; - } - - private TextView getTextListName(View page) { - return (TextView) page.findViewById(R.id.textview_userlist_name); - } - - private ImageButton getUserListsButton(View page) { - return (ImageButton) page.findViewById(R.id.button_userlist_lists); - } - - private void notifyTextEmpty() { - getWorld().notifyError(R.string.notice_userlist_not_selected); - } - - private void openUserListsDialog() { - final String[] ary = getWorld().getListSubscriptions().toArray(new String[]{}); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setTitle(R.string.dialog_title_select_userlist) - .setItems(ary, (dialog, which) -> { - MainActivity activity = (MainActivity) getActivity(); - activity.openUserListPage(ary[which]); - textListName.setText(ary[which]); - }); - AlertDialog dialog = builder.create(); - dialog.show(); - } - - public void startUserList(String listFullName) { - InternalPreferenceHelper.getInstance().set(R.string.key_last_used_user_list, listFullName); - final TimelineAdapter adapter = getAdapter(); - this.listFullName = listFullName; - adapter.clear(); - adapter.updateForce(); - runRefreshTask( - new Timelines.UserListStatusesTask(getWorld().getAccount(), listFullName), - adapter::updateForce); - } - - private void runRefreshTask(TimelineTask<Tweet> task, Runnable onFinish) { - final TimelineAdapter adapter = getAdapter(); - task - .setCount(200) - .onFail(x -> getWorld().notifyError(R.string.notice_error_get_list)) - .onDoneUI(tweets -> { - getWorld().addTweetAll(tweets); - adapter.addAll(tweets); - }) - .onFinishUI(onFinish) - .execute(); - } -} |