Ejemplo n.º 1
0
  public void loadExperiences() {
    final Firebase ref =
        new Firebase("https://sizzling-torch-8367.firebaseio.com/users/" + id + "/experiences");
    ref.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
            experienceViews = new ArrayList<>();
            LinearLayout layout =
                (LinearLayout) findViewById(R.id.EditResumeLinearLayoutExperience);
            layout.removeAllViews();
            for (DataSnapshot experience : dataSnapshot.getChildren()) {
              FirebaseExperience exp =
                  new FirebaseExperience(
                      EditResumeActivity.this,
                      experience.getKey(),
                      experience.child("position").getValue().toString(),
                      experience.child("name").getValue().toString(),
                      experience.child("startDate").getValue().toString(),
                      experience.child("endDate").getValue().toString(),
                      experience.child("city").getValue().toString(),
                      experience.child("state").getValue().toString(),
                      experience.child("info").getValue().toString());
              experienceViews.add(exp);
            }
            for (int i = 0; i < experienceViews.size(); i++) {
              layout.addView(experienceViews.get(i).getLayout(), i);
            }
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {}
        });
  }
Ejemplo n.º 2
0
  public void loadReferences() {
    final Firebase ref =
        new Firebase("https://sizzling-torch-8367.firebaseio.com/users/" + id + "/references");
    ref.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
            referenceViews = new ArrayList<>();
            LinearLayout layout =
                (LinearLayout) findViewById(R.id.EditResumeLinearLayoutReferences);
            layout.removeAllViews();
            for (DataSnapshot reference : dataSnapshot.getChildren()) {
              FirebaseReference ref =
                  new FirebaseReference(
                      EditResumeActivity.this,
                      reference.getKey(),
                      reference.child("name").getValue().toString(),
                      reference.child("phone").getValue().toString(),
                      reference.child("email").getValue().toString(),
                      reference.child("relation").getValue().toString());
              referenceViews.add(ref);
            }
            for (int i = 0; i < referenceViews.size(); i++) {
              layout.addView(referenceViews.get(i).getLayout(), i);
            }
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {}
        });
  }
Ejemplo n.º 3
0
  List<DownActivity> getActivities(int userID) {
    final List<DownActivity> foundActivities = new ArrayList<DownActivity>();
    Activityref.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot snapshot) {
            GenericTypeIndicator<List<DownActivity>> t =
                new GenericTypeIndicator<List<DownActivity>>() {};
            List<DownActivity> messages = snapshot.getValue(t);
            if (messages == null) {
              System.out.println("No activities");
            } else {
              System.out.println("The first message is: " + messages.get(0));
            }
            foundActivities.addAll(messages);
          }

          @Override
          public void onCancelled(FirebaseError error) {
            System.err.println("Listener was cancelled");
          }
        });

    return foundActivities;
  }
Ejemplo n.º 4
0
  // Must make sure 'spot' and 'firebase' correspond to the same spot
  public static void addListener(
      final String spot,
      final String task,
      final Firebase firebase,
      final OnSpotUpdate listenerAction,
      final Class clazz) {
    ValueEventListener listener =
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot snapshot) {
            listenerAction.onUpdate(snapshot, spot, task, clazz);
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {
            System.out.println("Failed to create listener: " + firebaseError.getMessage());
          }
        };
    firebase.addValueEventListener(listener);

    ArrayList<SpotListener> spotListenerList = listeners.get(spot);
    if (spotListenerList == null) {
      listeners.put(spot, new ArrayList<SpotListener>());
      spotListenerList = listeners.get(spot);
    }
    spotListenerList.add(new SpotListener(firebase, listener, spot, task));

    print();
  }
  private void addValues() {
    url.addValueEventListener(
        new ValueEventListener() {

          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {

            myTask.clear();
            for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
              Task task = dataSnapshot1.getValue(Task.class);
              myTask.add(task);
            }
            if (addValue == 0) {
              adapter = new TaskAdaptorIn(myTask, getActivity());
              taskList.setAdapter(adapter);
              addValue++;
              clickList();
            }
            refresh();
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {
            Toast.makeText(getActivity(), "Error:" + firebaseError.getMessage(), Toast.LENGTH_LONG)
                .show();
          }
        });
  }
