/*
* VITacademics
* Copyright (C) 2015 Aneesh Neelam <neelam.aneesh@gmail.com>
* Copyright (C) 2015 Saurabh Joshi <saurabhjoshi94@outlook.com>
* Copyright (C) 2015 Gaurav Agerwala <gauravagerwala@gmail.com>
* Copyright (C) 2015 Karthik Balakrishnan <karthikb351@gmail.com>
* Copyright (C) 2015 Pulkit Juneja <pulkit.16296@gmail.com>
* Copyright (C) 2015 Hemant Jain <hemanham@gmail.com>
* Copyright (C) 2015 Darshan Mehta <darshanmehta17@gmail.com>
*
* This file is part of VITacademics.
*
* VITacademics is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* VITacademics is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with VITacademics. If not, see <http://www.gnu.org/licenses/>.
*/
package com.karthikb351.vitinfo2.activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.karthikb351.vitinfo2.MainApplication;
import com.karthikb351.vitinfo2.R;
import com.karthikb351.vitinfo2.contract.Course;
import com.karthikb351.vitinfo2.fragment.details.DetailsPagerAdapter;
import com.karthikb351.vitinfo2.utility.Constants;
import java.util.List;
public class DetailsActivity extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager viewPager;
private DetailsPagerAdapter adapter;
private Course course;
private ProgressBar loadProgress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
List<Course> courseList = ((MainApplication) getApplication()).getDataHolderInstanceInitialized().getCourses();
Intent intent = getIntent();
if (intent.hasExtra(Constants.INTENT_EXTRA_CLASS_NUMBER)) {
setContentView(R.layout.activity_details);
initToolbar();
loadProgress = (ProgressBar) findViewById(R.id.progress_bar_details);
new LoadCourseTask(courseList).execute(intent.getIntExtra(Constants.INTENT_EXTRA_CLASS_NUMBER, -1));
} else {
setContentView(R.layout.app_message_not_available);
TextView errorMessage = (TextView) findViewById(R.id.message);
errorMessage.setText(getString(R.string.not_available));
}
}
private void initToolbar() {
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setTitle(getString(R.string.activity_details_title));
final ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
private class LoadCourseTask extends AsyncTask<Integer, Void, Course> {
private List<Course> courses;
LoadCourseTask(List<Course> courses) {
this.courses = courses;
}
@Override
protected void onPreExecute() {
loadProgress.setVisibility(View.VISIBLE);
}
@Override
protected void onPostExecute(Course course) {
loadProgress.setVisibility(View.GONE);
if (course == null)
return;
DetailsActivity.this.course = course;
tabLayout = (TabLayout) findViewById(R.id.tabs_details);
viewPager = (ViewPager) findViewById(R.id.view_pager_details);
adapter = new DetailsPagerAdapter(getSupportFragmentManager(), DetailsActivity.this, DetailsActivity.this.course);
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
}
@Override
protected Course doInBackground(Integer... params) {
Course foundCourse = null;
int classNumber = -1;
if (params.length > 0) {
classNumber = params[0];
}
if (classNumber == -1) {
return null;
}
for (Course courseItem : courses) {
if (courseItem.getClassNumber() == classNumber) {
foundCourse = courseItem;
}
}
return foundCourse;
}
}
}