From beaf5ff34b2bf0eafdb4f36664ecff4bcd16dd73 Mon Sep 17 00:00:00 2001 From: Paradoxo Date: Sun, 22 Sep 2019 00:47:20 -0300 Subject: [PATCH 1/4] =?UTF-8?q?Fazendo=20pequenos=20ajustes=20ao=20layout?= =?UTF-8?q?=20para=20adequa=C3=A7=C3=A3o=20ao=20Material=20Design?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 61 +++-- .../activity/ListarRespostasActivity.java | 43 ++-- .../activity/ListarRespostasActivityOld.java | 213 ++++++++++++++++++ .../amadeus/activity/LoadActivity.java | 142 +++++++----- .../amadeus/activity/MainActivity.java | 105 ++------- .../activity/redesign/SimpleCallback.java | 134 +++++++++++ .../redesign/SplashScreenActivity.java | 117 ++++++++++ .../amadeus/adapter/AdapterEditaMensagem.java | 36 ++- .../amadeus/adapter/AdapterMensagensHome.java | 4 +- .../paradoxo/amadeus/util/Preferencias.java | 51 +++++ .../com/paradoxo/amadeus/util/Toasts.java | 16 ++ .../java/com/paradoxo/amadeus/util/Util.java | 25 ++ app/src/main/res/anim/fade_in.xml | 8 + app/src/main/res/anim/fade_out.xml | 8 + app/src/main/res/drawable/color_cursor.xml | 5 + app/src/main/res/drawable/ic_add.xml | 5 + app/src/main/res/drawable/ic_logo_cinza.xml | 19 ++ app/src/main/res/font/open_sans_bold.xml | 7 + app/src/main/res/layout/activity_load.xml | 8 +- .../res/layout/activity_load_redesign.xml | 104 +++++++++ app/src/main/res/layout/activity_main.xml | 97 ++++---- .../res/layout/activity_respostas_listar.xml | 120 ++++++++-- .../res/layout/activity_splash_screen.xml | 41 ++++ app/src/main/res/layout/item_lista_tipo_1.xml | 32 +++ app/src/main/res/layout/item_lista_tipo_2.xml | 34 +++ app/src/main/res/layout/item_lista_tipo_4.xml | 41 ++++ .../main/res/raw/third_party_license_metadata | 17 +- app/src/main/res/raw/third_party_licenses | 9 +- app/src/main/res/values/colors.xml | 12 +- app/src/main/res/values/dimens.xml | 3 + app/src/main/res/values/font_certs.xml | 17 ++ app/src/main/res/values/preloaded_fonts.xml | 6 + app/src/main/res/values/strings.xml | 14 +- app/src/main/res/values/styles.xml | 24 +- 34 files changed, 1299 insertions(+), 279 deletions(-) create mode 100644 app/src/main/java/com/paradoxo/amadeus/activity/ListarRespostasActivityOld.java create mode 100644 app/src/main/java/com/paradoxo/amadeus/activity/redesign/SimpleCallback.java create mode 100644 app/src/main/java/com/paradoxo/amadeus/activity/redesign/SplashScreenActivity.java create mode 100644 app/src/main/java/com/paradoxo/amadeus/util/Preferencias.java create mode 100644 app/src/main/java/com/paradoxo/amadeus/util/Toasts.java create mode 100644 app/src/main/java/com/paradoxo/amadeus/util/Util.java create mode 100644 app/src/main/res/anim/fade_in.xml create mode 100644 app/src/main/res/anim/fade_out.xml create mode 100644 app/src/main/res/drawable/color_cursor.xml create mode 100644 app/src/main/res/drawable/ic_add.xml create mode 100644 app/src/main/res/drawable/ic_logo_cinza.xml create mode 100644 app/src/main/res/font/open_sans_bold.xml create mode 100644 app/src/main/res/layout/activity_load_redesign.xml create mode 100644 app/src/main/res/layout/activity_splash_screen.xml create mode 100644 app/src/main/res/layout/item_lista_tipo_1.xml create mode 100644 app/src/main/res/layout/item_lista_tipo_2.xml create mode 100644 app/src/main/res/layout/item_lista_tipo_4.xml create mode 100644 app/src/main/res/values/font_certs.xml create mode 100644 app/src/main/res/values/preloaded_fonts.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e3a2cf8..7877aa1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,14 +3,6 @@ xmlns:tools="http://schemas.android.com/tools" package="com.paradoxo.amadeus"> - - - - - - - - - + @@ -50,14 +42,45 @@ android:name=".activity.ConfiguracoesActivity" android:label="@string/title_activity_settings" /> - + + + - + + + + + + + + + + + + + + + + @@ -65,21 +88,25 @@ + - - + - - + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/paradoxo/amadeus/activity/ListarRespostasActivity.java b/app/src/main/java/com/paradoxo/amadeus/activity/ListarRespostasActivity.java index e5b10ac..5012289 100644 --- a/app/src/main/java/com/paradoxo/amadeus/activity/ListarRespostasActivity.java +++ b/app/src/main/java/com/paradoxo/amadeus/activity/ListarRespostasActivity.java @@ -3,10 +3,12 @@ import android.annotation.SuppressLint; import android.app.Dialog; import android.app.ProgressDialog; +import android.content.DialogInterface; import android.content.Intent; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; +import android.os.Vibrator; import android.view.LayoutInflater; import android.view.View; import android.view.Window; @@ -15,19 +17,26 @@ import android.widget.Toast; import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.snackbar.Snackbar; import com.paradoxo.amadeus.R; +import com.paradoxo.amadeus.activity.redesign.SimpleCallback; import com.paradoxo.amadeus.adapter.AdapterEditaMensagem; import com.paradoxo.amadeus.dao.MensagemDAO; import com.paradoxo.amadeus.modelo.Mensagem; +import com.paradoxo.amadeus.util.Util; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import static com.paradoxo.amadeus.util.Util.configurarToolBarBranca; + public class ListarRespostasActivity extends AppCompatActivity { TextView textViewNenhumaMsgAinda; @@ -47,6 +56,8 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_respostas_listar); + configurarToolBarBranca(this); + progressDialogCarregandoBanco = ProgressDialog.show(this, getString(R.string.carregando_banco), getString(R.string.aguarde), true, false); textViewNenhumaMsgAinda = findViewById(R.id.nenhumaMensagemAindaTextView); @@ -73,12 +84,25 @@ public void onItemClick(View view, int pos) { } }); - adapterEditaMensagem.setOnItemClickListenerExcluir(new AdapterEditaMensagem.OnItemClickListener() { + adapterEditaMensagem.setOnLongClickListener(new AdapterEditaMensagem.OnLongClickListener() { @Override - public void onItemClick(View view, final int pos) { + public void onLongClickListener(View view, int pos, Mensagem mensagem) { + vibrar(); excluirMensagem(pos); } }); + + ItemTouchHelper itemTouchHelper = new + ItemTouchHelper(new SimpleCallback(adapterEditaMensagem, ListarRespostasActivity.this)); + itemTouchHelper.attachToRecyclerView(recyclerView); + } + + private void vibrar() { + Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); + long milliseconds = 50; + if (vibrator != null) { + vibrator.vibrate(milliseconds); + } } private void excluirMensagem(final int pos) { @@ -87,20 +111,6 @@ private void excluirMensagem(final int pos) { builder.setContentView(R.layout.item_msg_excluir); WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - layoutParams.copyFrom(Objects.requireNonNull(builder.getWindow()).getAttributes()); - } - - - layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; - layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT; - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - Objects.requireNonNull(builder.getWindow()).setAttributes(layoutParams); - } - - TextView textViewItemPergunta = builder.findViewById(R.id.conteudoPerguntaTextView); TextView textViewItemResposta = builder.findViewById(R.id.conteudoRespostaTextView); textViewItemPergunta.setText(mensagens.get(pos).getConteudo()); @@ -141,6 +151,7 @@ public void onClick(View v) { }); builder.show(); + } @Override diff --git a/app/src/main/java/com/paradoxo/amadeus/activity/ListarRespostasActivityOld.java b/app/src/main/java/com/paradoxo/amadeus/activity/ListarRespostasActivityOld.java new file mode 100644 index 0000000..362be51 --- /dev/null +++ b/app/src/main/java/com/paradoxo/amadeus/activity/ListarRespostasActivityOld.java @@ -0,0 +1,213 @@ +package com.paradoxo.amadeus.activity; + +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.app.ProgressDialog; +import android.content.Intent; +import android.os.AsyncTask; +import android.os.Build; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.RecyclerView; + +import com.paradoxo.amadeus.R; +import com.paradoxo.amadeus.adapter.AdapterEditaMensagem; +import com.paradoxo.amadeus.dao.MensagemDAO; +import com.paradoxo.amadeus.modelo.Mensagem; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +public class ListarRespostasActivityOld extends AppCompatActivity { + + TextView textViewNenhumaMsgAinda; + private int posicaoDaMensagemEmEdicao = -1; + private AdapterEditaMensagem adapterEditaMensagem; + private ProgressDialog progressDialogCarregandoBanco; + private List mensagens = new ArrayList<>(); + + @NonNull + @Override + public LayoutInflater getLayoutInflater() { + return super.getLayoutInflater(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_respostas_listar); + + progressDialogCarregandoBanco = ProgressDialog.show(this, getString(R.string.carregando_banco), getString(R.string.aguarde), true, false); + //textViewNenhumaMsgAinda = findViewById(R.id.nenhumaMensagemAindaTextView); + + CarregarMensagens carregarMensagens = new CarregarMensagens(); + carregarMensagens.execute(); + + } + + private void configurarRecycler(TextView textViewNenhumaMsgAinda) { + textViewNenhumaMsgAinda.setVisibility(View.INVISIBLE); + RecyclerView recyclerView = findViewById(R.id.recycler); + adapterEditaMensagem = new AdapterEditaMensagem(mensagens); + recyclerView.setAdapter(adapterEditaMensagem); + recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + + posicaoDaMensagemEmEdicao = -1; + // O valor "-1" indica que nenhuma mensagem está em edição no momento e por isso o método "onResume" não precisa atualizar a recycler quando chamado + + adapterEditaMensagem.setOnItemClickListenerEditar(new AdapterEditaMensagem.OnItemClickListener() { + @Override + public void onItemClick(View view, int pos) { + editarMensagem(pos); + posicaoDaMensagemEmEdicao = pos; + } + }); + + adapterEditaMensagem.setOnItemClickListenerExcluir(new AdapterEditaMensagem.OnItemClickListener() { + @Override + public void onItemClick(View view, final int pos) { + excluirMensagem(pos); + } + }); + } + + private void excluirMensagem(final int pos) { + final Dialog builder = new Dialog(ListarRespostasActivityOld.this); + builder.requestWindowFeature(Window.FEATURE_NO_TITLE); + builder.setContentView(R.layout.item_msg_excluir); + WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(); + + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + layoutParams.copyFrom(Objects.requireNonNull(builder.getWindow()).getAttributes()); + } + + + layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; + layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT; + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + Objects.requireNonNull(builder.getWindow()).setAttributes(layoutParams); + } + + + TextView textViewItemPergunta = builder.findViewById(R.id.conteudoPerguntaTextView); + TextView textViewItemResposta = builder.findViewById(R.id.conteudoRespostaTextView); + textViewItemPergunta.setText(mensagens.get(pos).getConteudo()); + textViewItemResposta.setText(mensagens.get(pos).getConteudo_resposta()); + + + (builder.findViewById(R.id.confirmarButton)).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + try { + MensagemDAO mensagemDAO = new MensagemDAO(getApplicationContext()); + mensagemDAO.excluirResposta(mensagens.get(pos)); + + mensagens = mensagemDAO.listarRespostasCompleto(); + adapterEditaMensagem.remover(pos); + + meuToast(String.valueOf(getApplicationContext().getText(R.string.msg_deletada_sucesso))); + + if (mensagens.size() == 0) { + meuToast(String.valueOf(getApplicationContext().getText(R.string.nenhuma_resposta_gravada))); + + } + + } catch (Exception e) { + meuToast(String.valueOf(getApplicationContext().getText(R.string.erro_apagar_msg))); + } + + builder.dismiss(); + } + }); + + (builder.findViewById(R.id.cancelarButton)).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + builder.cancel(); + } + }); + + builder.show(); + } + + @Override + protected void onResume() { + super.onResume(); + atualizarRecyclerSeOuveAlteracao(); + } + + @SuppressLint("StaticFieldLeak") + private void atualizarRecyclerSeOuveAlteracao() { + if (posicaoDaMensagemEmEdicao > -1) { + + new AsyncTask() { + @Override + protected Object doInBackground(Object[] objects) { + buscarMensagensBanco(); + return null; + } + + @Override + protected void onPostExecute(Object o) { + super.onPostExecute(o); + adapterEditaMensagem.atualizar(mensagens.get(posicaoDaMensagemEmEdicao), posicaoDaMensagemEmEdicao); + posicaoDaMensagemEmEdicao = -1; + + } + }.execute(); + } + } + + public void editarMensagem(int position) { + Intent alterarRespostasActivity = new Intent(this, AlteraRespostasActivity.class); + alterarRespostasActivity.putExtra("pergunta_selecionada", mensagens.get(position).getConteudo()); + alterarRespostasActivity.putExtra("resposta_selecionada", mensagens.get(position).getConteudo_resposta()); + alterarRespostasActivity.putExtra("id_selecionado", String.valueOf(position)); + startActivity(alterarRespostasActivity); + + } + + public void meuToast(String texto) { + Toast.makeText(this, texto, Toast.LENGTH_LONG).show(); + } + + @SuppressLint("StaticFieldLeak") + public class CarregarMensagens extends AsyncTask { + @Override + protected Void doInBackground(Void... voids) { + buscarMensagensBanco(); + + return null; + } + + @Override + protected void onPostExecute(Void aVoid) { + super.onPostExecute(aVoid); + progressDialogCarregandoBanco.dismiss(); + if (mensagens.size() > 0) { + configurarRecycler(textViewNenhumaMsgAinda); + + } else { + textViewNenhumaMsgAinda.setVisibility(View.VISIBLE); + } + } + } + + private void buscarMensagensBanco() { + MensagemDAO msgDAO = new MensagemDAO(getBaseContext()); + mensagens = msgDAO.listarRespostasCompleto(); + } +} diff --git a/app/src/main/java/com/paradoxo/amadeus/activity/LoadActivity.java b/app/src/main/java/com/paradoxo/amadeus/activity/LoadActivity.java index faa23de..bdd71e6 100644 --- a/app/src/main/java/com/paradoxo/amadeus/activity/LoadActivity.java +++ b/app/src/main/java/com/paradoxo/amadeus/activity/LoadActivity.java @@ -5,38 +5,65 @@ import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; +import android.view.KeyEvent; import android.view.View; -import android.widget.AutoCompleteTextView; -import android.widget.Button; -import android.widget.EditText; +import android.view.inputmethod.EditorInfo; +import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; -import com.google.android.material.snackbar.Snackbar; +import com.google.android.material.button.MaterialButton; +import com.google.android.material.textfield.TextInputEditText; +import com.google.android.material.textfield.TextInputLayout; import com.paradoxo.amadeus.R; import com.paradoxo.amadeus.dao.AutorDAO; import com.paradoxo.amadeus.modelo.Autor; +import static com.paradoxo.amadeus.util.Toasts.meuToast; +import static com.paradoxo.amadeus.util.Util.configurarToolBarBranca; + public class LoadActivity extends AppCompatActivity { public static boolean emEdicao = false; + TextInputEditText nomeUsuarioEditText, nomeIaEditText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_load); + setContentView(R.layout.activity_load_redesign); + + configurarToolBarBranca(this); + configuarBotaoLinkStart(); + configurarTextInput(); verificarSeEstaEditando(); - findViewById(R.id.linkStartButton).setOnClickListener(new View.OnClickListener() { + } + + private void configurarTextInput() { + nomeUsuarioEditText = findViewById(R.id.nomeUsuEditText); + nomeIaEditText = findViewById(R.id.nomeIAEditText); + + ((TextInputEditText) findViewById(R.id.nomeIAEditText)).setOnEditorActionListener(new TextInputEditText.OnEditorActionListener() { @Override - public void onClick(View v) { - configurarBotaoLinkStart(); + public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { + if (actionId == EditorInfo.IME_ACTION_GO) { + verificarNomes(); + return true; + } + return false; } }); + } - + private void configuarBotaoLinkStart() { + findViewById(R.id.okButton).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + verificarNomes(); + } + }); } private void verificarSeEstaEditando() { @@ -44,15 +71,13 @@ private void verificarSeEstaEditando() { Intent intent = this.getIntent(); if (intent.getStringExtra("nomeUsu").length() > 0) { - EditText editTextNomeUsu = findViewById(R.id.nomeUsuarioTextView); - EditText editTextNomeIa = findViewById(R.id.nomeIATextView); - Button buttonLinkStart = findViewById(R.id.linkStartButton); + MaterialButton buttonLinkStart = findViewById(R.id.okButton); - editTextNomeUsu.setText(intent.getStringExtra("nomeUsu")); - editTextNomeUsu.setSelection(editTextNomeUsu.getText().length()); + nomeUsuarioEditText.setText(intent.getStringExtra("nomeUsu")); + nomeUsuarioEditText.setSelection(String.valueOf(nomeUsuarioEditText.getText()).length()); - editTextNomeIa.setText(intent.getStringExtra("nomeIA")); - editTextNomeIa.setSelection(editTextNomeIa.getText().length()); + nomeIaEditText.setText(intent.getStringExtra("nomeIA")); + nomeIaEditText.setSelection(String.valueOf(nomeIaEditText.getText()).length()); buttonLinkStart.setText(this.getString(R.string.Atualizar)); @@ -60,69 +85,72 @@ private void verificarSeEstaEditando() { } } catch (Exception e) { Log.e("Acitivity Load", "Primeiro uso"); + e.printStackTrace(); } - chamarDialogPrimeiroUso(); } - private void chamarDialogPrimeiroUso() { - if (!emEdicao) { - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(String.valueOf(this.getText(R.string.bem_vindo))); - builder.setMessage(String.valueOf(this.getText(R.string.moldar_as_coisas))); + public void gravarDados() { - builder.setPositiveButton(String.valueOf(this.getText(R.string.ok)), new DialogInterface.OnClickListener() { - public void onClick(DialogInterface arg0, int arg1) { - } - }); + String nomeUsu = String.valueOf(nomeUsuarioEditText.getText()).trim(); + String nomeIa = String.valueOf(nomeIaEditText.getText()).trim(); + Autor objAutorUsu = new Autor(2, nomeUsu); + Autor objAutorIa = new Autor(1, nomeIa); - builder.setNegativeButton(String.valueOf(this.getText(R.string.cancelar)), new DialogInterface.OnClickListener() { - public void onClick(DialogInterface arg0, int arg1) { - LoadActivity.this.finishAffinity(); + AutorDAO autorDAO = new AutorDAO(this); + autorDAO.alterar(objAutorIa); + autorDAO.alterar(objAutorUsu); - } - }); + Toast.makeText(this, getString(R.string.gravando_dados), Toast.LENGTH_LONG).show(); - AlertDialog alerta = builder.create(); - alerta.show(); - emEdicao = false; - } + setPrefBool(); + Intent mainActivity = new Intent(LoadActivity.this, MainActivity.class); + startActivity(mainActivity); + finish(); } - public void configurarBotaoLinkStart() { - AutoCompleteTextView NomeUsu = findViewById(R.id.nomeUsuarioTextView); - AutoCompleteTextView NomeIA = findViewById(R.id.nomeIATextView); - String nomeUsu = NomeUsu.getText().toString().trim(); - String nomeIa = NomeIA.getText().toString().trim(); - - if ((nomeIa.length() > 0) && (nomeUsu.length() > 0)) { - - Autor objAutorUsu = new Autor(2, nomeUsu); - Autor objAutorIa = new Autor(1, nomeIa); - - AutorDAO autorDAO = new AutorDAO(this); - autorDAO.alterar(objAutorIa); - autorDAO.alterar(objAutorUsu); + public void verificarNomes() { + TextInputLayout nomeUsuTextInput = findViewById(R.id.nomeUsuTextInput); + TextInputLayout nomeIATextInput = findViewById(R.id.nomeIATextInput); - Toast.makeText(this, getString(R.string.gravando_dados), Toast.LENGTH_LONG).show(); - - setPrefBool(); - Intent mainActivity = new Intent(LoadActivity.this, MainActivity.class); - startActivity(mainActivity); - finish(); + if (String.valueOf(nomeUsuarioEditText.getText()).isEmpty()) { + nomeUsuTextInput.setError(getString(R.string.nome_invalido)); + } else { + nomeUsuTextInput.setErrorEnabled(false); + } + if (String.valueOf(nomeIaEditText.getText()).isEmpty()) { + nomeIATextInput.setError(getString(R.string.nome_invalido)); + return; } else { - Snackbar.make(findViewById(R.id.activityLoad), String.valueOf(this.getText(R.string.preencha_tudo)), Snackbar.LENGTH_LONG) - .setAction("Action", null).show(); + nomeIATextInput.setErrorEnabled(false); } + + meuToast(getString(R.string.gravando_dados), this); + gravarDados(); + } private void setPrefBool() { SharedPreferences sharedPreferences = getSharedPreferences("PrefsUsu", MODE_PRIVATE); SharedPreferences.Editor mEditor = sharedPreferences.edit(); mEditor.putBoolean("bancoInserido", true); + mEditor.putBoolean("ja_foi_aberto", true); + mEditor.apply(); } } + + + + + + + + + + + + diff --git a/app/src/main/java/com/paradoxo/amadeus/activity/MainActivity.java b/app/src/main/java/com/paradoxo/amadeus/activity/MainActivity.java index e668367..f6f299f 100644 --- a/app/src/main/java/com/paradoxo/amadeus/activity/MainActivity.java +++ b/app/src/main/java/com/paradoxo/amadeus/activity/MainActivity.java @@ -3,7 +3,6 @@ import android.Manifest; import android.annotation.SuppressLint; import android.app.Dialog; -import android.app.ProgressDialog; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; @@ -14,7 +13,6 @@ import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; -import android.os.Handler; import android.os.Vibrator; import android.preference.PreferenceManager; import android.speech.tts.TextToSpeech; @@ -29,8 +27,8 @@ import android.view.Window; import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; -import android.widget.Button; import android.widget.EditText; +import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; @@ -46,18 +44,15 @@ import com.paradoxo.amadeus.R; import com.paradoxo.amadeus.adapter.AdapterMensagensHome; import com.paradoxo.amadeus.dao.AutorDAO; -import com.paradoxo.amadeus.dao.BDGateway; import com.paradoxo.amadeus.dao.MensagemDAO; import com.paradoxo.amadeus.modelo.Autor; import com.paradoxo.amadeus.modelo.Mensagem; import com.paradoxo.amadeus.nuvem.BancosOnlineActivity; import com.paradoxo.amadeus.service.EscutadaoraService; -import com.paradoxo.amadeus.util.Arquivo; import com.paradoxo.amadeus.util.Chatbot; import com.paradoxo.amadeus.util.Classificador; import com.paradoxo.amadeus.util.SpeechToText; -import java.io.IOException; import java.util.Arrays; import java.util.List; import java.util.Locale; @@ -65,6 +60,7 @@ import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static com.paradoxo.amadeus.enums.AcaoEnum.ACAO_ACESSAR_ARMAZENAMENTO; +import static com.paradoxo.amadeus.util.Util.configurarToolBarBranca; public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { @@ -86,7 +82,6 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On private RecyclerView recyclerViewMensagens; private static Autor autorIA, autorUsuario; private AdapterMensagensHome adapterMensagensHome; - private ProgressDialog dialogCarregandoBancoInicial; private boolean vozIaAtiva, vozIaAtivaMesmoSemResposta; @@ -95,6 +90,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + configurarToolBarBranca(this); inicializarConfiguracoes(); } @@ -113,23 +109,17 @@ public void pararEscutadoraService() { private void inicializarConfiguracoes() { - if (!getPrefBool("bancoInserido")) { - realizarPrimeiroLoad(); - } else { - - dialog_changelog(); - List autores = carregarInformacoesIniciais(); - carregarNomeUsuarioIA(autores); - - chatbot = new Chatbot(this, autores); - if (!getPrefBool("bdMudou")) { - // Evita que uma saudação seja feita com o nome de usuário errado durante a transição de um banco baixado - chatbot.despertar(); - } - - inicializarComponentes(); + dialog_changelog(); + List autores = carregarInformacoesIniciais(); + carregarNomeUsuarioIA(autores); + chatbot = new Chatbot(this, autores); + if (!getPrefBool("bdMudou")) { + // Evita que uma saudação seja feita com o nome de usuário errado durante a transição de um banco baixado + chatbot.despertar(); } + + inicializarComponentes(); } private void inicializarComponentes() { @@ -154,6 +144,7 @@ private void configurarRecycler() { recyclerViewMensagens = findViewById(R.id.recycler); + adapterMensagensHome = new AdapterMensagensHome(mensagems); adapterMensagensHome = new AdapterMensagensHome(mensagems); recyclerViewMensagens.setAdapter(adapterMensagensHome); adapterMensagensHome.setOnLongClickListener(new AdapterMensagensHome.OnLongClickListener() { @@ -196,15 +187,6 @@ public String identificarApp(String entrada) { return nomeApp; } - private void realizarPrimeiroLoad() { - dialogCarregandoBancoInicial = ProgressDialog.show(this, "Carregando banco inicial", "Esse processo só precisa ser feito uma vez\nAguarde um momento...", true, false); - dialogCarregandoBancoInicial.show(); - - PrimeiroLoad primeiroLoad = new PrimeiroLoad(); - primeiroLoad.execute(); - // Vai carregar o banco de dados pré pronto e depois chama a activity de login - } - private void configurarCaixaDeDigitacaoMensagem() { editTextMsgUsu = findViewById(R.id.mensagemUsuarioTextView); editTextMsgUsu.addTextChangedListener(new TextWatcher() { @@ -214,13 +196,13 @@ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { - Button btn = findViewById(R.id.enviarButton); + ImageView btn = findViewById(R.id.enviarButton); if (editTextMsgUsu.getText().length() > 0 && !escutando) { - btn.setBackground(ContextCompat.getDrawable(MainActivity.this, R.drawable.ic_enviar)); + btn.setImageResource(R.drawable.ic_enviar); envioViaVoz = true; } else { - btn.setBackground(ContextCompat.getDrawable(MainActivity.this, R.drawable.ic_microfone)); + btn.setImageResource(R.drawable.ic_microfone); envioViaVoz = false; } } @@ -232,7 +214,7 @@ public void afterTextChanged(Editable editable) { @SuppressLint("ClickableViewAccessibility") private void configurarBotaoEnvioMensagem() { - final Button btnSend = findViewById(R.id.enviarButton); + final ImageView btnSend = findViewById(R.id.enviarButton); btnSend.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { @@ -434,10 +416,8 @@ public boolean onOptionsItemSelected(MenuItem item) { public boolean onNavigationItemSelected(@NonNull MenuItem item) { int id = item.getItemId(); - switch (id) { case R.id.nav_perfil: { - iniciarEscutadoraService(); carregarNomeUsuarioIA(carregarInformacoesIniciais()); // Atualizando os nomes para o caso de uma importação ter sido feita via Qpython @@ -455,7 +435,6 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) { } case R.id.nav_configuracoes: { - pararEscutadoraService(); Intent settingsActivity = new Intent(MainActivity.this, ConfiguracoesActivity.class); startActivity(settingsActivity); break; @@ -734,56 +713,6 @@ public void esconderTeclado() { } } - @SuppressLint("StaticFieldLeak") - public class PrimeiroLoad extends AsyncTask { - @Override - protected void onPreExecute() { - super.onPreExecute(); - Log.e("tag", "Iniciando cópia do banco"); - BDGateway.getInstance(getBaseContext()); - // Isso inicializa o banco para que ele possa ser sobrescrito a seguir - } - - @Override - protected Boolean doInBackground(Void... voids) { - try { - Arquivo.importarBancoPrimeiroUso("Amadeus.db", getApplicationContext()); - Log.e("tag", "Sucesso na cópia do banco"); - } catch (IOException e) { - Log.e("tag", "Erro ao copiar o banco"); - e.printStackTrace(); - return false; - } - - return true; - } - - @Override - protected void onPostExecute(Boolean bancoCopiado) { - super.onPostExecute(bancoCopiado); - - if (bancoCopiado) { - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - cadastrarNomes(); - } - }, 1000); - } else { - meuToast("Falha ao copiar o banco de dados"); - } - } - } - - private void cadastrarNomes() { - Log.e("tag", "Cópia do banco finalizada"); - dialogCarregandoBancoInicial.dismiss(); - - Intent loadActivity = new Intent(getApplicationContext(), LoadActivity.class); - startActivity(loadActivity); - finish(); - } - @SuppressLint("StaticFieldLeak") public class BuscaInteracao extends AsyncTask { private String entradaUsuario; diff --git a/app/src/main/java/com/paradoxo/amadeus/activity/redesign/SimpleCallback.java b/app/src/main/java/com/paradoxo/amadeus/activity/redesign/SimpleCallback.java new file mode 100644 index 0000000..e2523ce --- /dev/null +++ b/app/src/main/java/com/paradoxo/amadeus/activity/redesign/SimpleCallback.java @@ -0,0 +1,134 @@ +package com.paradoxo.amadeus.activity.redesign; + +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.LightingColorFilter; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.os.Build; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.ItemTouchHelper; +import androidx.recyclerview.widget.RecyclerView; + +import com.paradoxo.amadeus.R; +import com.paradoxo.amadeus.adapter.AdapterEditaMensagem; +import com.paradoxo.amadeus.dao.MensagemDAO; + +import java.util.Objects; + +import static com.paradoxo.amadeus.util.Toasts.meuToast; + +public class SimpleCallback extends ItemTouchHelper.SimpleCallback { + + private AdapterEditaMensagem mAdapter; + ColorDrawable background; + Drawable icon; + Context context; + + public SimpleCallback(AdapterEditaMensagem adapter, Context context) { + super(0, ItemTouchHelper.RIGHT); + mAdapter = adapter; + this.context = context; + icon = ContextCompat.getDrawable(context, + R.drawable.ic_deletar); + assert icon != null; + icon.setColorFilter(new LightingColorFilter(Color.WHITE, Color.WHITE)); + background = new ColorDrawable(Color.RED); + + + } + + @Override + public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { + super.onChildDraw(c, recyclerView, viewHolder, dX, + dY, actionState, isCurrentlyActive); + View itemView = viewHolder.itemView; + int backgroundCornerOffset = 20; + + + int iconMargin = (itemView.getHeight() - icon.getIntrinsicHeight()) / 2; + int iconTop = itemView.getTop() + (itemView.getHeight() - icon.getIntrinsicHeight()) / 2; + int iconBottom = iconTop + icon.getIntrinsicHeight(); + + if (dX > 0) { // Swiping to the right + int iconLeft = itemView.getLeft() + iconMargin; + int iconRight = iconLeft + icon.getIntrinsicWidth(); + icon.setBounds(iconLeft, iconTop, iconRight, iconBottom); + + background.setBounds(itemView.getLeft(), itemView.getTop(), + itemView.getLeft() + ((int) dX) + backgroundCornerOffset, itemView.getBottom()); + } else if (dX < 0) { // Swiping to the left + int iconLeft = itemView.getRight() - iconMargin - icon.getIntrinsicWidth(); + int iconRight = itemView.getRight() - iconMargin; + icon.setBounds(iconLeft, iconTop, iconRight, iconBottom); + + background.setBounds(itemView.getRight() + ((int) dX) - backgroundCornerOffset, + itemView.getTop(), itemView.getRight(), itemView.getBottom()); + } else { // view is unSwiped + background.setBounds(0, 0, 0, 0); + } + + background.draw(c); + icon.draw(c); + } + + @Override + public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) { + return false; + } + + @Override + public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) { + int position = viewHolder.getAdapterPosition(); + /* mAdapter.delete(position);*/ + excluirMensagem(position); + } + + private void excluirMensagem(final int pos) { + + final AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(context.getString(R.string.confirmar_excluir)); + builder.setMessage(context.getString(R.string.cornfimar_exclusao_item)); + builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + + + try { + MensagemDAO mensagemDAO = new MensagemDAO(context); + mensagemDAO.excluirResposta(mAdapter.getMensagens().get(pos)); + + mAdapter.notifyItemRemoved(pos); + + meuToast(String.valueOf(context.getText(R.string.msg_deletada_sucesso)),context); + + if (mAdapter.getMensagens().size() == 0) { + meuToast(String.valueOf(context.getText(R.string.nenhuma_resposta_gravada)),context); + + } + + } catch (Exception e) { + meuToast(String.valueOf(context.getText(R.string.erro_apagar_msg)), context); + } + } + + }); + builder.setNegativeButton(R.string.cancelar, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + mAdapter.notifyItemChanged(pos); + } + }); + + builder.show(); + } +} diff --git a/app/src/main/java/com/paradoxo/amadeus/activity/redesign/SplashScreenActivity.java b/app/src/main/java/com/paradoxo/amadeus/activity/redesign/SplashScreenActivity.java new file mode 100644 index 0000000..a31509a --- /dev/null +++ b/app/src/main/java/com/paradoxo/amadeus/activity/redesign/SplashScreenActivity.java @@ -0,0 +1,117 @@ +package com.paradoxo.amadeus.activity.redesign; + +import android.annotation.SuppressLint; +import android.content.Intent; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.Handler; +import android.util.Log; + +import androidx.appcompat.app.AppCompatActivity; + +import com.paradoxo.amadeus.R; +import com.paradoxo.amadeus.activity.LoadActivity; +import com.paradoxo.amadeus.activity.MainActivity; +import com.paradoxo.amadeus.dao.BDGateway; +import com.paradoxo.amadeus.util.Arquivo; + +import java.io.IOException; + +import static com.paradoxo.amadeus.util.Preferencias.appJaFoiAberto; +import static com.paradoxo.amadeus.util.Toasts.meuToast; +import static com.paradoxo.amadeus.util.Util.configurarToolBarBranca; + +public class SplashScreenActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_splash_screen); + + + configurarToolBarBranca(this); + + decidirParaOndeVai(); + + + } + + private void decidirParaOndeVai() { + + if (appJaFoiAberto(this)) { + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + startActivity(new Intent(getApplicationContext(), MainActivity.class)); + finish(); + } + }, 1000); + } else { + PrimeiroLoad primeiroLoad = new PrimeiroLoad(); + primeiroLoad.execute(); + + } + } + + @Override + protected void onStart() { + super.onStart(); + overridePendingTransition(R.anim.fade_in, R.anim.fade_out); + } + + @Override + public void finish() { + super.finish(); + overridePendingTransition(R.anim.fade_in, R.anim.fade_out); + } + + private void cadastrarNomes() { + Log.e("tag", "Cópia do banco finalizada"); + + Intent loadActivity = new Intent(getApplicationContext(), LoadActivity.class); + startActivity(loadActivity); + finish(); + } + + @SuppressLint("StaticFieldLeak") + public class PrimeiroLoad extends AsyncTask { + @Override + protected void onPreExecute() { + super.onPreExecute(); + meuToast(getString(R.string.carregando_banco_inicial),getApplicationContext()); + Log.e("tag", "Iniciando cópia do banco"); + BDGateway.getInstance(getBaseContext()); + // Isso inicializa o banco para que ele possa ser sobrescrito a seguir + } + + @Override + protected Boolean doInBackground(Void... voids) { + try { + Arquivo.importarBancoPrimeiroUso("Amadeus.db", getApplicationContext()); + Log.e("tag", "Sucesso na cópia do banco"); + } catch (IOException e) { + Log.e("tag", "Erro ao copiar o banco"); + e.printStackTrace(); + return false; + } + + return true; + } + + @Override + protected void onPostExecute(Boolean bancoCopiado) { + super.onPostExecute(bancoCopiado); + + if (bancoCopiado) { + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + cadastrarNomes(); + } + }, 1000); + } else { + meuToast("Falha ao copiar o banco de dados",getApplicationContext()); + } + } + } +} diff --git a/app/src/main/java/com/paradoxo/amadeus/adapter/AdapterEditaMensagem.java b/app/src/main/java/com/paradoxo/amadeus/adapter/AdapterEditaMensagem.java index e843e4e..615a2e0 100644 --- a/app/src/main/java/com/paradoxo/amadeus/adapter/AdapterEditaMensagem.java +++ b/app/src/main/java/com/paradoxo/amadeus/adapter/AdapterEditaMensagem.java @@ -1,5 +1,6 @@ package com.paradoxo.amadeus.adapter; +import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -17,17 +18,19 @@ public class AdapterEditaMensagem extends RecyclerView.Adapter { private List mensagens; private OnItemClickListener onItemClickListenerEditar, onItemClickListenerExcluir; + private OnLongClickListener onLongClickListener; + public class ViewHolder extends RecyclerView.ViewHolder { final TextView textViewConteudoPergunta, textViewConteudoResposta; - ImageButton imageViewEditar, imageViewExcluir; + final View layoutItemComum; ViewHolder(View view) { super(view); textViewConteudoPergunta = view.findViewById(R.id.conteudoPerguntaTextView); textViewConteudoResposta = view.findViewById(R.id.conteudoRespostaTextView); - imageViewEditar = view.findViewById(R.id.editarTextView); - imageViewExcluir = view.findViewById(R.id.excluirTextView); + layoutItemComum = view.findViewById(R.id.layoutItemComum); + } } @@ -37,7 +40,7 @@ public AdapterEditaMensagem(List mensagens) { @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_msg_editar, parent, false); + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_lista_tipo_4, parent, false); return new ViewHolder(view); } @@ -51,17 +54,18 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) view.textViewConteudoPergunta.setText(mensagem.getConteudo()); view.textViewConteudoResposta.setText(mensagem.getConteudo_resposta()); - view.imageViewEditar.setOnClickListener(new View.OnClickListener() { + view.layoutItemComum.setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View view) { onItemClickListenerEditar.onItemClick(view, position); } }); - view.imageViewExcluir.setOnClickListener(new View.OnClickListener() { + view.layoutItemComum.setOnLongClickListener(new View.OnLongClickListener() { @Override - public void onClick(View view) { - onItemClickListenerExcluir.onItemClick(view, position); + public boolean onLongClick(View view) { + onLongClickListener.onLongClickListener(view, position, mensagem); + return false; } }); } @@ -85,6 +89,14 @@ public interface OnItemClickListener { void onItemClick(View view, int pos); } + public interface OnLongClickListener { + void onLongClickListener(View view, int position, Mensagem mensagem); + } + + public void setOnLongClickListener(OnLongClickListener onLongClickListener) { + this.onLongClickListener = onLongClickListener; + } + public void remover(int position) { mensagens.remove(position); notifyItemRemoved(position); @@ -95,4 +107,12 @@ public void atualizar(Mensagem mensagem, int posicao) { notifyItemChanged(posicao); } + public void delete(int position) { + mensagens.remove(position); + notifyItemRemoved(position); + } + + public List getMensagens() { + return mensagens; + } } diff --git a/app/src/main/java/com/paradoxo/amadeus/adapter/AdapterMensagensHome.java b/app/src/main/java/com/paradoxo/amadeus/adapter/AdapterMensagensHome.java index c745a52..5e94cc2 100644 --- a/app/src/main/java/com/paradoxo/amadeus/adapter/AdapterMensagensHome.java +++ b/app/src/main/java/com/paradoxo/amadeus/adapter/AdapterMensagensHome.java @@ -55,10 +55,10 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType View v; switch (viewType) { case (VIEW_ITEM_MSG_IA): - v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_msg_ia, parent, false); + v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_lista_tipo_1, parent, false); return new ViewHolder(v); case (VIEW_ITEM_MSG_USU): - v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_msg_usu, parent, false); + v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_lista_tipo_2, parent, false); return new ViewHolder(v); case (VIEW_PROGRESSO): v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_progresso, parent, false); diff --git a/app/src/main/java/com/paradoxo/amadeus/util/Preferencias.java b/app/src/main/java/com/paradoxo/amadeus/util/Preferencias.java new file mode 100644 index 0000000..189e2f0 --- /dev/null +++ b/app/src/main/java/com/paradoxo/amadeus/util/Preferencias.java @@ -0,0 +1,51 @@ +package com.paradoxo.amadeus.util; + +import android.content.Context; +import android.content.SharedPreferences; + +import static android.content.Context.MODE_PRIVATE; + +public class Preferencias { + private static final String PREFS_USU = "PrefsUsu"; + private Context context; + + public Preferencias(Context context) { + this.context = context; + } + + public static void confirmarAberturaApp(Context context) { + SharedPreferences sharedPreferences = context.getSharedPreferences(PREFS_USU, MODE_PRIVATE); + SharedPreferences.Editor mEditor = sharedPreferences.edit(); + mEditor.putBoolean("ja_foi_aberto", true); + mEditor.apply(); + } + + public static boolean appJaFoiAberto(Context context) { + SharedPreferences sharedPreferences = context.getSharedPreferences(PREFS_USU, MODE_PRIVATE); + return sharedPreferences.getBoolean("ja_foi_aberto", false); + } + + private void setPrefBool(String nomeShared, boolean valor) { + SharedPreferences sharedPreferences = context.getSharedPreferences(PREFS_USU, MODE_PRIVATE); + SharedPreferences.Editor mEditor = sharedPreferences.edit(); + mEditor.putBoolean(nomeShared, valor); + mEditor.apply(); + } + + private boolean getPrefBool(String nomePref) { + SharedPreferences sharedPreferences = context.getSharedPreferences(PREFS_USU, MODE_PRIVATE); + return sharedPreferences.getBoolean(nomePref, false); + } + + public static void setPrefString(String textoShared, String nomeShared, Context context) { + SharedPreferences sharedPreferences = context.getSharedPreferences(PREFS_USU, MODE_PRIVATE); + SharedPreferences.Editor mEditor = sharedPreferences.edit(); + mEditor.putString(nomeShared, textoShared); + mEditor.apply(); + } + + public static String getPrefString(String nomeShared, Context context) { + SharedPreferences sharedPreferences = context.getSharedPreferences(PREFS_USU, MODE_PRIVATE); + return sharedPreferences.getString(nomeShared, ""); + } +} diff --git a/app/src/main/java/com/paradoxo/amadeus/util/Toasts.java b/app/src/main/java/com/paradoxo/amadeus/util/Toasts.java new file mode 100644 index 0000000..85cafd2 --- /dev/null +++ b/app/src/main/java/com/paradoxo/amadeus/util/Toasts.java @@ -0,0 +1,16 @@ +package com.paradoxo.amadeus.util; + +import android.content.Context; +import android.widget.Toast; + +import static android.widget.Toast.LENGTH_LONG; +import static android.widget.Toast.LENGTH_SHORT; + +public class Toasts { + public static void meuToast(String texto, Context context) { + Toast.makeText(context, texto, LENGTH_SHORT).show(); + } + public static void meuToastLong(String texto, Context context) { + Toast.makeText(context, texto, LENGTH_LONG).show(); + } +} diff --git a/app/src/main/java/com/paradoxo/amadeus/util/Util.java b/app/src/main/java/com/paradoxo/amadeus/util/Util.java new file mode 100644 index 0000000..cac7730 --- /dev/null +++ b/app/src/main/java/com/paradoxo/amadeus/util/Util.java @@ -0,0 +1,25 @@ +package com.paradoxo.amadeus.util; + +import android.app.Activity; +import android.graphics.Color; +import android.os.Build; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; + +public class Util { + + public static void configurarToolBarBranca(Activity activity) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + Window window = activity.getWindow(); + window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + window.setStatusBarColor(Color.WHITE); + + View view = activity.findViewById(android.R.id.content); + int flags = view.getSystemUiVisibility(); + flags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; + view.setSystemUiVisibility(flags); + } + } +} diff --git a/app/src/main/res/anim/fade_in.xml b/app/src/main/res/anim/fade_in.xml new file mode 100644 index 0000000..93d14d6 --- /dev/null +++ b/app/src/main/res/anim/fade_in.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/fade_out.xml b/app/src/main/res/anim/fade_out.xml new file mode 100644 index 0000000..9d4c340 --- /dev/null +++ b/app/src/main/res/anim/fade_out.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/color_cursor.xml b/app/src/main/res/drawable/color_cursor.xml new file mode 100644 index 0000000..acdfb16 --- /dev/null +++ b/app/src/main/res/drawable/color_cursor.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add.xml b/app/src/main/res/drawable/ic_add.xml new file mode 100644 index 0000000..873315e --- /dev/null +++ b/app/src/main/res/drawable/ic_add.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_logo_cinza.xml b/app/src/main/res/drawable/ic_logo_cinza.xml new file mode 100644 index 0000000..9914c87 --- /dev/null +++ b/app/src/main/res/drawable/ic_logo_cinza.xml @@ -0,0 +1,19 @@ + + + + + diff --git a/app/src/main/res/font/open_sans_bold.xml b/app/src/main/res/font/open_sans_bold.xml new file mode 100644 index 0000000..eba352b --- /dev/null +++ b/app/src/main/res/font/open_sans_bold.xml @@ -0,0 +1,7 @@ + + + diff --git a/app/src/main/res/layout/activity_load.xml b/app/src/main/res/layout/activity_load.xml index 97d84a8..58a7cf0 100644 --- a/app/src/main/res/layout/activity_load.xml +++ b/app/src/main/res/layout/activity_load.xml @@ -23,10 +23,10 @@ android:layout_height="wrap_content"> @@ -38,10 +38,10 @@ android:layout_height="wrap_content"> diff --git a/app/src/main/res/layout/activity_load_redesign.xml b/app/src/main/res/layout/activity_load_redesign.xml new file mode 100644 index 0000000..f3746b0 --- /dev/null +++ b/app/src/main/res/layout/activity_load_redesign.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 70e1b46..973786e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -14,63 +14,66 @@ + app:layout_behavior="@string/appbar_scrolling_view_behavior" + tools:listitem="@layout/item_lista_tipo_2" /> - + android:orientation="vertical" + app:layout_anchorGravity="bottom"> + + + + - + -