Ejemplo n.º 6
0
  public void register(View view) {
    EditText nameText = (EditText) findViewById(R.id.name);
    name = nameText.getText().toString().toLowerCase();
    EditText passText = (EditText) findViewById(R.id.pass);
    password = passText.getText().toString().toLowerCase();

    usersFirebase.addValueEventListener(
        new ValueEventListener() {

          @Override
          public void onDataChange(DataSnapshot snapshot) {
            userExists = false;
            for (DataSnapshot postSnapshot : snapshot.getChildren()) {
              User user = postSnapshot.getValue(User.class);
              if (user.getName().equals(name)) {
                userExists = true;
                break;
              }
            }
            // remove eventlistener to ignore redundant callbacks
            usersFirebase.removeEventListener(this);
            if (userExists) {
              Log.i("PvCProject", "User Exists");
            } else {
              User user = new User(name, password, null, null);
              usersFirebase.push().setValue(user);
              Log.i("PvCProject", "User Created");
            }
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {}
        });
  }
Ejemplo n.º 7
0
  public void loadActivities() {
    Firebase ref =
        new Firebase("https://sizzling-torch-8367.firebaseio.com/users/" + id + "/activities");

    ref.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
            activityViews = new ArrayList<>();
            LinearLayout layout =
                (LinearLayout) findViewById(R.id.EditResumeLinearLayoutActivities);
            layout.removeAllViews();
            for (DataSnapshot activity : dataSnapshot.getChildren()) {
              TextView textView = new TextView(EditResumeActivity.this);
              textView.setText(activity.getValue().toString());
              activityViews.add(new FirebaseString(activity.getKey(), textView));
            }
            for (int i = 0; i < activityViews.size(); i++) {
              layout.addView(activityViews.get(i).getTextview(), i);
            }
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {}
        });
  }
  @Override
  public void onBindViewHolder(final CashierAdapter.ViewHolder holder, final int position) {
    final KitchenOpen item = getItem(position);
    holder.vTextBillNo.setText(item.getOrderid());
    mOrderId = item.getOrderid();

    // float mServiceTax = item.getTotalamount() * 13 / 100;
    // mTotalAmount = item.getTotalamount() + mServiceTax;

    holder.vTextTotalAmount.setText("TOTAL AMOUNT : " + item.getTotalamount() + "");
    holder.vTextTableNo.setText("" + item.getTableid());

    // TODO FIX SOME LATE BUG HERE
    holder.vCashierCard.setOnTouchListener(
        new View.OnTouchListener() {
          @Override
          public boolean onTouch(View v, MotionEvent event) {
            if (cashierClickListner != null) {
              mOrderId = item.getOrderid();
              cashierClickListner.itemClicked(
                  v, mOrderId, item.getSno(), item.getTableid(), item.getTotalamount());
              return true;
            } else {
              return false;
            }
          }
        });
    initFirebase(mOrderId);

    // RECYCLER VIEW
    mMyAdapter = new CashierItemAdapter(mQuery, Order.class, mAdapterItems, mAdapterKeys);
    LinearLayoutManager linearLayout = new LinearLayoutManager(context);
    linearLayout.setOrientation(LinearLayoutManager.VERTICAL);
    holder.recyclerView.setLayoutManager(linearLayout);
    holder.recyclerView.setLayoutManager(new LinearLayoutManager(context));
    holder.recyclerView.setAdapter(mMyAdapter);
    holder.recyclerView.setEnabled(false);

    String mActiveLink =
        context.getResources().getString(R.string.FireBase_Delivery_URL) + "/" + mOrderId;
    final Firebase mRef = new Firebase(mActiveLink);
    mRef.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
            boolean vExist = dataSnapshot.exists();
            if (vExist) {
              Delivery post = dataSnapshot.getValue(Delivery.class);
              holder.vTextTableNo.setText(
                  "" + String.format("%1$.2f", post.getMobileno()).split("\\.")[0]);
            }
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {
            System.out.println("The read failed: " + firebaseError.getMessage());
          }
        });
  }
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    textView = (TextView) findViewById(R.id.result);
    addBtn = (Button) findViewById(R.id.addBtn);
    addBtn.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View view) {
            if (firebase == null) return;

            Calendar calendar = Calendar.getInstance();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss:SSS");
            String value = simpleDateFormat.format(calendar.getTime());
            HashMap<String, Object> map = new HashMap<String, Object>();
            map.put("data", value);
            map.put("time", ServerValue.TIMESTAMP);
            firebase.child("newRecords").updateChildren(map);
            Log.d(TAG, "OnClick : " + value);
          }
        });

    firebase = new Firebase(FIREBASE_ROOT);

    firebase.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.getValue() == null) return;
            result = dataSnapshot.getValue().toString();
            textView.setText(result);
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {
            Log.e(TAG, firebaseError.getDetails());
          }
        });
    firebase
        .child("newRecords")
        .addValueEventListener(
            new ValueEventListener() {
              @Override
              public void onDataChange(DataSnapshot dataSnapshot) {

                Log.d(TAG, "newRecords onDataChange: " + dataSnapshot.toString());
              }

              @Override
              public void onCancelled(FirebaseError firebaseError) {}
            });
  }
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_profile_view);
    Toolbar toolBar = (Toolbar) findViewById(R.id.toolbar2);
    setSupportActionBar(toolBar);
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    Firebase.setAndroidContext(this);
    toolBar.setNavigationOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            onBackPressed();
          }
        });

    final SharedPreferences profile = this.getSharedPreferences("Login", 0);
    userName = profile.getString("mobile", null);
    Log.d("dummy", userName);

    Firebase ref = new Firebase("https://bloodmanagement.firebaseio.com/Users/" + userName);
    ref.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
            firstName = dataSnapshot.child("first_name").getValue().toString();
            lastName = dataSnapshot.child("last_name").getValue().toString();
            password = dataSnapshot.child("password").getValue().toString();
            mobile = dataSnapshot.child("mobile").getValue().toString();
            bloodGroup = dataSnapshot.child("blood_group").getValue().toString();

            profile_textview_first_name = (TextView) findViewById(R.id.profile_view_first_name);
            profile_textview_last_name = (TextView) findViewById(R.id.profile_view_last_name);
            profile_textview_email = (TextView) findViewById(R.id.profile_view_email);
            profile_textview_password = (TextView) findViewById(R.id.profile_view_password);
            profile_textview_mobile = (TextView) findViewById(R.id.profile_view_mobile);
            profile_textview_blood_group = (TextView) findViewById(R.id.profile_view_blood_group);

            profile_textview_first_name.setText(firstName + " " + lastName);
            //                profile_textview_last_name.setText(lastName);
            profile_textview_email.setText(userName);
            profile_textview_password.setText(password);
            profile_textview_mobile.setText(mobile);
            profile_textview_blood_group.setText(bloodGroup);
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {}
        });
  }
  public boolean validateUser(final String User) {

    RegistrationRef.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.hasChild(User)) {
              flag = true;
            }
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {}
        });
    return flag;
  }
Ejemplo n.º 12
0
  @Override
  public View getView(int position, View view, ViewGroup parent) {
    LayoutInflater inflater = context.getLayoutInflater();
    View rowView = inflater.inflate(R.layout.list_single, null, true);
    txtname = (TextView) rowView.findViewById(R.id.txt1);
    txtrelation = (TextView) rowView.findViewById(R.id.txt2);
    imageView = (ImageView) rowView.findViewById(R.id.img);

    txtname.setText(name[position]);
    txtrelation.setText(relation[position]);
    imageView.setImageResource(imageId[position]);

    myFirebaseRef.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
            txtname.setText(
                String.valueOf(
                    dataSnapshot
                        .child("Relations")
                        .child(String.valueOf(pos))
                        .child("Name")
                        .getValue()));
            txtrelation.setText(
                String.valueOf(
                    dataSnapshot
                        .child("Relations")
                        .child(String.valueOf(pos))
                        .child("Relation")
                        .getValue()));
            Picasso.with(getContext())
                .load(
                    String.valueOf(
                        dataSnapshot
                            .child("Relations")
                            .child(String.valueOf(pos))
                            .child("Image")
                            .getValue()))
                .into(imageView);
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {}
        });
    return rowView;
  }
