Example usage for android.support.v4.content CursorLoader CursorLoader

List of usage examples for android.support.v4.content CursorLoader CursorLoader

Introduction

In this page you can find the example usage for android.support.v4.content CursorLoader CursorLoader.

Prototype

public CursorLoader(Context context, Uri uri, String[] projection, String selection, String[] selectionArgs,
        String sortOrder) 

Source Link

Document

Creates a fully-specified CursorLoader.

Usage

From source file:com.deliciousdroid.platform.BookmarkManager.java

public static CursorLoader SearchBookmarks(String query, String tagname, String username, Context context) {
    final String[] projection = new String[] { Bookmark._ID, Bookmark.Url, Bookmark.Description, Bookmark.Meta,
            Bookmark.Tags, Bookmark.Shared, Bookmark.Synced, Bookmark.Deleted };
    String selection = null;//from   ww  w  .  j  a  va 2s .c o m

    final String sortorder = Bookmark.Description + " ASC";

    final String[] queryBookmarks = query.split(" ");

    final ArrayList<String> queryList = new ArrayList<String>();
    final ArrayList<String> selectionlist = new ArrayList<String>();

    if (query != null && query != "" && (tagname == null || tagname == "")) {

        for (String s : queryBookmarks) {
            queryList.add("(" + Bookmark.Tags + " LIKE ? OR " + Bookmark.Description + " LIKE ? OR "
                    + Bookmark.Notes + " LIKE ?)");
            selectionlist.add("%" + s + "%");
            selectionlist.add("%" + s + "%");
            selectionlist.add("%" + s + "%");
        }
        selectionlist.add(username);

        selection = TextUtils.join(" AND ", queryList) + " AND " + Bookmark.Account + "=?";
    } else if (query != null && query != "") {
        for (String s : queryBookmarks) {
            queryList.add("(" + Bookmark.Description + " LIKE ? OR " + Bookmark.Notes + " LIKE ?)");

            selectionlist.add("%" + s + "%");
            selectionlist.add("%" + s + "%");
        }

        selection = TextUtils.join(" AND ", queryList) + " AND " + Bookmark.Account + "=? AND " + "("
                + Bookmark.Tags + " LIKE ? OR " + Bookmark.Tags + " LIKE ? OR " + Bookmark.Tags + " LIKE ? OR "
                + Bookmark.Tags + " = ?)";

        selectionlist.add(username);
        selectionlist.add("% " + tagname + " %");
        selectionlist.add("% " + tagname);
        selectionlist.add(tagname + " %");
        selectionlist.add(tagname);
    } else {
        selectionlist.add(username);
        selection = Bookmark.Account + "=?";
    }

    selection += " AND " + Bookmark.Deleted + "=0";

    return new CursorLoader(context, Bookmark.CONTENT_URI, projection, selection,
            selectionlist.toArray(new String[] {}), sortorder);
}

From source file:com.battlelancer.seriesguide.ui.ShowsFragment.java

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    StringBuilder selection = new StringBuilder();

    // create temporary copies
    final boolean isFilterFavorites = mIsFilterFavorites;
    final boolean isFilterUnwatched = mIsFilterUnwatched;
    final boolean isFilterUpcoming = mIsFilterUpcoming;
    final boolean isFilterHidden = mIsFilterHidden;

    // restrict to favorites?
    if (isFilterFavorites) {
        selection.append(Shows.FAVORITE).append("=1");
    }/*from  w  w w .ja v a 2  s .c  o m*/

    final long timeInAnHour = System.currentTimeMillis() + DateUtils.HOUR_IN_MILLIS;

    // restrict to shows with a next episode?
    if (isFilterUnwatched) {
        if (selection.length() != 0) {
            selection.append(" AND ");
        }
        selection.append(Shows.NEXTAIRDATEMS).append("!=").append(DBUtils.UNKNOWN_NEXT_RELEASE_DATE);

        // exclude shows with upcoming next episode
        if (!isFilterUpcoming) {
            selection.append(" AND ").append(Shows.NEXTAIRDATEMS).append("<=").append(timeInAnHour);
        }
    }
    // restrict to shows with an upcoming (yet to air) next episode?
    if (isFilterUpcoming) {
        if (selection.length() != 0) {
            selection.append(" AND ");
        }
        // Display shows upcoming within <limit> days + 1 hour
        int upcomingLimitInDays = AdvancedSettings.getUpcomingLimitInDays(getActivity());
        long latestAirtime = timeInAnHour + upcomingLimitInDays * DateUtils.DAY_IN_MILLIS;

        selection.append(Shows.NEXTAIRDATEMS).append("<=").append(latestAirtime);

        // exclude shows with no upcoming next episode if not filtered for unwatched, too
        if (!isFilterUnwatched) {
            selection.append(" AND ").append(Shows.NEXTAIRDATEMS).append(">=").append(timeInAnHour);
        }
    }

    // special: if hidden filter is disabled, exclude hidden shows
    if (selection.length() != 0) {
        selection.append(" AND ");
    }
    selection.append(Shows.HIDDEN).append(isFilterHidden ? "=1" : "=0");

    // keep unwatched and upcoming shows from becoming stale
    schedulePeriodicDataRefresh(true);

    return new CursorLoader(getActivity(), Shows.CONTENT_URI, ShowsQuery.PROJECTION, selection.toString(), null,
            ShowsDistillationSettings.getSortQuery(mSortOrderId, mIsSortFavoritesFirst, mIsSortIgnoreArticles));
}

