From 92296cd5015b99e36beb1bb5bf073124fb021b6c Mon Sep 17 00:00:00 2001 From: geraugu Date: Sun, 5 Jul 2015 21:05:58 -0300 Subject: [PATCH] implementado os comentários em projetos --- app/app.iml | 66 +++++++++++++++++++++++++++++++++--------------------------------- app/build.gradle | 5 +++-- app/src/main/java/com/monitorabrasil/monitoralegislativo/ComentarioActivity.java | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- app/src/main/java/com/monitorabrasil/monitoralegislativo/MainActivity.java | 13 ++++++------- app/src/main/java/com/monitorabrasil/monitoralegislativo/adapters/ComentarioAdapter.java | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app/src/main/java/com/monitorabrasil/monitoralegislativo/adapters/ProjetoAdapter.java | 34 +++++++++++++++++++++++++++++++--- app/src/main/java/com/monitorabrasil/monitoralegislativo/fragments/ListaProjetosFragment.java | 24 ++++++++++++------------ app/src/main/res/drawable-hdpi/ic_action_send.png | Bin 0 -> 359 bytes app/src/main/res/drawable-mdpi/ic_action_send.png | Bin 0 -> 227 bytes app/src/main/res/drawable-xhdpi/ic_action_send.png | Bin 0 -> 351 bytes app/src/main/res/drawable-xxhdpi/ic_action_send.png | Bin 0 -> 638 bytes app/src/main/res/layout/activity_comentario.xml | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------ app/src/main/res/layout/item_comentario.xml | 27 +++++++++++++++++++++++++++ app/src/main/res/values/strings.xml | 2 +- 14 files changed, 413 insertions(+), 143 deletions(-) create mode 100644 app/src/main/java/com/monitorabrasil/monitoralegislativo/adapters/ComentarioAdapter.java create mode 100644 app/src/main/res/drawable-hdpi/ic_action_send.png create mode 100644 app/src/main/res/drawable-mdpi/ic_action_send.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_action_send.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_send.png create mode 100644 app/src/main/res/layout/item_comentario.xml diff --git a/app/app.iml b/app/app.iml index 64da2d4..04c42a7 100644 --- a/app/app.iml +++ b/app/app.iml @@ -120,45 +120,45 @@ - - - - - - - + + + + + - - - + + + + + - - + + + - - - - - - - + - - - - + - - - - - - + + + - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 431450f..bd06c46 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,13 +18,14 @@ repositories { android { compileSdkVersion 22 buildToolsVersion "23.0.0 rc2" + compileOptions.encoding = 'ISO-8859-1' defaultConfig { applicationId "com.monitorabrasil.monitoramunicipio" minSdkVersion 16 targetSdkVersion 22 - versionCode 4 - versionName "0.4" + versionCode 5 + versionName "0.5" } buildTypes { release { diff --git a/app/src/main/java/com/monitorabrasil/monitoralegislativo/ComentarioActivity.java b/app/src/main/java/com/monitorabrasil/monitoralegislativo/ComentarioActivity.java index 6d3677f..d473f12 100644 --- a/app/src/main/java/com/monitorabrasil/monitoralegislativo/ComentarioActivity.java +++ b/app/src/main/java/com/monitorabrasil/monitoralegislativo/ComentarioActivity.java @@ -1,18 +1,169 @@ package com.monitorabrasil.monitoralegislativo; +import android.content.Intent; +import android.os.Build; +import android.support.design.widget.Snackbar; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.Toolbar; +import android.transition.Transition; +import android.transition.TransitionInflater; +import android.util.Log; import android.view.Menu; import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ProgressBar; +import com.google.gson.Gson; import com.monitorabrasil.monitoralegislativo.R; +import com.monitorabrasil.monitoralegislativo.adapters.ComentarioAdapter; +import com.monitorabrasil.monitoralegislativo.application.MyApp; +import com.parse.FindCallback; +import com.parse.GetCallback; +import com.parse.ParseException; +import com.parse.ParseObject; +import com.parse.ParseQuery; +import com.parse.ParseUser; +import com.parse.SaveCallback; -public class ComentarioActivity extends ActionBarActivity { +import java.util.List; + +public class ComentarioActivity extends AppCompatActivity { + + private ParseObject projeto; + private Toolbar mToolbar; + private RecyclerView mRecyclerView; + private ComentarioAdapter mAdapter; + private List ob; + private ProgressBar pb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_comentario); + Gson gson =new Gson(); + Intent bundle = getIntent(); + + ParseQuery query = ParseQuery.getQuery("Projeto"); + query.getInBackground(getIntent().getStringExtra("projeto"), new GetCallback() { + public void done(ParseObject object, ParseException e) { + if (e == null) { + projeto = object; + mToolbar.setTitle(projeto.get("classificacao").toString()); + buscaComentarios(); + } else { + // something went wrong + } + } + }); + + + // TOOLBAR + mToolbar = (Toolbar) findViewById(R.id.tb_main); + + //mToolbar.setSubtitle("just a subtitle"); + //mToolbar.setLogo(R.drawable.ic_launcher); + setSupportActionBar(mToolbar); + mToolbar.setTitleTextColor(getResources().getColor(R.color.md_white_1000)); + + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ + //fazer a animacao + TransitionInflater inflater = TransitionInflater.from(this); + Transition transition = inflater.inflateTransition(R.transition.transitions); + + getWindow().setSharedElementEnterTransition(transition); + } + + //botao para enviar mensagem + Button btnEnviar = (Button)findViewById(R.id.btnEnviar); + btnEnviar.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + enviarMensagem(v); + } + }); + + pb = (ProgressBar) findViewById(R.id.progressBar); + + + //tableview + mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view); + + // use this setting to improve performance if you know that changes + // in content do not change the layout size of the RecyclerView + mRecyclerView.setHasFixedSize(true); + + LinearLayoutManager llm = new LinearLayoutManager(this); + llm.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(llm); + + + + } + + public void buscaComentarios(){ + pb.setVisibility(View.VISIBLE); + ParseQuery query = ParseQuery.getQuery("Comentario"); + query.whereEqualTo("projeto",projeto); + query.addAscendingOrder("createdAt"); + //query.whereEqualTo("playerName", "Dan Stemkoski"); + query.findInBackground(new FindCallback() { + @Override + public void done(List list, com.parse.ParseException e) { + if (e == null) { + ob = list; + carregaList(list); + } else { + Log.d("score", "Error: " + e.getMessage()); + } + } + + + }); + } + public void carregaList(List list){ + mAdapter = new ComentarioAdapter(list); + // mAdapter.setRecyclerViewOnClickListenerHack(this); + mRecyclerView.setAdapter(mAdapter); + pb.setVisibility(View.INVISIBLE); + } + + + private void enviarMensagem(final View v) { + final EditText txtMensagem = (EditText)findViewById(R.id.mensagem); + String mensagem = txtMensagem.getText().toString(); + ParseUser user = ParseUser.getCurrentUser(); + if(user!= null){ + ParseObject comentario = new ParseObject("Comentario"); + comentario.put("mensagem",mensagem); + comentario.put("user",user); + comentario.put("nome",user.getString("nome")); + comentario.put("projeto",projeto); + comentario.saveInBackground(new SaveCallback() { + @Override + public void done(ParseException e) { + Snackbar.make(v, "Comentário enviado", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + + //recarregar lista + buscaComentarios(); + } + }); + projeto.increment("nr_comentarios"); + projeto.saveInBackground(); + + }else{ + Snackbar.make(v, "Para comentar é necessário estar logado", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + return; + } + + txtMensagem.setText(""); } @Override diff --git a/app/src/main/java/com/monitorabrasil/monitoralegislativo/MainActivity.java b/app/src/main/java/com/monitorabrasil/monitoralegislativo/MainActivity.java index 1b2f924..68226d9 100644 --- a/app/src/main/java/com/monitorabrasil/monitoralegislativo/MainActivity.java +++ b/app/src/main/java/com/monitorabrasil/monitoralegislativo/MainActivity.java @@ -67,8 +67,6 @@ public class MainActivity extends AppCompatActivity implements HomeFragment.OnFr - - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -95,11 +93,12 @@ public class MainActivity extends AppCompatActivity implements HomeFragment.OnFr // TOOLBAR mToolbar = (Toolbar) findViewById(R.id.tb_main); - mToolbar.setTitle("Monitora, Ouro Branco!"); - //mToolbar.setSubtitle("just a subtitle"); + mToolbar.setTitle(getString(R.string.app_name)); + mToolbar.setSubtitle("Ouro Branco - MG"); //mToolbar.setLogo(R.drawable.ic_launcher); setSupportActionBar(mToolbar); - mToolbar.setTitleTextColor(getResources().getColor(R.color.md_white_1000)); + mToolbar.setTitleTextColor(getResources().getColor(R.color.md_white_1000)); + mToolbar.setSubtitleTextColor(getResources().getColor(R.color.md_white_1000)); /*getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(false);*/ @@ -173,7 +172,7 @@ public class MainActivity extends AppCompatActivity implements HomeFragment.OnFr } else { headerNavigationLeft.addProfiles( - new ProfileDrawerItem().withName("Faça seu cadastro")); + new ProfileDrawerItem().withName("Faça seu cadastro")); } navigationDrawerLeft = new DrawerBuilder() @@ -190,7 +189,7 @@ public class MainActivity extends AppCompatActivity implements HomeFragment.OnFr new DividerDrawerItem(), new PrimaryDrawerItem().withName("Vereadores"), new SecondaryDrawerItem().withName("Projetos"), - new SecondaryDrawerItem().withName("Câmara") + new SecondaryDrawerItem().withName("Câmara") ) .withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() { @Override diff --git a/app/src/main/java/com/monitorabrasil/monitoralegislativo/adapters/ComentarioAdapter.java b/app/src/main/java/com/monitorabrasil/monitoralegislativo/adapters/ComentarioAdapter.java new file mode 100644 index 0000000..7fd4cfa --- /dev/null +++ b/app/src/main/java/com/monitorabrasil/monitoralegislativo/adapters/ComentarioAdapter.java @@ -0,0 +1,75 @@ +package com.monitorabrasil.monitoralegislativo.adapters; + +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import com.monitorabrasil.monitoralegislativo.R; +import com.monitorabrasil.monitoralegislativo.interfaces.RecyclerViewOnClickListenerHack; +import com.parse.ParseObject; + +import java.util.List; + +/** + * Created by geral_000 on 05/07/2015. + */ +public class ComentarioAdapter extends RecyclerView.Adapter { + + private List mDataset; + private RecyclerViewOnClickListenerHack mRecyclerViewOnClickListenerHack; + + // Provide a reference to the views for each data item + // Complex data items may need more than one view per item, and + // you provide access to all the views for a data item in a view holder + public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ + // each data item is just a string in this case + public TextView txtUser; + public TextView txtComentario; + public ViewHolder(View v) { + super(v); + txtUser = (TextView) v.findViewById(R.id.txtUser); + txtComentario = (TextView) v.findViewById(R.id.txtComentario); + + itemView.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + if(mRecyclerViewOnClickListenerHack != null){ + mRecyclerViewOnClickListenerHack.onClickListener(v, getPosition()); + } + } + } + + public ComentarioAdapter(List myDataset) { + mDataset = myDataset; + } + + @Override + public ComentarioAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { + // create a new view + View v = LayoutInflater.from(viewGroup.getContext()) + .inflate(R.layout.item_comentario, viewGroup, false); + // set the view's size, margins, paddings and layout parameter + ViewHolder vh = new ViewHolder(v); + return vh; + } + public void setRecyclerViewOnClickListenerHack(RecyclerViewOnClickListenerHack r){ + mRecyclerViewOnClickListenerHack = r; + } + + @Override + public void onBindViewHolder(ComentarioAdapter.ViewHolder viewHolder, int i) { + ParseObject comentario = mDataset.get(i); + // vereador.pinInBackground(); + viewHolder.txtUser.setText(comentario.get("nome").toString()); + viewHolder.txtComentario.setText(comentario.get("mensagem").toString()); + } + + @Override + public int getItemCount() { + return mDataset.size(); + } +} diff --git a/app/src/main/java/com/monitorabrasil/monitoralegislativo/adapters/ProjetoAdapter.java b/app/src/main/java/com/monitorabrasil/monitoralegislativo/adapters/ProjetoAdapter.java index 690f4bf..677e9e2 100644 --- a/app/src/main/java/com/monitorabrasil/monitoralegislativo/adapters/ProjetoAdapter.java +++ b/app/src/main/java/com/monitorabrasil/monitoralegislativo/adapters/ProjetoAdapter.java @@ -2,8 +2,13 @@ package com.monitorabrasil.monitoralegislativo.adapters; import android.content.Intent; import android.graphics.drawable.Drawable; +import android.os.Build; +import android.os.Bundle; import android.support.design.widget.Snackbar; +import android.support.v4.app.ActivityOptionsCompat; +import android.support.v4.app.FragmentActivity; import android.support.v4.content.ContextCompat; +import android.support.v4.util.Pair; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; @@ -11,6 +16,7 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; +import com.google.gson.Gson; import com.monitorabrasil.monitoralegislativo.ComentarioActivity; import com.monitorabrasil.monitoralegislativo.R; import com.monitorabrasil.monitoralegislativo.application.MyApp; @@ -32,6 +38,7 @@ public class ProjetoAdapter extends RecyclerView.Adapter mDataset; private RecyclerViewOnClickListenerHack mRecyclerViewOnClickListenerHack; + private FragmentActivity mActivity; // Provide a reference to the views for each data item // Complex data items may need more than one view per item, and @@ -49,6 +56,7 @@ public class ProjetoAdapter extends RecyclerView.Adapter myDataset) { + public ProjetoAdapter(List myDataset, FragmentActivity activity) { mDataset = myDataset; + mActivity = activity; } @Override @@ -101,6 +110,7 @@ public class ProjetoAdapter extends RecyclerView.Adapter query = ParseQuery.getQuery("Voto"); query.fromLocalDatastore(); @@ -112,7 +122,7 @@ public class ProjetoAdapter extends RecyclerView.Adapter= Build.VERSION_CODES.LOLLIPOP){ + View titulo = viewHolder.descricao; + ActivityOptionsCompat options = ActivityOptionsCompat. + makeSceneTransitionAnimation(mActivity, + Pair.create(titulo, "element1")); + mActivity.startActivity(mIntent, options.toBundle()); + }else{ + MyApp.getInstance().startActivity(mIntent); + } + + } }); } diff --git a/app/src/main/java/com/monitorabrasil/monitoralegislativo/fragments/ListaProjetosFragment.java b/app/src/main/java/com/monitorabrasil/monitoralegislativo/fragments/ListaProjetosFragment.java index 54abc8a..9e2d88c 100644 --- a/app/src/main/java/com/monitorabrasil/monitoralegislativo/fragments/ListaProjetosFragment.java +++ b/app/src/main/java/com/monitorabrasil/monitoralegislativo/fragments/ListaProjetosFragment.java @@ -80,7 +80,7 @@ public class ListaProjetosFragment extends Fragment implements RecyclerViewOnCli }); } public void carregaList(List list){ - mAdapter = new ProjetoAdapter(list); + mAdapter = new ProjetoAdapter(list,getActivity()); mAdapter.setRecyclerViewOnClickListenerHack(this); mRecyclerView.setAdapter(mAdapter); pb.setVisibility(View.INVISIBLE); @@ -92,17 +92,17 @@ public class ListaProjetosFragment extends Fragment implements RecyclerViewOnCli PoliticoFragment frag = new PoliticoFragment(); Bundle bundle = new Bundle(); - try { - ob.get(position).pin(); - } catch (ParseException e) { - e.printStackTrace(); - } - bundle.putString("politico", ob.get(position).getObjectId()); - frag.setArguments(bundle); - FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); - ft.replace(R.id.rl_fragment_container, frag, "politicoFrag"); - ft.addToBackStack(null); - ft.commit(); +// try { +// ob.get(position).pin(); +// } catch (ParseException e) { +// e.printStackTrace(); +// } +// bundle.putString("politico", ob.get(position).getObjectId()); +// frag.setArguments(bundle); +// FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); +// ft.replace(R.id.rl_fragment_container, frag, "politicoFrag"); +// ft.addToBackStack(null); +// ft.commit(); } } diff --git a/app/src/main/res/drawable-hdpi/ic_action_send.png b/app/src/main/res/drawable-hdpi/ic_action_send.png new file mode 100644 index 0000000..8a3f80f Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_send.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_action_send.png b/app/src/main/res/drawable-mdpi/ic_action_send.png new file mode 100644 index 0000000..d40564c Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_send.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_action_send.png b/app/src/main/res/drawable-xhdpi/ic_action_send.png new file mode 100644 index 0000000..96663a0 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_send.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_send.png b/app/src/main/res/drawable-xxhdpi/ic_action_send.png new file mode 100644 index 0000000..8478f92 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_send.png differ diff --git a/app/src/main/res/layout/activity_comentario.xml b/app/src/main/res/layout/activity_comentario.xml index 7417a7f..6abba32 100644 --- a/app/src/main/res/layout/activity_comentario.xml +++ b/app/src/main/res/layout/activity_comentario.xml @@ -1,90 +1,79 @@ - - - - - - - - - - - - - - - + android:layout_height="match_parent" + android:orientation="vertical" + tools:context="com.monitorabrasil.monitoralegislativo.ComentarioActivity"> - - - - - - - - - + android:minHeight="?attr/actionBarSize" + android:background="?attr/colorPrimary" + app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" /> + + + + + + + + +