Ejemplo n.º 13
0
  public void loadHeader() {
    Firebase ref =
        new Firebase("https://sizzling-torch-8367.firebaseio.com/users/" + id + "/header");
    ref.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
            LinearLayout layout = (LinearLayout) findViewById(R.id.EditResumeLinearLayoutHeader);
            layout.removeAllViews();

            TextView name = new TextView(EditResumeActivity.this);
            TextView careerTitle = new TextView(EditResumeActivity.this);
            TextView email = new TextView(EditResumeActivity.this);
            TextView phone = new TextView(EditResumeActivity.this);
            TextView address = new TextView(EditResumeActivity.this);
            TextView location = new TextView(EditResumeActivity.this);

            TextView[] arr = {name, careerTitle, email, phone, address, location};

            name.setText(
                "Name: "
                    + dataSnapshot.child("firstName").getValue().toString()
                    + " "
                    + dataSnapshot.child("lastName").getValue().toString());
            careerTitle.setText(
                "Profession: " + dataSnapshot.child("careerTitle").getValue().toString());
            email.setText("Email: " + dataSnapshot.child("email").getValue().toString());
            phone.setText("Phone: " + dataSnapshot.child("phone").getValue().toString());
            address.setText("Address: " + dataSnapshot.child("address").getValue().toString());
            location.setText(
                "         "
                    + dataSnapshot.child("city").getValue().toString()
                    + ", "
                    + dataSnapshot.child("state").getValue().toString()
                    + "  "
                    + dataSnapshot.child("zipCode").getValue().toString());

            for (int i = 0; i < arr.length; i++) {
              layout.addView(arr[i], i);
            }
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {}
        });
  }
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_detalhe);

    Firebase.setAndroidContext(this);

    myFirebaseRef = new Firebase(Constants.FIREBASE_URL);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    if (getIntent().hasExtra("FirebaseID")) {

      FirebaseID = getIntent().getStringExtra("FirebaseID");
      Firebase refContato = myFirebaseRef.child(FirebaseID);

      ValueEventListener refContatoListener =
          refContato.addValueEventListener(
              new ValueEventListener() {

                @Override
                public void onDataChange(DataSnapshot snapshot) {
                  c = snapshot.getValue(Contato.class);

                  if (c != null) {
                    EditText nameText = (EditText) findViewById(R.id.editText1);
                    nameText.setText(c.getNome());

                    EditText foneText = (EditText) findViewById(R.id.editText2);
                    foneText.setText(c.getFone());

                    EditText emailText = (EditText) findViewById(R.id.editText3);
                    emailText.setText(c.getEmail());
                  }
                }

                @Override
                public void onCancelled(FirebaseError firebaseError) {
                  Log.e("LOG", firebaseError.getMessage());
                }
              });
    }
  }
Ejemplo n.º 15
0
  /**
   * Fetch the ids of highest overall rated movies
   *
   * @param fb Firebase reference
   * @param callback called with a List of rotten tomato movie id's
   */
  public static void highestRatedOverall(
      final Firebase fb, final RottenApi.Callback<List<Long>> callback) {
    final String ratingsString = "ratings";
    fb.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot snapshot) {
            Map<Long, List<Float>> all_ratings = new HashMap<>();
            Map<String, Map<String, Object>> users =
                (Map<String, Map<String, Object>>) snapshot.child("users").getValue();

            for (Map<String, Object> user : users.values()) {
              Log.i("dank memes", user.toString());
              if (user.containsKey(ratingsString)) {
                Map<String, String> user_ratings = (Map<String, String>) user.get(ratingsString);
                for (String movie_id : user_ratings.keySet()) {
                  if (!all_ratings.containsKey(movie_id)) {
                    all_ratings.put(Long.parseLong(movie_id), new ArrayList<Float>());
                  }

                  all_ratings
                      .get(Long.parseLong(movie_id))
                      .add(Float.parseFloat(user_ratings.get(movie_id)));
                }
              }
            }

            Map<Long, Float> avg_ratings = get_average_ratings(all_ratings);
            List<Map.Entry<Long, Float>> entry_list = get_entries(avg_ratings);

            List<Long> movie_ids = new ArrayList();
            for (Map.Entry<Long, Float> entry : entry_list) {
              movie_ids.add(entry.getKey());
            }

            fb.removeEventListener(this);
            callback.success(movie_ids);
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {}
        });
  }
Ejemplo n.º 16
0
  private void initializeListener(Context context, AttributeSet attrs) {
    if (context == null) {
      throw new RuntimeException("dynamoId must be specified in an attribute in the xml.");
    }
    mContext = (DynamoContextImpl) Dynamo.getContext();
    mDynamoId = mContext.getDynamoId(context, attrs);
    mRef = mContext.getFirebaseRef().child("text_views").child(mDynamoId);
    mRef.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
            HashMap<String, String> value = null;
            if (dataSnapshot.getValue() != null) {
              value = (HashMap<String, String>) dataSnapshot.getValue();
            }
            if (value != null) {
              String text = value.get("text");
              if (text != null) {
                DynamoTextView.this.setText(text);
              }
              String color = value.get("color");
              if (color != null) {
                ColorDrawable background = new ColorDrawable(Color.parseColor(color));
                DynamoTextView.this.setBackground(background);
              }
              String fontColor = value.get("font_color");
              if (fontColor != null) {
                DynamoTextView.this.setTextColor(Color.parseColor(fontColor));
              }
              String fontSize = value.get("font_size");
              if (fontSize != null) {
                DynamoTextView.this.setTextSize(Float.valueOf(fontSize));
              }
            }
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {
            // NOP
          }
        });
  }
Ejemplo n.º 17
0
  /** Called when the user clicks the Send button */
  public void login(View view) {
    EditText nameText = (EditText) findViewById(R.id.name);
    name = nameText.getText().toString().toLowerCase();
    EditText passText = (EditText) findViewById(R.id.pass);
    password = passText.getText().toString().toLowerCase();

    usersFirebase.addValueEventListener(
        new ValueEventListener() {

          @Override
          public void onDataChange(DataSnapshot snapshot) {
            authenticated = false;
            for (DataSnapshot postSnapshot : snapshot.getChildren()) {
              User user = postSnapshot.getValue(User.class);
              if (user.getPassword().equals(password) && user.getName().equals(name)) {
                authenticated = true;
                dBID = postSnapshot.getKey();
                break;
              }
            }

            // remove eventlistener to ignore redundant callbacks
            usersFirebase.removeEventListener(this);
            if (authenticated) {
              Log.i("PvCProject", "Authentication Successful");
              intent.putExtra(EXTRA_NAME, name);
              intent.putExtra(EXTRA_PASS, password);
              intent.putExtra(EXTRA_DBID, dBID);
              startActivity(intent);

            } else {
              Log.i("PvCProject", "Authentication Failed");
            }
          }

          @Override
          public void onCancelled(FirebaseError error) {}
        });
  }
