Guest User

Untitled

a guest
Aug 10th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.10 KB | None | 0 0
  1. /**
  2. * Created by Lucas on 01/10/2017.
  3. */
  4.  
  5. public class ProdutosFragment extends Fragment {
  6.  
  7. private FirebaseDatabase firebaseDatabase;
  8. private DatabaseReference databaseReference;
  9. Button Filtrar;
  10. List<String> areas = new ArrayList<String>();
  11. RecyclerView recyclerView;
  12. RecyclerAdapter adapter;
  13. int i=0;
  14. RecyclerView.LayoutManager layoutManager;
  15. ArrayList<Produtos>arrayList=new ArrayList<>();
  16. SearchView searchView;
  17. ProgressDialog progressDialogFiltrar;
  18. int conta=0;
  19. @Nullable
  20. @Override
  21.  
  22.  
  23.  
  24. public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  25. View view = inflater.inflate(R.layout.produtosfragment,container,false);
  26.  
  27.  
  28. String NomeSupermercado = Singleton.getInstance(getApplicationContext()).getNomeSupermercado();
  29. FirebaseProdutos firebaseProdutos= new FirebaseProdutos();
  30. FirebaseAutenticarSupermercado FirebaseAutenticarSupermercado = new FirebaseAutenticarSupermercado();
  31. FirebaseAutenticarSupermercado.Autenticar();
  32. firebaseDatabase = FirebaseDatabase.getInstance();
  33. databaseReference = firebaseDatabase.getReference().child("Estabelecimentos/Estabelecimentos/Supermercados/"+NomeSupermercado+"/produtos/");
  34. Filtrar = (Button)view.findViewById(R.id.btfiltrar);
  35. recyclerView=(RecyclerView)view.findViewById(R.id.recyclerview_id);
  36. layoutManager=new LinearLayoutManager(getApplicationContext());
  37. recyclerView.setLayoutManager(layoutManager);
  38. recyclerView.setHasFixedSize(true);
  39. searchView=(SearchView)view.findViewById(R.id.search);
  40. searchView.setSelected(false);
  41. searchView.clearFocus();
  42. searchView.setQueryHint("Cerveja, Morango, Aymoré, Bebidas etc");
  43. getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
  44. closeKeyboard();
  45.  
  46. searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
  47. @Override
  48. public boolean onQueryTextSubmit(String newText) {
  49. // filter listview
  50. return true;
  51. }
  52.  
  53. @Override
  54. public boolean onQueryTextChange(String newText) {
  55.  
  56.  
  57.  
  58. newText= newText.toLowerCase();
  59. ArrayList<Produtos> newList= new ArrayList<>();
  60. for(Produtos produtos: arrayList){
  61. String name=produtos.getProduto().toLowerCase();
  62. String marca=produtos.getMarca().toLowerCase();
  63. // String caracteristica=produtos.getCaracteristica().toLowerCase();
  64. String categoria=produtos.getCategoria().toLowerCase();
  65. if(name.contains(newText)||marca.contains(newText)||categoria.contains(newText)){
  66. newList.add(produtos);
  67. }
  68. }
  69. adapter.setFilter(newList);
  70. return true;
  71. }
  72. });
  73.  
  74.  
  75. if(adapter==null||arrayList==null||arrayList.size()<1||recyclerView==null){
  76. ProgressDialog prog= new ProgressDialog(getActivity());//Assuming that you are using fragments.
  77. prog.setTitle("Aguarde");
  78. prog.setMessage("Carregando os produtos");
  79. prog.setCancelable(false);
  80. prog.setIndeterminate(true);
  81. prog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  82. prog.show();
  83. databaseReference.orderByChild("produto").addListenerForSingleValueEvent(new ValueEventListener() {
  84.  
  85. @Override
  86. public void onDataChange(DataSnapshot dataSnapshot) {
  87. arrayList.clear();
  88. adapter=null;
  89. recyclerView.setAdapter(null);
  90. areas.add(" "+"Categoria");
  91. for (DataSnapshot objSnapshot : dataSnapshot.getChildren()) {
  92. Produtos Listar= new Produtos();
  93. Listar = objSnapshot.getValue(Produtos.class);
  94. arrayList.add(Listar);
  95. areas.add(Listar.getCategoria());
  96. }
  97. adapter=new RecyclerAdapter(getActivity(),arrayList);
  98. recyclerView.setAdapter(adapter);
  99. prog.dismiss();
  100. }
  101.  
  102. @Override
  103. public void onCancelled(DatabaseError databaseError) {
  104.  
  105. }
  106. });
  107. }
  108.  
  109.  
  110. Filtrar.setOnClickListener(new View.OnClickListener() {
  111. @Override
  112. public void onClick(View v) {
  113.  
  114. AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
  115. LayoutInflater inflater = getLayoutInflater();
  116. searchView.setQuery("",false);
  117. closeKeyboard();
  118. //Cria a view a ser utilizada no dialog
  119. ViewGroup view = (ViewGroup) inflater.inflate(R.layout.filtro, null);
  120.  
  121. //Obtém uma referencia ao hinner
  122. final Spinner SpinnerCategoria = (Spinner) view.findViewById(R.id.spinnercategoria);
  123. //final Spinner SpinnerEspecificos = (Spinner) view.findViewById(R.id.spinnerprodutosespecificos);
  124.  
  125. Button Limpar = (Button)view.findViewById(R.id.btlimparfiltro);
  126. Button Filtro = (Button)view.findViewById(R.id.btfiltrarproduto);
  127.  
  128. builder.setView(view);
  129.  
  130. final AlertDialog builderx=builder.show();
  131. Filtro.setOnClickListener(new View.OnClickListener() {
  132. @Override
  133. public void onClick(View v) {
  134. String Categoria = SpinnerCategoria.getSelectedItem().toString();
  135. Log.d("Categoria","Categoria Escolhida"+Categoria);
  136. if(Categoria.equals(" "+"Categoria")){
  137. builderx.dismiss();
  138. }
  139. else {
  140. ProgressDialog proga= new ProgressDialog(getActivity());//Assuming that you are using fragments.
  141. proga.setTitle("Aguarde");
  142. proga.setMessage("Estamos filtrando os produtos para você :)");
  143. proga.setCancelable(false);
  144. proga.setIndeterminate(true);
  145. proga.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  146. proga.show();
  147. databaseReference.orderByChild("categoria").equalTo(Categoria).addListenerForSingleValueEvent(new ValueEventListener() {
  148.  
  149. @Override
  150. public void onDataChange(DataSnapshot dataSnapshot) {
  151. arrayList.clear();
  152. adapter=null;
  153. recyclerView.setAdapter(null);
  154.  
  155. for (DataSnapshot objSnapshot : dataSnapshot.getChildren()) {
  156. Produtos Listar;
  157. Listar = objSnapshot.getValue(Produtos.class);
  158. arrayList.add(Listar);
  159. i++;
  160. Log.d("Quantidade de produtos", "Quantidade de produtos"+i);
  161. }
  162. adapter=new RecyclerAdapter(getActivity(),arrayList);
  163. recyclerView.setAdapter(adapter);
  164. proga.dismiss();
  165. }
  166.  
  167. @Override
  168. public void onCancelled(DatabaseError databaseError) {
  169.  
  170. }
  171. });
  172.  
  173. builderx.dismiss();
  174. }
  175.  
  176.  
  177. }
  178. });
  179. Limpar.setOnClickListener(new View.OnClickListener() {
  180. @Override
  181. public void onClick(View v) {
  182. Limpar();
  183. }
  184. });
  185. HashSet<String> hashSet = new HashSet<String>();
  186. hashSet.addAll(areas);
  187. areas.clear();
  188. areas.addAll(hashSet);
  189. //Alphabetic sorting.
  190. Collections.sort(areas);
  191. final ArrayAdapter<String> categoriaAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, areas);
  192. categoriaAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  193. SpinnerCategoria.setAdapter(categoriaAdapter);
  194.  
  195. }
  196. });
  197. return view;
  198. }
  199.  
  200.  
  201. @Override
  202. public void onResume() {
  203. super.onResume();
  204. Log.e("Ciclo", "Activity: Metodo onResume() chamado");
  205. }
  206.  
  207. @Override
  208. public void onPause() {
  209. super.onPause();
  210. Log.e("Ciclo", "Activity: Metodo onPause() chamado");
  211. }
  212.  
  213. @Override
  214. public void onSaveInstanceState(Bundle outState) {
  215. super.onSaveInstanceState(outState);
  216. Log.e("Ciclo", "Activity: Metodo onSavedInstanceState() chamado");
  217. }
  218.  
  219. @Override
  220. public void onStop() {
  221. super.onStop();
  222. Log.e("Ciclo", "Activity: Metodo onStop() chamado");
  223. }
  224.  
  225. @Override
  226. public void onDestroy() {
  227. super.onDestroy();
  228. Log.e("Ciclo", "Activity: Metodo onDestroy() chamado");
  229. }
  230.  
  231. private void closeKeyboard() {
  232. View view = getActivity().getCurrentFocus();
  233. if(view!= null){
  234. InputMethodManager imm=(InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
  235. imm.hideSoftInputFromWindow(view.getWindowToken(),0);
  236. }
  237.  
  238. }
  239.  
  240. private void Limpar() {
  241. Intent i = new Intent(getApplicationContext(), IndexActivity.class);
  242.  
  243. startActivity(i);
  244. }
  245.  
  246.  
  247. }
Add Comment
Please, Sign In to add comment