@Override public Cursor performQuery(@NonNull CursorModelLoader<List<ScheduleItem>> loader, @NonNull CancellationSignal cancellationSignal) { return ContentResolverCompat.query( loader.getContext().getContentResolver(), ScheduleContract.Blocks.CONTENT_URI, BlocksQuery.PROJECTION, BlocksQuery.SELECTION, null, ScheduleContract.Blocks.BLOCK_START, cancellationSignal); }
@Override public Cursor performQuery(@NonNull CursorModelLoader<List<ScheduleItem>> loader, @NonNull CancellationSignal cancellationSignal) { return ContentResolverCompat.query(loader.getContext().getContentResolver(), Sessions.CONTENT_MY_SCHEDULE_URI, ScheduleItemHelper.REQUIRED_SESSION_COLUMNS, null, null, Sessions.SORT_BY_TIME, cancellationSignal); }
@Override public Cursor performQuery(@NonNull CursorModelLoader<TagMetadata> loader, @NonNull CancellationSignal cancellationSignal) { return ContentResolverCompat.query(loader.getContext().getContentResolver(), Tags.CONTENT_URI, TagMetadata.TAGS_PROJECTION, null, null, null, cancellationSignal); }
/** * Cargar datos en modo offline */ public void loadDatosRecorridoOffline() { String parametros[] = {context.lineaSeleccionadaNum}; Cursor cursorRecorrido = null; try { cursorRecorrido = ContentResolverCompat.query(context.getContentResolver(), BuscadorLineasProvider.PARADAS_LINEA_RECORRIDO_URI, null, null, parametros, null, null); } catch (Exception e) { cursorRecorrido = null; e.printStackTrace(); } if (cursorRecorrido != null) { cursorRecorrido.moveToFirst(); context.datosMapaCargadosIda.setRecorrido(cursorRecorrido.getString(cursorRecorrido.getColumnIndex(DatosLineasDB.COLUMN_COORDENADAS))); if(cursorRecorrido.getCount() > 1) { cursorRecorrido.moveToNext(); context.datosMapaCargadosVuelta.setRecorrido(cursorRecorrido.getString(cursorRecorrido.getColumnIndex(DatosLineasDB.COLUMN_COORDENADAS))); } // Cargar datos en el mapa context.gestionarLineas.cargarMapa(null); cursorRecorrido.close(); } else { Toast.makeText(context, context.getString(R.string.error_datos_offline), Toast.LENGTH_SHORT).show(); } }
@Override protected void onStart(final Receiver receiver) { task = new AsyncTask<Void, Void, Cursor>() { @Override protected Cursor doInBackground(Void... params) { synchronized (this) { if (isCancelled()) { return null; } cancellationSignal = new CancellationSignal(); } try { Cursor cursor = ContentResolverCompat.query(resolver, uri, projection, selection, selectionArgs, sortOrder, cancellationSignal); if (cursor != null) { try { // Ensure the cursor window is filled. cursor.getCount(); cursor.registerContentObserver(observer); } catch (RuntimeException e) { cursor.close(); throw e; } } return cursor; } catch (OperationCanceledException e) { // The query was canceled, this result won't be delivered anyway. return null; } finally { synchronized (this) { cancellationSignal = null; } } } @Override protected void onPostExecute(Cursor cursor) { if (!isRunning()) { if (cursor != null) { cursor.close(); } return; } Cursor oldCursor = CursorLoader.this.cursor; CursorLoader.this.cursor = cursor; receiver.result(cursor); if (oldCursor != null && oldCursor != cursor && !oldCursor.isClosed()) { oldCursor.close(); } } }; task.execute(); }
@Override protected void onStart(final Receiver receiver) { task = new AsyncTask<Void, Void, Cursor>() { @Override protected Cursor doInBackground(Void... params) { synchronized (this) { if (isCancelled()) { return null; } cancellationSignal = new CancellationSignal(); } try { Cursor cursor = ContentResolverCompat.query(resolver, uri, projection, selection, selectionArgs, sortOrder, cancellationSignal); if (cursor != null) { try { // Ensure the cursor window is filled. cursor.getCount(); cursor.registerContentObserver(observer); } catch (RuntimeException e) { cursor.close(); throw e; } } return cursor; } catch (OperationCanceledException e) { // The query was canceled, this result won't be delivered anyway. return null; } finally { synchronized (this) { cancellationSignal = null; } } } @Override protected void onPostExecute(Cursor cursor) { if (!isRunning()) { if (cursor != null) { cursor.close(); } return; } Cursor oldCursor = CursorLoader.this.cursor; CursorLoader.this.cursor = cursor; receiver.deliverResult(cursor); if (oldCursor != null && oldCursor != cursor && !oldCursor.isClosed()) { oldCursor.close(); } } }; task.execute(); }
/** * Carga la descripcion desde la base de datos * * @return parada */ private Parada cargarDescripcionBD() { Cursor cursor = null; try { String parametros[] = {numParada}; //Cursor cursor = managedQuery(BuscadorLineasProvider.DATOS_PARADA_URI, null, null, parametros, null); cursor = ContentResolverCompat.query(getContentResolver(), BuscadorLineasProvider.DATOS_PARADA_URI, null, null, parametros, null, null); if (cursor != null) { List<Parada> listaParadas = new ArrayList<>(); for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { Parada par = new Parada(); par.setLineaNum(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_LINEA_NUM))); par.setLineaDesc(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_LINEA_DESC))); par.setConexion(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_CONEXION))); par.setCoordenadas(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_COORDENADAS))); par.setDestino(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_DESTINO))); par.setDireccion(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_DIRECCION))); par.setLatitud(cursor.getInt(cursor.getColumnIndex(DatosLineasDB.COLUMN_LATITUD))); par.setLongitud(cursor.getInt(cursor.getColumnIndex(DatosLineasDB.COLUMN_LONGITUD))); par.setParada(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_PARADA))); listaParadas.add(par); } return listaParadas.get(0); } else { return null; } } catch (Exception e) { return null; } finally { if (cursor != null) { cursor.close(); } } }
/** * @param paradaActual * @return */ public String cargarDescripcionBD(int paradaActual) { try { String parametros[] = {Integer.toString(paradaActual)}; //Cursor cursor = context.managedQuery(BuscadorLineasProvider.DATOS_PARADA_URI, null, null, parametros, null); Cursor cursor = ContentResolverCompat.query(context.getContentResolver(), BuscadorLineasProvider.DATOS_PARADA_URI, null, null, parametros, null, null); if (cursor != null) { List<Parada> listaParadas = new ArrayList<>(); for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { Parada par = new Parada(); par.setLineaNum(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_LINEA_NUM))); par.setLineaDesc(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_LINEA_DESC))); par.setConexion(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_CONEXION))); par.setCoordenadas(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_COORDENADAS))); par.setDestino(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_DESTINO))); par.setDireccion(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_DIRECCION))); par.setLatitud(cursor.getInt(cursor.getColumnIndex(DatosLineasDB.COLUMN_LATITUD))); par.setLongitud(cursor.getInt(cursor.getColumnIndex(DatosLineasDB.COLUMN_LONGITUD))); par.setParada(cursor.getString(cursor.getColumnIndex(DatosLineasDB.COLUMN_PARADA))); listaParadas.add(par); } cursor.close(); if (listaParadas.get(0).getDireccion() != null) { return listaParadas.get(0).getDireccion(); } else { return ""; } } else { return ""; } } catch (Exception e) { return ""; } }
/** * Carga los favoritos en un hashmap * * @return hashmap */ private HashMap<String, String> cargarDatosFavoritos() { try { HashMap<String, String> datosFav = new HashMap<>(); //Cursor cursor = context.managedQuery(TiempoBusDb.Favoritos.CONTENT_URI, FavoritosActivity.PROJECTION, null, null, TiempoBusDb.Favoritos.DEFAULT_SORT_ORDER); Cursor cursor = ContentResolverCompat.query(context.getContentResolver(), TiempoBusDb.Favoritos.CONTENT_URI, FavoritosActivity.PROJECTION, null, null, TiempoBusDb.Favoritos.DEFAULT_SORT_ORDER, null); if (cursor != null) { for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { datosFav.put(cursor.getString(cursor.getColumnIndex(TiempoBusDb.Favoritos.TITULO)), cursor.getString(cursor.getColumnIndex(TiempoBusDb.Favoritos.POSTE))); } cursor.close(); } return datosFav; } catch (Exception e) { return null; } }
/** * Consulta de datos de historial * * @param orden */ private void consultarDatos(String orden) { /* * Si no ha sido cargado con anterioridad, cargamos nuestro * "content provider" */ Intent intent = getIntent(); if (intent.getData() == null) { intent.setData(HistorialDB.Historial.CONTENT_URI); } /* * Query "managed": la actividad se encargará de cerrar y volver a * cargar el cursor cuando sea necesario */ //Cursor cursor = managedQuery(getIntent().getData(), PROJECTION, null, null, orden); Cursor cursor = ContentResolverCompat.query(getContentResolver(), getIntent().getData(), PROJECTION, null, null, orden, null); /* * Mapeamos las querys SQL a los campos de las vistas */ //String[] camposDb = new String[]{HistorialDB.Historial.PARADA, HistorialDB.Historial.TITULO, HistorialDB.Historial.DESCRIPCION}; //int[] camposView = new int[]{R.id.numParadaFav, R.id.titulo, R.id.descripcion}; //adapter = new SimpleCursorAdapter(this, R.layout.historial_item, cursor, camposDb, camposView); List<Favorito> listaHistorial = new ArrayList<>(); Favorito historial = null; if (cursor != null) { for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { historial = new Favorito(); historial.setId(cursor.getString(cursor.getColumnIndex(HistorialDB.Historial._ID))); historial.setNumParada(cursor.getString(cursor.getColumnIndex(HistorialDB.Historial.PARADA))); historial.setTitulo(cursor.getString(cursor.getColumnIndex(HistorialDB.Historial.TITULO))); historial.setDescripcion(cursor.getString(cursor.getColumnIndex(HistorialDB.Historial.DESCRIPCION))); listaHistorial.add(historial); } cursor.close(); } // Nuevo adapter para favoritos adapter = new HistorialAdapter(this, R.layout.historial_item); adapter.addAll(listaHistorial); /* * Preparamos las acciones a realizar cuando pulsen un favorito */ favoritosView = (ListView) findViewById(android.R.id.list); favoritosView.setAdapter(adapter); favoritosView.setOnItemClickListener(favoritoClickedHandler); registerForContextMenu(favoritosView); }
/** * Cargar datos de transbordos desde la base de datos * * @param paradas * @param context */ public static void cargarDatosTransbordosBD(DatosMapa paradas, Context context) { //Carga de informacion de transbordos if (context != null) { for (int i = 0; i < paradas.getPlacemarks().size(); i++) { String parametros[] = {paradas.getPlacemarks().get(i).getCodigoParada()}; try { //Cursor cursor = ((FragmentActivity) context).managedQuery(BuscadorLineasProvider.DATOS_PARADA_URI, null, null, parametros, null); Cursor cursor = ContentResolverCompat.query(context.getContentResolver(), BuscadorLineasProvider.DATOS_PARADA_URI, null, null, parametros, null, null); if (cursor != null) { cursor.moveToFirst(); int conexionesIndex = cursor.getColumnIndexOrThrow(DatosLineasDB.COLUMN_CONEXION); paradas.getPlacemarks().get(i).setLineas(cursor.getString(conexionesIndex)); cursor.close(); } } catch (Exception e) { } } } }
/** * Si la parada esta en favoritos mostramos su titulo * * @param parada * @return */ public String cargarDescripcionBDFavoritos(String parada) { try { HashMap<String, String> datosFav = new HashMap<>(); //Cursor cursor = context.managedQuery(TiempoBusDb.Favoritos.CONTENT_URI, FavoritosActivity.PROJECTION, null, null, TiempoBusDb.Favoritos.DEFAULT_SORT_ORDER); Cursor cursor = ContentResolverCompat.query(context.getContentResolver(), TiempoBusDb.Favoritos.CONTENT_URI, FavoritosActivity.PROJECTION, null, null, TiempoBusDb.Favoritos.DEFAULT_SORT_ORDER, null); if (cursor != null) { for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { datosFav.put(cursor.getString(cursor.getColumnIndex(TiempoBusDb.Favoritos.POSTE)), cursor.getString(cursor.getColumnIndex(TiempoBusDb.Favoritos.TITULO))); } cursor.close(); } if (datosFav.containsKey(parada)) { return datosFav.get(parada); } else { return ""; } } catch (Exception e) { return ""; } }
/** * Consultar si la parada ya esta en el historial * * @param parada * @return */ public Integer cargarIdParadaHistorial(String parada) { try { String parametros[] = {parada}; //Cursor cursor = context.managedQuery(HistorialDB.Historial.CONTENT_URI_ID_PARADA, HistorialActivity.PROJECTION, null, parametros, null); Cursor cursor = ContentResolverCompat.query(context.getContentResolver(), HistorialDB.Historial.CONTENT_URI_ID_PARADA, HistorialActivity.PROJECTION, null, parametros, null, null); if (cursor != null) { cursor.moveToFirst(); Log.d("HISTORIAL", "historial: " + cursor.getInt(cursor.getColumnIndex(HistorialDB.Historial._ID))); Integer id = cursor.getInt(cursor.getColumnIndex(HistorialDB.Historial._ID)); cursor.close(); return id; } else { return null; } } catch (Exception e) { return null; } }
/** * Consultar si la parada ya esta en el historial * * @param parada * @return */ public String cargarHorarioParadaHistorial(Integer parada) { if (parada == null) { return null; } try { String parametros[] = {Integer.toString(parada)}; //Cursor cursor = getActivity().managedQuery(HistorialDB.Historial.CONTENT_URI_ID_PARADA, HistorialActivity.PROJECTION, null, parametros, null); Cursor cursor = ContentResolverCompat.query(getActivity().getContentResolver(), HistorialDB.Historial.CONTENT_URI_ID_PARADA, HistorialActivity.PROJECTION, null, parametros, null, null); if (cursor != null) { cursor.moveToFirst(); String value = cursor.getString(cursor.getColumnIndex(HistorialDB.Historial.HORARIO_SELECCIONADO)); cursor.close(); return value; } else { return null; } } catch (Exception e) { return null; } }
/** * Consulda de datos desde la base de datos en el orden indicado * * @param orden */ private void consultarDatos(String orden) { /* * Si no ha sido cargado con anterioridad, cargamos nuestro * "content provider" */ Intent intent = getIntent(); if (intent.getData() == null) { intent.setData(TiempoBusDb.Favoritos.CONTENT_URI); } /* * Query "managed": la actividad se encargará de cerrar y volver a * cargar el cursor cuando sea necesario */ //Cursor cursor = managedQuery(getIntent().getData(), PROJECTION, null, null, orden); //Sustituir managedquery deprecated Cursor cursor = ContentResolverCompat.query(getContentResolver(), getIntent().getData(), PROJECTION, null, null, orden, null); List<Favorito> listaFavoritos = new ArrayList<>(); if(cursor != null) { for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { Favorito favorito = new Favorito(); favorito.setId(cursor.getString(cursor.getColumnIndex(TiempoBusDb.Favoritos._ID))); favorito.setNumParada(cursor.getString(cursor.getColumnIndex(TiempoBusDb.Favoritos.POSTE))); favorito.setTitulo(cursor.getString(cursor.getColumnIndex(TiempoBusDb.Favoritos.TITULO))); favorito.setDescripcion(cursor.getString(cursor.getColumnIndex(TiempoBusDb.Favoritos.DESCRIPCION))); listaFavoritos.add(favorito); } cursor.close(); } // Nuevo adapter para favoritos adapter = new FavoritosAdapter(this, R.layout.favoritos_item); adapter.addAll(listaFavoritos); /* * Preparamos las acciones a realizar cuando pulsen un favorito */ favoritosView = (ListView) findViewById(android.R.id.list); favoritosView.setAdapter(adapter); favoritosView.setOnItemClickListener(favoritoClickedHandler); registerForContextMenu(favoritosView); }
/** * Listado de favoritos * * @return */ public List<Favorito> cargarFavoritosBD() { List<Favorito> favoritosList = new ArrayList<>(); Favorito favorito = null; try { //Cursor cursor = actividad.managedQuery(TiempoBusDb.Favoritos.CONTENT_URI, FavoritosActivity.PROJECTION, null, null, TiempoBusDb.Favoritos.DEFAULT_SORT_ORDER); Cursor cursor = ContentResolverCompat.query(getActivity().getContentResolver(), TiempoBusDb.Favoritos.CONTENT_URI, FavoritosActivity.PROJECTION, null, null, TiempoBusDb.Favoritos.DEFAULT_SORT_ORDER, null); if (cursor != null) { for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { favorito = new Favorito(); favorito.setNumParada(cursor.getString(cursor.getColumnIndex(TiempoBusDb.Favoritos.POSTE))); favorito.setTitulo(cursor.getString(cursor.getColumnIndex(TiempoBusDb.Favoritos.TITULO))); favorito.setDescripcion(cursor.getString(cursor.getColumnIndex(TiempoBusDb.Favoritos.DESCRIPCION))); favoritosList.add(favorito); } cursor.close(); } if (!favoritosList.isEmpty()) { return favoritosList; } else { //return null; } } catch (Exception e) { //return null; } return favoritosList; }
/** * Cargar datos en modo offline TRAM */ private List<DatosInfoLinea> cargarDatosMapaTRAMBD(String lineaSeleccionadaNum) { List<DatosInfoLinea> datosInfoLinea = null; DatosMapa datosIda = new DatosMapa(); String parametros[] = {lineaSeleccionadaNum}; Cursor cursorParadas = null; try { //cursorParadas = getActivity().managedQuery(BuscadorLineasProvider.PARADAS_LINEA_URI, null, null, parametros, null); cursorParadas = ContentResolverCompat.query(getActivity().getContentResolver(), BuscadorLineasProvider.PARADAS_LINEA_URI, null, null, parametros, null, null); } catch (Exception e) { cursorParadas = null; e.printStackTrace(); } if (cursorParadas != null) { List<Parada> listaParadasIda = new ArrayList<>(); for (cursorParadas.moveToFirst(); !cursorParadas.isAfterLast(); cursorParadas.moveToNext()) { Parada par = new Parada(); par.setLineaNum(cursorParadas.getString(cursorParadas.getColumnIndex(DatosLineasDB.COLUMN_LINEA_NUM))); par.setLineaDesc(cursorParadas.getString(cursorParadas.getColumnIndex(DatosLineasDB.COLUMN_LINEA_DESC))); par.setConexion(cursorParadas.getString(cursorParadas.getColumnIndex(DatosLineasDB.COLUMN_CONEXION))); par.setCoordenadas(cursorParadas.getString(cursorParadas.getColumnIndex(DatosLineasDB.COLUMN_COORDENADAS))); par.setDestino(cursorParadas.getString(cursorParadas.getColumnIndex(DatosLineasDB.COLUMN_DESTINO))); par.setDireccion(cursorParadas.getString(cursorParadas.getColumnIndex(DatosLineasDB.COLUMN_DIRECCION))); par.setLatitud(cursorParadas.getInt(cursorParadas.getColumnIndex(DatosLineasDB.COLUMN_LATITUD))); par.setLongitud(cursorParadas.getInt(cursorParadas.getColumnIndex(DatosLineasDB.COLUMN_LONGITUD))); par.setParada(cursorParadas.getString(cursorParadas.getColumnIndex(DatosLineasDB.COLUMN_PARADA))); par.setObservaciones(cursorParadas.getString(cursorParadas.getColumnIndex(DatosLineasDB.COLUMN_OBSERVACIONES))); listaParadasIda.add(par); } datosIda = mapearDatosModelo(listaParadasIda); // Datos a la estructura esperada datosInfoLinea = new ArrayList<>(); DatosInfoLinea datoIda = new DatosInfoLinea(); datoIda.setResult(datosIda); DatosInfoLinea datoVuelta = new DatosInfoLinea(); datosInfoLinea.add(datoIda); datosInfoLinea.add(datoVuelta); cursorParadas.close(); } else { Toast toast = Toast.makeText(getActivity(), getString(R.string.error_datos_offline), Toast.LENGTH_SHORT); toast.show(); } return datosInfoLinea; }
/** * Carga del historial * * @return */ public List<Favorito> cargarHistorialBD() { List<Favorito> anteriorHisList = new ArrayList<>(); Favorito anteriorHis = null; try { //Cursor cursor = context.managedQuery(HistorialDB.Historial.CONTENT_URI, HistorialActivity.PROJECTION, null, null, HistorialDB.Historial.DEFAULT_SORT_ORDER); Cursor cursor = ContentResolverCompat.query(context.getContentResolver(), HistorialDB.Historial.CONTENT_URI, HistorialActivity.PROJECTION, null, null, HistorialDB.Historial.DEFAULT_SORT_ORDER, null); if (cursor != null) { for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { anteriorHis = new Favorito(); anteriorHis.setNumParada(cursor.getString(cursor.getColumnIndex(HistorialDB.Historial.PARADA))); anteriorHis.setTitulo(cursor.getString(cursor.getColumnIndex(HistorialDB.Historial.TITULO))); anteriorHis.setDescripcion(cursor.getString(cursor.getColumnIndex(HistorialDB.Historial.DESCRIPCION))); anteriorHisList.add(anteriorHis); } cursor.close(); } if (!anteriorHisList.isEmpty()) { return anteriorHisList; } else { return null; } } catch (Exception e) { return null; } }