/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.android.talkback.tutorial;
import android.content.Context;
import com.android.utils.JsonUtils;
import com.android.utils.ResourceUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class TutorialLesson {
private static final String JSON_KEY_VERSION = "version";
private static final String JSON_KEY_TITLE = "title";
private static final String JSON_KEY_SHORT_DESCRIPTION = "short_description";
private static final String JSON_KEY_PAGES = "pages";
private static final String JSON_KEY_PRACTICE = "practice";
private static final String JSON_KEY_INDEX = "lesson_index";
private String mTitle;
private String mShortDescription;
private TutorialLessonPage[] mPages;
private int mVersion;
private int mLessonIndex;
public TutorialLesson(Context context, JSONObject lesson) throws JSONException {
String titleResourceName = JsonUtils.getString(lesson, JSON_KEY_TITLE);
mTitle = ResourceUtils.readStringByResourceIdFromString(context, titleResourceName);
String descriptionResourceName = JsonUtils.getString(lesson, JSON_KEY_SHORT_DESCRIPTION);
mShortDescription = ResourceUtils.readStringByResourceIdFromString(context,
descriptionResourceName);
mVersion = JsonUtils.getInt(lesson, JSON_KEY_VERSION);
mLessonIndex = JsonUtils.getInt(lesson, JSON_KEY_INDEX);
JSONArray pagesArray = JsonUtils.getJsonArray(lesson, JSON_KEY_PAGES);
JSONObject practice = JsonUtils.getJsonObject(lesson, JSON_KEY_PRACTICE);
int pageCount = 0;
if (pagesArray != null) {
pageCount += pagesArray.length();
}
if (practice != null) {
pageCount++;
}
mPages = new TutorialLessonPage[pageCount];
if (pagesArray != null) {
int lessonPagesCount = pagesArray.length();
for (int i = 0; i < lessonPagesCount; i++) {
JSONObject pageJson = pagesArray.getJSONObject(i);
mPages[i] = new TutorialLessonPage(context, pageJson);
}
}
if (practice != null) {
mPages[pageCount - 1] = new TutorialLessonPage(context, practice);
}
}
public void setTitle(String title) {
mTitle = title;
}
public String getTitle() {
return mTitle;
}
public void setShortDescription(String description) {
mShortDescription = description;
}
public String getShortDescription() {
return mShortDescription;
}
public void setTutorialLessonPages(TutorialLessonPage[] pages) {
mPages = pages;
}
public TutorialLessonPage getLessonPage(int pageIndex) {
return mPages[pageIndex];
}
public int getPracticePage() {
return Math.max(0, mPages.length - 1);
}
public int getPagesCount() {
return mPages.length;
}
public int getLessonIndex() {
return mLessonIndex;
}
}