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 217af47..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
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 19e6f2f..0000000
--- a/.idea/gradle.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 4870705..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,133 +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
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index c08ee74..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
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 275077f..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/AndroidAssist.iml b/AndroidAssist.iml
index 38ac895..60f91d9 100644
--- a/AndroidAssist.iml
+++ b/AndroidAssist.iml
@@ -4,6 +4,7 @@
+
@@ -15,5 +16,4 @@
-
-
+
\ No newline at end of file
diff --git a/app/app.iml b/app/app.iml
index 4c4ba07..b9bbd3f 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -13,8 +13,11 @@
-
-
+
+
+ generateDebugAndroidTestSources
+ generateDebugSources
+
@@ -68,6 +71,15 @@
+
+
+
+
+
+
+
+
+
@@ -87,19 +99,23 @@
+
-
-
+
+
-
-
+
+
+
+
+
+
-
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index c2bc031..3505812 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,37 +1,79 @@
+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"
+ multiDexEnabled true
}
buildTypes {
+ def STRING = "String"
+ def BOOLEAN = "boolean"
+ def TRUE = "true"
+ def FALSE = "false"
+ def END_POINT = "END_POINT"
+ def LOCAL_END_POINT = "\"http://assist.spencerdo.com\""
+ 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'
+ }
+ 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 {
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 dd17621..c7db87f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,43 +1,27 @@
+ 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 07d0e3d..0000000
--- a/app/src/main/java/com/assist/dg/androidassist/Activity/CoursesActivity.java
+++ /dev/null
@@ -1,47 +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/InfoActivity.java b/app/src/main/java/com/assist/dg/androidassist/Activity/InfoActivity.java
deleted file mode 100644
index 22cf2f4..0000000
--- a/app/src/main/java/com/assist/dg/androidassist/Activity/InfoActivity.java
+++ /dev/null
@@ -1,65 +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/Activity/MainActivity.java b/app/src/main/java/com/assist/dg/androidassist/Activity/MainActivity.java
index 079e152..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,86 +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.ChooseMajorFragment;
-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;
- }
-
- 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();
- }
- }
+import com.assist.dg.androidassist.fragment.BaseFragment;
+import com.assist.dg.androidassist.fragment.CollegeListFragment;
+public class MainActivity extends BaseActivity {
+ @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/Adapter/CourseListAdapter.java b/app/src/main/java/com/assist/dg/androidassist/Adapter/CourseListAdapter.java
deleted file mode 100644
index 5e40940..0000000
--- a/app/src/main/java/com/assist/dg/androidassist/Adapter/CourseListAdapter.java
+++ /dev/null
@@ -1,66 +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/App.java b/app/src/main/java/com/assist/dg/androidassist/App.java
new file mode 100644
index 0000000..980f518
--- /dev/null
+++ b/app/src/main/java/com/assist/dg/androidassist/App.java
@@ -0,0 +1,112 @@
+package com.assist.dg.androidassist;
+
+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..
+ */
+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")) {
+ try {
+ SSLContext sslContext;
+ try {
+ sslContext = SSLContext.getInstance("TLS");
+ sslContext.init(null, null, null);
+ } catch (GeneralSecurityException e) {
+ // The system has no TLS. Just give up.
+ throw new AssertionError();
+ }
+ client.setSslSocketFactory(sslContext.getSocketFactory());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
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
deleted file mode 100644
index 8932c89..0000000
--- a/app/src/main/java/com/assist/dg/androidassist/Fragment/ChooseMajorFragment.java
+++ /dev/null
@@ -1,88 +0,0 @@
-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;
-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.activity.CoursesActivity;
-import com.assist.dg.androidassist.activity.MainActivity;
-import com.assist.dg.androidassist.parser.MajorParser;
-import com.assist.dg.androidassist.R;
-
-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
new file mode 100644
index 0000000..48d5883
--- /dev/null
+++ b/app/src/main/java/com/assist/dg/androidassist/Fragment/CollegeListFragment.java
@@ -0,0 +1,64 @@
+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
deleted file mode 100644
index 31dfdf2..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.activity.MainActivity;
-import com.assist.dg.androidassist.parser.UnivParser;
-import com.assist.dg.androidassist.R;
-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);
- ((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 18d8717..0000000
--- a/app/src/main/java/com/assist/dg/androidassist/Fragment/CoursesFragment.java
+++ /dev/null
@@ -1,80 +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 {
-
- 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;
-
- 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, 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> 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/java/com/assist/dg/androidassist/util/WLog.java b/app/src/main/java/com/assist/dg/androidassist/util/WLog.java
new file mode 100644
index 0000000..92a18ec
--- /dev/null
+++ b/app/src/main/java/com/assist/dg/androidassist/util/WLog.java
@@ -0,0 +1,79 @@
+package com.assist.dg.androidassist.util;
+
+import android.util.Log;
+
+/**
+ * Created by doyonghoon on 2015. 10. 28..
+ */
+public class WLog {
+
+ static int lineNumber;
+ static String className;
+ static String methodName;
+
+ private static void log(int mode, String className, String msg) {
+ //CrashlyticsHelper.log(mode, className, msg);
+ }
+
+ private static String createLog(String log) {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("[");
+ buffer.append(methodName);
+ buffer.append("():");
+ buffer.append(lineNumber);
+ buffer.append("]");
+ buffer.append(log);
+
+ return buffer.toString();
+ }
+
+ private static void getMethodNames(StackTraceElement[] sElements) {
+ className = sElements[1].getFileName().replaceAll(".java", "");
+ methodName = sElements[1].getMethodName();
+ lineNumber = sElements[1].getLineNumber();
+ }
+
+ public static void e(String message) {
+
+ // Throwable instance must be created before any methods
+ getMethodNames(new Throwable().getStackTrace());
+
+ Log.e(className, createLog(message));
+ log(Log.ERROR, className, createLog(message));
+ }
+
+ public static void i(String message) {
+ getMethodNames(new Throwable().getStackTrace());
+
+ Log.i(className, createLog(message));
+ log(Log.INFO, className, createLog(message));
+ }
+
+ public static void d(String message) {
+ getMethodNames(new Throwable().getStackTrace());
+
+ Log.d(className, createLog(message));
+ log(Log.DEBUG, className, createLog(message));
+ }
+
+ public static void v(String message) {
+ getMethodNames(new Throwable().getStackTrace());
+
+ Log.v(className, createLog(message));
+ log(Log.VERBOSE, className, createLog(message));
+ }
+
+ public static void w(String message) {
+ getMethodNames(new Throwable().getStackTrace());
+
+ Log.w(className, createLog(message));
+ log(Log.WARN, className, createLog(message));
+ }
+
+ public static void wtf(String message) {
+ getMethodNames(new Throwable().getStackTrace());
+
+ Log.wtf(className, createLog(message));
+ log(Log.ERROR, className, createLog("WatTheFuk: " + message));
+ }
+}
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/menu/menu_choose_major.xml b/app/src/main/res/menu/menu_choose_major.xml
deleted file mode 100644
index 08be954..0000000
--- a/app/src/main/res/menu/menu_choose_major.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
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-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/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 7ff949a..32826da 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,21 +1,30 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- repositories {
- jcenter()
- }
- 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
- }
-
+ repositories {
+ jcenter()
+ mavenCentral()
+ maven { url "http://dl.bintray.com/tbruyelle/tbruyelle" }
+ }
+ 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
+ }
}
allprojects {
- repositories {
- jcenter()
- maven { url 'http://clinker.47deg.com/nexus/content/groups/public'}
- }
+ repositories {
+ jcenter()
+ maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
+ }
}
+ext {
+ compileSdkVersion = 23
+ buildToolsVersion = '23.0.1'
+
+ minSdkVersion = 16
+ targetSdkVersion = 23
+
+ supportVersion = '23.0.1'
+}