From source file:com.kyakujin.android.autoeco.ui.MainActivity.java

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle arg1) {
    switch (id) {
    case SchedQuery.LOADER_ID:
        String order = SchedTbl._ID;
        return new CursorLoader(this, SchedTbl.CONTENT_URI, SchedQuery.PROJECTION, null, null, order);
    case BatteryQuery.LOADER_ID:
        return new CursorLoader(this, BatteryTbl.CONTENT_URI, BatteryQuery.PROJECTION, null, null, null);
    case ManualQuery.LOADER_ID:
        return new CursorLoader(this, ManualTbl.CONTENT_URI, ManualQuery.PROJECTION, null, null, null);
    default:/*from ww  w .j a v  a  2  s .c  om*/
        break;
    }
    return null;
}

From source file:com.jefftharris.passwdsafe.sync.MainActivity.java

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    return new CursorLoader(this, PasswdSafeContract.Providers.CONTENT_URI,
            PasswdSafeContract.Providers.PROJECTION, null, null, null);
}

From source file:com.haibison.android.anhuu.FragmentFiles.java

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    mLoading = true;//w w w .ja  v a 2s.c  o  m
    mNewLoader = true;

    mViewGroupFiles.setVisibility(View.GONE);
    mViewLoadingHandler.postDelayed(new Runnable() {

        @Override
        public void run() {
            mViewLoading.setVisibility(View.VISIBLE);
        }// run()
    }, Display.DELAY_TIME_FOR_SHORT_ANIMATION);

    getActivity().supportInvalidateOptionsMenu();

    final Uri path = ((Uri) args.getParcelable(PATH));
    buildAddressBar(path);

    String positiveRegex = getArguments().getString(FileChooserActivity.EXTRA_POSITIVE_REGEX_FILTER);
    String negativeRegex = getArguments().getString(FileChooserActivity.EXTRA_NEGATIVE_REGEX_FILTER);

    if (BuildConfig.DEBUG)
        Log.d(CLASSNAME, "onCreateLoader() >> path = " + path);

    return new CursorLoader(getActivity(), BaseFile.genContentUriBase(path.getAuthority()).buildUpon()
            .appendPath(path.getLastPathSegment())
            .appendQueryParameter(BaseFile.PARAM_TASK_ID, Integer.toString(mIdLoaderData))
            .appendQueryParameter(BaseFile.PARAM_SHOW_HIDDEN_FILES,
                    Boolean.toString(getArguments().getBoolean(FileChooserActivity.EXTRA_DISPLAY_HIDDEN_FILES)))
            .appendQueryParameter(BaseFile.PARAM_FILTER_MODE, Integer.toString(mFilterMode))
            .appendQueryParameter(BaseFile.PARAM_SORT_BY, Integer.toString(Display.getSortType(getActivity())))
            .appendQueryParameter(BaseFile.PARAM_SORT_ASCENDING,
                    Boolean.toString(Display.isSortAscending(getActivity())))
            .appendQueryParameter(BaseFile.PARAM_LIMIT, Integer.toString(mMaxFileCount))
            .appendQueryParameter(BaseFile.PARAM_POSITIVE_REGEX_FILTER,
                    TextUtils.isEmpty(positiveRegex) ? "" : positiveRegex)
            .appendQueryParameter(BaseFile.PARAM_NEGATIVE_REGEX_FILTER,
                    TextUtils.isEmpty(negativeRegex) ? "" : negativeRegex)
            .build(), null, null, null, null);
}

From source file:com.handpoint.headstart.client.ui.ReceiptActivity.java

