Advertisement
urksiful

Top5 on Firebase Android

Jun 20th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.29 KB | None | 0 0
  1.  private void setMoreViewed(String itemViewed, String user) {
  2.         refViewed = data.getReference("/cliente/" + user + "/top5");
  3.         Map<Integer, String> top5_map = new HashMap<>();
  4.         refViewed.addListenerForSingleValueEvent(new ValueEventListener() {
  5.             @Override
  6.             public void onDataChange(DataSnapshot ds) {
  7.                
  8.                 for (DataSnapshot tmp : ds.getChildren()) {
  9.                     top5_map.put(Integer.parseInt(tmp.getKey()), tmp.getValue(String.class));
  10.                 }        
  11.                 switch (top5_map.size()) {
  12.                     case 0:
  13.                         top5_map.put(1, itemViewed);
  14.                         break;
  15.                     case 1:
  16.                         if (!top5_map.containsValue(itemViewed)) {
  17.                             top5_map.put(2, top5_map.get(1));
  18.                             top5_map.replace(1, itemViewed);
  19.                         }
  20.                         break;
  21.                     case 2:
  22.                         if (!top5_map.containsValue(itemViewed)) {
  23.                             top5_map.put(3, top5_map.get(2));
  24.                             top5_map.replace(2, top5_map.get(1));
  25.                             top5_map.replace(1, itemViewed);
  26.                         }
  27.                         break;
  28.                     case 3:
  29.                         if (!top5_map.containsValue(itemViewed)) {
  30.                             top5_map.put(4, top5_map.get(3));
  31.                             top5_map.replace(3, top5_map.get(2));
  32.                             top5_map.replace(2, top5_map.get(1));
  33.                             top5_map.replace(1, itemViewed);
  34.                         } else {
  35.                             top5_map.replace(1, itemViewed);
  36.                         }
  37.                         break;
  38.                     case 4:
  39.                         if (!top5_map.containsValue(itemViewed)) {
  40.                             top5_map.put(5, top5_map.get(4));
  41.                             top5_map.replace(4, top5_map.get(3));
  42.                             top5_map.replace(3, top5_map.get(2));
  43.                             top5_map.replace(2, top5_map.get(1));
  44.                             top5_map.replace(1, itemViewed);
  45.                         } else {
  46.                             top5_map.replace(1, itemViewed);
  47.                         }
  48.  
  49.                         break;
  50.                     case 5:
  51.                         if (!top5_map.containsValue(itemViewed)) {
  52.                             top5_map.replace(5, top5_map.get(4));
  53.                             top5_map.replace(4, top5_map.get(3));
  54.                             top5_map.replace(3, top5_map.get(2));
  55.                             top5_map.replace(2, top5_map.get(1));
  56.                             top5_map.replace(1, itemViewed);
  57.                         } else {
  58.                             top5_map.replace(1, itemViewed);
  59.                         }
  60.                         break;
  61.                 }
  62.                 for (Map.Entry<Integer, String> entry : top5_map.entrySet()) {
  63.                     refViewed.child(String.valueOf(entry.getKey())).setValue(entry.getValue());
  64.                 }
  65.             }
  66.             @Override
  67.             public void onCancelled(DatabaseError de) {
  68.            
  69.             }
  70.         });
  71.  
  72.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement