private void fireOnSelected() {
    if (mOnItemSelectedListener == null) return;

    int selection = this.getSelectedItemPosition();
    if (selection >= 0) {
      View v = getSelectedView();
      mOnItemSelectedListener.onItemSelected(this, v, selection, getAdapter().getItemId(selection));
    } else {
      mOnItemSelectedListener.onNothingSelected(this);
    }
  }
예제 #2
0
 private void onAppSelected(int index) {
   dismiss();
   if (index < customActions.size()) {
     CustomAction action = customActions.get(index);
     if (mListener != null) {
       mListener.onCustomActionSelected(action);
     }
   } else {
     ResolveInfo info = mAppInfos.get(index - customActions.size());
     if (mListener != null) {
       mListener.onAppSelected(info);
     }
   }
 }
 @Override
 public boolean onSingleTapConfirmed(MotionEvent e) {
   Rect viewRect = new Rect();
   for (int i = 0; i < getChildCount(); i++) {
     View child = getChildAt(i);
     int left = child.getLeft();
     int right = child.getRight();
     int top = child.getTop();
     int bottom = child.getBottom();
     viewRect.set(left, top, right, bottom);
     if (viewRect.contains((int) e.getX(), (int) e.getY())) {
       if (mOnItemClicked != null) {
         mOnItemClicked.onItemClick(
             HorizontalListView.this,
             child,
             mLeftViewIndex + 1 + i,
             mAdapter.getItemId(mLeftViewIndex + 1 + i));
       }
       if (mOnItemSelected != null) {
         mOnItemSelected.onItemSelected(
             HorizontalListView.this,
             child,
             mLeftViewIndex + 1 + i,
             mAdapter.getItemId(mLeftViewIndex + 1 + i));
       }
       break;
     }
   }
   return true;
 }
예제 #4
0
  public boolean onTestReceive(MotionEvent e) {

    if (e.getAction() == MotionEvent.ACTION_UP) {
      Rect viewRect = new Rect();
      for (int i = 0; i < getChildCount(); i++) {
        View child = getChildAt(i);
        int left = child.getLeft();
        int right = child.getRight();
        int top = child.getTop() + this.getTop();
        int bottom = child.getBottom() + this.getBottom();
        int x = (int) e.getX();
        int y = (int) e.getY();
        viewRect.set(left, top, right, bottom);
        if (viewRect.contains(x, y)) {
          if (mOnItemClicked != null) {
            mOnItemClicked.onItemClick(
                HorizontalListView.this,
                child,
                mLeftViewIndex + 1 + i,
                mAdapter.getItemId(mLeftViewIndex + 1 + i));
          }
          if (mOnItemSelected != null) {
            mOnItemSelected.onItemSelected(
                HorizontalListView.this,
                child,
                mLeftViewIndex + 1 + i,
                mAdapter.getItemId(mLeftViewIndex + 1 + i));
          }
          break;
        }
      }
      return true;
    }
    return false;
  }
예제 #5
0
        @Override
        public void onLongPress(MotionEvent e) {
          Rect viewRect = new Rect();
          for (int i = 0; i < getChildCount(); i++) {
            View child = getChildAt(i);
            int left = child.getLeft();
            int right = child.getRight();
            int top = child.getTop();
            int bottom = child.getBottom();
            viewRect.set(left, top, right, bottom);
            if (viewRect.contains((int) e.getX(), (int) e.getY())) {

              if (mOnItemLongClickListener != null) {
                mOnItemLongClickListener.onItemLongClick(
                    HorizontalListView.this,
                    child,
                    mLeftViewIndex + 1 + i,
                    mAdapter.getItemId(mLeftViewIndex + 1 + i));
              }
              if (mOnItemSelected != null) {
                mOnItemSelected.onItemSelected(
                    HorizontalListView.this,
                    child,
                    mLeftViewIndex + 1 + i,
                    mAdapter.getItemId(mLeftViewIndex + 1 + i));
              }
              break;
            }
          }
        }
예제 #6
0
  // Trigger update of detail fragment
  public void updateDetail() {
    // Create data solely for testing
    String newTime = String.valueOf(System.currentTimeMillis());

    // Send data to activity
    listener.onCardSelected(newTime);
  }
예제 #7
0
 @Override
 public void onClick(View v) {
   if (onItemSelectedListener != null) {
     if (onItemSelectedListener.onItemSelected(v.getId())) {
       dismiss();
     }
   }
 }
예제 #8
0
  // May also be triggered from the Activity
  public void updateDetail() {
    // Create a string, just for testing
    String newTime = String.valueOf(System.currentTimeMillis());

    // Inform the Activity about the change based
    // interface defintion
    listener.onRssItemSelected(newTime);
  }
 protected void onItemSelected(Resource resource) {
   Activity activity = getActivity();
   if (activity instanceof OnItemSelectedListener) {
     ((OnItemSelectedListener) activity).onItemSelected(resource);
   } else {
     throw new IllegalStateException(
         String.format(
             "activity %s should implement %s",
             activity, OnItemSelectedListener.class.getCanonicalName()));
   }
 }
