From 3bca2dfaea43c68bcb22a308c403a5265cd0e88d Mon Sep 17 00:00:00 2001 From: SpencerDo Date: Wed, 28 Oct 2015 20:54:00 -0700 Subject: [PATCH 1/5] modifies build.gradle file, to add external library. --- app/build.gradle | 47 +++++++++-- app/src/main/AndroidManifest.xml | 1 + .../java/com/assist/dg/androidassist/App.java | 49 ++++++++++++ .../assist/dg/androidassist/util/WLog.java | 79 +++++++++++++++++++ app/src/main/res/menu/menu_choose_major.xml | 7 -- app/src/main/res/values-v21/strings.xml | 2 - app/src/main/res/values/strings.xml | 2 - build.gradle | 9 ++- 8 files changed, 179 insertions(+), 17 deletions(-) create mode 100644 app/src/main/java/com/assist/dg/androidassist/App.java create mode 100644 app/src/main/java/com/assist/dg/androidassist/util/WLog.java delete mode 100644 app/src/main/res/menu/menu_choose_major.xml diff --git a/app/build.gradle b/app/build.gradle index c2bc031..154bb2e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,22 +1,59 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.droidtitan:lint-cleaner-plugin:0.3.0' + } +} + apply plugin: 'com.android.application' +apply plugin: 'com.droidtitan.lintcleaner' android { - compileSdkVersion 23 - buildToolsVersion "21.1.2" + compileSdkVersion rootProject.ext.compileSdkVersion + buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId "com.assist.dg.androidassist" - minSdkVersion 16 - targetSdkVersion 23 + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" } buildTypes { + def STRING = "String" + def BOOLEAN = "boolean" + def TRUE = "true" + def FALSE = "false" + def END_POINT = "END_POINT" + def LOCAL_END_POINT = "\"http://localhost:8081\"" + def PRODUCTION_END_POINT = "\"http://assist.spencerdo.com\"" + + debug { + buildConfigField STRING, END_POINT, LOCAL_END_POINT + } release { minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' +// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + buildConfigField STRING, END_POINT, PRODUCTION_END_POINT } } + lintOptions { + checkReleaseBuilds false + abortOnError false + disable 'InvalidPackage' + } + lintCleaner { + // Exclude specific files + } + packagingOptions { + exclude 'META-INF/services/javax.annotation.processing.Processor' + exclude 'META-INF/NOTICE.txt' + exclude 'META-INF/LICENSE.txt' + exclude 'LICENSE.txt' + exclude 'LICENSE' + } } dependencies { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dd17621..7d38deb 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ - - diff --git a/app/src/main/res/values-v21/strings.xml b/app/src/main/res/values-v21/strings.xml index 5737445..b3a63c2 100644 --- a/app/src/main/res/values-v21/strings.xml +++ b/app/src/main/res/values-v21/strings.xml @@ -1,6 +1,4 @@ AndroidAssist - Hello world! Settings - ChooseMajor diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4cd1804..2147c7e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2,12 +2,10 @@ AndroidAssist Swipe for more action Settings - ChooseMajor CoursesActivity I\'ve taken the class More Info InfoFragment - Hello world! InfoActivity The detail of class goes here diff --git a/build.gradle b/build.gradle index 7ff949a..2e5216f 100644 --- a/build.gradle +++ b/build.gradle @@ -3,10 +3,10 @@ buildscript { repositories { jcenter() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' - // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } @@ -19,3 +19,10 @@ allprojects { } } +ext { + compileSdkVersion = 23 + buildToolsVersion = '21.1.2' + + minSdkVersion = 16 + targetSdkVersion = 23 +} From 0a493b45b87759ab7b343954d7282f025c95ea18 Mon Sep 17 00:00:00 2001 From: SpencerDo Date: Wed, 28 Oct 2015 20:55:38 -0700 Subject: [PATCH 2/5] applies reformatting indents --- app/build.gradle | 2 +- .../Activity/CoursesActivity.java | 57 +++--- .../androidassist/Activity/InfoActivity.java | 77 ++++---- .../androidassist/Activity/MainActivity.java | 106 +++++------ .../Adapter/CourseListAdapter.java | 82 ++++---- .../Fragment/ChooseMajorFragment.java | 96 +++++----- .../Fragment/CoursesFragment.java | 78 ++++---- .../dg/androidassist/Parser/MajorParser.java | 175 +++++++++--------- .../dg/androidassist/Parser/UnivParser.java | 140 +++++++------- .../dg/androidassist/RequiredClass.java | 131 +++++++------ build.gradle | 35 ++-- 11 files changed, 466 insertions(+), 513 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 154bb2e..27fed60 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -35,7 +35,7 @@ android { } release { minifyEnabled false -// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' buildConfigField STRING, END_POINT, PRODUCTION_END_POINT } } diff --git a/app/src/main/java/com/assist/dg/androidassist/Activity/CoursesActivity.java b/app/src/main/java/com/assist/dg/androidassist/Activity/CoursesActivity.java index 07d0e3d..0c2cf6c 100644 --- a/app/src/main/java/com/assist/dg/androidassist/Activity/CoursesActivity.java +++ b/app/src/main/java/com/assist/dg/androidassist/Activity/CoursesActivity.java @@ -10,38 +10,33 @@ public class CoursesActivity extends ActionBarActivity { - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_courses); - if (savedInstanceState == null) { - getSupportFragmentManager().beginTransaction() - .add(R.id.container, new CoursesFragment()) - .commit(); - } + @Override protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_courses); + if (savedInstanceState == null) { + getSupportFragmentManager().beginTransaction() + .add(R.id.container, new CoursesFragment()) + .commit(); } - - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.menu_courses, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - // Handle action bar item clicks here. The action bar will - // automatically handle clicks on the Home/Up button, so long - // as you specify a parent activity in AndroidManifest.xml. - int id = item.getItemId(); - - //noinspection SimplifiableIfStatement - if (id == R.id.action_settings) { - return true; - } - - return super.onOptionsItemSelected(item); + } + + @Override public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.menu_courses, menu); + return true; + } + + @Override public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; } + return super.onOptionsItemSelected(item); + } } diff --git a/app/src/main/java/com/assist/dg/androidassist/Activity/InfoActivity.java b/app/src/main/java/com/assist/dg/androidassist/Activity/InfoActivity.java index 22cf2f4..d399f91 100644 --- a/app/src/main/java/com/assist/dg/androidassist/Activity/InfoActivity.java +++ b/app/src/main/java/com/assist/dg/androidassist/Activity/InfoActivity.java @@ -13,53 +13,48 @@ public class InfoActivity extends ActionBarActivity { - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_info); - if (savedInstanceState == null) { - getSupportFragmentManager().beginTransaction() - .add(R.id.container, new PlaceholderFragment()) - .commit(); - } + @Override protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_info); + if (savedInstanceState == null) { + getSupportFragmentManager().beginTransaction() + .add(R.id.container, new PlaceholderFragment()) + .commit(); } - - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.menu_info, menu); - return true; + } + + @Override public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.menu_info, menu); + return true; + } + + @Override public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; } - @Override - public boolean onOptionsItemSelected(MenuItem item) { - // Handle action bar item clicks here. The action bar will - // automatically handle clicks on the Home/Up button, so long - // as you specify a parent activity in AndroidManifest.xml. - int id = item.getItemId(); + return super.onOptionsItemSelected(item); + } - //noinspection SimplifiableIfStatement - if (id == R.id.action_settings) { - return true; - } + /** + * A placeholder fragment containing a simple view. + */ + public static class PlaceholderFragment extends Fragment { - return super.onOptionsItemSelected(item); + public PlaceholderFragment() { } - /** - * A placeholder fragment containing a simple view. - */ - public static class PlaceholderFragment extends Fragment { - - public PlaceholderFragment() { - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View rootView = inflater.inflate(R.layout.fragment_info, container, false); - return rootView; - } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.fragment_info, container, false); + return rootView; } + } } diff --git a/app/src/main/java/com/assist/dg/androidassist/Activity/MainActivity.java b/app/src/main/java/com/assist/dg/androidassist/Activity/MainActivity.java index 079e152..2f1222e 100644 --- a/app/src/main/java/com/assist/dg/androidassist/Activity/MainActivity.java +++ b/app/src/main/java/com/assist/dg/androidassist/Activity/MainActivity.java @@ -11,76 +11,66 @@ import com.assist.dg.androidassist.fragment.CollegeUnivFragment; import com.assist.dg.androidassist.R; - public class MainActivity extends ActionBarActivity { - private final static String TAG_FRAGMENT = "TAG_FRAGMENT"; - String selectedUnivValue; - - public void setSelectedUnivValue(String univValue){ - selectedUnivValue = univValue; - } + private final static String TAG_FRAGMENT = "TAG_FRAGMENT"; + String selectedUnivValue; - public String getSelectedUnivValue(){ - return selectedUnivValue; - } + public void setSelectedUnivValue(String univValue) { + selectedUnivValue = univValue; + } - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - if (savedInstanceState == null) { - getSupportFragmentManager().beginTransaction() - .add(R.id.container, new CollegeUnivFragment()) - .commit(); - } + public String getSelectedUnivValue() { + return selectedUnivValue; + } + @Override protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + if (savedInstanceState == null) { + getSupportFragmentManager().beginTransaction() + .add(R.id.container, new CollegeUnivFragment()) + .commit(); } - - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.menu_main, menu); - return true; + } + + @Override public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.menu_main, menu); + return true; + } + + @Override public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; } - @Override - public boolean onOptionsItemSelected(MenuItem item) { - // Handle action bar item clicks here. The action bar will - // automatically handle clicks on the Home/Up button, so long - // as you specify a parent activity in AndroidManifest.xml. - int id = item.getItemId(); + return super.onOptionsItemSelected(item); + } - //noinspection SimplifiableIfStatement - if (id == R.id.action_settings) { - return true; - } + public void showMajorFragment() { + // Create new fragment and transaction - return super.onOptionsItemSelected(item); - } + Fragment newFragment = new ChooseMajorFragment(); + FragmentTransaction transaction = getFragmentManager().beginTransaction(); - public void showMajorFragment(){ - // Create new fragment and transaction + transaction.replace(R.id.container, newFragment, TAG_FRAGMENT); + transaction.addToBackStack(null); - Fragment newFragment = new ChooseMajorFragment(); - FragmentTransaction transaction = getFragmentManager().beginTransaction(); + transaction.commit(); + } - transaction.replace(R.id.container, newFragment, TAG_FRAGMENT); - transaction.addToBackStack(null); - - - transaction.commit(); - } - - @Override - public void onBackPressed() { - if (getFragmentManager().getBackStackEntryCount() > 0) { - getFragmentManager().popBackStack(); - } else { - super.onBackPressed(); - } + @Override public void onBackPressed() { + if (getFragmentManager().getBackStackEntryCount() > 0) { + getFragmentManager().popBackStack(); + } else { + super.onBackPressed(); } - - + } } diff --git a/app/src/main/java/com/assist/dg/androidassist/Adapter/CourseListAdapter.java b/app/src/main/java/com/assist/dg/androidassist/Adapter/CourseListAdapter.java index 5e40940..3f501fd 100644 --- a/app/src/main/java/com/assist/dg/androidassist/Adapter/CourseListAdapter.java +++ b/app/src/main/java/com/assist/dg/androidassist/Adapter/CourseListAdapter.java @@ -17,50 +17,46 @@ */ public class CourseListAdapter extends BaseAdapter { - private ArrayList objects; - private LayoutInflater inflater; - - private class ViewHolder{ - TextView requiredClass; - TextView univEquivalent; - } - - public CourseListAdapter(Context context, ArrayList objects){ - inflater = LayoutInflater.from(context); - this.objects = objects; + private ArrayList objects; + private LayoutInflater inflater; + + private class ViewHolder { + TextView requiredClass; + TextView univEquivalent; + } + + public CourseListAdapter(Context context, ArrayList objects) { + inflater = LayoutInflater.from(context); + this.objects = objects; + } + + @Override public int getCount() { + return objects.size(); + } + + @Override public Object getItem(int position) { + return objects.get(position); + } + + @Override public long getItemId(int position) { + return position; + } + + @Override public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder holder = null; + if (convertView == null) { + holder = new ViewHolder(); + convertView = inflater.inflate(R.layout.swipelistview, null); + holder.requiredClass = (TextView) convertView.findViewById(R.id.required_class_textview); + holder.univEquivalent = (TextView) convertView.findViewById(R.id.univ_equivalent_textview); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); } - @Override - public int getCount() { - return objects.size(); - } - - @Override - public Object getItem(int position) { - return objects.get(position); - } + holder.requiredClass.setText(objects.get(position).getFormalClassName()); + holder.univEquivalent.setText(objects.get(position).getUnivEquivalent()); - @Override - public long getItemId(int position) { - return position; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder holder = null; - if (convertView == null) { - holder = new ViewHolder(); - convertView = inflater.inflate(R.layout.swipelistview, null); - holder.requiredClass = (TextView) convertView.findViewById(R.id.required_class_textview); - holder.univEquivalent = (TextView) convertView.findViewById(R.id.univ_equivalent_textview); - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - - holder.requiredClass.setText(objects.get(position).getFormalClassName()); - holder.univEquivalent.setText(objects.get(position).getUnivEquivalent()); - - return convertView; - } + return convertView; + } } diff --git a/app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java b/app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java index 8932c89..e9fdae9 100644 --- a/app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java +++ b/app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java @@ -23,66 +23,58 @@ */ public class ChooseMajorFragment extends Fragment { - public ArrayList listOfMajors; - public ArrayList listOfMajorValue; - public String selectedUnivValue; - public String selectedMajorValue; - Spinner chooseMajorSpinner; - Button viewCoursesButton; - - public ChooseMajorFragment() { - listOfMajors = new ArrayList(); - listOfMajors.add("Choose a Major"); - - //Add dummy data - for (int i=0; i<15; i++){ - listOfMajors.add("Major " + i); - } - - + public ArrayList listOfMajors; + public ArrayList listOfMajorValue; + public String selectedUnivValue; + public String selectedMajorValue; + Spinner chooseMajorSpinner; + Button viewCoursesButton; + + public ChooseMajorFragment() { + listOfMajors = new ArrayList(); + listOfMajors.add("Choose a Major"); + + //Add dummy data + for (int i = 0; i < 15; i++) { + listOfMajors.add("Major " + i); } + } - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View rootView = inflater.inflate(R.layout.fragment_choose_major, container, false); - - - selectedUnivValue = ((MainActivity) getActivity()).getSelectedUnivValue(); + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.fragment_choose_major, container, false); - MajorParser majorparser = new MajorParser(this); - majorparser.execute(); + selectedUnivValue = ((MainActivity) getActivity()).getSelectedUnivValue(); + MajorParser majorparser = new MajorParser(this); + majorparser.execute(); - chooseMajorSpinner = (Spinner) rootView.findViewById(R.id.choose_major_spinner); - ArrayAdapter majorAdapter = new ArrayAdapter(getActivity(), R.layout.spinner_item, listOfMajors); - chooseMajorSpinner.setAdapter(majorAdapter); + chooseMajorSpinner = (Spinner) rootView.findViewById(R.id.choose_major_spinner); + ArrayAdapter majorAdapter = + new ArrayAdapter(getActivity(), R.layout.spinner_item, listOfMajors); + chooseMajorSpinner.setAdapter(majorAdapter); - chooseMajorSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - if (position != 0){ - selectedMajorValue = listOfMajorValue.get(position); - } - } - - @Override - public void onNothingSelected(AdapterView parent) { - - } - }); + chooseMajorSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + if (position != 0) { + selectedMajorValue = listOfMajorValue.get(position); + } + } - viewCoursesButton = (Button) rootView.findViewById(R.id.view_courses_button); - viewCoursesButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getActivity(), CoursesActivity.class); - startActivity(intent); + @Override public void onNothingSelected(AdapterView parent) { - } - }); + } + }); - return rootView; - } + viewCoursesButton = (Button) rootView.findViewById(R.id.view_courses_button); + viewCoursesButton.setOnClickListener(new View.OnClickListener() { + @Override public void onClick(View v) { + Intent intent = new Intent(getActivity(), CoursesActivity.class); + startActivity(intent); + } + }); + return rootView; + } } \ No newline at end of file diff --git a/app/src/main/java/com/assist/dg/androidassist/Fragment/CoursesFragment.java b/app/src/main/java/com/assist/dg/androidassist/Fragment/CoursesFragment.java index 18d8717..3576428 100644 --- a/app/src/main/java/com/assist/dg/androidassist/Fragment/CoursesFragment.java +++ b/app/src/main/java/com/assist/dg/androidassist/Fragment/CoursesFragment.java @@ -23,58 +23,54 @@ public class CoursesFragment extends Fragment { - RequiredClass[] temp; - ArrayList classList; - SwipeListView swipeListView; + RequiredClass[] temp; + ArrayList classList; + SwipeListView swipeListView; - public CoursesFragment() { + public CoursesFragment() { - classList = new ArrayList(); - //Fill with dummy data - int numOfPrerequisites = 3; - int numOfRequiredClasses = 20; - temp = new RequiredClass[numOfRequiredClasses]; + classList = new ArrayList(); + //Fill with dummy data + int numOfPrerequisites = 3; + int numOfRequiredClasses = 20; + temp = new RequiredClass[numOfRequiredClasses]; - for (int i=0; i { - ArrayList listOfMajors; - ArrayList listOfMajorValues; - String selectedUnivValue; - - ChooseMajorFragment majorFragment; - - public MajorParser(ChooseMajorFragment majorFragment){ - this.majorFragment = majorFragment; - this.listOfMajors = majorFragment.listOfMajors; - this.listOfMajorValues = majorFragment.listOfMajorValue; - this.selectedUnivValue = majorFragment.selectedUnivValue; - } - - - @Override - protected String doInBackground(Void... params) { - - String majorJsonStr; - HttpURLConnection urlConnection = null; - BufferedReader reader = null; - - final String API_URL = "http://159.203.90.30:8081/api/" + selectedUnivValue + "/majors"; - //Testing - Log.d("major_parser", API_URL); - + ArrayList listOfMajors; + ArrayList listOfMajorValues; + String selectedUnivValue; + + ChooseMajorFragment majorFragment; + + public MajorParser(ChooseMajorFragment majorFragment) { + this.majorFragment = majorFragment; + this.listOfMajors = majorFragment.listOfMajors; + this.listOfMajorValues = majorFragment.listOfMajorValue; + this.selectedUnivValue = majorFragment.selectedUnivValue; + } + + @Override protected String doInBackground(Void... params) { + + String majorJsonStr; + HttpURLConnection urlConnection = null; + BufferedReader reader = null; + + final String API_URL = "http://159.203.90.30:8081/api/" + selectedUnivValue + "/majors"; + //Testing + Log.d("major_parser", API_URL); + + try { + URL url = new URL(API_URL); + urlConnection = (HttpURLConnection) url.openConnection(); + urlConnection.setRequestMethod("GET"); + urlConnection.connect(); + + //Read the input + InputStream inputStream = urlConnection.getInputStream(); + StringBuffer buffer = new StringBuffer(); + + if (inputStream == null) { + return null; + } + + reader = new BufferedReader(new InputStreamReader(inputStream)); + String line; + + while (reader.readLine() != null) { + line = reader.readLine(); + buffer.append(line + "\n"); + } + + if (buffer.length() == 0) { + return null; + } + + majorJsonStr = buffer.toString(); + } catch (Exception e) { + Log.e("major_parser", "ERROR ON CONNECTING TO PARSE MAJOR"); + return null; + } finally { + if (urlConnection != null) { + urlConnection.disconnect(); + } + if (reader != null) { try { - URL url = new URL(API_URL); - urlConnection = (HttpURLConnection) url.openConnection(); - urlConnection.setRequestMethod("GET"); - urlConnection.connect(); - - //Read the input - InputStream inputStream = urlConnection.getInputStream(); - StringBuffer buffer = new StringBuffer(); - - if (inputStream == null){ - return null; - } - - reader = new BufferedReader(new InputStreamReader(inputStream)); - String line; - - while(reader.readLine() != null){ - line = reader.readLine(); - buffer.append(line + "\n"); - } - - if (buffer.length() == 0){ - return null; - } - - majorJsonStr = buffer.toString(); - } catch (Exception e){ - Log.e("major_parser", "ERROR ON CONNECTING TO PARSE MAJOR"); - return null; - } finally { - if (urlConnection != null) { - urlConnection.disconnect(); - } - if (reader != null){ - try { - reader.close(); - } catch (Exception e){ - Log.e("major_parser", "ERROR CLOSING STREAM"); - } - } + reader.close(); + } catch (Exception e) { + Log.e("major_parser", "ERROR CLOSING STREAM"); } - return majorJsonStr; - } - - @Override - protected void onPostExecute(String majorJsonStr){ - setListOfMajors(majorJsonStr); + } } - - public void setListOfMajors(String majorJsonStr){ - try { - JSONArray arrayOfMajors = new JSONArray(majorJsonStr); - JSONObject major; - listOfMajors.clear(); - listOfMajorValues.clear(); - listOfMajors.add("Choose a Major"); - listOfMajorValues.add("default_value"); - for (int i=0; i, Void, String> { - ArrayList listOfUniversities; - ArrayList listOfUnivValues; + ArrayList listOfUniversities; + ArrayList listOfUnivValues; - @Override - protected String doInBackground(ArrayList... params) { + @Override protected String doInBackground(ArrayList... params) { - HttpURLConnection urlConnection = null; - BufferedReader reader = null; + HttpURLConnection urlConnection = null; + BufferedReader reader = null; - String univJsonStr = null; + String univJsonStr = null; - listOfUniversities = new ArrayList(); - listOfUniversities = params[0]; - listOfUnivValues = params[1]; + listOfUniversities = new ArrayList(); + listOfUniversities = params[0]; + listOfUnivValues = params[1]; - try { - final String API_URL = "http://159.203.90.30:8081/api/schools"; + try { + final String API_URL = "http://159.203.90.30:8081/api/schools"; - URL url = new URL(API_URL); - urlConnection = (HttpURLConnection) url.openConnection(); - urlConnection.setRequestMethod("GET"); - urlConnection.connect(); + URL url = new URL(API_URL); + urlConnection = (HttpURLConnection) url.openConnection(); + urlConnection.setRequestMethod("GET"); + urlConnection.connect(); - //Read - InputStream inputStream = urlConnection.getInputStream(); - StringBuffer buffer = new StringBuffer(); + //Read + InputStream inputStream = urlConnection.getInputStream(); + StringBuffer buffer = new StringBuffer(); - if (inputStream == null){ - return null; - } + if (inputStream == null) { + return null; + } - reader = new BufferedReader(new InputStreamReader(inputStream)); - String line; + reader = new BufferedReader(new InputStreamReader(inputStream)); + String line; - while((line = reader.readLine()) != null){ - buffer.append(line + "\n"); - } + while ((line = reader.readLine()) != null) { + buffer.append(line + "\n"); + } - if (buffer.length() == 0){ - return null; - } - - univJsonStr = buffer.toString(); - } catch (Exception e) { - Log.e("univ_parser", "ERROR CONNECTING TO API", e); - } finally { - if (urlConnection != null){ - urlConnection.disconnect(); - } - if (reader != null){ - try { - reader.close(); - } catch (Exception e){ - Log.e("univ_parser", "ERROR CLOSING", e); - } - } - } - /** - //Testing the JSON, using hardcoded data - univJsonStr = "[" + "{" + "\"" + "school" + "\"" + ":\"" + "California Maritime Academy" +"\"" + ",\"" + "value\"" + ":\"CSUMA\"}," + - "{\"school\":\"California Polytechnic University, Pomona\",\"value\":\"CPP\"}," + - "{\"school\":\"California Polytechnic University, San Luis Obispo\",\"value\":\"CPSLO\"}" + "]"; - **/ - return univJsonStr; - } + if (buffer.length() == 0) { + return null; + } - @Override - protected void onPostExecute(String json){ + univJsonStr = buffer.toString(); + } catch (Exception e) { + Log.e("univ_parser", "ERROR CONNECTING TO API", e); + } finally { + if (urlConnection != null) { + urlConnection.disconnect(); + } + if (reader != null) { try { - setListOfUniversities(json); + reader.close(); } catch (Exception e) { - Log.e("univ_parser", "Error converting json to list", e); + Log.e("univ_parser", "ERROR CLOSING", e); } + } } - - public void setListOfUniversities(String univJsonStr) throws JSONException{ - JSONArray arrayOfUnivs = new JSONArray(univJsonStr); - JSONObject univs; - listOfUniversities.clear(); - listOfUnivValues.clear(); - listOfUniversities.add("Choose a University"); - listOfUnivValues.add("default_value"); - for (int i=0; i Date: Wed, 28 Oct 2015 23:52:00 -0700 Subject: [PATCH 3/5] shows list of colleges on the screen. --- app/app.iml | 21 ++-- app/build.gradle | 25 +++-- app/src/main/AndroidManifest.xml | 60 +++++------- .../androidassist/Activity/BaseActivity.java | 26 +++++ .../Activity/CoursesActivity.java | 42 -------- .../androidassist/Activity/MainActivity.java | 75 +-------------- .../Adapter/CollegeListAdapter.java | 69 ++++++++++++++ .../java/com/assist/dg/androidassist/App.java | 95 +++++++++++++++---- .../androidassist/Fragment/BaseFragment.java | 41 ++++++++ .../Fragment/ChooseMajorFragment.java | 13 +-- .../Fragment/CollegeListFragment.java | 63 ++++++++++++ .../Fragment/CollegeUnivFragment.java | 7 +- .../dg/androidassist/model/College.java | 25 +++++ .../assist/dg/androidassist/model/Course.java | 10 ++ .../assist/dg/androidassist/model/Major.java | 19 ++++ .../dg/androidassist/model/University.java | 19 ++++ .../dg/androidassist/service/ApiProvider.java | 25 +++++ .../dg/androidassist/service/ApiService.java | 26 +++++ app/src/main/res/drawable/list_border.xml | 2 +- app/src/main/res/layout/activity_base.xml | 13 +++ .../main/res/layout/fragment_college_list.xml | 13 +++ app/src/main/res/layout/fragment_main.xml | 4 - app/src/main/res/layout/row_college.xml | 15 +++ app/src/main/res/values-v21/colors.xml | 9 +- app/src/main/res/values/styles.xml | 15 +-- build.gradle | 5 +- 26 files changed, 524 insertions(+), 213 deletions(-) create mode 100644 app/src/main/java/com/assist/dg/androidassist/Activity/BaseActivity.java delete mode 100644 app/src/main/java/com/assist/dg/androidassist/Activity/CoursesActivity.java create mode 100644 app/src/main/java/com/assist/dg/androidassist/Adapter/CollegeListAdapter.java create mode 100644 app/src/main/java/com/assist/dg/androidassist/Fragment/BaseFragment.java create mode 100644 app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeListFragment.java create mode 100644 app/src/main/java/com/assist/dg/androidassist/model/College.java create mode 100644 app/src/main/java/com/assist/dg/androidassist/model/Course.java create mode 100644 app/src/main/java/com/assist/dg/androidassist/model/Major.java create mode 100644 app/src/main/java/com/assist/dg/androidassist/model/University.java create mode 100644 app/src/main/java/com/assist/dg/androidassist/service/ApiProvider.java create mode 100644 app/src/main/java/com/assist/dg/androidassist/service/ApiService.java create mode 100644 app/src/main/res/layout/activity_base.xml create mode 100644 app/src/main/res/layout/fragment_college_list.xml create mode 100644 app/src/main/res/layout/row_college.xml diff --git a/app/app.iml b/app/app.iml index 209d470..06c1722 100644 --- a/app/app.iml +++ b/app/app.iml @@ -72,12 +72,14 @@ - - - + + + + + @@ -97,18 +99,23 @@ + - - + + - - + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 27fed60..3505812 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,6 +20,7 @@ android { targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" + multiDexEnabled true } buildTypes { def STRING = "String" @@ -27,7 +28,7 @@ android { def TRUE = "true" def FALSE = "false" def END_POINT = "END_POINT" - def LOCAL_END_POINT = "\"http://localhost:8081\"" + def LOCAL_END_POINT = "\"http://assist.spencerdo.com\"" def PRODUCTION_END_POINT = "\"http://assist.spencerdo.com\"" debug { @@ -44,9 +45,6 @@ android { abortOnError false disable 'InvalidPackage' } - lintCleaner { - // Exclude specific files - } packagingOptions { exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/NOTICE.txt' @@ -60,15 +58,22 @@ dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.miguelcatalan:materialsearchview:1.3.0' compile 'com.github.bumptech.glide:glide:3.6.1' - compile 'com.squareup.retrofit:retrofit:2.0.0-beta2' + compile ('com.squareup.retrofit:retrofit:2.0.0-beta2') { + // exclude Retrofit’s OkHttp peer-dependency module and define your own module import + exclude module: 'okhttp' + } + compile 'com.squareup.okhttp:okhttp:2.5.0' + compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' + compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2' + compile 'io.reactivex:rxandroid:1.0.1' compile 'com.jakewharton:butterknife:7.0.1' compile 'com.google.code.gson:gson:2.3@jar' compile('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') { transitive = true } - compile 'com.android.support:support-v4:23.1.0' - compile 'com.android.support:support-annotations:23.1.0' - compile 'com.android.support:design:23.1.0' - compile 'com.android.support:recyclerview-v7:23.1.0' - compile 'com.android.support:cardview-v7:23.1.0' + compile ('com.android.support:support-v4:${rootProject.ext.supportVersion}') + compile 'com.android.support:support-annotations:23.0.1' + compile 'com.android.support:design:23.0.1' + compile 'com.android.support:recyclerview-v7:23.0.1' + compile 'com.android.support:cardview-v7:23.0.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7d38deb..323067c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,44 +1,32 @@ + package="com.assist.dg.androidassist" + > - + - + - - - + > + + - - - - - - - - - - - - + + + + + + diff --git a/app/src/main/java/com/assist/dg/androidassist/Activity/BaseActivity.java b/app/src/main/java/com/assist/dg/androidassist/Activity/BaseActivity.java new file mode 100644 index 0000000..b762f9c --- /dev/null +++ b/app/src/main/java/com/assist/dg/androidassist/Activity/BaseActivity.java @@ -0,0 +1,26 @@ +package com.assist.dg.androidassist.activity; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import com.assist.dg.androidassist.R; +import com.assist.dg.androidassist.fragment.BaseFragment; + +/** + * Created by Spencer Do on 2015. 10. 28.. + */ +public abstract class BaseActivity extends AppCompatActivity { + + @Override protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_base); + try { + getFragmentManager().beginTransaction() + .add(R.id.activity_layout, createBaseFragment()) + .commit(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public abstract BaseFragment createBaseFragment(); +} diff --git a/app/src/main/java/com/assist/dg/androidassist/Activity/CoursesActivity.java b/app/src/main/java/com/assist/dg/androidassist/Activity/CoursesActivity.java deleted file mode 100644 index 0c2cf6c..0000000 --- a/app/src/main/java/com/assist/dg/androidassist/Activity/CoursesActivity.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.assist.dg.androidassist.activity; - -import android.support.v7.app.ActionBarActivity; -import android.os.Bundle; -import android.view.Menu; -import android.view.MenuItem; - -import com.assist.dg.androidassist.fragment.CoursesFragment; -import com.assist.dg.androidassist.R; - -public class CoursesActivity extends ActionBarActivity { - - @Override protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_courses); - if (savedInstanceState == null) { - getSupportFragmentManager().beginTransaction() - .add(R.id.container, new CoursesFragment()) - .commit(); - } - } - - @Override public boolean onCreateOptionsMenu(Menu menu) { - // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.menu_courses, menu); - return true; - } - - @Override public boolean onOptionsItemSelected(MenuItem item) { - // Handle action bar item clicks here. The action bar will - // automatically handle clicks on the Home/Up button, so long - // as you specify a parent activity in AndroidManifest.xml. - int id = item.getItemId(); - - //noinspection SimplifiableIfStatement - if (id == R.id.action_settings) { - return true; - } - - return super.onOptionsItemSelected(item); - } -} diff --git a/app/src/main/java/com/assist/dg/androidassist/Activity/MainActivity.java b/app/src/main/java/com/assist/dg/androidassist/Activity/MainActivity.java index 2f1222e..1c7aadd 100644 --- a/app/src/main/java/com/assist/dg/androidassist/Activity/MainActivity.java +++ b/app/src/main/java/com/assist/dg/androidassist/Activity/MainActivity.java @@ -1,76 +1,11 @@ package com.assist.dg.androidassist.activity; -import android.app.Fragment; -import android.app.FragmentTransaction; -import android.os.Bundle; -import android.support.v7.app.ActionBarActivity; -import android.view.Menu; -import android.view.MenuItem; +import com.assist.dg.androidassist.fragment.BaseFragment; +import com.assist.dg.androidassist.fragment.CollegeListFragment; -import com.assist.dg.androidassist.fragment.ChooseMajorFragment; -import com.assist.dg.androidassist.fragment.CollegeUnivFragment; -import com.assist.dg.androidassist.R; +public class MainActivity extends BaseActivity { -public class MainActivity extends ActionBarActivity { - - private final static String TAG_FRAGMENT = "TAG_FRAGMENT"; - String selectedUnivValue; - - public void setSelectedUnivValue(String univValue) { - selectedUnivValue = univValue; - } - - public String getSelectedUnivValue() { - return selectedUnivValue; - } - - @Override protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - if (savedInstanceState == null) { - getSupportFragmentManager().beginTransaction() - .add(R.id.container, new CollegeUnivFragment()) - .commit(); - } - } - - @Override public boolean onCreateOptionsMenu(Menu menu) { - // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.menu_main, menu); - return true; - } - - @Override public boolean onOptionsItemSelected(MenuItem item) { - // Handle action bar item clicks here. The action bar will - // automatically handle clicks on the Home/Up button, so long - // as you specify a parent activity in AndroidManifest.xml. - int id = item.getItemId(); - - //noinspection SimplifiableIfStatement - if (id == R.id.action_settings) { - return true; - } - - return super.onOptionsItemSelected(item); - } - - public void showMajorFragment() { - // Create new fragment and transaction - - Fragment newFragment = new ChooseMajorFragment(); - FragmentTransaction transaction = getFragmentManager().beginTransaction(); - - transaction.replace(R.id.container, newFragment, TAG_FRAGMENT); - transaction.addToBackStack(null); - - transaction.commit(); - } - - @Override public void onBackPressed() { - if (getFragmentManager().getBackStackEntryCount() > 0) { - getFragmentManager().popBackStack(); - } else { - super.onBackPressed(); - } + @Override public BaseFragment createBaseFragment() { + return new CollegeListFragment(); } } diff --git a/app/src/main/java/com/assist/dg/androidassist/Adapter/CollegeListAdapter.java b/app/src/main/java/com/assist/dg/androidassist/Adapter/CollegeListAdapter.java new file mode 100644 index 0000000..d59b671 --- /dev/null +++ b/app/src/main/java/com/assist/dg/androidassist/Adapter/CollegeListAdapter.java @@ -0,0 +1,69 @@ +package com.assist.dg.androidassist.adapter; + +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; +import com.assist.dg.androidassist.R; +import com.assist.dg.androidassist.model.College; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Spencer Do on 2015. 10. 28.. + */ +public class CollegeListAdapter extends RecyclerView.Adapter { + + public interface OnCollegeItemClickListener { + public void onClickCollegeItem(College c); + } + + private List colleges = new ArrayList<>(); + private OnCollegeItemClickListener listener; + + public void setColleges(List colleges) { + this.colleges = colleges; + notifyDataSetChanged(); + } + + public void setClickListener(OnCollegeItemClickListener l) { + listener = l; + } + + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + TextView view = (TextView) LayoutInflater.from(parent.getContext()) + .inflate(R.layout.row_college, parent, false); + return new CollegeTextHolder(view); + } + + @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { + TextView title = (TextView) holder.itemView; + title.setText(colleges.get(position).getName()); + title.setOnClickListener(new View.OnClickListener() { + @Override public void onClick(View v) { + if (listener != null) { + listener.onClickCollegeItem(colleges.get(position)); + } + } + }); + } + + @Override public int getItemCount() { + return colleges.size(); + } + + public static class CollegeTextHolder extends RecyclerView.ViewHolder { + + private View base; + + public CollegeTextHolder(View itemView) { + super(itemView); + base = itemView; + } + + public TextView getTitle() { + return (TextView) base; + } + } +} diff --git a/app/src/main/java/com/assist/dg/androidassist/App.java b/app/src/main/java/com/assist/dg/androidassist/App.java index 5359b2f..980f518 100644 --- a/app/src/main/java/com/assist/dg/androidassist/App.java +++ b/app/src/main/java/com/assist/dg/androidassist/App.java @@ -2,9 +2,19 @@ import android.app.Application; import android.text.TextUtils; +import com.google.gson.Gson; +import com.squareup.okhttp.Cache; import com.squareup.okhttp.OkHttpClient; +import java.io.File; import java.security.GeneralSecurityException; +import java.util.concurrent.Executor; +import java.util.concurrent.SynchronousQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; import javax.net.ssl.SSLContext; +import retrofit.GsonConverterFactory; +import retrofit.Retrofit; +import retrofit.RxJavaCallAdapterFactory; /** * Created by doyonghoon on 2015. 10. 28.. @@ -12,8 +22,75 @@ public class App extends Application { private static App singleton; + private Gson gson; private OkHttpClient client; + private Retrofit retrofit; + + public App() { + + } + + public static App getInstance() { + if (singleton == null) { + singleton = new App(); + } + return singleton; + } + + @Override public void onCreate() { + super.onCreate(); + singleton = this; + getRetrofit(); + } + + private Retrofit createRetrofit(OkHttpClient client) { + Retrofit.Builder builder = new Retrofit.Builder() + .baseUrl(BuildConfig.END_POINT) + .addConverterFactory(GsonConverterFactory.create(getInstance().getGson())) + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .callbackExecutor(createExecutor()) + .client(client); + return builder.build(); + } + + private Executor createExecutor() { + SynchronousQueue queue = new SynchronousQueue<>(); + return new ThreadPoolExecutor(5, 30, 15, TimeUnit.SECONDS, queue); + } + + public static Retrofit getRetrofit() { + if (getInstance().client == null) { + getInstance().client = getInstance().createHttpClient(); + } + if (getInstance().retrofit == null) { + getInstance().retrofit = getInstance().createRetrofit(getInstance().client); + } + return getInstance().retrofit; + } + + public com.google.gson.Gson getGson() { + if (gson == null) { + gson = new com.google.gson.GsonBuilder().serializeNulls() + .setDateFormat("yyyy-MM-dd'T'HH:mm:ss+09:00") + .create(); + } + return gson; + } + + private OkHttpClient createHttpClient() { + client = new OkHttpClient(); + try { + int cacheSize = 5 * 1024 * 1024; // 10 MiB + File cacheDirectory = new File(getCacheDir().getAbsolutePath(), "HttpCache"); + Cache cache = new Cache(cacheDirectory, cacheSize); + client.setCache(cache); + } catch (Exception e) { + e.printStackTrace(); + } + setHttps(client); + return client; + } private void setHttps(OkHttpClient client) { if (!TextUtils.isEmpty(BuildConfig.END_POINT) && BuildConfig.END_POINT.contains("https")) { @@ -23,7 +100,8 @@ private void setHttps(OkHttpClient client) { sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, null, null); } catch (GeneralSecurityException e) { - throw new AssertionError(); // The system has no TLS. Just give up. + // The system has no TLS. Just give up. + throw new AssertionError(); } client.setSslSocketFactory(sslContext.getSocketFactory()); } catch (Exception e) { @@ -31,19 +109,4 @@ private void setHttps(OkHttpClient client) { } } } - - public App() { - - } - - public static App getInstance() { - if (singleton == null) { - singleton = new App(); - } - return singleton; - } - - @Override public void onCreate() { - super.onCreate(); - } } diff --git a/app/src/main/java/com/assist/dg/androidassist/Fragment/BaseFragment.java b/app/src/main/java/com/assist/dg/androidassist/Fragment/BaseFragment.java new file mode 100644 index 0000000..1ca494d --- /dev/null +++ b/app/src/main/java/com/assist/dg/androidassist/Fragment/BaseFragment.java @@ -0,0 +1,41 @@ +package com.assist.dg.androidassist.fragment; + +import android.app.Fragment; +import android.os.Bundle; +import android.support.annotation.LayoutRes; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import butterknife.ButterKnife; + +/** + * Created by Spencer Do on 2015. 10. 28.. + */ +public abstract class BaseFragment extends Fragment { + + @LayoutRes protected abstract int getLayoutId(); + + @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = null; + throwLayoutIdError(); + if (getLayoutId() > 0) { + view = inflater.inflate(getLayoutId(), container, false); + } + ButterKnife.bind(this, view); + return view; + } + + private void throwLayoutIdError() { + if (getLayoutId() == 0x00) { + throw new NullPointerException( + "layoutId may not be 0 from " + ((Object) this).getClass().getSimpleName()); + } + } + + @Override public void onDestroyView() { + super.onDestroyView(); + ButterKnife.unbind(this); + } +} diff --git a/app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java b/app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java index e9fdae9..e195c6f 100644 --- a/app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java +++ b/app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java @@ -1,7 +1,6 @@ package com.assist.dg.androidassist.fragment; import android.app.Fragment; -import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -10,12 +9,8 @@ import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.Spinner; - -import com.assist.dg.androidassist.activity.CoursesActivity; -import com.assist.dg.androidassist.activity.MainActivity; -import com.assist.dg.androidassist.parser.MajorParser; import com.assist.dg.androidassist.R; - +import com.assist.dg.androidassist.parser.MajorParser; import java.util.ArrayList; /** @@ -44,7 +39,7 @@ public ChooseMajorFragment() { Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_choose_major, container, false); - selectedUnivValue = ((MainActivity) getActivity()).getSelectedUnivValue(); + //selectedUnivValue = ((MainActivity) getActivity()).getSelectedUnivValue(); MajorParser majorparser = new MajorParser(this); majorparser.execute(); @@ -70,8 +65,8 @@ public void onItemSelected(AdapterView parent, View view, int position, long viewCoursesButton = (Button) rootView.findViewById(R.id.view_courses_button); viewCoursesButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(getActivity(), CoursesActivity.class); - startActivity(intent); + //Intent intent = new Intent(getActivity(), CoursesActivity.class); + //startActivity(intent); } }); diff --git a/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeListFragment.java b/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeListFragment.java new file mode 100644 index 0000000..0741b8f --- /dev/null +++ b/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeListFragment.java @@ -0,0 +1,63 @@ +package com.assist.dg.androidassist.fragment; + +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.View; +import butterknife.Bind; +import com.assist.dg.androidassist.R; +import com.assist.dg.androidassist.adapter.CollegeListAdapter; +import com.assist.dg.androidassist.model.College; +import com.assist.dg.androidassist.service.ApiProvider; +import com.assist.dg.androidassist.util.WLog; +import java.util.List; +import retrofit.Callback; +import retrofit.Response; +import retrofit.Retrofit; + +/** + * Created by Spencer Do on 2015. 10. 28.. + */ +public class CollegeListFragment extends BaseFragment implements + CollegeListAdapter.OnCollegeItemClickListener { + + @Bind(R.id.college_list) RecyclerView list; + private CollegeListAdapter adapter; + + @Override protected int getLayoutId() { + return R.layout.fragment_college_list; + } + + @Override public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + adapter = new CollegeListAdapter(); + LinearLayoutManager m = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); + list.setLayoutManager(m); + adapter.setClickListener(this); + + new ApiProvider().getColleges(new Callback>() { + @Override public void onResponse(Response> response, Retrofit retrofit) { + WLog.i("status: " + response.code() + ", message: " + response.message()); + WLog.i("size: " + response.body().size()); + adapter.setColleges(response.body()); + + new Handler(Looper.getMainLooper()).post(new Runnable() { + @Override public void run() { + list.setAdapter(adapter); + } + }); + } + + @Override public void onFailure(Throwable t) { + t.printStackTrace(); + } + }); + } + + @Override public void onClickCollegeItem(College c) { + WLog.i("selected college: " + c.getName()); + } +} diff --git a/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeUnivFragment.java b/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeUnivFragment.java index c49d4f6..0cb5543 100644 --- a/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeUnivFragment.java +++ b/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeUnivFragment.java @@ -12,9 +12,8 @@ import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; -import com.assist.dg.androidassist.activity.MainActivity; -import com.assist.dg.androidassist.parser.UnivParser; import com.assist.dg.androidassist.R; +import com.assist.dg.androidassist.parser.UnivParser; import java.util.ArrayList; /** @@ -69,8 +68,8 @@ class SpinnerItemSelectedListener implements AdapterView.OnItemSelectedListener if (position != 0) { selectedUnivValue = listOfUnivValues.get(position); System.out.println(selectedUnivValue); - ((MainActivity) getActivity()).setSelectedUnivValue(selectedUnivValue); - ((MainActivity) getActivity()).showMajorFragment(); + //((MainActivity) getActivity()).setSelectedUnivValue(selectedUnivValue); + //((MainActivity) getActivity()).showMajorFragment(); } } } diff --git a/app/src/main/java/com/assist/dg/androidassist/model/College.java b/app/src/main/java/com/assist/dg/androidassist/model/College.java new file mode 100644 index 0000000..76dc940 --- /dev/null +++ b/app/src/main/java/com/assist/dg/androidassist/model/College.java @@ -0,0 +1,25 @@ +package com.assist.dg.androidassist.model; + +import com.assist.dg.androidassist.App; +import com.google.gson.annotations.SerializedName; + +/** + * Created by doyonghoon on 2015. 10. 28.. + */ +public class College { + + @SerializedName("name") private String name; + @SerializedName("value") private String code; + + public String getCode() { + return code; + } + + public String getName() { + return name; + } + + @Override public String toString() { + return App.getInstance().getGson().toJson(this); + } +} diff --git a/app/src/main/java/com/assist/dg/androidassist/model/Course.java b/app/src/main/java/com/assist/dg/androidassist/model/Course.java new file mode 100644 index 0000000..bd3a715 --- /dev/null +++ b/app/src/main/java/com/assist/dg/androidassist/model/Course.java @@ -0,0 +1,10 @@ +package com.assist.dg.androidassist.model; + +/** + * Created by Spencer Do on 2015. 10. 28.. + * + * not defined yet. + */ +public class Course { + +} diff --git a/app/src/main/java/com/assist/dg/androidassist/model/Major.java b/app/src/main/java/com/assist/dg/androidassist/model/Major.java new file mode 100644 index 0000000..2f44439 --- /dev/null +++ b/app/src/main/java/com/assist/dg/androidassist/model/Major.java @@ -0,0 +1,19 @@ +package com.assist.dg.androidassist.model; + +import com.google.gson.annotations.SerializedName; + +/** + * Created by doyonghoon on 2015. 10. 28.. + */ +public class Major { + @SerializedName("major") private String name; + @SerializedName("value") private String code; + + public String getCode() { + return code; + } + + public String getName() { + return name; + } +} diff --git a/app/src/main/java/com/assist/dg/androidassist/model/University.java b/app/src/main/java/com/assist/dg/androidassist/model/University.java new file mode 100644 index 0000000..5f80831 --- /dev/null +++ b/app/src/main/java/com/assist/dg/androidassist/model/University.java @@ -0,0 +1,19 @@ +package com.assist.dg.androidassist.model; + +import com.google.gson.annotations.SerializedName; + +/** + * Created by doyonghoon on 2015. 10. 28.. + */ +public class University { + @SerializedName("name") private String name; + @SerializedName("value") private String code; + + public String getCode() { + return code; + } + + public String getName() { + return name; + } +} diff --git a/app/src/main/java/com/assist/dg/androidassist/service/ApiProvider.java b/app/src/main/java/com/assist/dg/androidassist/service/ApiProvider.java new file mode 100644 index 0000000..6f62d7b --- /dev/null +++ b/app/src/main/java/com/assist/dg/androidassist/service/ApiProvider.java @@ -0,0 +1,25 @@ +package com.assist.dg.androidassist.service; + +import com.assist.dg.androidassist.App; +import com.assist.dg.androidassist.model.College; +import java.util.List; +import retrofit.Callback; +import retrofit.Retrofit; + +/** + * Created by Spencer Do on 2015. 10. 28.. + */ +public class ApiProvider { + + private final Retrofit retrofit; + private final ApiService apiService; + + public ApiProvider() { + retrofit = App.getRetrofit(); + apiService = retrofit.create(ApiService.class); + } + + public void getColleges(Callback> callback) { + apiService.colleges().enqueue(callback); + } +} diff --git a/app/src/main/java/com/assist/dg/androidassist/service/ApiService.java b/app/src/main/java/com/assist/dg/androidassist/service/ApiService.java new file mode 100644 index 0000000..2ad5521 --- /dev/null +++ b/app/src/main/java/com/assist/dg/androidassist/service/ApiService.java @@ -0,0 +1,26 @@ +package com.assist.dg.androidassist.service; + +import com.assist.dg.androidassist.model.College; +import com.assist.dg.androidassist.model.Course; +import com.assist.dg.androidassist.model.Major; +import com.assist.dg.androidassist.model.University; +import java.util.List; +import retrofit.Call; +import retrofit.http.GET; +import retrofit.http.Query; + +/** + * Created by Spencer Do on 2015. 10. 28.. + */ +public interface ApiService { + @GET("/api/ias") Call> colleges(); + + @GET("/api/:college/oias") Call> universities(@Query("college") String college); + + @GET("/api/:college/:university/dora") Call> majors(@Query("college") String college, + @Query("university") String university); + + @GET("/api/:college/:university/:major/courses") Call> courses( + @Query("college") String college, @Query("university") String university, + @Query("major") String major); +} diff --git a/app/src/main/res/drawable/list_border.xml b/app/src/main/res/drawable/list_border.xml index 2092bb5..e7e96d4 100644 --- a/app/src/main/res/drawable/list_border.xml +++ b/app/src/main/res/drawable/list_border.xml @@ -20,7 +20,7 @@ android:shape="rectangle" > + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_college_list.xml b/app/src/main/res/layout/fragment_college_list.xml new file mode 100644 index 0000000..b0ca36b --- /dev/null +++ b/app/src/main/res/layout/fragment_college_list.xml @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index c337f6f..dd8049c 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -10,10 +10,6 @@ android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"> - - - - + diff --git a/app/src/main/res/values-v21/colors.xml b/app/src/main/res/values-v21/colors.xml index 486daed..060a38b 100644 --- a/app/src/main/res/values-v21/colors.xml +++ b/app/src/main/res/values-v21/colors.xml @@ -1,6 +1,13 @@ - #e67e22 + #FF9800 + #F57C00 + #FFE0B2 + #00BCD4 + #212121 + #727272 + #212121 + #B6B6B6 \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 713c0e3..d745c37 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -2,18 +2,9 @@ - - - - diff --git a/build.gradle b/build.gradle index 0b72333..32826da 100644 --- a/build.gradle +++ b/build.gradle @@ -4,6 +4,7 @@ buildscript { repositories { jcenter() mavenCentral() + maven { url "http://dl.bintray.com/tbruyelle/tbruyelle" } } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' @@ -20,8 +21,10 @@ allprojects { ext { compileSdkVersion = 23 - buildToolsVersion = '21.1.2' + buildToolsVersion = '23.0.1' minSdkVersion = 16 targetSdkVersion = 23 + + supportVersion = '23.0.1' } From 588bfcfc217e0a02232f039fcf52b4995b91d6c1 Mon Sep 17 00:00:00 2001 From: SpencerDo Date: Wed, 28 Oct 2015 23:54:41 -0700 Subject: [PATCH 4/5] removes auto-generated files. --- .idea/.name | 1 - .idea/compiler.xml | 21 ---- .idea/copyright/profiles_settings.xml | 3 - .idea/gradle.xml | 19 ---- .idea/misc.xml | 132 -------------------------- .idea/modules.xml | 9 -- .idea/runConfigurations.xml | 12 --- .idea/vcs.xml | 6 -- 8 files changed, 203 deletions(-) delete mode 100644 .idea/.name delete mode 100644 .idea/compiler.xml delete mode 100644 .idea/copyright/profiles_settings.xml delete mode 100644 .idea/gradle.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/runConfigurations.xml delete mode 100644 .idea/vcs.xml diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index 20c7047..0000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -AndroidAssist \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index 1f2af51..0000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml deleted file mode 100644 index e7bedf3..0000000 --- a/.idea/copyright/profiles_settings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index bd4202c..0000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 1ec0bca..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - Android Lint - - - Code style issues - - - Control flow issues - - - Data flow issues - - - Encapsulation issues - - - Naming conventions - - - Portability issues - - - Security issues - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1.7 - - - - - - - - Android API 21 Platform - - - - - - - - src - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 3b5d8c0..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From c3098636547f3314b080f757e133177f9d19b9aa Mon Sep 17 00:00:00 2001 From: SpencerDo Date: Fri, 30 Oct 2015 15:30:46 -0700 Subject: [PATCH 5/5] removes all the unneccessary files --- app/app.iml | 2 +- app/src/main/AndroidManifest.xml | 5 - .../androidassist/Activity/InfoActivity.java | 60 ---------- .../Adapter/CourseListAdapter.java | 62 ---------- .../Fragment/ChooseMajorFragment.java | 75 ------------ .../Fragment/CollegeListFragment.java | 1 + .../Fragment/CollegeUnivFragment.java | 104 ---------------- .../Fragment/CoursesFragment.java | 76 ------------ .../Fragment/UniversityListFragment.java | 13 ++ .../dg/androidassist/Parser/MajorParser.java | 113 ------------------ .../dg/androidassist/Parser/UnivParser.java | 110 ----------------- .../dg/androidassist/RequiredClass.java | 85 ------------- 12 files changed, 15 insertions(+), 691 deletions(-) delete mode 100644 app/src/main/java/com/assist/dg/androidassist/Activity/InfoActivity.java delete mode 100644 app/src/main/java/com/assist/dg/androidassist/Adapter/CourseListAdapter.java delete mode 100644 app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java delete mode 100644 app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeUnivFragment.java delete mode 100644 app/src/main/java/com/assist/dg/androidassist/Fragment/CoursesFragment.java create mode 100644 app/src/main/java/com/assist/dg/androidassist/Fragment/UniversityListFragment.java delete mode 100644 app/src/main/java/com/assist/dg/androidassist/Parser/MajorParser.java delete mode 100644 app/src/main/java/com/assist/dg/androidassist/Parser/UnivParser.java delete mode 100644 app/src/main/java/com/assist/dg/androidassist/RequiredClass.java diff --git a/app/app.iml b/app/app.iml index 06c1722..b9bbd3f 100644 --- a/app/app.iml +++ b/app/app.iml @@ -115,7 +115,7 @@ - + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 323067c..c7db87f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,11 +22,6 @@ - - diff --git a/app/src/main/java/com/assist/dg/androidassist/Activity/InfoActivity.java b/app/src/main/java/com/assist/dg/androidassist/Activity/InfoActivity.java deleted file mode 100644 index d399f91..0000000 --- a/app/src/main/java/com/assist/dg/androidassist/Activity/InfoActivity.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.assist.dg.androidassist.activity; - -import android.support.v7.app.ActionBarActivity; -import android.support.v4.app.Fragment; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; - -import com.assist.dg.androidassist.R; - -public class InfoActivity extends ActionBarActivity { - - @Override protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_info); - if (savedInstanceState == null) { - getSupportFragmentManager().beginTransaction() - .add(R.id.container, new PlaceholderFragment()) - .commit(); - } - } - - @Override public boolean onCreateOptionsMenu(Menu menu) { - // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.menu_info, menu); - return true; - } - - @Override public boolean onOptionsItemSelected(MenuItem item) { - // Handle action bar item clicks here. The action bar will - // automatically handle clicks on the Home/Up button, so long - // as you specify a parent activity in AndroidManifest.xml. - int id = item.getItemId(); - - //noinspection SimplifiableIfStatement - if (id == R.id.action_settings) { - return true; - } - - return super.onOptionsItemSelected(item); - } - - /** - * A placeholder fragment containing a simple view. - */ - public static class PlaceholderFragment extends Fragment { - - public PlaceholderFragment() { - } - - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View rootView = inflater.inflate(R.layout.fragment_info, container, false); - return rootView; - } - } -} diff --git a/app/src/main/java/com/assist/dg/androidassist/Adapter/CourseListAdapter.java b/app/src/main/java/com/assist/dg/androidassist/Adapter/CourseListAdapter.java deleted file mode 100644 index 3f501fd..0000000 --- a/app/src/main/java/com/assist/dg/androidassist/Adapter/CourseListAdapter.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.assist.dg.androidassist.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.TextView; - -import com.assist.dg.androidassist.R; -import com.assist.dg.androidassist.RequiredClass; - -import java.util.ArrayList; - -/** - * Created by hendryjoe on 10/10/15. - */ -public class CourseListAdapter extends BaseAdapter { - - private ArrayList objects; - private LayoutInflater inflater; - - private class ViewHolder { - TextView requiredClass; - TextView univEquivalent; - } - - public CourseListAdapter(Context context, ArrayList objects) { - inflater = LayoutInflater.from(context); - this.objects = objects; - } - - @Override public int getCount() { - return objects.size(); - } - - @Override public Object getItem(int position) { - return objects.get(position); - } - - @Override public long getItemId(int position) { - return position; - } - - @Override public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder holder = null; - if (convertView == null) { - holder = new ViewHolder(); - convertView = inflater.inflate(R.layout.swipelistview, null); - holder.requiredClass = (TextView) convertView.findViewById(R.id.required_class_textview); - holder.univEquivalent = (TextView) convertView.findViewById(R.id.univ_equivalent_textview); - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - - holder.requiredClass.setText(objects.get(position).getFormalClassName()); - holder.univEquivalent.setText(objects.get(position).getUnivEquivalent()); - - return convertView; - } -} diff --git a/app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java b/app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java deleted file mode 100644 index e195c6f..0000000 --- a/app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.assist.dg.androidassist.fragment; - -import android.app.Fragment; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.Button; -import android.widget.Spinner; -import com.assist.dg.androidassist.R; -import com.assist.dg.androidassist.parser.MajorParser; -import java.util.ArrayList; - -/** - * Created by hendryjoe on 10/7/15. - */ -public class ChooseMajorFragment extends Fragment { - - public ArrayList listOfMajors; - public ArrayList listOfMajorValue; - public String selectedUnivValue; - public String selectedMajorValue; - Spinner chooseMajorSpinner; - Button viewCoursesButton; - - public ChooseMajorFragment() { - listOfMajors = new ArrayList(); - listOfMajors.add("Choose a Major"); - - //Add dummy data - for (int i = 0; i < 15; i++) { - listOfMajors.add("Major " + i); - } - } - - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View rootView = inflater.inflate(R.layout.fragment_choose_major, container, false); - - //selectedUnivValue = ((MainActivity) getActivity()).getSelectedUnivValue(); - - MajorParser majorparser = new MajorParser(this); - majorparser.execute(); - - chooseMajorSpinner = (Spinner) rootView.findViewById(R.id.choose_major_spinner); - ArrayAdapter majorAdapter = - new ArrayAdapter(getActivity(), R.layout.spinner_item, listOfMajors); - chooseMajorSpinner.setAdapter(majorAdapter); - - chooseMajorSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - if (position != 0) { - selectedMajorValue = listOfMajorValue.get(position); - } - } - - @Override public void onNothingSelected(AdapterView parent) { - - } - }); - - viewCoursesButton = (Button) rootView.findViewById(R.id.view_courses_button); - viewCoursesButton.setOnClickListener(new View.OnClickListener() { - @Override public void onClick(View v) { - //Intent intent = new Intent(getActivity(), CoursesActivity.class); - //startActivity(intent); - } - }); - - return rootView; - } -} \ No newline at end of file diff --git a/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeListFragment.java b/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeListFragment.java index 0741b8f..48d5883 100644 --- a/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeListFragment.java +++ b/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeListFragment.java @@ -42,6 +42,7 @@ public class CollegeListFragment extends BaseFragment implements @Override public void onResponse(Response> response, Retrofit retrofit) { WLog.i("status: " + response.code() + ", message: " + response.message()); WLog.i("size: " + response.body().size()); + adapter.setColleges(response.body()); new Handler(Looper.getMainLooper()).post(new Runnable() { diff --git a/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeUnivFragment.java b/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeUnivFragment.java deleted file mode 100644 index 0cb5543..0000000 --- a/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeUnivFragment.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.assist.dg.androidassist.fragment; - -/** - * Created by hendryjoe on 10/7/15. - */ - -import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.Spinner; -import com.assist.dg.androidassist.R; -import com.assist.dg.androidassist.parser.UnivParser; -import java.util.ArrayList; - -/** - * A placeholder fragment containing a simple view. - */ -public class CollegeUnivFragment extends Fragment { - - ArrayList listOfColleges; - ArrayList listOfUniversities; - ArrayList listOfUnivValues; - Spinner fromCollegeSpinner; - Spinner toUniversitySpinner; - - UnivParser univParser; - public String selectedUnivValue; - - public CollegeUnivFragment() { - - //Populate the colleges and univs list with dummy data - String dummy; - listOfColleges = new ArrayList(); - listOfUniversities = new ArrayList(); - listOfUnivValues = new ArrayList(); - - listOfColleges.add("Choose a Community College"); - for (int i = 0; i < 3; i++) { - dummy = "Community College " + i; - listOfColleges.add(dummy); - } - - listOfUniversities.add("Choose a University"); - for (int i = 0; i < 3; i++) { - dummy = "University" + i; - listOfUniversities.add(dummy); - } - - //Use real data, if it works, delete above code - univParser = new UnivParser(); - univParser.execute(listOfUniversities, listOfUnivValues); - } - - class SpinnerItemSelectedListener implements AdapterView.OnItemSelectedListener { - - @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { - Spinner spinner = (Spinner) parent; - - if (spinner.getId() == R.id.from_college_spinner) { - if (position != 0) { - toUniversitySpinner.setVisibility(View.VISIBLE); - } - } else if (spinner.getId() == R.id.to_university_spinner) { - if (position != 0) { - selectedUnivValue = listOfUnivValues.get(position); - System.out.println(selectedUnivValue); - //((MainActivity) getActivity()).setSelectedUnivValue(selectedUnivValue); - //((MainActivity) getActivity()).showMajorFragment(); - } - } - } - - @Override public void onNothingSelected(AdapterView parent) { - - } - } - - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View rootView = inflater.inflate(R.layout.fragment_main, container, false); - SpinnerItemSelectedListener listener = new SpinnerItemSelectedListener(); - - fromCollegeSpinner = (Spinner) rootView.findViewById(R.id.from_college_spinner); - ArrayAdapter collegeAdapter = - new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, - listOfColleges); - fromCollegeSpinner.setAdapter(collegeAdapter); - - toUniversitySpinner = (Spinner) rootView.findViewById(R.id.to_university_spinner); - ArrayAdapter universityAdapter = - new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, - listOfUniversities); - toUniversitySpinner.setAdapter(universityAdapter); - - fromCollegeSpinner.setOnItemSelectedListener(listener); - toUniversitySpinner.setOnItemSelectedListener(listener); - - return rootView; - } -} \ No newline at end of file diff --git a/app/src/main/java/com/assist/dg/androidassist/Fragment/CoursesFragment.java b/app/src/main/java/com/assist/dg/androidassist/Fragment/CoursesFragment.java deleted file mode 100644 index 3576428..0000000 --- a/app/src/main/java/com/assist/dg/androidassist/Fragment/CoursesFragment.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.assist.dg.androidassist.fragment; - -import android.content.Intent; -import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.Button; - -import com.assist.dg.androidassist.activity.InfoActivity; -import com.assist.dg.androidassist.adapter.CourseListAdapter; -import com.assist.dg.androidassist.R; -import com.assist.dg.androidassist.RequiredClass; -import com.fortysevendeg.swipelistview.SwipeListView; - -import java.util.ArrayList; - -/** - * Created by hendryjoe on 10/12/15. - */ - -public class CoursesFragment extends Fragment { - - RequiredClass[] temp; - ArrayList classList; - SwipeListView swipeListView; - - public CoursesFragment() { - - classList = new ArrayList(); - //Fill with dummy data - int numOfPrerequisites = 3; - int numOfRequiredClasses = 20; - temp = new RequiredClass[numOfRequiredClasses]; - - for (int i = 0; i < numOfRequiredClasses; i++) { - RequiredClass[] reqArray = new RequiredClass[numOfPrerequisites]; - for (int j = 0; j < numOfPrerequisites; j++) { - reqArray[j] = new RequiredClass(); - } - - temp[i] = new RequiredClass(); - temp[i].setFormalClassName("CLASS " + i); - temp[i].setPrerequisites(reqArray); - - classList.add(temp[i]); - } - } - - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - final View rootView = inflater.inflate(R.layout.fragment_courses, container, false); - - swipeListView = (SwipeListView) rootView.findViewById(R.id.class_list); - CourseListAdapter courseListAdapter = new CourseListAdapter(rootView.getContext(), classList); - - swipeListView.setAdapter(courseListAdapter); - - View view = inflater.inflate(R.layout.swipelistview, null, false); - Button moreInfoButton = (Button) view.findViewById(R.id.more_info_button); - - moreInfoButton.setOnClickListener(new View.OnClickListener() { - @Override public void onClick(View v) { - System.out.println("LISTENING"); - Log.e("tag", "CLICKING THE BUTTON"); - - Intent intent = new Intent(getActivity(), InfoActivity.class); - startActivity(intent); - } - }); - - return rootView; - } -} \ No newline at end of file diff --git a/app/src/main/java/com/assist/dg/androidassist/Fragment/UniversityListFragment.java b/app/src/main/java/com/assist/dg/androidassist/Fragment/UniversityListFragment.java new file mode 100644 index 0000000..98b7534 --- /dev/null +++ b/app/src/main/java/com/assist/dg/androidassist/Fragment/UniversityListFragment.java @@ -0,0 +1,13 @@ +package com.assist.dg.androidassist.fragment; + +import com.assist.dg.androidassist.R; + +/** + * Created by Spencer Do on 2015. 10. 30.. + */ +public class UniversityListFragment extends BaseFragment { + + @Override protected int getLayoutId() { + return R.layout.fragment_college_list; + } +} diff --git a/app/src/main/java/com/assist/dg/androidassist/Parser/MajorParser.java b/app/src/main/java/com/assist/dg/androidassist/Parser/MajorParser.java deleted file mode 100644 index 632efb0..0000000 --- a/app/src/main/java/com/assist/dg/androidassist/Parser/MajorParser.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.assist.dg.androidassist.parser; - -import android.os.AsyncTask; -import android.util.Log; - -import com.assist.dg.androidassist.fragment.ChooseMajorFragment; - -import org.json.JSONArray; -import org.json.JSONObject; - -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.ArrayList; - -/** - * Created by hendryjoe on 10/18/15. - */ -public class MajorParser extends AsyncTask { - - ArrayList listOfMajors; - ArrayList listOfMajorValues; - String selectedUnivValue; - - ChooseMajorFragment majorFragment; - - public MajorParser(ChooseMajorFragment majorFragment) { - this.majorFragment = majorFragment; - this.listOfMajors = majorFragment.listOfMajors; - this.listOfMajorValues = majorFragment.listOfMajorValue; - this.selectedUnivValue = majorFragment.selectedUnivValue; - } - - @Override protected String doInBackground(Void... params) { - - String majorJsonStr; - HttpURLConnection urlConnection = null; - BufferedReader reader = null; - - final String API_URL = "http://159.203.90.30:8081/api/" + selectedUnivValue + "/majors"; - //Testing - Log.d("major_parser", API_URL); - - try { - URL url = new URL(API_URL); - urlConnection = (HttpURLConnection) url.openConnection(); - urlConnection.setRequestMethod("GET"); - urlConnection.connect(); - - //Read the input - InputStream inputStream = urlConnection.getInputStream(); - StringBuffer buffer = new StringBuffer(); - - if (inputStream == null) { - return null; - } - - reader = new BufferedReader(new InputStreamReader(inputStream)); - String line; - - while (reader.readLine() != null) { - line = reader.readLine(); - buffer.append(line + "\n"); - } - - if (buffer.length() == 0) { - return null; - } - - majorJsonStr = buffer.toString(); - } catch (Exception e) { - Log.e("major_parser", "ERROR ON CONNECTING TO PARSE MAJOR"); - return null; - } finally { - if (urlConnection != null) { - urlConnection.disconnect(); - } - if (reader != null) { - try { - reader.close(); - } catch (Exception e) { - Log.e("major_parser", "ERROR CLOSING STREAM"); - } - } - } - return majorJsonStr; - } - - @Override protected void onPostExecute(String majorJsonStr) { - setListOfMajors(majorJsonStr); - } - - public void setListOfMajors(String majorJsonStr) { - try { - JSONArray arrayOfMajors = new JSONArray(majorJsonStr); - JSONObject major; - listOfMajors.clear(); - listOfMajorValues.clear(); - listOfMajors.add("Choose a Major"); - listOfMajorValues.add("default_value"); - for (int i = 0; i < arrayOfMajors.length(); i++) { - major = arrayOfMajors.getJSONObject(i); - listOfMajors.add(major.getString("major")); - listOfMajorValues.add(major.getString("value")); - } - } catch (Exception e) { - System.out.println(majorJsonStr); - Log.e("major_parser", "ERROR CONVERTING JSON INTO MAJOR LIST"); - } - } -} diff --git a/app/src/main/java/com/assist/dg/androidassist/Parser/UnivParser.java b/app/src/main/java/com/assist/dg/androidassist/Parser/UnivParser.java deleted file mode 100644 index a6b33dc..0000000 --- a/app/src/main/java/com/assist/dg/androidassist/Parser/UnivParser.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.assist.dg.androidassist.parser; - -import android.os.AsyncTask; -import android.util.Log; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.ArrayList; - -/** - * Created by hendryjoe on 10/12/15. - */ -public class UnivParser extends AsyncTask, Void, String> { - - ArrayList listOfUniversities; - ArrayList listOfUnivValues; - - @Override protected String doInBackground(ArrayList... params) { - - HttpURLConnection urlConnection = null; - BufferedReader reader = null; - - String univJsonStr = null; - - listOfUniversities = new ArrayList(); - listOfUniversities = params[0]; - listOfUnivValues = params[1]; - - try { - final String API_URL = "http://159.203.90.30:8081/api/schools"; - - URL url = new URL(API_URL); - urlConnection = (HttpURLConnection) url.openConnection(); - urlConnection.setRequestMethod("GET"); - urlConnection.connect(); - - //Read - InputStream inputStream = urlConnection.getInputStream(); - StringBuffer buffer = new StringBuffer(); - - if (inputStream == null) { - return null; - } - - reader = new BufferedReader(new InputStreamReader(inputStream)); - String line; - - while ((line = reader.readLine()) != null) { - buffer.append(line + "\n"); - } - - if (buffer.length() == 0) { - return null; - } - - univJsonStr = buffer.toString(); - } catch (Exception e) { - Log.e("univ_parser", "ERROR CONNECTING TO API", e); - } finally { - if (urlConnection != null) { - urlConnection.disconnect(); - } - if (reader != null) { - try { - reader.close(); - } catch (Exception e) { - Log.e("univ_parser", "ERROR CLOSING", e); - } - } - } - /** - //Testing the JSON, using hardcoded data - univJsonStr = "[" + "{" + "\"" + "school" + "\"" + ":\"" + "California Maritime Academy" +"\"" + ",\"" + "value\"" + ":\"CSUMA\"}," + - "{\"school\":\"California Polytechnic University, Pomona\",\"value\":\"CPP\"}," + - "{\"school\":\"California Polytechnic University, San Luis Obispo\",\"value\":\"CPSLO\"}" + "]"; - **/ - return univJsonStr; - } - - @Override protected void onPostExecute(String json) { - try { - setListOfUniversities(json); - } catch (Exception e) { - Log.e("univ_parser", "Error converting json to list", e); - } - } - - public void setListOfUniversities(String univJsonStr) throws JSONException { - JSONArray arrayOfUnivs = new JSONArray(univJsonStr); - JSONObject univs; - listOfUniversities.clear(); - listOfUnivValues.clear(); - listOfUniversities.add("Choose a University"); - listOfUnivValues.add("default_value"); - for (int i = 0; i < arrayOfUnivs.length(); i++) { - univs = arrayOfUnivs.getJSONObject(i); - listOfUniversities.add(univs.getString("school")); - listOfUnivValues.add(univs.getString("value")); - } - } -} - - diff --git a/app/src/main/java/com/assist/dg/androidassist/RequiredClass.java b/app/src/main/java/com/assist/dg/androidassist/RequiredClass.java deleted file mode 100644 index 07a742d..0000000 --- a/app/src/main/java/com/assist/dg/androidassist/RequiredClass.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.assist.dg.androidassist; - -/** - * Created by hendryjoe on 10/10/15. - */ -public class RequiredClass { - - private String formalClassName = "Default Class"; - private RequiredClass[] prerequisites = null; - private float units = 0.0f; - private boolean taken = false; - private boolean qualified = true; - private String univEquivalent = "Default Equiv"; - - public RequiredClass() { - - } - - public RequiredClass(String name, RequiredClass[] prereqs, float numUnits, boolean take, - String univEq) { - formalClassName = name; - prerequisites = prereqs; - units = numUnits; - taken = take; - univEquivalent = univEq; - qualif(); - } - - private void qualif() { - for (int i = 0; i < prerequisites.length; i++) { - if (prerequisites[i].isTaken() == false) { - qualified = false; - } - } - qualified = true; - } - - public void setFormalClassName(String formalClassName) { - this.formalClassName = formalClassName; - } - - public void setPrerequisites(RequiredClass[] prerequisites) { - this.prerequisites = prerequisites; - } - - public void setUnits(float units) { - this.units = units; - } - - public void setTaken(boolean taken) { - this.taken = taken; - } - - public void setQualified(boolean qualified) { - this.qualified = qualified; - } - - public void setUnivEquivalent(String univEquivalent) { - this.univEquivalent = univEquivalent; - } - - public RequiredClass[] getPrerequisites() { - return prerequisites; - } - - public float getUnits() { - return units; - } - - public boolean isTaken() { - return taken; - } - - public boolean isQualified() { - return qualified; - } - - public String getUnivEquivalent() { - return univEquivalent; - } - - public String getFormalClassName() { - return formalClassName; - } -}