Ejemplo n.º 18
0
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    setUpMapIfNeeded();
    Firebase myFirebaseRef = new Firebase("https://fortune.firebaseio.com/locales");
    myFirebaseRef.keepSynced(true);
    myFirebaseRef.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
            Log.i("Locales", dataSnapshot.getChildrenCount() + " locales");
            for (DataSnapshot localSnapshot : dataSnapshot.getChildren()) {
              Local local = (Local) localSnapshot.getValue(Local.class);
              local.set_id(localSnapshot.getKey());
              Log.i("Local", local.toString());
              locales.add(local);
              addLocalMap(local);
              mMap.setOnInfoWindowClickListener(
                  new OnInfoWindowClickListener() {
                    @Override
                    public void onInfoWindowClick(Marker marker) {

                      final Local l = mHashMap.get(marker);

                      if (l != null) {
                        AlertDialog.Builder builder = new AlertDialog.Builder(MapsActivity.this);
                        builder.setTitle(l.getTitulo());
                        String disponible = l.getDisponible() ? "Disponible" : "No Disoponible";
                        builder.setMessage(
                            l.getDescripcion()
                                + "\n"
                                + l.getDireccion()
                                + "\nTel:"
                                + l.getTelefono()
                                + "\nPrecio: G."
                                + l.getPrecio()
                                + "\nEstado:"
                                + disponible);

                        AlertDialog dialog = builder.create();
                        dialog.setButton(
                            "LLamar",
                            new DialogInterface.OnClickListener() {
                              @Override
                              public void onClick(DialogInterface dialog, int which) {
                                Crouton.makeText(
                                        MapsActivity.this,
                                        "Llamando al " + l.getTelefono(),
                                        Style.INFO)
                                    .show();
                                Intent i =
                                    new Intent(
                                        android.content.Intent.ACTION_DIAL,
                                        Uri.parse("tel:" + l.getTelefono()));
                                startActivity(i);
                              }
                            });
                        dialog.setButton2(
                            "Ver Fotos",
                            new DialogInterface.OnClickListener() {
                              @Override
                              public void onClick(DialogInterface dialog, int which) {
                                Crouton.makeText(MapsActivity.this, "Ver fotos", Style.CONFIRM)
                                    .show();

                                Intent i =
                                    new Intent(
                                        MapsActivity.this.getApplicationContext(),
                                        FotosActivity.class);
                                i.putExtra("id", l.get_id());
                                i.putExtra("titulo", l.getTitulo());
                                i.putExtra("detalle", l.getDescripcion());
                                startActivity(i);
                              }
                            });
                        dialog.show();
                      }
                    }
                  });
              mMap.setOnMarkerClickListener(
                  new GoogleMap.OnMarkerClickListener() {
                    @Override
                    public boolean onMarkerClick(Marker marker) {

                      Local l = mHashMap.get(marker);
                      if (l != null)
                        Crouton.makeText(MapsActivity.this, l.getDescripcion(), Style.INFO).show();

                      return false;
                    }
                  });
            }
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {
            Log.e("Locales", firebaseError.getMessage());
          }
        });
  }
  /**
   * ******************************************************************************************
   * Function name: Description: Parameters: Returns:
   * ****************************************************************************************
   */
  protected void ListOnCreate(final Bundle savedInstanceState, final boolean grocery) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_simple_list_details);

    /* Get the push ID from the extra passed by ShoppingListFragment */
    Intent intent = this.getIntent();
    mListId = intent.getStringExtra(Constants.KEY_LIST_ID);
    if (mListId == null) {
      /* No point in continuing without a valid ID. */
      finish();
      return;
    }
    mbGrocery = grocery;

    /** Create Firebase references */
    Firebase listItemsRef;
    if (mbGrocery) {
      mSimpleListRef = new Firebase(Constants.FIREBASE_URL_GROCERY_LISTS).child(mListId);
      listItemsRef = new Firebase(Constants.FIREBASE_URL_GROCERY_LIST_ITEMS).child(mListId);
    } else {
      mSimpleListRef = new Firebase(Constants.FIREBASE_URL_KITCHEN_INVENTORY).child(mListId);
      listItemsRef = new Firebase(Constants.FIREBASE_URL_KITCHEN_INVENTORY_ITEMS).child(mListId);
    }

    /** Link layout elements from XML and setup the toolbar? */
    initializeScreen();

    /** Setup the adapter */
    mSimpleListItemAdapter =
        new SimpleListItemAdapter(
            this,
            SimpleListItem.class,
            R.layout.single_active_list_item,
            listItemsRef,
            mListId,
            mEncodedEmail,
            mbGrocery);
    /* Create ActiveListItemAdapter and set to listView */
    mListView.setAdapter(mSimpleListItemAdapter);

    /**
     * Add ValueEventListeners to Firebase references to control get data and control behavior and
     * visibility of elements
     */

    /**
     * Save the most recent version of current shopping list into mShoppingList instance variable an
     * update the UI to match the current list.
     */
    mSimpleListRefListener =
        mSimpleListRef.addValueEventListener(
            new ValueEventListener() {
              @Override
              public void onDataChange(DataSnapshot dataSnapshot) {
                SimpleList simpleList = dataSnapshot.getValue(SimpleList.class);

                if (null == simpleList) {
                  finish();
                  return;
                }

                mSimpleList = simpleList;
                mSimpleListItemAdapter.setList(mSimpleList);
                mbCurrentUserIsOwner = Utils.checkIfOwner(simpleList, mEncodedEmail);
                // invalidateOptionsMenu();
                // setTitle(simpleList.getmListName());

              }

              @Override
              public void onCancelled(FirebaseError firebaseError) {
                Log.e(LOG_TAG, "FAILED SOMEHOW AH" + firebaseError.getMessage());
              }
            });

    mListView.setOnItemClickListener(
        new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            // TODO the things that happen when we click on the item
          }
        });
  }