예제 #10
0
  /**
   * Rotate the buttons.
   *
   * @param degrees The degrees, the menu items should get rotated.
   */
  private void rotateButtons(float degrees) {
    int left, top, childCount = getChildCount();
    float angleDelay = 360f / (float) childCount;
    angle += degrees;

    if (angle > 360) {
      angle -= 360;
    } else {
      if (angle < 0) {
        angle += 360;
      }
    }

    for (int i = 0; i < childCount; i++) {
      if (angle > 360) {
        angle -= 360;
      } else {
        if (angle < 0) {
          angle += 360;
        }
      }

      final ShareArImageView child = (ShareArImageView) getChildAt(i);
      if (child.getVisibility() == GONE) {
        continue;
      }
      left =
          Math.round(
              (float)
                  (((sharearWidth / 2f) - childWidth / 2f)
                      + radius * Math.cos(Math.toRadians(angle))));
      top =
          Math.round(
              (float)
                  (((sharearHeight / 2f) - childHeight / 2f)
                      + radius * Math.sin(Math.toRadians(angle))));

      child.setAngle(angle);

      if (Math.abs(angle - firstChildPos) < (angleDelay / 2f) && selected != child.getPosition()) {
        selected = child.getPosition();

        if (mOnItemSelectedListener != null && rotateToCenter) {
          mOnItemSelectedListener.onItemSelected(
              child, selected, child.getId(), child.getRid(), child.getName());
        }
      }

      child.layout(left, top, left + childWidth, top + childHeight);
      angle += angleDelay;
    }
  }
 public void setItemSelected(int position, boolean selected) {
   RecordItem recordItem = mRecordItemList.get(position);
   if (recordItem != null) {
     final RestorableRecord record = (RestorableRecord) recordItem.record;
     if (selected && !isRecordSelectable(record)) {
       showToast("暂不支持只有数据的应用程序整合");
       notifyDataSetChanged();
       return;
     }
     recordItem.isSelected = selected;
     if (mOnItemSelectedListener != null) {
       mOnItemSelectedListener.onItemSelected(getItem(position), selected);
     }
     notifyDataSetChanged();
   }
 }
예제 #12
0
  private void setChildAngles() {
    int left, top, childWidth, childHeight, childCount = getChildCount();
    float angleDelay = 360.0f / childCount;
    float halfAngle = angleDelay / 2;
    float localAngle = angle;

    for (int i = 0; i < childCount; i++) {
      final View child = getChildAt(i);
      if (child.getVisibility() == GONE) {
        continue;
      }

      if (localAngle > 360) {
        localAngle -= 360;
      } else if (localAngle < 0) {
        localAngle += 360;
      }

      childWidth = child.getMeasuredWidth();
      childHeight = child.getMeasuredHeight();
      left =
          Math.round(
              (float)
                  (((circleWidth / 2.0) - childWidth / 2.0)
                      + radius * Math.cos(Math.toRadians(localAngle))));
      top =
          Math.round(
              (float)
                  (((circleHeight / 2.0) - childHeight / 2.0)
                      + radius * Math.sin(Math.toRadians(localAngle))));

      child.setTag(localAngle);

      float distance = Math.abs(localAngle - firstChildPosition.getAngle());
      boolean isFirstItem = distance <= halfAngle || distance >= (360 - halfAngle);
      if (isFirstItem && selectedView != child) {
        selectedView = child;
        if (onItemSelectedListener != null && isRotating) {
          onItemSelectedListener.onItemSelected(child);
        }
      }

      child.layout(left, top, left + childWidth, top + childHeight);
      localAngle += angleDelay;
    }
  }
예제 #13
0
 @Override
 public void onListItemClick(ListView l, View v, int position, long id) {
   String projection[] = {PapasDatabase.COL_URL};
   Cursor itemCursor =
       getActivity()
           .getContentResolver()
           .query(
               Uri.withAppendedPath(PapaProvider.CONTENT_URI, String.valueOf(id)),
               projection,
               null,
               null,
               null);
   if (itemCursor.moveToFirst()) {
     String itemUrl = itemCursor.getString(0);
     itemSelectedListener.onItemSelected(itemUrl);
   }
   itemCursor.close();
 }
  private void setNextSelectedPositionInt(int position) {
    if (mContentScrollView.getHeight() == 0) {
      setSelection(position);
      return;
    }

    mSelectedPosition = position;

    initItemViewsScrollYArr();
    mContentScrollView.scrollTo(
        mContentScrollView.getScrollX(), mItemViewsScrollYArr[mSelectedPosition]);
    if (mOnItemSelectedListener != null) {
      mOnItemSelectedListener.onItemSelected(
          this,
          mCachedSubViewList.get(mSelectedPosition),
          mSelectedPosition,
          mAdapter.getItemId(mSelectedPosition));
    }
  }
 @Override
 public boolean onSingleTapConfirmed(MotionEvent e) {
   for (int i = 0; i < getChildCount(); i++) {
     View child = getChildAt(i);
     if (isEventWithinView(e, child)) {
       if (mOnItemClicked != null) {
         mOnItemClicked.onItemClick(
             HorizontalListView.this,
             child,
             mLeftViewIndex + 1 + i,
             mAdapter.getItemId(mLeftViewIndex + 1 + i));
       }
       if (mOnItemSelected != null) {
         mOnItemSelected.onItemSelected(
             HorizontalListView.this,
             child,
             mLeftViewIndex + 1 + i,
             mAdapter.getItemId(mLeftViewIndex + 1 + i));
       }
       break;
     }
   }
   return true;
 }