Advertisement
lordjackson

TaskActivity

Aug 6th, 2015
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.38 KB | None | 0 0
  1. package com.mytask;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.os.AsyncTask;
  6. import android.os.Bundle;
  7. import android.os.Environment;
  8. import android.util.Log;
  9. import android.view.ContextMenu;
  10. import android.view.Menu;
  11. import android.view.MenuInflater;
  12. import android.view.MenuItem;
  13. import android.view.View;
  14. import android.widget.AdapterView;
  15. import android.widget.EditText;
  16. import android.widget.ListView;
  17. import android.widget.Toast;
  18.  
  19. import com.mytask.model.Task;
  20.  
  21. import org.apache.http.HttpResponse;
  22. import org.apache.http.NameValuePair;
  23. import org.apache.http.client.HttpClient;
  24. import org.apache.http.client.entity.UrlEncodedFormEntity;
  25. import org.apache.http.client.methods.HttpPut;
  26. import org.apache.http.impl.client.DefaultHttpClient;
  27. import org.apache.http.message.BasicNameValuePair;
  28. import org.apache.http.util.EntityUtils;
  29.  
  30. import java.io.File;
  31. import java.io.FileOutputStream;
  32. import java.io.IOException;
  33. import java.io.UnsupportedEncodingException;
  34. import java.util.ArrayList;
  35. import java.util.List;
  36.  
  37. public class TaskActivity extends Activity {
  38.  
  39.     protected static final int EDITAR = 0;
  40.     private TaskAdapter adaptadorLista;
  41.     private Task taskLogado;
  42.     private List<Task> listTask;
  43.     private TaskBD taskBD;
  44.  
  45.     ListView lista;
  46.  
  47.     // private String taskTexto;
  48.  
  49.     private EditText taskText;
  50.  
  51.     @Override
  52.     protected void onCreate(Bundle savedInstanceState) {
  53.         super.onCreate(savedInstanceState);
  54.         setContentView(R.layout.activity_task);
  55.  
  56.  
  57.         taskText = (EditText) findViewById(R.id.textoTask);
  58.  
  59.         Intent intent = getIntent();
  60.         taskLogado = (Task) intent.getSerializableExtra(Task.TASK_INFO);
  61.  
  62.         //taskBD = TaskBD.getInstance(this);
  63.  
  64.         lista = (ListView) findViewById(R.id.listaTasks);
  65.  
  66.         //adaptadorLista = new TaskAdapter(this, taskBD.getCache());
  67.  
  68.         //lista.setAdapter(adaptadorLista);
  69.  
  70.         new ListagemTask().execute();
  71.  
  72.         //Log.v("taskActivity", String.valueOf(listTask));
  73.         //for (Task tasks : listTask) {
  74.         //    adaptadorLista.add(tasks);
  75.         //}
  76.  
  77.        // carregarTasks();
  78.  
  79.         registerForContextMenu(lista);
  80.  
  81.         lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  82.             @Override
  83.             public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
  84.  
  85.                 Task tweetSelecionado = (Task) adapter .getItemAtPosition(position);
  86.  
  87.                 Intent acao = new Intent("exercicios.task.DETALHES");
  88.  
  89.                 acao.putExtra(Task.TASK_INFO, tweetSelecionado);
  90.  
  91.                 startActivityForResult(acao, EDITAR);
  92.             }
  93.  
  94.         });
  95.  
  96.     }
  97.  
  98.  
  99.     private class ListagemTask extends AsyncTask<Void, Void, List<Task>> {
  100.  
  101.         @Override
  102.         protected void onPreExecute() {
  103.             super.onPreExecute();
  104.         }
  105.  
  106.         @Override
  107.         protected List<Task> doInBackground(Void... urls) {
  108.             Task taskListar = new Task();
  109.             String tasks = TaskRESTClient.AllTasks();
  110.             List<Task> taskslista = taskListar.gerarTaskFromJson(tasks);
  111.             return taskslista;
  112.         }
  113.  
  114.         @Override
  115.         protected void onPostExecute(List<Task> result) {
  116.             super.onPostExecute(result);
  117.             adaptadorLista = new TaskAdapter(TaskActivity.this, result);
  118.             lista.setAdapter(adaptadorLista);
  119.         }
  120.     }
  121.  
  122.     private class addTask extends AsyncTask<Task, Void, String> {
  123.  
  124.         @Override
  125.         protected void onPreExecute() {
  126.             super.onPreExecute();
  127.         }
  128.  
  129.         @Override
  130.         protected String doInBackground(Task ... task) {
  131.           //  Task task = new Task();
  132.             String tasks = TaskRESTClient.add(task);
  133.  
  134.             return tasks;
  135.         }
  136.  
  137.         @Override
  138.         protected void onPostExecute(String result) {
  139.             super.onPostExecute(result);
  140.            // adaptadorLista = new TaskAdapter(TaskActivity.this, result);
  141.           //  lista.setAdapter(adaptadorLista);
  142.         }
  143.  
  144.  
  145.     }
  146.     /*
  147.  
  148.     public List<Task> gerarTaskFromJson(String dados) {
  149.         List<Task> resultado = new ArrayList<Task>();
  150.         try {
  151.             JSONArray ja = new JSONArray(dados);
  152.             for(int i = 0; i < ja.length(); i++) {
  153.                 JSONObject jo = ja.getJSONObject(i);
  154.                 Task t = new Task();
  155.                 t.setId(jo.getLong("id"));
  156.                 t.setTitulo(jo.getString("titulo"));
  157.                 t.setTexto(jo.getString("texto"));
  158.                 resultado.add(t);
  159.             }
  160.             return resultado;
  161.         } catch (Exception e) {
  162.             e.printStackTrace();
  163.         }
  164.         return resultado;
  165.     }
  166.     */
  167.  
  168.     private void carregarTasks() {
  169.  
  170.         taskBD.getAll(taskLogado);
  171.  
  172.         adaptadorLista.notifyDataSetChanged();
  173.  
  174.     }
  175.  
  176.     public void Adicionar(View v) {
  177.  
  178.         String taskTexto = taskText.getText().toString();
  179.  
  180.         //substring add titulo a partir da parte inicial da task
  181.         StringBuffer tempString = new StringBuffer(taskTexto);
  182.         if(Integer.parseInt(String.valueOf(tempString.length())) <5){
  183.             tempString.append("             ");
  184.             tempString.delete(5, Integer.parseInt(String.valueOf(tempString.length())));
  185.         }else{
  186.             tempString.delete(5, Integer.parseInt(String.valueOf(tempString.length())));
  187.         }
  188.  
  189.         Toast.makeText(this, taskTexto + " / " + tempString.toString(),
  190.                 Toast.LENGTH_LONG).show();
  191.  
  192.         Task task = new Task(tempString.toString(), taskTexto);
  193.  
  194.         new addTask().execute(task);
  195.        // TaskRESTClient.add(task);
  196.        // Log.v("postObj", postObj);
  197.  
  198. //        taskBD.insert(task);
  199.  
  200.         taskText.setText("");
  201.         adaptadorLista.notifyDataSetChanged();
  202.         /*
  203.         @Rest(converters = {MappingJackson2HttpMessageConverter.class})
  204.         public interface TweetRest {
  205.             @Put("http://{url}/rest/tweet")
  206.             void cadastrar(String url, Usuario usuario);
  207.         }
  208.         */
  209.  
  210.     }
  211.  
  212.     //ex:2
  213.     public static String put(String url, String usuario) throws UnsupportedEncodingException {
  214.         HttpClient httpClient = new DefaultHttpClient();
  215.         HttpPut httpPut = new HttpPut(url);
  216.         List<NameValuePair> pairs = new ArrayList<NameValuePair>();
  217.         pairs.add(new BasicNameValuePair("usaurio", usuario));
  218.         httpPut.setEntity(new UrlEncodedFormEntity(pairs));
  219.         String resposta = "";
  220.         try {
  221.             HttpResponse response = httpClient.execute(httpPut);
  222.             resposta = EntityUtils.toString(response.getEntity());
  223.         } catch (IOException e) {
  224.             e.printStackTrace();
  225.         }
  226.         return resposta;
  227.     }
  228.  
  229.     @Override
  230.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  231.  
  232.         if (resultCode == RESULT_OK) {
  233.             Task tweet = (Task) data.getSerializableExtra(Task.TASK_INFO);
  234.  
  235.             taskBD.update(tweet);
  236.  
  237.             adaptadorLista.notifyDataSetChanged();
  238.  
  239.         }
  240.  
  241.         super.onActivityResult(requestCode, resultCode, data);
  242.  
  243.     }
  244.  
  245.     @Override
  246.     public boolean onCreateOptionsMenu(Menu menu) {
  247.  
  248.         MenuInflater inflater = getMenuInflater();
  249.         inflater.inflate(R.menu.menu_task, menu);
  250.         return true;
  251.     }
  252.  
  253.     @Override
  254.     public boolean onOptionsItemSelected(MenuItem item) {
  255.  
  256.         switch (item.getItemId()) {
  257.             case R.id.menu_exit:
  258.                 finish();
  259.                 break;
  260.             case R.id.menu_export:
  261.                 exportar();
  262.                 break;
  263.             case R.id.menu_refresh:
  264.                 Toast toast = Toast.makeText(this, "Atualizando os task...",
  265.                         Toast.LENGTH_LONG);
  266.                 toast.show();
  267.                 break;
  268.  
  269.             default:
  270.                 break;
  271.         }
  272.  
  273.         return super.onOptionsItemSelected(item);
  274.     }
  275.  
  276.     @Override
  277.     public void onCreateContextMenu(ContextMenu menu, View v,
  278.                                     ContextMenu.ContextMenuInfo menuInfo) {
  279.         super.onCreateContextMenu(menu, v, menuInfo);
  280.  
  281.         MenuInflater inflater = getMenuInflater();
  282.         inflater.inflate(R.menu.menu_task_actions, menu);
  283.     }
  284.  
  285.     @Override
  286.     public boolean onContextItemSelected(MenuItem item) {
  287.  
  288.         AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item
  289.                 .getMenuInfo();
  290.  
  291.         Task task = adaptadorLista.getItem(info.position);
  292.  
  293.         switch (item.getItemId()) {
  294.  
  295.             case R.id.tweet_edit:
  296.  
  297.                 // Intent acao = new Intent(TaskActivity.this,TaskEditActivity.class);
  298.                 Intent acao = new Intent("exercicios.task.EDITAR");
  299.  
  300.                 acao.putExtra(Task.TASK_INFO, task);
  301.  
  302.                 startActivityForResult(acao, EDITAR);
  303.  
  304.                 break;
  305.             case R.id.tweet_remove:
  306.  
  307.                 taskBD.delete(task);
  308.                 adaptadorLista.notifyDataSetChanged();
  309.  
  310.                 break;
  311.  
  312.             default:
  313.                 break;
  314.         }
  315.  
  316.         return super.onContextItemSelected(item);
  317.     }
  318.  
  319.     private void exportar() {
  320.  
  321.         StringBuffer exportFormat = new StringBuffer();
  322.         for (Task task : taskBD.getAll(taskLogado)) {
  323.             String taskText = task.toString() + "\n";
  324.             exportFormat.append(taskText);
  325.         }
  326.  
  327.         escrever(exportFormat.toString());
  328.  
  329.     }
  330.  
  331.     private void escrever(String texto) {
  332.  
  333.         String state = Environment.getExternalStorageState();
  334.  
  335.         if (Environment.MEDIA_MOUNTED.equals(state)) {
  336.  
  337.             String FILENAME = "tasks_file_export.txt";
  338.  
  339.             // Environment.getExternalStorageDirectory()
  340.  
  341.             // File externalRoot = Environment.getExternalStorageDirectory();
  342.             // File externalRoot = getExternalFilesDir("teste");
  343.             File externalRoot = Environment
  344.                     .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
  345.  
  346.             try {
  347.                 FileOutputStream fos = new FileOutputStream(new File(
  348.                         externalRoot, FILENAME));
  349.                 fos.write(texto.getBytes());
  350.                 fos.close();
  351.  
  352.             } catch (Exception e) {
  353.                 Log.e("Internal", "Error", e);
  354.             }
  355.         }
  356.     }
  357. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement