Search in sources :

Example 11 with Course

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("");
    }
}
Also used : FragmentActivity(android.support.v4.app.FragmentActivity) Submission(com.instructure.canvasapi2.models.Submission) View(android.view.View)

Example 12 with Course

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;
}
Also used : AlertDialog(android.support.v7.app.AlertDialog) DialogInterface(android.content.DialogInterface) ArrayList(java.util.ArrayList) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) SuppressLint(android.annotation.SuppressLint) AppCompatEditText(android.support.v7.widget.AppCompatEditText) SuppressLint(android.annotation.SuppressLint) Course(com.instructure.canvasapi2.models.Course) NonNull(android.support.annotation.NonNull)

Example 13 with Course

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;
}
Also used : AlertDialog(android.support.v7.app.AlertDialog) FragmentActivity(android.support.v4.app.FragmentActivity) DialogInterface(android.content.DialogInterface) SuppressLint(android.annotation.SuppressLint) CanvasContext(com.instructure.canvasapi2.models.CanvasContext) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) ExpandableListView(android.widget.ExpandableListView) NonNull(android.support.annotation.NonNull)

Example 14 with Course

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;
        }
    });
}
Also used : ArrayList(java.util.ArrayList) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) ExpandableListView(android.widget.ExpandableListView) SuppressLint(android.annotation.SuppressLint) QuizSubmissionQuestion(com.instructure.canvasapi2.models.QuizSubmissionQuestion) Course(com.instructure.canvasapi2.models.Course) ExpandableListView(android.widget.ExpandableListView)

Example 15 with Course

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;
}
Also used : Assignment(com.instructure.canvasapi2.models.Assignment) Navigation(com.instructure.interactions.Navigation) Bundle(android.os.Bundle) AdapterToAssignmentsCallback(com.instructure.candroid.interfaces.AdapterToAssignmentsCallback) AssignmentDateListRecyclerAdapter(com.instructure.candroid.adapter.AssignmentDateListRecyclerAdapter) AppBarLayout(android.support.design.widget.AppBarLayout) Course(com.instructure.canvasapi2.models.Course) View(android.view.View) AdapterView(android.widget.AdapterView) PageView(com.instructure.canvasapi2.utils.pageview.PageView) RecyclerView(android.support.v7.widget.RecyclerView)

Aggregations

Course (com.instructure.canvasapi2.models.Course)106 Test (org.junit.Test)70 ArrayList (java.util.ArrayList)39 Enrollment (com.instructure.canvasapi2.models.Enrollment)29 RestBuilder (com.instructure.canvasapi2.builders.RestBuilder)17 RestParams (com.instructure.canvasapi2.builders.RestParams)17 View (android.view.View)13 Bundle (android.os.Bundle)10 TextView (android.widget.TextView)10 NonNull (android.support.annotation.NonNull)8 AdapterView (android.widget.AdapterView)8 ModuleItem (com.instructure.canvasapi2.models.ModuleItem)8 ParentFragment (com.instructure.candroid.fragment.ParentFragment)7 CanvasContext (com.instructure.canvasapi2.models.CanvasContext)7 ImageView (android.widget.ImageView)6 LinkHeaders (com.instructure.canvasapi2.utils.LinkHeaders)6 List (java.util.List)6 BindView (butterknife.BindView)5 RecyclerView (android.support.v7.widget.RecyclerView)4 StatusCallback (com.instructure.canvasapi2.StatusCallback)4