private String getFilePathFromContentUrl(String url) {
    String[] proj = { MediaStore.Images.Media.DATA };
    CursorLoader loader = new CursorLoader(this, Uri.parse(url), proj, null, null, null);
    Cursor cursor = loader.loadInBackground();
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();//ww w.j ava2  s.  c o  m
    return cursor.getString(column_index);
}

From source file:com.google.android.apps.mytracks.TrackListActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
    setContentView(R.layout.track_list);

    AnalyticsUtils.sendPageViews(this, this.getLocalClassName() + "/create");

    ApiAdapterFactory.getApiAdapter().hideActionBar(this);

    Display display = getWindowManager().getDefaultDisplay();
    boolean devicesZ = display.getWidth() > 720 || display.getHeight() > 720;
    if (devicesZ) {
        // Disable the Keyboard help link
        View v = findViewById(R.id.help_keyboard_q);
        if (v != null)
            v.setVisibility(View.GONE);
        v = findViewById(R.id.help_keyboard_a);
        if (v != null)
            v.setVisibility(View.GONE);
    }//from   www. java 2s .  c o m
    trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, bindChangedCallback);

    SharedPreferences sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
    sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
    sharedPreferenceChangeListener.onSharedPreferenceChanged(sharedPreferences, null);

    trackController = new TrackController(this, trackRecordingServiceConnection, true, recordListener,
            stopListener);

    // START MOD
    ImageButton helpButton = (ImageButton) findViewById(R.id.listBtnBarHelp);
    if (helpButton != null)
        helpButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = IntentUtils.newIntent(TrackListActivity.this, HelpActivity.class);
                startActivity(intent);
            }
        });
    /*
     * Record = Pause and Stop managed by track controller ImageButton
     * recordButton = (ImageButton) findViewById(R.id.listBtnBarRecord);
     * recordButton.setOnClickListener(recordListener); ImageButton stopButton =
     * (ImageButton) findViewById(R.id.listBtnBarStop);
     * stopButton.setOnClickListener(stopListener);
     */
    ImageButton searchButton = (ImageButton) findViewById(R.id.listBtnBarSearch);
    if (searchButton != null)
        searchButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                onSearchRequested();
            }
        });
    ImageButton settingsButton = (ImageButton) findViewById(R.id.listBtnBarSettings);
    if (settingsButton != null)
        settingsButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = IntentUtils.newIntent(TrackListActivity.this, SettingsActivity.class);
                startActivity(intent);
            }
        });

    // END MOD
    listView = (ListView) findViewById(R.id.track_list);
    listView.setEmptyView(findViewById(R.id.track_list_empty_view));
    listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = IntentUtils.newIntent(TrackListActivity.this, TrackDetailActivity.class)
                    .putExtra(TrackDetailActivity.EXTRA_TRACK_ID, id);
            startActivity(intent);
        }
    });
    resourceCursorAdapter = new ResourceCursorAdapter(this, R.layout.list_item, null, 0) {
        @Override
        public void bindView(View view, Context context, Cursor cursor) {
            int idIndex = cursor.getColumnIndex(TracksColumns._ID);
            int iconIndex = cursor.getColumnIndex(TracksColumns.ICON);
            int nameIndex = cursor.getColumnIndex(TracksColumns.NAME);
            int categoryIndex = cursor.getColumnIndex(TracksColumns.CATEGORY);
            int totalTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.TOTALTIME);
            int totalDistanceIndex = cursor.getColumnIndexOrThrow(TracksColumns.TOTALDISTANCE);
            int startTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STARTTIME);
            int descriptionIndex = cursor.getColumnIndex(TracksColumns.DESCRIPTION);

            boolean isRecording = cursor.getLong(idIndex) == recordingTrackId;
            int iconId = TrackIconUtils.getIconDrawable(cursor.getString(iconIndex));
            String name = cursor.getString(nameIndex);
            String totalTime = StringUtils.formatElapsedTime(cursor.getLong(totalTimeIndex));
            String totalDistance = StringUtils.formatDistance(TrackListActivity.this,
                    cursor.getDouble(totalDistanceIndex), metricUnits);
            long startTime = cursor.getLong(startTimeIndex);
            String startTimeDisplay = StringUtils.formatDateTime(context, startTime).equals(name) ? null
                    : StringUtils.formatRelativeDateTime(context, startTime);

            ListItemUtils.setListItem(TrackListActivity.this, view, isRecording, recordingTrackPaused, iconId,
                    R.string.icon_track, name, cursor.getString(categoryIndex), totalTime, totalDistance,
                    startTimeDisplay, cursor.getString(descriptionIndex));
        }
    };
    listView.setAdapter(resourceCursorAdapter);
    ApiAdapterFactory.getApiAdapter().configureListViewContextualMenu(this, listView,
            contextualActionModeCallback);

    getSupportLoaderManager().initLoader(0, null, new LoaderCallbacks<Cursor>() {
        @Override
        public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
            return new CursorLoader(TrackListActivity.this, TracksColumns.CONTENT_URI, PROJECTION, null, null,
                    TracksColumns._ID + " DESC");
        }

        @Override
        public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
            resourceCursorAdapter.swapCursor(cursor);
        }

        @Override
        public void onLoaderReset(Loader<Cursor> loader) {
            resourceCursorAdapter.swapCursor(null);
        }
    });
    trackDataHub = TrackDataHub.newInstance(this);
    if (savedInstanceState != null) {
        startGps = savedInstanceState.getBoolean(START_GPS_KEY);
    } // Test repeated messaging
    if (!started)
        showStartupDialogs();
}