Ejemplo n.º 20
0
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mes_trajets);

    Intent intent = getIntent();
    final String typeDem = intent.getStringExtra("type");

    final ListView listView = (ListView) findViewById(R.id.listView);
    final ArrayList<HashMap<String, String>> listTrajet = new ArrayList<>();

    final Firebase myFireBase = new Firebase("https://bettercallsam.firebaseio.com/");

    final AuthData authData = myFireBase.getAuth();
    if (authData != null) {
      final String idUtilisateur = authData.getUid();
      myFireBase.addValueEventListener(
          new ValueEventListener() {
            // S'il est connecté, on récupère ses informations
            @Override
            public void onDataChange(DataSnapshot snapshot) {

              HashMap<String, String> map;

              if (typeDem.equals("passager")) {
                List<String> listReservIdTrajet = new ArrayList<String>();
                for (DataSnapshot postSnapshot : snapshot.child("reservations").getChildren()) {
                  Reservation reserv = postSnapshot.getValue(Reservation.class);
                  if (idUtilisateur.equals(reserv.getPassager())) {
                    listReservIdTrajet.add(reserv.getTrajet());
                  }
                }

                for (DataSnapshot postSnapshot : snapshot.child("trips").getChildren()) {
                  Trajet trajet = postSnapshot.getValue(Trajet.class);

                  if (listReservIdTrajet.contains(postSnapshot.getKey())) {
                    compt++;
                    String villeArrivee = trajet.getVilleArrivee().toString();
                    String adDep = trajet.getAdresseDepart().toString();
                    String adArr = trajet.getAdresseArrivee().toString();
                    String villeDepart = trajet.getVilleDepart().toString();
                    String dateDep = trajet.getDateDepart().toString();
                    String heureDep = trajet.getHeureDepart().toString();
                    String placeDispo = Integer.toString(trajet.getNombrePlaceDisponibles());

                    map = new HashMap<String, String>();

                    map.put("departVille", "Ville de depart  : " + villeDepart);
                    map.put("departAdresse", "Adresse de départ : " + adDep);
                    map.put("arriveeVille", "Ville d'arrivée : " + villeArrivee);
                    map.put("arriveeAdresse", "Adresse d'arrivée : " + adArr);
                    map.put("date", "Départ le " + dateDep + " à " + heureDep);
                    map.put("nbPlaces", "Nombre de places disponibles : " + placeDispo);
                    map.put("idTrajet", postSnapshot.getKey());

                    listTrajet.add(map);
                  }
                }
              } else {
                for (DataSnapshot postSnapshot : snapshot.child("trips").getChildren()) {
                  Trajet trajet = postSnapshot.getValue(Trajet.class);

                  if (idUtilisateur.equals(trajet.getConducteur())) {
                    compt++;
                    String villeArrivee = trajet.getVilleArrivee().toString();
                    String adDep = trajet.getAdresseDepart().toString();
                    String adArr = trajet.getAdresseArrivee().toString();
                    String villeDepart = trajet.getVilleDepart().toString();
                    String dateDep = trajet.getDateDepart().toString();
                    String heureDep = trajet.getHeureDepart().toString();
                    String placeDispo = Integer.toString(trajet.getNombrePlaceDisponibles());

                    map = new HashMap<String, String>();

                    map.put("departVille", "Ville de depart  : " + villeDepart);
                    map.put("departAdresse", "Adresse de départ : " + adDep);
                    map.put("arriveeVille", "Ville d'arrivée : " + villeArrivee);
                    map.put("arriveeAdresse", "Adresse d'arrivée : " + adArr);
                    map.put("date", "Départ le " + dateDep + " à " + heureDep);
                    map.put("nbPlaces", "Nombre de places disponibles : " + placeDispo);
                    map.put("idTrajet", postSnapshot.getKey());

                    listTrajet.add(map);
                  }
                }
              }

              /* if (compt == 0) {
                  final String erreur = "Il n'y a pas de trajet";
                  listTrajet.add(erreur);

              }*/

              final SimpleAdapter mSchedule =
                  new SimpleAdapter(
                      getApplicationContext(),
                      listTrajet,
                      R.layout.activity_affichage_item,
                      new String[] {
                        "departVille",
                        "departAdresse",
                        "arriveeVille",
                        "arriveeAdresse",
                        "date",
                        "nbPlaces",
                        "idTrajet"
                      },
                      new int[] {
                        R.id.departVille,
                        R.id.departAdresse,
                        R.id.arriveeVille,
                        R.id.arriveeAdresse,
                        R.id.date,
                        R.id.nbPlaces,
                        R.id.idTrajet
                      });

              listView.setAdapter(mSchedule);

              listView.setOnItemClickListener(
                  new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(
                        AdapterView<?> parent, View view, int position, long id) {
                      HashMap<String, String> map =
                          (HashMap<String, String>) listView.getItemAtPosition(position);
                      final Intent intent =
                          new Intent(MesTrajets.this, AffichageDetailsTrajet.class);
                      intent.putExtra("trajet", map.get("idTrajet"));
                      intent.putExtra("nbPlacesReservees", 3);
                      startActivity(intent);
                    }
                  });
            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {}
          });
    } else

      // S'il n'est pas connecté, on le redirige sur l'activité principale
      startActivity(new Intent(this, MainActivity.class));
  }
  @Override
  protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_active_list_details);

    /* Get the push ID from the extra passed by ShoppingListFragment */
    Intent intent = this.getIntent();
    mListId = intent.getStringExtra(Constants.KEY_LIST_ID);
    if (mListId == null) {
      /* No point in continuing without a valid ID. */
      finish();
      return;
    }

    /** Create Firebase references */
    mCurrentListRef =
        new Firebase(Constants.FIREBASE_URL_USER_LISTS).child(mEncodedEmail).child(mListId);
    mCurrentUserRef = new Firebase(Constants.FIREBASE_URL_USERS).child(mEncodedEmail);
    mSharedWithRef = new Firebase(Constants.FIREBASE_URL_LISTS_SHARED_WITH).child(mListId);
    Firebase listItemsRef = new Firebase(Constants.FIREBASE_URL_SHOPPING_LIST_ITEMS).child(mListId);

    /** Link layout elements from XML and setup the toolbar */
    initializeScreen();

    /** Setup the adapter */
    mActiveListItemAdapter =
        new ActiveListItemAdapter(
            this,
            ShoppingListItem.class,
            R.layout.single_active_list_item,
            listItemsRef.orderByChild(Constants.FIREBASE_PROPERTY_BOUGHT_BY),
            mListId,
            mEncodedEmail);
    /* Create ActiveListItemAdapter and set to listView */
    mListView.setAdapter(mActiveListItemAdapter);

    /**
     * Add ValueEventListeners to Firebase references to control get data and control behavior and
     * visibility of elements
     */

    /* Save the most up-to-date version of current user in mCurrentUser */
    mCurrentUserRefListener =
        mCurrentUserRef.addValueEventListener(
            new ValueEventListener() {
              @Override
              public void onDataChange(DataSnapshot dataSnapshot) {
                User currentUser = dataSnapshot.getValue(User.class);
                if (currentUser != null) mCurrentUser = currentUser;
                else finish();
              }

              @Override
              public void onCancelled(FirebaseError firebaseError) {
                Log.e(
                    LOG_TAG,
                    getString(R.string.log_error_the_read_failed) + firebaseError.getMessage());
              }
            });

    final Activity thisActivity = this;

    /**
     * Save the most recent version of current shopping list into mShoppingList instance variable an
     * update the UI to match the current list.
     */
    mCurrentListRefListener =
        mCurrentListRef.addValueEventListener(
            new ValueEventListener() {

              @Override
              public void onDataChange(DataSnapshot snapshot) {

                /**
                 * Saving the most recent version of current shopping list into mShoppingList if
                 * present finish() the activity if the list is null (list was removed or unshared
                 * by it's owner while current user is in the list details activity)
                 */
                ShoppingList shoppingList = snapshot.getValue(ShoppingList.class);

                if (shoppingList == null) {
                  finish();
                  /**
                   * Make sure to call return, otherwise the rest of the method will execute, even
                   * after calling finish.
                   */
                  return;
                }
                mShoppingList = shoppingList;
                /**
                 * Pass the shopping list to the adapter if it is not null. We do this here because
                 * mShoppingList is null when first created.
                 */
                mActiveListItemAdapter.setShoppingList(mShoppingList);

                /* Check if the current user is owner */
                mCurrentUserIsOwner = Utils.checkIfOwner(shoppingList, mEncodedEmail);

                /* Calling invalidateOptionsMenu causes onCreateOptionsMenu to be called */
                invalidateOptionsMenu();

                /* Set title appropriately. */
                setTitle(shoppingList.getListName());

                HashMap<String, User> usersShopping = mShoppingList.getUsersShopping();
                if (usersShopping != null
                    && usersShopping.size() != 0
                    && usersShopping.containsKey(mEncodedEmail)) {
                  mShopping = true;
                  mButtonShopping.setText(getString(R.string.button_stop_shopping));
                  mButtonShopping.setBackgroundColor(
                      ContextCompat.getColor(ActiveListDetailsActivity.this, R.color.dark_grey));
                } else {
                  mButtonShopping.setText(getString(R.string.button_start_shopping));
                  mButtonShopping.setBackgroundColor(
                      ContextCompat.getColor(ActiveListDetailsActivity.this, R.color.primary_dark));
                  mShopping = false;
                }

                setWhosShoppingText(mShoppingList.getUsersShopping());
              }

              @Override
              public void onCancelled(FirebaseError firebaseError) {
                Log.e(
                    LOG_TAG,
                    getString(R.string.log_error_the_read_failed) + firebaseError.getMessage());
              }
            });

    mSharedWithListener =
        mSharedWithRef.addValueEventListener(
            new ValueEventListener() {
              @Override
              public void onDataChange(DataSnapshot dataSnapshot) {
                mSharedWithUsers = new HashMap<String, User>();
                for (DataSnapshot currentUser : dataSnapshot.getChildren()) {
                  mSharedWithUsers.put(currentUser.getKey(), currentUser.getValue(User.class));
                }
                mActiveListItemAdapter.setSharedWithUsers(mSharedWithUsers);
              }

              @Override
              public void onCancelled(FirebaseError firebaseError) {
                Log.e(
                    LOG_TAG,
                    getString(R.string.log_error_the_read_failed) + firebaseError.getMessage());
              }
            });

    /** Set up click listeners for interaction. */

    /* Show edit list item name dialog on listView item long click event */
    mListView.setOnItemLongClickListener(
        new AdapterView.OnItemLongClickListener() {

          @Override
          public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
            /* Check that the view is not the empty footer item */
            if (view.getId() != R.id.list_view_footer_empty) {
              ShoppingListItem shoppingListItem = mActiveListItemAdapter.getItem(position);

              if (shoppingListItem != null) {
                /*
                If the person is the owner and not shopping and the item is not bought, then
                they can edit it.
                 */
                if (shoppingListItem.getOwner().equals(mEncodedEmail)
                    && !mShopping
                    && !shoppingListItem.isBought()) {
                  String itemName = shoppingListItem.getItemName();
                  String itemId = mActiveListItemAdapter.getRef(position).getKey();
                  showEditListItemNameDialog(itemName, itemId);
                  return true;
                }
              }
            }
            return false;
          }
        });

    /* Perform buy/return action on listView item click event if current user is shopping. */
    mListView.setOnItemClickListener(
        new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            /* Check that the view is not the empty footer item */
            if (view.getId() != R.id.list_view_footer_empty) {
              final ShoppingListItem selectedListItem = mActiveListItemAdapter.getItem(position);
              String itemId = mActiveListItemAdapter.getRef(position).getKey();

              if (selectedListItem != null) {
                /* If current user is shopping */
                if (mShopping) {

                  /* Create map and fill it in with deep path multi write operations list */
                  HashMap<String, Object> updatedItemBoughtData = new HashMap<String, Object>();

                  /* Buy selected item if it is NOT already bought */
                  if (!selectedListItem.isBought()) {
                    updatedItemBoughtData.put(Constants.FIREBASE_PROPERTY_BOUGHT, true);
                    updatedItemBoughtData.put(Constants.FIREBASE_PROPERTY_BOUGHT_BY, mEncodedEmail);
                  } else {
                    /* Return selected item only if it was bought by current user */
                    if (selectedListItem.getBoughtBy().equals(mEncodedEmail)) {
                      updatedItemBoughtData.put(Constants.FIREBASE_PROPERTY_BOUGHT, false);
                      updatedItemBoughtData.put(Constants.FIREBASE_PROPERTY_BOUGHT_BY, null);
                    }
                  }

                  /* Do update */
                  Firebase firebaseItemLocation =
                      new Firebase(Constants.FIREBASE_URL_SHOPPING_LIST_ITEMS)
                          .child(mListId)
                          .child(itemId);
                  firebaseItemLocation.updateChildren(
                      updatedItemBoughtData,
                      new Firebase.CompletionListener() {
                        @Override
                        public void onComplete(FirebaseError firebaseError, Firebase firebase) {
                          if (firebaseError != null) {
                            Log.d(
                                LOG_TAG,
                                getString(R.string.log_error_updating_data)
                                    + firebaseError.getMessage());
                          }
                        }
                      });
                }
              }
            }
          }
        });
  }
