Estou tendo uma dificuldade para que aparece os itens que o usuário comprou, não sei como resolver.
CLASSE CARDAPIO.
public class CartapioActivity estende AppCompatActivity {
RecyclerView recyclerProdutosCardapio privado ;
private ImageView imageEmpresaCardapio;
private TextView textNomeEmpresaCardapio;
Empresa privada EmpresaSelecionada;
privado TextView textCarrinhoQuantidade;
private TextView textCarrinhoTotal;
caixa de diálogo AlertDialog privada ;
privado AdapterProduto adapterProduto;
Lista privada < Produto > produtos = new ArrayList <> ();
Lista privada < ItemPedido > itensCarrinho = new ArrayList <> ();
private DatabaseReference firebaseRef;
private String idEmpresa;
private String idUsuarioLogado;
Usuario usuario privado ;
Pedido pedidoRecuperado privado ;
private int qtItensCarrinho;
Duplo privado totalCarrinho;
private int metodoPagamento;
@Sobrepor
protected void onCreate ( Bundle savedInstanceState ) {
super . onCreate (savedInstanceState);
setContentView ( R . disposição . activity_cartapio);
// Configurações iniciais
inicializarComponentes ();
firebaseRef = ConfiruFirebase . getFirebase ();
idUsuarioLogado = UsuarioFirebase . getIdUsuario ();
// Recuperar empresa recicl
Bundle bundle = getIntent () . getExtras ();
if (pacote ! = nulo ) {
empresaSelecionada = pacote ( Empresa ) . getSerializable ( " empresas " );
textNomeEmpresaCardapio . setText (empresaSelecionada . getNome ());
idEmpresa = empresaSelecionada . getIdUsuario ();
String url = empresaSelecionada . getUrlImagem ();
Picasso . get () . carregar (url) . em (imageEmpresaCardapio);
}
// Barra de ferramentas de configurações
Toolbar toolbar = findViewById ( R . Id . ToolbarNova);
barra de ferramentas . setTitle ( " Cardápio " );
setSupportActionBar (barra de ferramentas);
getSupportActionBar () . setDisplayHomeAsUpEnabled ( true );
// Configura recyclerview
recyclerProdutosCardapio . setLayoutManager ( novo LinearLayoutManager ( este ));
recyclerProdutosCardapio . setHasFixedSize ( true );
adapterProduto = novo AdapterProduto (produtos, este );
recyclerProdutosCardapio . setAdapter (adapterProduto);
// Configurar evento de clique
recyclerProdutosCardapio . addOnItemTouchListener (
new RecyclerItemClickListener (
isso ,
recyclerProdutosCardapio,
novo RecyclerItemClickListener . OnItemClickListener () {
@Sobrepor
pública vazio onItemClick ( Ver vista , int posição ) {
confirmarQuantidade (posição);
}
@Sobrepor
pública vazio onLongItemClick ( Ver vista , int posição ) {
}
@Sobrepor
public void onItemClick ( AdapterView <?> parent , View view , int position , long id ) {
}
}
)
);
// Recupera produtos para empresa
recuperarProdutos ();
recuperarDadosUsuario ();
}
privado nulo confirmar Quantidade ( final int posicao ) {
AlertDialog . Builder builder = novo AlertDialog . Construtor ( este );
construtor . setTitle ( " Quantidade " );
construtor . setMessage ( " Digite a quantidade " );
definitiva EditText editQuantidade = novo EditText ( este );
editQuantidade . setText ( " 1 " );
construtor . setView (editQuantidade);
construtor . setPositiveButton ( " Confirmar " , new DialogInterface . OnClickListener () {
@Sobrepor
public void onClick ( DialogInterface dialog , int which ) {
String quantidade = editQuantidade . getText () . para sequenciar();
Produto produtoSelecionado = produtos . get (posicao);
ItemPedido itemPedido = novo ItemPedido ();
itemPedido . setIdProduto (produtoSelecionado . getIdProduto ());
itemPedido . setNomeProduto (produtoSelecionado . getNome ());
itemPedido . setPreco (produtoSelecionado . getPreco ());
itemPedido . setQuantidade ( Integer . parseInt (quantidade));
itensCarrinho . adicionar (itemPedido);
if (pedidoRecuperado == null ) {
pedidoRecuperado = novo Pedido (idUsuarioLogado, idEmpresa);
}
pedidoRecuperado . setNome (usuario . getNome ());
pedidoRecuperado . setEndereco (usuario . getEndereco ());
pedidoRecuperado . setTelefoneUsuario (usuario . getTelefoneUsuario ());
pedidoRecuperado . setItens (itensCarrinho);
pedidoRecuperado . salvar ();
}
});
construtor . setNegativeButton ( " Cancelar " , new DialogInterface . OnClickListener () {
@Sobrepor
public void onClick ( DialogInterface dialog , int which ) {
}
});
AlertDialog dialog = builder . crio();
diálogo . mostrar();
}
private void recuperarDadosUsuario () {
diálogo = novo SpotsDialog . Construtor ()
.setContext ( este )
.setMessage ( " Carregando dados " )
.setCancelable ( false )
.Construir();
diálogo . mostrar();
DatabaseReference usuariosRef = firebaseRef
.child ( " usuarios " )
.child (idUsuarioLogado);
usuariosRef . addListenerForSingleValueEvent ( new ValueEventListener () {
@Sobrepor
public void onDataChange ( DataSnapshot dataSnapshot ) {
if (dataSnapshot . getValue () ! = null ) {
usuario = dataSnapshot . getValue ( classe Usuario . );
}
recuperPedido ();
}
@Sobrepor
public void onCancelled ( DatabaseError databaseError ) {
}
});
}
private void recuperPedido () {
DatabaseReference pedidoRef = firebaseRef
.child ( " pedidos_usuario " )
.child (idEmpresa)
.child (idUsuarioLogado);
pedidoRef . addValueEventListener ( new ValueEventListener () {
@Sobrepor
public void onDataChange ( DataSnapshot dataSnapshot ) {
// teste se tem pedido
qtItensCarrinho = 0 ;
totalCarrinho = 0,0 ;
itensCarrinho = new ArrayList <> ();
if (dataSnapshot . getValue () ! = null ) {
pedidoRecuperado = dataSnapshot . getValue ( Pedido . classe);
itensCarrinho = pedidoRecuperado . getItens ();
para ( ItemPedido itens : itensCarrinho) {
int qtde = itens . getQuantidade ();
Preco duplo = itens . getPreco ();
totalCarrinho + = (qtde * preco);
qtItensCarrinho + = qtde;
}
}
DecimalFormat df = new DecimalFormat ( " 0,00 " );
textCarrinhoQuantidade . setText ( " qtd: " + String . valueOf (qtItensCarrinho));
textCarrinhoTotal . setText (formato df . (totalCarrinho));
diálogo . dispensar();
}
@Sobrepor
public void onCancelled ( DatabaseError databaseError ) {
}
});
}
private void recuperarProdutos () {
DatabaseReference produtosRef = firebaseRef
.child ( " produtos " )
.child (idEmpresa);
produtosRef . addValueEventListener ( new ValueEventListener () {
@Sobrepor
public void onDataChange ( DataSnapshot dataSnapshot ) {
produtos . Claro();
para ( DataSnapshot ds : dataSnapshot . getChildren ()) {
produtos . add (ds . getValue ( Produto . class));
}
adapterProduto . notificarDataSetChanged ();
}
@Sobrepor
public void onCancelled ( DatabaseError databaseError ) {
}
});
}
@Sobrepor
public boolean onCreateOptionsMenu ( Menu menu ) {
MenuInflater inflater = getMenuInflater ();
inflador . inflar ( R . do menu . menu_lista_de_pedidos, menu);
retorno super . onCreateOptionsMenu (menu);
}
@Sobrepor
public boolean onOptionsItemSelected ( MenuItem item ) {
switch (item . getItemId ()) {
caso R . id . menuPedido :
confirmarPedido ();
pausa ;
}
retorno super . onOptionsItemSelected (item);
}
void privado confirmarPedido () {
AlertDialog . Builder builder = novo AlertDialog . Construtor ( este );
construtor . setTitle ( " Selecione um método de pagamento " );
CharSequence [] itens = new CharSequence [] {
" Dinheiro " , " Máquina cartão "
};
construtor . setSingleChoiceItems (itens, 0 , new DialogInterface . OnClickListener () {
@Sobrepor
public void onClick ( DialogInterface dialog , int which ) {
metodoPagamento = qual;
}
});
definitiva EditText editObservacao = novo EditText ( este );
editObservacao . setHint ( " Digite uma observação " );
construtor . setView (editObservacao);
construtor . setPositiveButton ( " Confirmar " , new DialogInterface . OnClickListener () {
@Sobrepor
public void onClick ( DialogInterface dialog , int which ) {
String observacao = editObservacao . getText () . para sequenciar();
pedidoRecuperado . setMetodoPagamento (metodoPagamento);
pedidoRecuperado . setObservacao (observacao);
pedidoRecuperado . setStatus ( " confirmado " );
pedidoRecuperado . confirmar ();
pedidoRecuperado . removedor();
pedidoRecuperado = null ;
}
});
construtor . setNegativeButton ( " Cancelar " , new DialogInterface . OnClickListener () {
@Sobrepor
public void onClick ( DialogInterface dialog , int which ) {
}
});
AlertDialog dialog = builder . crio();
diálogo . mostrar();
}
private void inicializarComponentes () {
recyclerProdutosCardapio = findViewById ( R . ID . recyclerProdutoCardapio);
imageEmpresaCardapio = findViewById ( R . ID . imageEmpresaCardapio);
textNomeEmpresaCardapio = findViewById ( R . ID . textNomeEmpresaCardapio);
textCarrinhoQuantidade = findViewById ( R . ID . textCarrinhoQuantidade);
textCarrinhoTotal = findViewById ( R . ID . textCarrinhoTotal);
}
}
CLASSE HOME
public class HomeActivity extends AppCompatActivity {
private FirebaseAuth autenticacao;
private MaterialSearchView searchView;
private RecyclerView recyclerEmpresa;
private List<Empresa> empresas = new ArrayList<>();
private DatabaseReference firebaRef;
private AdapterEmpresa adapterEmpresa;
String categoria;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
inicializarComponentes();
firebaRef = ConfiruFirebase.getFirebase();
autenticacao = ConfiruFirebase.getFirebaseAutenticacao();
/* Recupera a categoria passada na Intent */
categoria = getIntent().getStringExtra("Categoria");
//Configurações Toolbar
Toolbar toolbar = findViewById(R.id.toolbarNova);
toolbar.setTitle("Listas de Empresas");
setSupportActionBar(toolbar);
//configura recycle
recyclerEmpresa.setLayoutManager(new LinearLayoutManager(this));
recyclerEmpresa.setHasFixedSize(true);
// adapterEmpresa = new AdapterEmpresa(empresas);
// recyclerEmpresa.setAdapter(adapterEmpresa);
//Recupera produtos para empresa
recuparEmpresas();
searchView.setHint("Pesquisar Empresas");
searchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
pesquisarEmpresas(newText);
return true;
}
});
recyclerEmpresa.addOnItemTouchListener(
new RecyclerItemClickListener(
this,
recyclerEmpresa,
new RecyclerItemClickListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Empresa empresaSelecionada = empresas.get(position);
Intent i = new Intent(HomeActivity.this, CartapioActivity.class);
i.putExtra("empresas", empresaSelecionada);
startActivity(i);
}
@Override
public void onLongItemClick(View view, int position) {
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
}
)
);
}
private void pesquisarEmpresas(String pesquisa) {
DatabaseReference empresasRef = firebaRef
.child("empresas");
Query query = empresasRef.orderByChild("nome")
.startAt(pesquisa)
.endAt(pesquisa + "\uf8ff");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
empresas.clear();
for (DataSnapshot ds : dataSnapshot.getChildren()) {
Empresa e = ds.getValue(Empresa.class);
/* Filtra a empresa por categoria */
if (e.getCategoria().equals(categoria)) {
empresas.add(e);
}
}
adapterEmpresa = new AdapterEmpresa(empresas);
recyclerEmpresa.setAdapter(adapterEmpresa);
adapterEmpresa.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
private void recuparEmpresas() {
DatabaseReference empresaRef = firebaRef
.child("empresas");
empresaRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
empresas.clear();
for (DataSnapshot ds : dataSnapshot.getChildren()) {
Empresa e = ds.getValue(Empresa.class);
/* Filtra a empresa por categoria */
if (e.getCategoria().equals(categoria)) {
empresas.add(e);
}
}
adapterEmpresa = new AdapterEmpresa(empresas);
recyclerEmpresa.setAdapter(adapterEmpresa);
adapterEmpresa.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_usuario, menu);
MenuItem item = menu.findItem(R.id.menuPesquisa);
searchView.setMenuItem(item);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menuSair:
deslogarUsuario();
break;
case R.id.menuConfigurações:
abrirConfiguracoes();
break;
}
return super.onOptionsItemSelected(item);
}
private void inicializarComponentes() {
searchView = findViewById(R.id.materialS);
recyclerEmpresa = findViewById(R.id.recyclerEmpresa);
}
private void deslogarUsuario() {
try {
autenticacao.signOut();
finish();
} catch (Exception e) {
e.printStackTrace();
}
}
private void abrirConfiguracoes() {
startActivity(new Intent(HomeActivity.this, ConfiguracoesUsuariosActivity.class));
}