Android Open Source - mobile2-android Courses Activity






From Project

Back to project page mobile2-android.

License

The source code is released under:

Apache License

If you think the Android project mobile2-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.ecollege.android;
// w  w w . ja  v a2 s.  c o  m
import java.util.List;

import roboguice.inject.InjectView;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

import com.ecollege.android.activities.ECollegeListActivity;
import com.ecollege.android.adapter.UberAdapter;
import com.ecollege.android.adapter.UberItem;
import com.ecollege.android.tasks.TaskPostProcessor;
import com.ecollege.api.ECollegeClient;
import com.ecollege.api.model.Course;
import com.ecollege.api.services.courses.FetchMyCoursesService;
import com.google.inject.Inject;

public class CoursesActivity extends ECollegeListActivity {
  
  public static final String COURSE_EXTRA = "COURSE_EXTRA";
  
  @Inject ECollegeApplication app;
  @Inject SharedPreferences prefs;
  @InjectView(R.id.reload_button) Button reloadButton;
  protected ECollegeClient client;
  protected LayoutInflater viewInflater;
  protected List<Course> courses;
  protected CourseArrayAdapter courseAdapter;
  
  protected View.OnClickListener reloadClickListener = new View.OnClickListener() {
    public void onClick(View v) {
      reloadAndDisplayCourses();
    }
  };
  
    @Override public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.courses);
        client = app.getClient();
        viewInflater = getLayoutInflater();
        courses = app.getCurrentCourseList();
        
        reloadButton.setOnClickListener(reloadClickListener);
        loadAndDisplayCourses(app.getCurrentCourseListLastLoaded());
    }

  protected void loadAndDisplayCourses(long lastUpdatedAt) {
    if (courseAdapter == null) courseAdapter = new CourseArrayAdapter(this);
    courseAdapter.updateItems(courses);
    courseAdapter.setLastUpdatedAt(lastUpdatedAt);
    setListAdapter(courseAdapter);
  }
  
  protected void reloadAndDisplayCourses() {
    courseAdapter.beginLoading();
    buildService(new FetchMyCoursesService())
      .bypassFileCache()
      .bypassResultCache()
      .setPostProcessor(new TaskPostProcessor<FetchMyCoursesService>() {
        @Override public FetchMyCoursesService onPostProcess(FetchMyCoursesService service) {
          app.setCurrentCourseList(service.getResult());
          return service;
        }
      })
      .execute();
  }

  public void onServiceCallSuccess(FetchMyCoursesService service) {
    loadAndDisplayCourses(service.getCompletedAt());
  }
  
  public void onServiceCallException(FetchMyCoursesService service, Exception ex) {
    courseAdapter.hasError();
  }

  @Override protected void onListItemClick(ListView l, View v, int position, long id) {
    @SuppressWarnings("unchecked")
    UberItem<Course> item = (UberItem<Course>)l.getItemAtPosition(position);
    Intent intent = new Intent(this, CourseActivity.class);
    intent.putExtra(COURSE_EXTRA, item.getDataItem());
    startActivity(intent);
  }

  protected class CourseViewHolder {
    public TextView courseTitleText;
    public TextView courseDescriptionText;
  }
  
  protected class CourseArrayAdapter extends UberAdapter<Course> {


    public CourseArrayAdapter(Context context) {
      super(context,false,false,false);
    }
    
    @Override
    protected View getDataItemView(View convertView, ViewGroup parent,
        UberItem<Course> item) {
      CourseViewHolder holder;
      if (convertView == null) {
        convertView = viewInflater.inflate(R.layout.course_item, null);
        holder = new CourseViewHolder();
        holder.courseTitleText = (TextView) convertView.findViewById(R.id.title_text);
        holder.courseDescriptionText = (TextView) convertView.findViewById(R.id.description_text);
        convertView.setTag(holder);
      } else {
        holder = (CourseViewHolder) convertView.getTag();
      }
      
      Course course = item.getDataItem();
      holder.courseTitleText.setText(Html.fromHtml(course.getTitle()));
      holder.courseDescriptionText.setText(course.getDisplayCourseCode());
      
      return convertView;
    }
    
  }
  
}




Java Source Code List

com.ecollege.android.AnnouncementActivity.java
com.ecollege.android.CourseActivity.java
com.ecollege.android.CourseAnnouncementsActivity.java
com.ecollege.android.CourseDiscussionsActivity.java
com.ecollege.android.CourseGradebookActivity.java
com.ecollege.android.CoursePeopleActivity.java
com.ecollege.android.CourseThreadActivity.java
com.ecollege.android.CoursesActivity.java
com.ecollege.android.DiscussionsActivity.java
com.ecollege.android.DropboxMessageActivity.java
com.ecollege.android.ECollegeApplication.java
com.ecollege.android.GradeActivity.java
com.ecollege.android.HomeActivity.java
com.ecollege.android.HtmlContentActivity.java
com.ecollege.android.LoginActivity.java
com.ecollege.android.MainActivity.java
com.ecollege.android.PersonActivity.java
com.ecollege.android.ProfileActivity.java
com.ecollege.android.SingleSignonActivity.java
com.ecollege.android.SplashActivity.java
com.ecollege.android.UserDiscussionActivity.java
com.ecollege.android.UserResponseActivity.java
com.ecollege.android.UserTopicActivity.java
com.ecollege.android.activities.ECollegeActivityHelper.java
com.ecollege.android.activities.ECollegeActivity.java
com.ecollege.android.activities.ECollegeDefaultActivity.java
com.ecollege.android.activities.ECollegeListActivity.java
com.ecollege.android.activities.ECollegeTabActivity.java
com.ecollege.android.adapter.ActivityFeedAdapter.java
com.ecollege.android.adapter.GroupedAdapter.java
com.ecollege.android.adapter.LoadMoreAdapter.java
com.ecollege.android.adapter.ParentAdapterObserver.java
com.ecollege.android.adapter.ResponseAdapter.java
com.ecollege.android.adapter.TopicsAdapter.java
com.ecollege.android.adapter.UberAdapter.java
com.ecollege.android.adapter.UberItem.java
com.ecollege.android.adapter.UpcomingEventsAdapter.java
com.ecollege.android.adapter.WaitingForApiAdapter.java
com.ecollege.android.errors.ECollegeAlertException.java
com.ecollege.android.errors.ECollegeException.java
com.ecollege.android.errors.ECollegePromptException.java
com.ecollege.android.errors.ECollegePromptRetryException.java
com.ecollege.android.tasks.ECollegeAsyncTask.java
com.ecollege.android.tasks.ServiceCallTask.java
com.ecollege.android.tasks.TaskPostProcessor.java
com.ecollege.android.util.CacheConfiguration.java
com.ecollege.android.util.DateTimeUtil.java
com.ecollege.android.util.FileCacheManager.java
com.ecollege.android.util.VolatileCacheManager.java
com.ecollege.android.view.HeaderView.java
com.ecollege.android.view.helpers.ResponseCountViewHelper.java