Ejemplo n.º 22
0
  protected void setupStatusReporting() {
    chatStatusListener =
        friendTypingRef.addValueEventListener(
            new ValueEventListener() {

              @Override
              public void onDataChange(DataSnapshot data) {
                if (data.getValue() != null) {
                  boolean typing = Boolean.parseBoolean(data.getValue().toString());
                  if (typing) {
                    getActionBar().setSubtitle(getString(R.string.typing) + "...");
                  } else {
                    getActionBar().setSubtitle(null);
                  }
                }
              }

              @Override
              public void onCancelled(FirebaseError arg0) {
                getActionBar().setSubtitle(null);
              }
            });

    onlineStatusListener =
        friendOnlineRef.addValueEventListener(
            new ValueEventListener() {

              @Override
              public void onDataChange(DataSnapshot data) {
                if (data.getValue() != null) {
                  boolean online = Boolean.parseBoolean(data.getValue().toString());
                  if (online) {
                    Log.i(TAG, "Notifications disabled");
                    messagesFragment.enableNotifications(false);
                  } else {
                    Log.i(TAG, "Notifications enabled");
                    messagesFragment.enableNotifications(true);
                  }
                }
              }

              @Override
              public void onCancelled(FirebaseError arg0) {
                getActionBar().setSubtitle(null);
              }
            });

    messagesFragment.setOnTypingListener(
        new OnTypingListener() {

          @Override
          public void onTypingStarted() {
            userTypingRef.setValue(true);
          }

          @Override
          public void onTypingFinished() {
            userTypingRef.setValue(false);
          }
        });
  }
