این وبسایت یک نسخه آزمایشی از سایت developer android می‌باشد که در حال ترجمه می‌باشد.
برای پیوستن به تیم ترجمه و خواندن مستندات اینجا کلیک کنید.
RecipeAssistant / Application / src / com.example.android.wearable.recipeassistant /

Recipe.java

1
/*
2
 * Copyright (C) 2014 The Android Open Source Project
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *      http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
 
17
package com.example.android.wearable.recipeassistant;
18
 
19
import android.content.Context;
20
import android.os.Bundle;
21
import android.os.Parcelable;
22
import android.util.Log;
23
 
24
import org.json.JSONArray;
25
import org.json.JSONException;
26
import org.json.JSONObject;
27
 
28
import java.util.ArrayList;
29
 
30
public class Recipe {
31
    private static final String TAG = "RecipeAssistant";
32
 
33
    public String titleText;
34
    public String summaryText;
35
    public String recipeImage;
36
    public String ingredientsText;
37
 
38
    public static class RecipeStep {
39
        RecipeStep() { }
40
        public String stepImage;
41
        public String stepText;
42
 
43
        public Bundle toBundle() {
44
            Bundle bundle = new Bundle();
45
            bundle.putString(Constants.RECIPE_FIELD_STEP_TEXT, stepText);
46
            bundle.putString(Constants.RECIPE_FIELD_STEP_IMAGE, stepImage);
47
            return bundle;
48
        }
49
 
50
        public static RecipeStep fromBundle(Bundle bundle) {
51
            RecipeStep recipeStep = new RecipeStep();
52
            recipeStep.stepText = bundle.getString(Constants.RECIPE_FIELD_STEP_TEXT);
53
            recipeStep.stepImage = bundle.getString(Constants.RECIPE_FIELD_STEP_IMAGE);
54
            return recipeStep;
55
        }
56
    }
57
    ArrayList<RecipeStep> recipeSteps;
58
 
59
    public Recipe() {
60
        recipeSteps = new ArrayList<RecipeStep>();
61
    }
62
 
63
    public static Recipe fromJson(Context context, JSONObject json) {
64
        Recipe recipe = new Recipe();
65
        try {
66
            recipe.titleText = json.getString(Constants.RECIPE_FIELD_TITLE);
67
            recipe.summaryText = json.getString(Constants.RECIPE_FIELD_SUMMARY);
68
            if (json.has(Constants.RECIPE_FIELD_IMAGE)) {
69
                recipe.recipeImage = json.getString(Constants.RECIPE_FIELD_IMAGE);
70
            }
71
            JSONArray ingredients = json.getJSONArray(Constants.RECIPE_FIELD_INGREDIENTS);
72
            recipe.ingredientsText = "";
73
            for (int i = 0; i < ingredients.length(); i++) {
74
                recipe.ingredientsText += " - "
75
                        + ingredients.getJSONObject(i).getString(Constants.RECIPE_FIELD_TEXT) + "\n";
76
            }
77
 
78
            JSONArray steps = json.getJSONArray(Constants.RECIPE_FIELD_STEPS);
79
            for (int i = 0; i < steps.length(); i++) {
80
                JSONObject step = steps.getJSONObject(i);
81
                RecipeStep recipeStep = new RecipeStep();
82
                recipeStep.stepText = step.getString(Constants.RECIPE_FIELD_TEXT);
83
                if (step.has(Constants.RECIPE_FIELD_IMAGE)) {
84
                    recipeStep.stepImage = step.getString(Constants.RECIPE_FIELD_IMAGE);
85
                }
86
                recipe.recipeSteps.add(recipeStep);
87
            }
88
        } catch (JSONException e) {
89
            Log.e(TAG, "Error loading recipe: " + e);
90
            return null;
91
        }
92
        return recipe;
93
    }
94
 
95
    public Bundle toBundle() {
96
        Bundle bundle = new Bundle();
97
        bundle.putString(Constants.RECIPE_FIELD_TITLE, titleText);
98
        bundle.putString(Constants.RECIPE_FIELD_SUMMARY, summaryText);
99
        bundle.putString(Constants.RECIPE_FIELD_IMAGE, recipeImage);
100
        bundle.putString(Constants.RECIPE_FIELD_INGREDIENTS, ingredientsText);
101
        if (recipeSteps != null) {
102
            ArrayList<Parcelable> stepBundles = new ArrayList<Parcelable>(recipeSteps.size());
103
            for (RecipeStep recipeStep : recipeSteps) {
104
                stepBundles.add(recipeStep.toBundle());
105
            }
106
            bundle.putParcelableArrayList(Constants.RECIPE_FIELD_STEPS, stepBundles);
107
        }
108
        return bundle;
109
    }
110
 
111
    public static Recipe fromBundle(Bundle bundle) {
112
        Recipe recipe = new Recipe();
113
        recipe.titleText = bundle.getString(Constants.RECIPE_FIELD_TITLE);
114
        recipe.summaryText = bundle.getString(Constants.RECIPE_FIELD_SUMMARY);
115
        recipe.recipeImage = bundle.getString(Constants.RECIPE_FIELD_IMAGE);
116
        recipe.ingredientsText = bundle.getString(Constants.RECIPE_FIELD_INGREDIENTS);
117
        ArrayList<Parcelable> stepBundles =
118
                bundle.getParcelableArrayList(Constants.RECIPE_FIELD_STEPS);
119
        if (stepBundles != null) {
120
            for (Pa