コード例 #1
0
 /** Saves the scrolling position of every visible limiter */
 public void maintainPosition() {
   for (int i = MAX_ADAPTER_COUNT; --i != -1; ) {
     if (mAdapters[i] != null) {
       sLruAdapterPos.storePosition(mAdapters[i], mLists[i].getFirstVisiblePosition());
     }
   }
 }
コード例 #2
0
  @Override
  public boolean handleMessage(Message message) {
    switch (message.what) {
      case MSG_RUN_QUERY:
        {
          LibraryAdapter adapter = (LibraryAdapter) message.obj;
          int index = adapter.getMediaType();
          Handler handler = mUiHandler;
          handler.sendMessage(handler.obtainMessage(MSG_COMMIT_QUERY, index, 0, adapter.query()));
          break;
        }
      case MSG_COMMIT_QUERY:
        {
          int pos = 0;
          int index = message.arg1;
          mAdapters[index].commitQuery(message.obj);

          Limiter curLimiter = mAdapters[index].getLimiter();
          Integer curPos = sLruAdapterPos.getPosition(mAdapters[index]);
          if (curPos != null) pos = (int) curPos;

          mLists[index].setSelection(pos);
          break;
        }
      case MSG_SAVE_SORT:
        {
          MediaAdapter adapter = (MediaAdapter) message.obj;
          SharedPreferences.Editor editor = PlaybackService.getSettings(mActivity).edit();
          editor.putInt(
              String.format("sort_%d_%d", adapter.getMediaType(), adapter.getLimiterType()),
              adapter.getSortMode());
          editor.commit();
          break;
        }
      case MSG_REQUEST_REQUERY:
        requestRequery((LibraryAdapter) message.obj);
        break;
      default:
        return false;
    }

    return true;
  }