Ejemplo n.º 23
0
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final EditText txtName = (EditText) findViewById(R.id.txtUserName);
    final EditText txtPassword = (EditText) findViewById(R.id.txtPassword);

    Firebase.setAndroidContext(this);
    Firebase myAccountReference = new Firebase("https://homeiot.firebaseio.com");
    myAccountReference.addValueEventListener(
        new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
            UserData = dataSnapshot.getValue().toString();
            Log.d("Data", UserData);
            try {
              JSONObject object = new JSONObject(UserData);
              UsernameList = new String[object.names().length()];
              PasswordList = new String[object.names().length()];
              for (int i = 0; i <= object.names().length(); i++) {
                UsernameList[i] = object.names().getString(i);
                PasswordList[i] =
                    object.getJSONObject(object.names().getString(i)).getString("password");
                Log.d("Name", UsernameList[i]);
                Log.d("Password", PasswordList[i]);
              }
            } catch (JSONException e) {
              e.printStackTrace();
            }
          }

          @Override
          public void onCancelled(FirebaseError firebaseError) {}
        });

    /*Firebase.setAndroidContext(this);

    Firebase myFirebaseRef = new Firebase("https://homeiot.firebaseio.com/furqan/lock/history");

    DateFormat dateFormatter = new SimpleDateFormat("yyyyMMddhhmmss");
    dateFormatter.setLenient(false);
    Date today = new Date();
    String s = dateFormatter.format(today);



    Map<String, String> unlock = new HashMap<String, String>();
    unlock.put("person", "Furqan");
    unlock.put("time", s);
    myFirebaseRef.push().setValue(unlock);*/

    Button btnSignIn = (Button) findViewById(R.id.btnSignIn);
    btnSignIn.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            username = txtName.getText().toString();
            password = txtPassword.getText().toString();
            if (TextUtils.isEmpty(username)) {
              txtName.setError("Username Field cannot be empty.");
              return;
            }
            if (TextUtils.isEmpty(password)) {
              txtPassword.setError("Password Field cannot be empty.");
              return;
            }
            final ProgressDialog ringProgressDialog =
                ProgressDialog.show(MainActivity.this, "Signing in.", "Please wait ...", true);

            for (int i = 0; i <= UsernameList.length; i++) {
              Log.d(username, UsernameList[i]);
              Log.d(password, PasswordList[i]);

              if (username.equals(UsernameList[i]) && password.equals(PasswordList[i])) {
                Intent intent = new Intent(MainActivity.this, LockDetail.class);
                intent.putExtra("USERNAME", username);
                ringProgressDialog.dismiss();
                startActivity(intent);
                break;
              } else {
                if (i == (UsernameList.length - 1)) {
                  ringProgressDialog.dismiss();
                  Toast.makeText(
                          getApplicationContext(),
                          "Incorrect Username/Password",
                          Toast.LENGTH_SHORT)
                      .show();
                  return;
                }
              }
            }
          }
        });
  }
Ejemplo n.º 24
0
  @Override
  public void onClick(View v) {
    Fragment fragment;
    switch (v.getId()) {
      case R.id.chose_category:
        AlertDialog.Builder choseCategoryDialog = new AlertDialog.Builder(getActivity());
        choseCategoryDialog.setTitle("Category");
        List<Category> categories = Utils.setupCaregories();
        CategoryAdapter adapter = new CategoryAdapter(categories, getActivity(), mStuff);
        choseCategoryDialog.setAdapter(adapter, null);
        choseCategoryDialog.show();
        if (mStuff.getCategory() != null) {
          Button categoryButton = (Button) v;
          categoryButton.setText(mStuff.getCategory().getCategoryName());
        }
        break;
      case R.id.give_stuff_button:
        if (mStuffsName.getText().toString().length() < 2) {
          Toast.makeText(getActivity(), "Enter valid Stuffs name", Toast.LENGTH_SHORT).show();
          return;
        }
        if (mStuff.getCategory() == null) {
          Toast.makeText(getActivity(), "Chose category", Toast.LENGTH_SHORT).show();
          return;
        }
        if (mTimeToTake.getText().toString().equals("")) {
          Toast.makeText(getActivity(), "Enter time to take", Toast.LENGTH_SHORT).show();
          return;
        }
        if (mPrice.getText().toString().equals("")) {
          Toast.makeText(getActivity(), "Enter the price", Toast.LENGTH_SHORT).show();
          return;
        }

        mStuff.setStuffsName(mStuffsName.getText().toString());
        mStuff.setTimeToTake(Integer.valueOf(mTimeToTake.getText().toString()));
        if (mTimeHours.isChecked()) {
          mStuff.setTypeOfTime(Const.TIME_TYPE_HOURS);
        } else if (mTimeDays.isChecked()) {
          mStuff.setTypeOfTime(Const.TIME_TYPE_DAYS);
        }

        mStuff.setPrice(Double.valueOf(mPrice.getText().toString()));
        if (mPricePerDay.isChecked()) {
          mStuff.setTypeOfTime(Const.PRICE_TYPE_PER_DAY);
        } else if (mPricePerHour.isChecked()) {
          mStuff.setTypeOfPrice(Const.PRICE_TYPE_PER_HOUR);
        }
        mStuff.setDescription(mDescription.getText().toString());
        String usersEmail = null;
        if (getArguments() != null) {
          usersEmail = getArguments().getString(Const.ARG_LOGGED_USER);
        }
        final User[] seller = {null};
        mDatabase.addValueEventListener(
            new ValueEventListener() {
              @Override
              public void onDataChange(DataSnapshot dataSnapshot) {
                seller[0] = dataSnapshot.getValue(User.class);
              }

              @Override
              public void onCancelled(FirebaseError firebaseError) {
                Log.w(TAG, firebaseError.getMessage());
              }
            });
        mStuff.setSeller(seller[0]);

        mDatabase.push().setValue(mStuff);
        Toast.makeText(getActivity(), "Success!", Toast.LENGTH_SHORT).show();
        fragment = ListStuffsFragment.getInstance(usersEmail);
        getActivity()
            .getSupportFragmentManager()
            .beginTransaction()
            .replace(R.id.container_activity_main, fragment)
            .addToBackStack(null)
            .commit();
        break;
    }
  }
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_waiting_room);

    // assigner la référence pour la liste
    mReadyUsersList = (ListView) findViewById(R.id.listView);
    mArrayList = new ArrayList<>();
    mArrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mArrayList);
    mReadyUsersList.setAdapter(mArrayAdapter);

    // recueillir les valeurs passées
    mCurrentProfile = (UserProfile) getIntent().getExtras().get("profile");
    InitialBatterieLevel = (int) getIntent().getExtras().get("batterie");

    // mettre le bouton continue invisible. On le rendra visible si la BD dit qu'on est admin
    mAdminStartButton = (Button) findViewById(R.id.adminStartButton);
    mAdminStartButton.setVisibility(View.INVISIBLE);

    // setup la connexion à la BD
    Firebase.setAndroidContext(this);

    myFirebaseGroupRef =
        new Firebase("https://sizzling-inferno-7505.firebaseio.com/")
            .child("readyGroups")
            .child(mCurrentProfile.groupName);

    // S'ajouter à la BD si on n'est pas déjà là.
    // Ajouter l'usager à la liste des usagers prêts. La valeur deviendra vraie s'ils sont toujours
    // présents quand l'admin débute la séance.

    myFirebaseGroupRef
        .child("members")
        .runTransaction(
            new Transaction.Handler() {
              @Override
              public Transaction.Result doTransaction(MutableData currentData) {
                if (!currentData.hasChild(mCurrentProfile.getSanitizedEmail())
                    || !((Boolean)
                            currentData.child(mCurrentProfile.getSanitizedEmail()).getValue())
                        .equals(Boolean.TRUE)) {
                  currentData.child(mCurrentProfile.getSanitizedEmail()).setValue(false);
                }
                return Transaction.success(currentData);
              }

              @Override
              public void onComplete(
                  FirebaseError firebaseError, boolean b, DataSnapshot dataSnapshot) {}
            });

    // Si l'usager a coché la case organizer, devenir admin s'il n'y en a pas déjà un sur la bd
    if (mCurrentProfile.organizer) {
      // On décoche le fait qu'on est admin, parce qu'il faut que la bd le confirme
      mCurrentProfile.organizer = false;

      myFirebaseGroupRef
          .child("organizer")
          .runTransaction(
              new Transaction.Handler() {
                @Override
                public Transaction.Result doTransaction(MutableData currentData) {
                  // S'il n'y a pad d'organisateur, on se met comme organisateur
                  if (currentData.getValue() == null) {
                    currentData.setValue(mCurrentProfile.getSanitizedEmail());
                  } else {
                  }
                  return Transaction.success(
                      currentData); // we can also abort by calling Transaction.abort()
                }

                @Override
                public void onComplete(
                    FirebaseError firebaseError, boolean committed, DataSnapshot currentData) {
                  // This method will be called once with the results of the transaction.
                }
              });
    }

    // Ajouter un event listener pour s'il y a changement aux membres prêts pour ce groupe
    myFirebaseGroupRef.addValueEventListener(
        mValueEventListener =
            new ValueEventListener() {
              // TODO: Opter plutot pour onChildAdded et onChildChanged pour éviter d'avoir à
              // réécrire la liste complète à chaque fois?
              @Override
              public void onDataChange(DataSnapshot snapshot) {
                // Ajouter un listener pour savoir si l'admin a décidé de passer au vote.
                if (snapshot.hasChild("readyState")) {
                  // On vérifie si notre valeur a été mis à true
                  if (((Boolean)
                          snapshot
                              .child("members/" + mCurrentProfile.getSanitizedEmail())
                              .getValue())
                      .equals(Boolean.TRUE)) {
                    startVoteMapActivity();
                  } else if ((boolean) snapshot.child("readyState").getValue() == true) {
                    // Move to next activity
                    Toast.makeText(
                            WaitingRoomActivity.this,
                            "Le vote est déjà commencé pour ce groupe.",
                            Toast.LENGTH_LONG)
                        .show();
                  }
                }

                if (snapshot.hasChild("members")) {
                  mArrayList.clear();
                  /*for (DataSnapshot prop : snapshot.child("members").getChildren()) {
                      if (prop.getKey() == "latitude")
                          mCurrentProfile.meetingLatitude += (Double) prop.getValue();//true+true?
                      if (prop.getKey() == "longitude")
                          mCurrentProfile.meetingLongitude += (Double) prop.getValue();
                  }*/
                  mArrayList.addAll(
                      ((Map<String, Object>) snapshot.child("members").getValue()).keySet());
                  mArrayAdapter.notifyDataSetChanged();
                }

                // Si la BD dit qu'on est admin, afficher le bouton
                if (snapshot.hasChild("organizer")) {
                  if (snapshot
                      .child("organizer")
                      .getValue()
                      .toString()
                      .equals(mCurrentProfile.getSanitizedEmail())) {
                    mAdminStartButton.setVisibility(View.VISIBLE);
                    // remettre la valeur à true si la BD la confirmé
                    mCurrentProfile.organizer = true;
                    ((TextView) findViewById(R.id.organizerTextView))
                        .setText(snapshot.child("organizer").getValue().toString());
                  }
                }
              }

              @Override
              public void onCancelled(FirebaseError firebaseError) {
                System.out.println("The read failed: " + firebaseError.getMessage());
              }
            });

    // Ajouter un event listener pour le bouton pour l'admin
    mAdminStartButton.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            // Marquer, dans la BD, que le groupe est prêt pour passer au vote
            // Trigger l'événement chez tous les clients.
            myFirebaseGroupRef.child("readyState").setValue(true);
            for (String user : mArrayList) {
              myFirebaseGroupRef.child("members").child(user).setValue(true);
            }

            myFirebaseGroupRef.child("VotesDate").child("votes1").setValue(0);
            myFirebaseGroupRef.child("VotesDate").child("votes2").setValue(0);
            myFirebaseGroupRef.child("VotesDate").child("votes3").setValue(0);
            myFirebaseGroupRef.child("VotesMap").child("votes1").setValue(0);
            myFirebaseGroupRef.child("VotesMap").child("votes2").setValue(0);
            myFirebaseGroupRef.child("VotesMap").child("votes3").setValue(0);
          }
        });
  }