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.murrayc.galaxyzoo.app.QuestionFragment.java

@Override
public Loader<Cursor> onCreateLoader(final int loaderId, final Bundle bundle) {
    if (loaderId != URL_LOADER) {
        return null;
    }//from   w  w w.  jav a2 s. co  m

    final String itemId = getItemId();
    if (TextUtils.isEmpty(itemId)) {
        return null;
    }

    final Activity activity = getActivity();

    final Uri.Builder builder = Item.CONTENT_URI.buildUpon();
    builder.appendPath(itemId);

    return new CursorLoader(activity, builder.build(), mColumns, null, // No where clause, return all records. We already specify just one via the itemId in the URI
            null, // No where clause, therefore no where column values.
            null // Use the default sort order.
    );
}

From source file:com.nononsenseapps.notepad.ActivityMain.java

/**
 * Load a list of lists in the left/*from  ww  w.  j a v  a  2s  .co  m*/
 */
protected void loadLeftDrawer() {
    // TODO handle being called repeatably better?
    // Set a listener on drawer events
    // TODO strings
    if (mDrawerToggle == null) {
        mDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.drawable.ic_drawer_dark, R.string.ok,
                R.string.about) {

            /**
             * Called when a drawer has settled in a completely closed
             * state.
             */
            public void onDrawerClosed(View view) {
                getActionBar().setTitle(R.string.app_name);
                isDrawerClosed = true;
                invalidateOptionsMenu(); // creates call to
                // onPrepareOptionsMenu()
            }

            /** Called when a drawer has settled in a completely open state. */
            public void onDrawerOpened(View drawerView) {
                showcaseDrawerPress();
            }

            public void onDrawerStateChanged(int newState) {
                super.onDrawerStateChanged(newState);

                // If it's not idle, it isn't closed
                if (DrawerLayout.STATE_IDLE != newState) {
                    getActionBar().setTitle(R.string.show_from_all_lists);
                    // Is in motion, hide action items
                    isDrawerClosed = false;
                    invalidateOptionsMenu(); // creates call to
                    // onPrepareOptionsMenu()
                }
            }
        };

        // Set the drawer toggle as the DrawerListener
        drawerLayout.setDrawerListener(mDrawerToggle);
    }

    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);

    // Use extra items for All Lists
    final int[] extraIds = new int[] { -1, TaskListFragment.LIST_ID_OVERDUE, TaskListFragment.LIST_ID_TODAY,
            TaskListFragment.LIST_ID_WEEK, -1 };
    // This is fine for initial conditions
    final int[] extraStrings = new int[] { R.string.tasks, R.string.date_header_overdue,
            R.string.date_header_today, R.string.next_5_days, R.string.lists };
    // Use this for real data
    final ArrayList<ArrayList<Object>> extraData = new ArrayList<ArrayList<Object>>();
    // Task header
    extraData.add(new ArrayList<Object>());
    extraData.get(0).add(R.string.tasks);
    // Overdue
    extraData.add(new ArrayList<Object>());
    extraData.get(1).add(R.string.date_header_overdue);
    // Today
    extraData.add(new ArrayList<Object>());
    extraData.get(2).add(R.string.date_header_today);
    // Week
    extraData.add(new ArrayList<Object>());
    extraData.get(3).add(R.string.next_5_days);
    // Lists header
    extraData.add(new ArrayList<Object>());
    extraData.get(4).add(R.string.lists);

    final int[] extraTypes = new int[] { 1, 0, 0, 0, 1 };

    final ExtraTypesCursorAdapter adapter = new ExtraTypesCursorAdapter(this, R.layout.simple_light_list_item_2,
            null, new String[] { TaskList.Columns.TITLE, TaskList.Columns.VIEW_COUNT },
            new int[] { android.R.id.text1, android.R.id.text2 },
            // id -1 for headers, ignore clicks on them
            extraIds, extraStrings, extraTypes, new int[] { R.layout.drawer_header });
    adapter.setExtraData(extraData);

    // Load count of tasks in each one
    Log.d("nononsenseapps drawer", TaskList.CREATE_COUNT_VIEW);

    // Adapter for list titles and ids
    // final SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
    // R.layout.simple_light_list_item_1, null,
    // new String[] { TaskList.Columns.TITLE },
    // new int[] { android.R.id.text1 }, 0);
    leftDrawer.setAdapter(adapter);
    // Set click handler
    leftDrawer.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View v, int pos, long id) {
            if (id < -1) {
                // Set preference which type was chosen
                PreferenceManager.getDefaultSharedPreferences(ActivityMain.this).edit()
                        .putLong(TaskListFragment.LIST_ALL_ID_PREF_KEY, id).commit();
            }
            openList(id);
        }
    });
    leftDrawer.setOnItemLongClickListener(new OnItemLongClickListener() {

        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int pos, long id) {
            // Open dialog to edit list
            if (id > 0) {
                DialogEditList_ dialog = DialogEditList_.getInstance(id);
                dialog.show(getSupportFragmentManager(), "fragment_edit_list");
                return true;
            } else if (id < -1) {
                // Set as "default"
                PreferenceManager.getDefaultSharedPreferences(ActivityMain.this).edit()
                        .putLong(getString(R.string.pref_defaultstartlist), id)
                        .putLong(TaskListFragment.LIST_ALL_ID_PREF_KEY, id).commit();
                Toast.makeText(ActivityMain.this, R.string.new_default_set, Toast.LENGTH_SHORT).show();
                // openList(id);
                return true;
            } else {
                return false;
            }
        }
    });
    // Define the callback handler
    final LoaderCallbacks<Cursor> callbacks = new LoaderCallbacks<Cursor>() {

        final String[] COUNTROWS = new String[] { "COUNT(1)" };
        final String NOTCOMPLETED = Task.Columns.COMPLETED + " IS NULL ";

        @Override
        public Loader<Cursor> onCreateLoader(int id, Bundle arg1) {
            // Normal lists
            switch (id) {
            case TaskListFragment.LIST_ID_OVERDUE:
                return new CursorLoader(ActivityMain.this, Task.URI, COUNTROWS,
                        NOTCOMPLETED + TaskListFragment.andWhereOverdue(), null, null);
            case TaskListFragment.LIST_ID_TODAY:
                return new CursorLoader(ActivityMain.this, Task.URI, COUNTROWS,
                        NOTCOMPLETED + TaskListFragment.andWhereToday(), null, null);
            case TaskListFragment.LIST_ID_WEEK:
                return new CursorLoader(ActivityMain.this, Task.URI, COUNTROWS,
                        NOTCOMPLETED + TaskListFragment.andWhereWeek(), null, null);
            case 0:
            default:
                return new CursorLoader(ActivityMain.this, TaskList.URI_WITH_COUNT,
                        new String[] { TaskList.Columns._ID, TaskList.Columns.TITLE,
                                TaskList.Columns.VIEW_COUNT },
                        null, null,
                        getResources().getString(R.string.const_as_alphabetic, TaskList.Columns.TITLE));
            }
        }

        @Override
        public void onLoadFinished(Loader<Cursor> l, Cursor c) {
            switch (l.getId()) {
            case TaskListFragment.LIST_ID_OVERDUE:
                if (c.moveToFirst()) {
                    updateExtra(1, c.getInt(0));
                }
                break;
            case TaskListFragment.LIST_ID_TODAY:
                if (c.moveToFirst()) {
                    updateExtra(2, c.getInt(0));
                }
                break;
            case TaskListFragment.LIST_ID_WEEK:
                if (c.moveToFirst()) {
                    updateExtra(3, c.getInt(0));
                }
                break;
            case 0:
            default:
                adapter.swapCursor(c);
            }
        }

        private void updateExtra(final int pos, final int count) {
            while (extraData.get(pos).size() < 2) {
                // To avoid crashes
                extraData.get(pos).add("0");
            }
            extraData.get(pos).set(1, Integer.toString(count));
            adapter.notifyDataSetChanged();
        }

        @Override
        public void onLoaderReset(Loader<Cursor> l) {
            switch (l.getId()) {
            case TaskListFragment.LIST_ID_OVERDUE:
            case TaskListFragment.LIST_ID_TODAY:
            case TaskListFragment.LIST_ID_WEEK:
                break;
            case 0:
            default:
                adapter.swapCursor(null);
            }
        }
    };

    // Load actual data
    getSupportLoaderManager().restartLoader(0, null, callbacks);
    // special views
    getSupportLoaderManager().restartLoader(TaskListFragment.LIST_ID_OVERDUE, null, callbacks);
    getSupportLoaderManager().restartLoader(TaskListFragment.LIST_ID_TODAY, null, callbacks);
    getSupportLoaderManager().restartLoader(TaskListFragment.LIST_ID_WEEK, null, callbacks);
}

