From 7cb664ee03c02bd7e1efbe9e75f898f4b90689ae Mon Sep 17 00:00:00 2001 From: Victor Date: Fri, 10 Jan 2014 15:54:21 +0200 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=87?= =?UTF-8?q?=D0=B8=D0=BA=D0=B8=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA?= =?UTF-8?q?=D0=B8=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=BE=D0=B2,=20?= =?UTF-8?q?=D1=82=D0=B5=D0=BC=20=D0=B8=20=D0=BF=D0=BE=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=20=D1=84=D0=BE=D1=80=D1=83=D0=BC=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/fragments/ForumFragment.java | 73 +++++++++++++++---- 1 file changed, 57 insertions(+), 16 deletions(-) diff --git a/src/com/annimon/client/fragments/ForumFragment.java b/src/com/annimon/client/fragments/ForumFragment.java index 1d87824..8efd974 100644 --- a/src/com/annimon/client/fragments/ForumFragment.java +++ b/src/com/annimon/client/fragments/ForumFragment.java @@ -3,32 +3,73 @@ package com.annimon.client.fragments; import java.util.List; import android.os.Bundle; import android.support.v4.app.ListFragment; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; import com.annimon.client.adapters.ForumPostAdapter; import com.annimon.client.entities.ForumPost; +import com.annimon.client.entities.ForumSection; +import com.annimon.client.entities.ForumTopic; import com.annimon.client.tasks.ForumPostLoader; public class ForumFragment extends ListFragment { - - private static final String URL = "http://annimon.com/rss/forumreader.php"; - - private ForumPostAdapter mAdapter; - + @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - update(); + new ForumPostLoader(getActivity(), sectionListener).execute(); } - private void update() { - new ForumPostLoader(getActivity(), new ForumPostLoader.FinishLoadingListener() { - - @Override - public void onLoadingFinished(List items) { - mAdapter = new ForumPostAdapter(getActivity(), items); - setListAdapter(mAdapter); - } - }).execute(URL); - } + private final ForumPostLoader.FinishLoadingListener sectionListener + = new ForumPostLoader.FinishLoadingListener() { + + @Override + public void onLoadingFinished(List items) { + final ArrayAdapter adapter = new ArrayAdapter( + getActivity(), android.R.layout.simple_list_item_1, items); + setListAdapter(adapter); + getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() { + + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + // Грузим список постов выбранной темы + ForumSection section = adapter.getItem(position); + new ForumPostLoader(getActivity(), topicListener).execute( + ForumPostLoader.MODE_TOPICS, section.getId()); + } + }); + } + }; + + private final ForumPostLoader.FinishLoadingListener topicListener + = new ForumPostLoader.FinishLoadingListener() { + + @Override + public void onLoadingFinished(List items) { + final ArrayAdapter adapter = new ArrayAdapter( + getActivity(), android.R.layout.simple_list_item_1, items); + setListAdapter(adapter); + getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() { + + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + // Грузим список постов выбранной темы + ForumTopic topic = adapter.getItem(position); + new ForumPostLoader(getActivity(), postListener).execute( + ForumPostLoader.MODE_POSTS, topic.getId()); + } + }); + } + }; + + private final ForumPostLoader.FinishLoadingListener postListener + = new ForumPostLoader.FinishLoadingListener() { + + @Override + public void onLoadingFinished(List items) { + setListAdapter(new ForumPostAdapter(getActivity(), items)); + } + }; }