Carrinho de compras em android

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));
    }