From source file:com.amaze.carbonfilemanager.activities.MainActivity.java

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {

    Uri uri = Uri.withAppendedPath(Uri.parse("content://" + CloudContract.PROVIDER_AUTHORITY),
            "/keys.db/secret_keys/");

    String[] projection = new String[] { CloudContract.COLUMN_ID, CloudContract.COLUMN_CLIENT_ID,
            CloudContract.COLUMN_CLIENT_SECRET_KEY };

    switch (id) {
    case REQUEST_CODE_CLOUD_LIST_KEY:
        Uri uriAppendedPath = uri;//from  w ww .j  a va 2s .c o m
        switch (OpenMode.getOpenMode(args.getInt(ARGS_KEY_LOADER, 6))) {
        case GDRIVE:
            uriAppendedPath = ContentUris.withAppendedId(uri, 1);
            break;
        case DROPBOX:
            uriAppendedPath = ContentUris.withAppendedId(uri, 2);
            break;
        case BOX:
            uriAppendedPath = ContentUris.withAppendedId(uri, 3);
            break;
        case ONEDRIVE:
            uriAppendedPath = ContentUris.withAppendedId(uri, 4);
            break;
        }
        return new CursorLoader(this, uriAppendedPath, projection, null, null, null);
    case REQUEST_CODE_CLOUD_LIST_KEYS:
        // we need a list of all secret keys
        Uri uriAll = Uri.withAppendedPath(Uri.parse("content://" + CloudContract.PROVIDER_AUTHORITY),
                "/keys.db/secret_keys");
        CloudHandler cloudHandler = new CloudHandler(getApplicationContext());
        try {
            List<CloudEntry> cloudEntries = cloudHandler.getAllEntries();

            String ids[] = new String[cloudEntries.size()];

            for (int i = 0; i < cloudEntries.size(); i++) {

                // we need to get only those cloud details which user wants
                switch (cloudEntries.get(i).getServiceType()) {
                case GDRIVE:
                    ids[i] = 1 + "";
                    break;
                case DROPBOX:
                    ids[i] = 2 + "";
                    break;
                case BOX:
                    ids[i] = 3 + "";
                    break;
                case ONEDRIVE:
                    ids[i] = 4 + "";
                    break;
                }
            }
            return new CursorLoader(this, uriAll, projection, CloudContract.COLUMN_ID, ids, null);
        } catch (CloudPluginException e) {
            e.printStackTrace();

            Toast.makeText(this, getResources().getString(R.string.cloud_error_plugin), Toast.LENGTH_LONG)
                    .show();
        }
    case REQUEST_CODE_CLOUD_LIST_KEY_CLOUD:
        Uri uriAppendedPathCloud = ContentUris.withAppendedId(uri, 5);
        return new CursorLoader(this, uriAppendedPathCloud, projection, null, null, null);
    default:
        return null;
    }
}