From source file:com.example.android.contactslist.ui.groupsEditor.GroupsEditorFragment.java

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    Uri contentUri;//from ww  w  .j  a  va 2  s  .  c o  m

    // switch between search query and a group query
    switch (id) {

    case GroupsListQuery.QUERY_ID:
        return new CursorLoader(getActivity(), GroupsListQuery.CONTENT_URI, GroupsListQuery.PROJECTION,
                GroupsListQuery.SELECTION, null, GroupsListQuery.SORT_ORDER);
    case GroupsListStatsQuery.QUERY_ID:

        return new CursorLoader(getActivity(), GroupsListStatsQuery.CONTENT_URI,
                GroupsListStatsQuery.PROJECTION, GroupsListStatsQuery.SELECTION, GroupsListStatsQuery.ARGS,
                GroupsListStatsQuery.SORT_ORDER);

    default:

        Log.e(TAG, "onCreateLoader - incorrect ID provided (" + id + ")");
        return null;
    }
}

From source file:com.onegravity.contactpicker.core.ContactPickerActivity.java

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    String selection = "";
    if (mOnlyWithPhoneNumbers) {
        selection = ContactsContract.Contacts.HAS_PHONE_NUMBER;
    }//from   w ww  .  j ava2s  .  c  o m
    switch (id) {
    case CONTACTS_LOADER_ID:
        return new CursorLoader(this, CONTACTS_URI, CONTACTS_PROJECTION, selection, null, CONTACTS_SORT);
    case CONTACT_DETAILS_LOADER_ID:
        return new CursorLoader(this, CONTACT_DETAILS_URI, CONTACT_DETAILS_PROJECTION, selection, null, null);
    case GROUPS_LOADER_ID:
        return new CursorLoader(this, GROUPS_URI, GROUPS_PROJECTION, GROUPS_SELECTION, null, GROUPS_SORT);
    }
    return null;
}

From source file:com.nononsenseapps.feeder.ui.FeedFragment.java

@Override
public Loader onCreateLoader(final int ID, final Bundle bundle) {
    if (ID == FEEDITEMS_LOADER) {
        return new FeedItemDeltaCursorLoader(getActivity(),
                FeedItemSQL.URI_FEED_ITEMS.buildUpon()
                        .appendQueryParameter(RssContentProvider.QUERY_PARAM_LIMIT, "50").build(),
                FeedItemSQL.FIELDS, getLoaderSelection(), getLoaderSelectionArgs(),
                FeedItemSQL.COL_PUBDATE + " DESC");
    } else if (ID == FEED_LOADER) {
        return new CursorLoader(getActivity(), Uri.withAppendedPath(FeedSQL.URI_FEEDS, Long.toString(id)),
                FeedSQL.FIELDS, null, null, null);
    } else if (ID == FEED_SETTINGS_LOADER) {
        String where;/*from w  w  w .  j  a  va 2s  .  c o  m*/
        String[] whereArgs;
        if (id > 0) {
            where = Util.WHEREIDIS;
            whereArgs = Util.LongsToStringArray(id);
        } else {
            where = FeedSQL.COL_TAG + " IS ?";
            whereArgs = Util.ToStringArray(tag);
        }
        return new CursorLoader(getActivity(), FeedSQL.URI_FEEDS,
                Util.ToStringArray("DISTINCT " + FeedSQL.COL_NOTIFY), where, whereArgs, null);
    }
    return null;
}