Skip to content

Commit

Permalink
Merge branch 'dynamic_request'
Browse files Browse the repository at this point in the history
  • Loading branch information
andreanmasiro committed Oct 26, 2016
2 parents 814136b + a90a629 commit 0613aaa
Show file tree
Hide file tree
Showing 22 changed files with 652 additions and 90 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;

import com.loopj.android.http.JsonHttpResponseHandler;
import com.mdsgpp.cidadedemocratica.External.SlidingTabLayout;
import com.mdsgpp.cidadedemocratica.R;

Expand Down Expand Up @@ -81,20 +81,23 @@ public void setDataUpdateListener(ProposalRequestResponseHandler handler) {
handler.setRequestUpdateListener(this);
}

public void afterSuccess() {
public void afterSuccess(JsonHttpResponseHandler handler) {
progressDialog.dismiss();
loadProposalsList();
createToast(getString(R.string.message_success_load_proposals));
ProposalRequestResponseHandler.nextPageToRequest++;
}

@Override
public void afterSuccess(JsonHttpResponseHandler handler, Object response) {

}

private void createToast(String message) {
FeedbackManager.createToast(this, message);
}

public void afterError(String message) {
public void afterError(JsonHttpResponseHandler handler, String message) {

}
}
Original file line number Diff line number Diff line change
@@ -1,24 +1,40 @@
package com.mdsgpp.cidadedemocratica.controller;

import android.app.ProgressDialog;
import android.net.Uri;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.TextView;

import com.loopj.android.http.JsonHttpResponseHandler;
import com.mdsgpp.cidadedemocratica.R;
import com.mdsgpp.cidadedemocratica.model.Proposal;
import com.mdsgpp.cidadedemocratica.model.Tag;
import com.mdsgpp.cidadedemocratica.persistence.DataContainer;

import com.mdsgpp.cidadedemocratica.requester.ProposalRequestResponseHandler;
import com.mdsgpp.cidadedemocratica.requester.RequestUpdateListener;
import com.mdsgpp.cidadedemocratica.requester.Requester;
import com.mdsgpp.cidadedemocratica.requester.TaggingsRequestResponseHandler;
import com.mdsgpp.cidadedemocratica.view.ListProposalFragment;

public class TagDetailActivity extends AppCompatActivity implements OnFragmentInteractionListener, ListProposalFragment.OnFragmentInteractionListener {
import java.lang.reflect.Array;
import java.util.ArrayList;

public class TagDetailActivity extends AppCompatActivity implements OnFragmentInteractionListener, ListProposalFragment.OnFragmentInteractionListener, RequestUpdateListener {

private Tag tag;
private DataContainer dataContainter = DataContainer.getInstance();
private FragmentManager fragmentManager;
private ProgressDialog progressDialog;

private TaggingsRequestResponseHandler taggingsRequestResponseHandler;
private ProposalRequestResponseHandler proposalRequestResponseHandler;
private String tagIdParameterKey = "tag_id";

private static ArrayList<Long> loadedTagIds = new ArrayList<>();


@Override
Expand All @@ -35,10 +51,19 @@ protected void onCreate(Bundle savedInstanceState) {
TextView tagNameTextView = (TextView)findViewById(R.id.tagNameTextView);
tagNameTextView.setText(this.tag.getName());

if (!loadedTagIds.contains(tag.getId())) {
pullTaggingsData();
} else {
loadProposalsList(tag.getProposals());
}

}

private void loadProposalsList(ArrayList<Proposal> proposals) {

getSupportFragmentManager().beginTransaction().
replace(R.id.container, ListProposalFragment.newInstance(this.tag.getProposals())).
replace(R.id.container, ListProposalFragment.newInstance(proposals)).
commit();

}

@Override
Expand All @@ -50,4 +75,36 @@ public void onFragmentInteraction(Fragment fragment) {
public void onFragmentInteraction(Uri uri) {

}

private void pullTaggingsData() {
if (progressDialog == null) {
progressDialog = FeedbackManager.createProgressDialog(this, getString(R.string.message_load_tag_detail));
}

proposalRequestResponseHandler = new ProposalRequestResponseHandler();
proposalRequestResponseHandler.setRequestUpdateListener(this);

Requester requester = new Requester(ProposalRequestResponseHandler.proposalsEndpointUrl, proposalRequestResponseHandler);
requester.setParameter(tagIdParameterKey, String.valueOf(tag.getId()));
requester.request(Requester.RequestType.GET);
}

@Override
public void afterSuccess(JsonHttpResponseHandler handler) {

}

@Override
public void afterSuccess(JsonHttpResponseHandler handler, Object response) {
progressDialog.dismiss();
ArrayList<Proposal> proposals = (ArrayList<Proposal>) response;

tag.setProposals(proposals);
loadProposalsList(proposals);
}

@Override
public void afterError(JsonHttpResponseHandler handler, String message) {

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,21 @@
import android.widget.TextView;
import android.widget.Toast;

import com.loopj.android.http.JsonHttpResponseHandler;
import com.mdsgpp.cidadedemocratica.R;
import com.mdsgpp.cidadedemocratica.model.Proposal;
import com.mdsgpp.cidadedemocratica.model.Tag;
import com.mdsgpp.cidadedemocratica.model.Tagging;
import com.mdsgpp.cidadedemocratica.persistence.DataContainer;
import com.mdsgpp.cidadedemocratica.requester.ProposalRequestResponseHandler;
import com.mdsgpp.cidadedemocratica.requester.RequestUpdateListener;
import com.mdsgpp.cidadedemocratica.requester.Requester;
import com.mdsgpp.cidadedemocratica.requester.TagRequestResponseHandler;
import com.mdsgpp.cidadedemocratica.requester.TaggingsRequestResponseHandler;

import java.lang.reflect.Array;
import java.util.ArrayList;

public class TagginsList extends AppCompatActivity implements View.OnClickListener{
public class TagginsList extends AppCompatActivity implements View.OnClickListener, RequestUpdateListener {

ListView tagginsListView;
TextView proposalTitleTextView;
Expand All @@ -29,7 +33,15 @@ public class TagginsList extends AppCompatActivity implements View.OnClickListen
Button shareButton;

Proposal proposal;
ProgressDialog progressDialog;
private ProgressDialog progressDialog;
TagListAdapter taggingsAdapter;

TaggingsRequestResponseHandler taggingsRequestResponseHandler;
TagRequestResponseHandler tagRequestResponseHandler;

private static ArrayList<Long> loadedProposalIds = new ArrayList<>();

private static String proposalIdParameterKey = "proposal_id";

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand All @@ -52,52 +64,72 @@ protected void onCreate(Bundle savedInstanceState) {
relevanceTextView.setText(String.valueOf(proposal.getRelevance()));

tagginsListView = (ListView) findViewById(R.id.listaTagsDaPropostaID);
ArrayList<Tag> tags = getTagsList();

if (tags == null) {
Toast.makeText(getApplicationContext(),"Proposta não possui TAGS", Toast.LENGTH_SHORT);
}
TagListAdapter tagginsAdapter = new TagListAdapter(this, tags);

tagginsListView.setAdapter(tagginsAdapter);

shareButton = (Button) findViewById(R.id.shareButton);
shareButton.setOnClickListener(this);
}

private ArrayList<Tag> getTagsList() {
if (proposal != null) {
return proposal.getTags();
if (!loadedProposalIds.contains(proposal.getId())) {
pullTaggingsData();
} else {
return null;
setTagsListViewAdapter(proposal.getTags());
}

}

private void shareProposal(){

String subjectShare = getString(R.string.title_sharing) + " " + proposal.getTitle();
String contentShare = getString(R.string.link_site_cidade_democratica) + "topico/" + this.proposal.getId() + "-" + this.proposal.getSlug() + "\n" + subjectShare + getString(R.string.title_sharing_description) + proposal.getContent();

Intent intentShare =new Intent(android.content.Intent.ACTION_SEND);
Intent intentShare = new Intent(android.content.Intent.ACTION_SEND);

intentShare.setType("text/plain");

intentShare.putExtra(android.content.Intent.EXTRA_SUBJECT,subjectShare);
intentShare.putExtra(android.content.Intent.EXTRA_SUBJECT, subjectShare);
intentShare.putExtra(android.content.Intent.EXTRA_TEXT, contentShare);

startActivity(Intent.createChooser(intentShare,getString(R.string.name_action_share)));
}

private void setTagsListViewAdapter(ArrayList<Tag> tags) {

taggingsAdapter = new TagListAdapter(this, tags);
tagginsListView.setAdapter(taggingsAdapter);
}

private void pullTaggingsData() {
progressDialog = FeedbackManager.createProgressDialog(this, getString(R.string.message_load_proposals));
TaggingsRequestResponseHandler taggingsRequestResponseHandler = new TaggingsRequestResponseHandler();
setDataUpdateListener(taggingsRequestResponseHandler);
Requester requester = new Requester(ProposalRequestResponseHandler.proposalsEndpointUrl, taggingsRequestResponseHandler);
if (progressDialog == null) {
progressDialog = FeedbackManager.createProgressDialog(this, getString(R.string.message_load_proposal_detail));
}

tagRequestResponseHandler = new TagRequestResponseHandler();
tagRequestResponseHandler.setRequestUpdateListener(this);

Requester requester = new Requester(TagRequestResponseHandler.tagsEndpointUrl, tagRequestResponseHandler);
requester.setParameter(proposalIdParameterKey, String.valueOf(proposal.getId()));
requester.request(Requester.RequestType.GET);
}

private void setDataUpdateListener(TaggingsRequestResponseHandler handler) {
@Override
public void afterSuccess(JsonHttpResponseHandler handler) {

}

@Override
public void afterSuccess(JsonHttpResponseHandler handler, Object response) {

ArrayList<Tag> tags = (ArrayList<Tag>) response;

progressDialog.dismiss();
FeedbackManager.createToast(this, getString(R.string.message_success_load_tags));

proposal.setTags(tags);

setTagsListViewAdapter(tags);
}

@Override
public void afterError(JsonHttpResponseHandler handler, String message) {
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import android.widget.AdapterView;
import android.widget.ListView;

import com.loopj.android.http.JsonHttpResponseHandler;
import com.mdsgpp.cidadedemocratica.R;
import com.mdsgpp.cidadedemocratica.model.Tag;
import com.mdsgpp.cidadedemocratica.persistence.DataContainer;
Expand Down Expand Up @@ -108,15 +109,20 @@ private void setDataUpdateListener(TagRequestResponseHandler tagRequestResponseH
}

@Override
public void afterSuccess() {
public void afterSuccess(JsonHttpResponseHandler handler) {
progressDialog.dismiss();
loadTagsList();
FeedbackManager.createToast(this, getString(R.string.message_success_load_tags));
TagRequestResponseHandler.nextPageToRequest++;
}

@Override
public void afterError(String message) {
public void afterSuccess(JsonHttpResponseHandler handler, Object response) {

}

@Override
public void afterError(JsonHttpResponseHandler handler, String message) {
progressDialog.dismiss();
FeedbackManager.createToast(this, message);
}
Expand Down
Loading

0 comments on commit 0613aaa

Please sign in to comment.