Guest User

Untitled

a guest
Jul 16th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  1. public class RecipeTask extends AsyncTaskLoader<Cursor> {
  2.  
  3. private final Bundle mArgs;
  4. private NetworkIdlingResource mIdlingResource;
  5.  
  6. public RecipeTask(Context context,
  7. @Nullable Bundle args,
  8. @Nullable NetworkIdlingResource resource) {
  9. super(context);
  10. this.mArgs = args;
  11. this.mIdlingResource = resource;
  12. }
  13.  
  14. @Nullable
  15. @Override
  16. public Cursor loadInBackground() {
  17. if (mIdlingResource != null) {
  18. mIdlingResource.setmIsIdle(false);
  19. }
  20.  
  21. Cursor cursor = null;
  22. ContentResolver resolver = getContext().getContentResolver();
  23.  
  24. if (resolver != null && mArgs != null &&
  25. mArgs.containsKey(getContext().getResources().getString(
  26. R.string.key_recipe_task_operation)))
  27. {
  28. // Inspect the bundle of arguments to determine what type of operation is going to be
  29. // performed.
  30. int operation = mArgs.getInt(getContext().getResources().
  31. getString(R.string.key_recipe_task_operation));
  32.  
  33. switch(operation) {
  34. case BakingActivity.DB_QUERY_ALL_RECIPES:
  35. cursor = resolver.query(RecipeContract.RecipeIngredient.CONTENT_URI,
  36. null,
  37. null,
  38. null,
  39. null);
  40. break;
  41. case BakingActivity.DB_INSERT_RECIPE_INGREDIENTS:
  42. if (mArgs.containsKey(getContext().getResources().
  43. getString(R.string.key_recipes)))
  44. {
  45. ArrayList<Recipe> recipeList = mArgs.getParcelableArrayList(
  46. getContext().getResources().getString(R.string.key_recipes));
  47.  
  48. if (recipeList == null) {
  49. break;
  50. }
  51.  
  52. for (Recipe recipe : recipeList) {
  53. for (Ingredient ingredient : recipe.getIngredients()) {
  54. // Construct the content values
  55. ContentValues values = new ContentValues();
  56. values.put(RecipeContract.RecipeIngredient.COLUMN_RECIPE_NAME,
  57. recipe.getName());
  58. values.put(RecipeContract.RecipeIngredient.COLUMN_INGREDIENT,
  59. ingredient.getIngredient());
  60. values.put(RecipeContract.RecipeIngredient.COLUMN_MEASURING,
  61. ingredient.getMeasure());
  62. values.put(RecipeContract.RecipeIngredient.COLUMN_QUANTITY,
  63. ingredient.getQuantity());
  64.  
  65. resolver.insert(RecipeContract.RecipeIngredient.CONTENT_URI, values);
  66. }
  67. }
  68. }
  69. break;
  70. default:
  71. throw new UnsupportedOperationException(
  72. "Unsupported operation for RecipeTask."
  73. );
  74. }
  75.  
  76. }
  77.  
  78. return cursor;
  79. }
  80. }
Add Comment
Please, Sign In to add comment