use of com.instructure.canvasapi2.models.Course in project instructure-android by instructure.
the class GradeBinder method bind.
public static void bind(final GradeViewHolder holder, final Context context, final int courseColor, final Assignment assignment, final Course course, final boolean isEdit, final WhatIfDialogStyled.WhatIfDialogCallback dialogStyled, final AdapterToFragmentCallback<Assignment> adapterToFragmentCallback, final GradesListRecyclerAdapter.SetSelectedItemCallback selectedItemCallback) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
adapterToFragmentCallback.onRowClicked(assignment, holder.getAdapterPosition(), true);
selectedItemCallback.setSelected(holder.getAdapterPosition());
}
});
holder.title.setText(assignment.getName());
final int drawable = getAssignmentIcon(assignment);
holder.icon.setImageDrawable(ColorKeeper.getColoredDrawable(context, drawable, courseColor));
holder.pendingReviewIcon.setVisibility(View.GONE);
if (assignment.isMuted()) {
// mute that score
holder.points.setVisibility(View.GONE);
} else {
Submission submission = assignment.getSubmission();
if (submission != null && Const.PENDING_REVIEW.equals(submission.getWorkflowState())) {
holder.points.setVisibility(View.GONE);
holder.pendingReviewIcon.setVisibility(View.VISIBLE);
holder.pendingReviewIcon.setColorFilter(courseColor);
} else {
holder.points.setVisibility(View.VISIBLE);
setupGradeText(context, holder.points, assignment, submission, courseColor);
}
}
// configures whatIf editing boxes and listener for dialog
if (isEdit) {
holder.edit.setImageDrawable(ColorKeeper.getColoredDrawable(context, R.drawable.vd_edit, Color.BLACK));
holder.edit.setVisibility(View.VISIBLE);
holder.edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WhatIfDialogStyled.show((FragmentActivity) context, assignment.getPointsPossible(), dialogStyled, assignment, ColorKeeper.getOrGenerateColor(course), holder.getAdapterPosition());
}
});
} else {
holder.edit.setVisibility(View.GONE);
}
if (assignment.getDueAt() != null) {
holder.date.setText(DateHelper.getDayMonthDateString(context, assignment.getDueAt()));
} else {
holder.date.setText("");
}
}
use of com.instructure.canvasapi2.models.Course in project instructure-android by instructure.
the class AskInstructorDialogStyled method onCreateDialog.
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()).setTitle(getActivity().getString(R.string.instructor_question)).setPositiveButton(getActivity().getString(R.string.send), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (canClickSend) {
if (message == null || message.getText().toString().trim().equals("")) {
Toast.makeText(getActivity(), getString(R.string.emptyMessage), Toast.LENGTH_SHORT).show();
} else {
progressDialog = ProgressDialog.show(getActivity(), "", getActivity().getString(R.string.sending));
loadTeacherData();
}
}
}
});
// Suppress lint warning about null parent when inflating layout
@SuppressLint("InflateParams") final View view = LayoutInflater.from(getActivity()).inflate(R.layout.ask_instructor, null);
courseSpinner = view.findViewById(R.id.courseSpinner);
ArrayList<Course> loadingIndicator = new ArrayList<Course>();
Course loading = new Course();
loading.setName(getActivity().getString(R.string.loading));
loadingIndicator.add(loading);
courseAdapter = new CourseSpinnerAdapter(getActivity(), android.R.layout.simple_spinner_dropdown_item, loadingIndicator);
// we haven't set an onItemSelectedListener, so selecting the item shouldn't do anything
courseSpinner.setAdapter(courseAdapter);
message = view.findViewById(R.id.message);
builder.setView(view);
final AlertDialog dialog = builder.create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface worthless) {
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(ThemePrefs.getBrandColor());
ViewStyler.themeEditText(getContext(), (AppCompatEditText) message, ThemePrefs.getBrandColor());
}
});
dialog.setCanceledOnTouchOutside(true);
return dialog;
}
use of com.instructure.canvasapi2.models.Course in project instructure-android by instructure.
the class QuizQuestionDialog method onCreateDialog.
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final FragmentActivity activity = getActivity();
AlertDialog.Builder builder = new AlertDialog.Builder(activity).setTitle(activity.getString(R.string.viewQuestions)).setPositiveButton(activity.getString(R.string.okay), null);
// Suppress lint warning about null parent when inflating layout
@SuppressLint("InflateParams") View view = LayoutInflater.from(getActivity()).inflate(R.layout.quiz_question_dialog, null);
listView = view.findViewById(R.id.listview);
builder.setView(view);
final AlertDialog dialog = builder.create();
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface useless) {
CanvasContext course = getArguments().getParcelable(Const.COURSE);
if (course != null) {
int courseColor = ColorKeeper.getOrGenerateColor(course);
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(courseColor);
}
}
});
return dialog;
}
use of com.instructure.canvasapi2.models.Course in project instructure-android by instructure.
the class QuizQuestionDialog method onActivityCreated.
// /////////////////////////////////////////////////////////////////////////
// LifeCycle
// /////////////////////////////////////////////////////////////////////////
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ArrayList<Long> questionIds = (ArrayList<Long>) getArguments().getSerializable(Const.QUIZ_QUESTION_IDS);
final ArrayList<QuizSubmissionQuestion> submissionQuestions = getArguments().getParcelableArrayList(Const.QUIZ_QUESTIONS);
Course course = getArguments().getParcelable(Const.COURSE);
ArrayList<QuizSubmissionQuestion> flaggedQuestions = new ArrayList<>();
boolean hasFlagged;
hasFlagged = false;
for (QuizSubmissionQuestion quizSubmissionQuestion : submissionQuestions) {
if (quizSubmissionQuestion.isFlagged()) {
hasFlagged = true;
flaggedQuestions.add(quizSubmissionQuestion);
}
}
adapter = new QuestionAdapter(flaggedQuestions, submissionQuestions, questionIds, course, hasFlagged);
listView.setAdapter(adapter);
// expand all the groups
for (int i = 0; i < adapter.getGroupCount(); i++) {
listView.expandGroup(i);
}
listView.setGroupIndicator(null);
listView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
return true;
}
});
listView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView expandableListView, View view, int groupPosition, int childPosition, long l) {
// dismiss the dialog
dismiss();
// scroll to the correct index (position - 1). We passed the layoutManager into the constructor so we can use it here
int position = submissionQuestions.indexOf(adapter.getChild(groupPosition, childPosition));
layoutManager.scrollToPosition(position);
return true;
}
});
}
use of com.instructure.canvasapi2.models.Course in project instructure-android by instructure.
the class AssignmentListFragment method onCreateView.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mRootView = inflater.inflate(R.layout.assignment_list_layout, container, false);
mToolbar = mRootView.findViewById(R.id.toolbar);
setUpCallbacks();
mAdapterToAssignmentsCallback = new AdapterToAssignmentsCallback() {
@Override
public void setTermSpinnerState(boolean isEnabled) {
mTermSpinner.setEnabled(isEnabled);
if (mTermAdapter != null) {
if (isEnabled) {
mTermAdapter.setIsLoading(false);
} else {
mTermAdapter.setIsLoading(true);
}
mTermAdapter.notifyDataSetChanged();
}
}
@Override
public void onRowClicked(Assignment assignment, int position, boolean isOpenDetail) {
Navigation navigation = getNavigation();
if (navigation != null) {
Bundle bundle = AssignmentFragment.Companion.createBundle((Course) getCanvasContext(), assignment);
navigation.addFragment(FragUtils.getFrag(AssignmentFragment.class, bundle));
}
}
@Override
public void onRefreshFinished() {
setRefreshing(false);
}
};
// Just load the AssignmentGroup list in the case that its a Group
mRecyclerAdapter = new AssignmentDateListRecyclerAdapter(getContext(), getCanvasContext(), mGradingPeriodsCallback, mAdapterToAssignmentsCallback);
configureRecyclerView(mRootView, getContext(), mRecyclerAdapter, R.id.swipeRefreshLayout, R.id.emptyPandaView, R.id.listView);
mTermSpinner = mRootView.findViewById(R.id.termSpinner);
mTermSpinnerLayout = mRootView.findViewById(R.id.termSpinnerLayout);
AppBarLayout appBarLayout = mRootView.findViewById(R.id.appbar);
View shadow = mRootView.findViewById(R.id.shadow);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
shadow.setVisibility(View.GONE);
} else {
shadow.setVisibility(View.VISIBLE);
}
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int i) {
// workaround for Toolbar not showing with swipe to refresh
if (i == 0) {
setRefreshingEnabled(true);
} else {
setRefreshingEnabled(false);
}
}
});
return mRootView;
}
Aggregations