@sanke46

Как реализовать ProgressBar с FireBase загрузкой?

Пробую понять куда вставлять setVisibility(), но он просто не работает что делать ?? Если есть более изящное и правильное решение готов полностью переписать код, но сделать это правильно

package com.sanke46.android.e_commerce.fireBase;

import android.util.Log;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ProgressBar;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.sanke46.android.e_commerce.adapter.RecyclerViewAdapter;
import com.sanke46.android.e_commerce.adapter.SalesRecyclerViewAdapter;
import com.sanke46.android.e_commerce.model.Item;

import java.util.ArrayList;

public class FirebaseHandler {

    private static final String TAG = FirebaseHandler.class.getSimpleName();
    private Item item;
    private FirebaseDatabase database = FirebaseDatabase.getInstance();
    private DatabaseReference myRef = database.getReference("product");

    public ArrayList<Item> getAllSalesItem(String titleProduct,
                                           final ArrayList<Item> arrayOfItemProduct,
                                           final SalesRecyclerViewAdapter adapter,
                                           final ProgressBar progressBar,
                                           final LinearLayout mContentLayout){
        arrayOfItemProduct.clear();
        myRef.child(titleProduct).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                progressBar.setVisibility(View.VISIBLE);
                mContentLayout.setVisibility(LinearLayout.GONE);

                for (final DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    item = snapshot.getValue(Item.class);
                    if(item.isSales()) {
                        arrayOfItemProduct.add(item);
                    }
                }
                adapter.notifyDataSetChanged();

                progressBar.setVisibility(View.GONE);
                mContentLayout.setVisibility(LinearLayout.VISIBLE);
            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                Log.w(TAG, "Failed to read value.", error.toException());
            }
        });
        return arrayOfItemProduct;
    }

    public ArrayList<Item> getAllItem(String titleProduct, final ArrayList<Item> arrayOfItemProduct, final RecyclerViewAdapter adapter){
        arrayOfItemProduct.clear();
        myRef.child(titleProduct).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (final DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    item = snapshot.getValue(Item.class);
                    if(!item.isSales()) {
                        arrayOfItemProduct.add(item);
                    }
                }
                adapter.notifyDataSetChanged();
            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                Log.w(TAG, "Failed to read value.", error.toException());
            }
        });

        return arrayOfItemProduct;

    }
}
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы