/**
   * Creates the event.
   *
   * @param event the event
   * @param category_ids the category_ids
   * @return the long
   */
  public long createEvent(Event event, long[] category_ids) {

    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_EVENT_TITLE, event.getTitle());
    values.put(KEY_EVENT_STARTDATE, event.getStartDate());
    values.put(KEY_EVENT_ENDDATE, event.getEndDate());
    values.put(KEY_EVENT_STARTTIME, event.getStartTime());
    values.put(KEY_EVENT_ENDTIME, event.getEndTime());
    values.put(KEY_EVENT_DESCRIPTION, event.getDescription());
    values.put(KEY_EVENT_REPEAT, event.getRepeat());

    // insert row
    long event_id = db.insert(TABLE_EVENT, null, values);

    // assigning categories to events
    for (long category_id : category_ids) {
      createEventCategory(event_id, category_id);
    }
    // for logging
    //	Log.e("createEvent", event.toString());
    //   db.close();

    return event_id;
  }
예제 #2
0
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
      convertView = mInflater.inflate(R.layout.post, parent, false);
      mViewHolder = new ViewHolder();
      mViewHolder.thumbnail = (ImageView) convertView.findViewById(R.id.post_thumbnail);
      mViewHolder.author = (TextView) convertView.findViewById(R.id.post_author);
      mViewHolder.title = (TextView) convertView.findViewById(R.id.post_title);
      mViewHolder.date = (TextView) convertView.findViewById(R.id.post_date);

      convertView.setTag(mViewHolder);

    } else {
      mViewHolder = (ViewHolder) convertView.getTag();
    }

    mPost = mPosts.get(position);

    /*if (mPost.getThumbnail() != null) {

    */
    /*new AsyncTask<Void, Void, Void>() {
        @Override
        protected Void doInBackground(Void... params) {
            try {
                URL url = new URL(mPost.getThumbnail());
                mBitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream());

            } catch (MalformedURLException e) {

            } catch (IOException e) {

            }
            return null;
        }
    }.execute();*/
    /*


                mViewHolder.thumbnail.setImageBitmap(mBitmap);
            }
            Picasso.with(mActivity)
                .load(mPost.getThumbnail())
                .into(mViewHolder.thumbnail);
    */

    mViewHolder.date.setText(mPost.getStartDate() + " to " + mPost.getEndDate());
    mViewHolder.title.setText(mPost.getNameTitle() + "");
    mViewHolder.author.setText(mPost.getDescription());
    // mViewHolder.date.setText(mPost.getStartDateString());

    return convertView;
  }
  /**
   * Update event.
   *
   * @param event the event
   * @return the int
   */
  public int updateEvent(Event event) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_EVENT_TITLE, event.getTitle());
    values.put(KEY_EVENT_STARTDATE, event.getStartDate());
    values.put(KEY_EVENT_ENDDATE, event.getEndDate());
    values.put(KEY_EVENT_STARTTIME, event.getStartTime());
    values.put(KEY_EVENT_ENDTIME, event.getEndTime());
    values.put(KEY_EVENT_DESCRIPTION, event.getDescription());
    values.put(KEY_EVENT_REPEAT, event.getRepeat());

    // updating row
    return db.update(
        TABLE_EVENT, values, KEY_ID + " = ?", new String[] {String.valueOf(event.getId())});
  }
  /**
   * Check conflictin update events.
   *
   * @param newEvent the new event
   * @return true, if successful
   * @throws ParseException the parse exception
   */
  @SuppressLint("LongLogTag")
  public boolean checkConflictinUpdateEvents(Event newEvent) throws ParseException {
    SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm");
    String sTime = newEvent.getStartTime();
    String sDate = newEvent.getStartDate();
    String eTime = newEvent.getEndTime();
    String eDate = newEvent.getEndDate();

    Date parsedStartTime = timeFormat.parse(sTime);
    Timestamp newStartTime = new Timestamp(parsedStartTime.getTime());
    Date parsedEndTime = timeFormat.parse(eTime);
    Timestamp newEndTime = new Timestamp(parsedEndTime.getTime());

    if (sDate.equalsIgnoreCase(eDate)) {
      if (newStartTime.after(newEndTime)) {
        Log.e("Illogiacl Update", "StartTime is greater then EndTime");
        return false;
      }
    }

    List<Event> allEvents = getEvent(sDate, eDate);
    for (Event prevEvent : allEvents) {
      Log.d(
          "Event: " + prevEvent.getTitle(),
          "" + prevEvent.getId() + "  " + prevEvent.getDescription());

      Date parsedPreviousStartTime = timeFormat.parse(prevEvent.getStartTime());
      Timestamp previousStartTime = new Timestamp(parsedPreviousStartTime.getTime());
      Date parsedPreviousEndTime = timeFormat.parse(prevEvent.getEndTime());
      Timestamp previousEndTime = new Timestamp(parsedPreviousEndTime.getTime());

      if (newStartTime.after(previousStartTime) && newStartTime.before(previousEndTime)
          || newEndTime.after(previousStartTime) && newEndTime.before(previousEndTime)
          || previousStartTime.after(newStartTime) && previousStartTime.before(newEndTime)
          || previousEndTime.after(newStartTime) && previousEndTime.before(newEndTime)) {
        if (newEvent.getId() != prevEvent.getId()) {
          Log.e("Conflict with existent event", "Can't update this event");
          return false;
        }
      }
    }
    return true;
  }