From e0a8c8bc005555db9ceb927966066a7efb186359 Mon Sep 17 00:00:00 2001 From: Robert Hitt Date: Thu, 4 Jan 2018 19:52:48 -0500 Subject: [PATCH] Updated API version - Also changed some model files to Kotlin --- app/build.gradle | 3 + .../java/srct/whatsopen/model/Facility.java | 99 ------------------- .../java/srct/whatsopen/model/Facility.kt | 41 ++++++++ .../java/srct/whatsopen/model/Location.kt | 9 ++ .../srct/whatsopen/model/MainSchedule.java | 51 ---------- .../java/srct/whatsopen/model/MainSchedule.kt | 45 +++++++++ .../java/srct/whatsopen/model/OpenTimes.java | 72 -------------- .../java/srct/whatsopen/model/OpenTimes.kt | 38 +++++++ .../srct/whatsopen/model/SpecialSchedule.java | 51 ---------- .../srct/whatsopen/model/SpecialSchedule.kt | 42 ++++++++ .../presenters/FacilityPresenter.java | 2 +- .../whatsopen/presenters/MainPresenter.java | 2 +- .../srct/whatsopen/util/WhatsOpenService.java | 2 +- .../views/activities/DetailActivity.java | 4 +- .../views/adapters/FacilityListAdapter.java | 2 +- build.gradle | 2 + 16 files changed, 186 insertions(+), 279 deletions(-) delete mode 100644 app/src/main/java/srct/whatsopen/model/Facility.java create mode 100644 app/src/main/java/srct/whatsopen/model/Facility.kt create mode 100644 app/src/main/java/srct/whatsopen/model/Location.kt delete mode 100644 app/src/main/java/srct/whatsopen/model/MainSchedule.java create mode 100644 app/src/main/java/srct/whatsopen/model/MainSchedule.kt delete mode 100644 app/src/main/java/srct/whatsopen/model/OpenTimes.java create mode 100644 app/src/main/java/srct/whatsopen/model/OpenTimes.kt delete mode 100644 app/src/main/java/srct/whatsopen/model/SpecialSchedule.java create mode 100644 app/src/main/java/srct/whatsopen/model/SpecialSchedule.kt diff --git a/app/build.gradle b/app/build.gradle index 6ad98b5..24978e4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,10 +8,12 @@ buildscript { } } apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' apply plugin: 'io.fabric' repositories { maven { url 'https://maven.fabric.io/public' } + mavenCentral() } apply plugin: 'realm-android' @@ -72,4 +74,5 @@ dependencies { compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') { transitive = true; } + compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" } diff --git a/app/src/main/java/srct/whatsopen/model/Facility.java b/app/src/main/java/srct/whatsopen/model/Facility.java deleted file mode 100644 index cd3f1cf..0000000 --- a/app/src/main/java/srct/whatsopen/model/Facility.java +++ /dev/null @@ -1,99 +0,0 @@ -package srct.whatsopen.model; - -import com.google.gson.annotations.SerializedName; - -import io.realm.RealmList; -import io.realm.RealmObject; -import io.realm.annotations.PrimaryKey; - -public class Facility extends RealmObject { - - public Facility(String name, String location, MainSchedule mainSchedule, - RealmList specialSchedules, boolean isOpen, - boolean isFavorited, String statusDuration) { - mName = name; - mLocation = location; - mMainSchedule = mainSchedule; - mSpecialSchedules = specialSchedules; - this.isOpen = isOpen; - this.isFavorited = isFavorited; - this.statusDuration = statusDuration; - } - - public Facility() { - } - - @PrimaryKey - @SerializedName("name") - private String mName; - - @SerializedName("location") - private String mLocation; - - @SerializedName("main_schedule") - private MainSchedule mMainSchedule; - - @SerializedName("special_schedules") - private RealmList mSpecialSchedules; - - private boolean isOpen; - private boolean isFavorited; - private String statusDuration; - - public String getStatusDuration() { - return statusDuration; - } - - public void setStatusDuration(String statusDuration) { - this.statusDuration = statusDuration; - } - - public RealmList getSpecialSchedules() { - return mSpecialSchedules; - } - - public void setSpecialSchedules(RealmList specialSchedules) { - mSpecialSchedules = specialSchedules; - } - - public boolean isOpen() { - - return isOpen; - } - - public void setOpen(boolean open) { - isOpen = open; - } - - public String getName() { - return mName; - } - - public void setName(String name) { - this.mName = name; - } - - public boolean isFavorited() { - return isFavorited; - } - - public void setFavorited(boolean favorited) { - isFavorited = favorited; - } - - public String getLocation() { - return mLocation; - } - - public void setLocation(String location) { - mLocation = location; - } - - public MainSchedule getMainSchedule() { - return mMainSchedule; - } - - public void setMainSchedule(MainSchedule mainSchedule) { - mMainSchedule = mainSchedule; - } -} diff --git a/app/src/main/java/srct/whatsopen/model/Facility.kt b/app/src/main/java/srct/whatsopen/model/Facility.kt new file mode 100644 index 0000000..a2e1f04 --- /dev/null +++ b/app/src/main/java/srct/whatsopen/model/Facility.kt @@ -0,0 +1,41 @@ +package srct.whatsopen.model + +import com.google.gson.annotations.SerializedName + +import io.realm.RealmList +import io.realm.RealmObject +import io.realm.annotations.PrimaryKey + +open class Facility : RealmObject { + + @PrimaryKey + @SerializedName("facility_name") + var name: String? = null + + @SerializedName("facility_location") + var location: Location? = null + + @SerializedName("main_schedule") + var mainSchedule: MainSchedule? = null + + @SerializedName("special_schedules") + var specialSchedules: RealmList? = null + + var isOpen: Boolean = false + var isFavorited: Boolean = false + var statusDuration: String? = null + + constructor(name: String, location: Location, mainSchedule: MainSchedule, + specialSchedules: RealmList, isOpen: Boolean, + isFavorited: Boolean, statusDuration: String) { + this.name = name + this.location = location + this.mainSchedule = mainSchedule + this.specialSchedules = specialSchedules + this.isOpen = isOpen + this.isFavorited = isFavorited + this.statusDuration = statusDuration + } + + constructor() {} +} diff --git a/app/src/main/java/srct/whatsopen/model/Location.kt b/app/src/main/java/srct/whatsopen/model/Location.kt new file mode 100644 index 0000000..9c479e7 --- /dev/null +++ b/app/src/main/java/srct/whatsopen/model/Location.kt @@ -0,0 +1,9 @@ +package srct.whatsopen.model + +import com.google.gson.annotations.SerializedName +import io.realm.RealmObject +import io.realm.annotations.PrimaryKey + +open class Location( + @PrimaryKey @SerializedName("building") var building: String = "" +) : RealmObject() diff --git a/app/src/main/java/srct/whatsopen/model/MainSchedule.java b/app/src/main/java/srct/whatsopen/model/MainSchedule.java deleted file mode 100644 index 30a223d..0000000 --- a/app/src/main/java/srct/whatsopen/model/MainSchedule.java +++ /dev/null @@ -1,51 +0,0 @@ -package srct.whatsopen.model; - -import com.google.gson.annotations.SerializedName; - -import io.realm.RealmList; -import io.realm.RealmObject; - -public class MainSchedule extends RealmObject implements Schedule{ - - public MainSchedule(RealmList openTimesList, String validStart, String validEnd) { - mOpenTimesList = openTimesList; - this.validStart = validStart; - this.validEnd = validEnd; - } - - public MainSchedule() { - } - - @SerializedName("open_times") - private RealmList mOpenTimesList; - - @SerializedName("valid_start") - private String validStart; - - @SerializedName("valid_end") - private String validEnd; - - public String getValidStart() { - return validStart; - } - - public void setValidStart(String validStart) { - this.validStart = validStart; - } - - public String getValidEnd() { - return validEnd; - } - - public void setValidEnd(String validEnd) { - this.validEnd = validEnd; - } - - public RealmList getOpenTimesList() { - return mOpenTimesList; - } - - public void setOpenTimesList(RealmList openTimesList) { - mOpenTimesList = openTimesList; - } -} diff --git a/app/src/main/java/srct/whatsopen/model/MainSchedule.kt b/app/src/main/java/srct/whatsopen/model/MainSchedule.kt new file mode 100644 index 0000000..a5f0afe --- /dev/null +++ b/app/src/main/java/srct/whatsopen/model/MainSchedule.kt @@ -0,0 +1,45 @@ +package srct.whatsopen.model + +import com.google.gson.annotations.SerializedName + +import io.realm.RealmList +import io.realm.RealmObject + +open class MainSchedule : RealmObject, Schedule { + + @SerializedName("open_times") + private var mOpenTimesList: RealmList? = null + + @SerializedName("valid_start") + var validStart: String? = null + + @SerializedName("valid_end") + private var validEnd: String? = null + + @SerializedName("twenty_four_hours") + var openTwentyFourHours: Boolean? = null + + constructor(openTimesList: RealmList, validStart: String, validEnd: String) { + mOpenTimesList = openTimesList + this.validStart = validStart + this.validEnd = validEnd + } + + constructor() {} + + override fun getValidEnd(): String? { + return validEnd + } + + fun setValidEnd(validEnd: String) { + this.validEnd = validEnd + } + + override fun getOpenTimesList(): RealmList? { + return mOpenTimesList + } + + fun setOpenTimesList(openTimesList: RealmList) { + mOpenTimesList = openTimesList + } +} diff --git a/app/src/main/java/srct/whatsopen/model/OpenTimes.java b/app/src/main/java/srct/whatsopen/model/OpenTimes.java deleted file mode 100644 index 80f821e..0000000 --- a/app/src/main/java/srct/whatsopen/model/OpenTimes.java +++ /dev/null @@ -1,72 +0,0 @@ -package srct.whatsopen.model; - -import com.google.gson.annotations.SerializedName; - -import io.realm.RealmObject; - -public class OpenTimes extends RealmObject { - - public OpenTimes(int startDay, int endDay, String startTime, String endTime) { - this.startDay = startDay; - this.endDay = endDay; - this.startTime = startTime; - this.endTime = endTime; - } - - public OpenTimes() { - } - - @Override - public String toString() { - return "OpenTimes{" + - "startDay=" + startDay + - ", endDay=" + endDay + - ", startTime='" + startTime + '\'' + - ", endTime='" + endTime + '\'' + - '}'; - } - - @SerializedName("start_day") - private int startDay; - - @SerializedName("end_day") - private int endDay; - - @SerializedName("start_time") - private String startTime; - - @SerializedName("end_time") - private String endTime; - - public int getEndDay() { - return endDay; - } - - public void setEndDay(int endDay) { - this.endDay = endDay; - } - - public int getStartDay() { - return startDay; - } - - public void setStartDay(int startDay) { - this.startDay = startDay; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } -} diff --git a/app/src/main/java/srct/whatsopen/model/OpenTimes.kt b/app/src/main/java/srct/whatsopen/model/OpenTimes.kt new file mode 100644 index 0000000..92155ba --- /dev/null +++ b/app/src/main/java/srct/whatsopen/model/OpenTimes.kt @@ -0,0 +1,38 @@ +package srct.whatsopen.model + +import com.google.gson.annotations.SerializedName + +import io.realm.RealmObject + +open class OpenTimes : RealmObject { + + @SerializedName("start_day") + var startDay: Int = 0 + + @SerializedName("end_day") + var endDay: Int = 0 + + @SerializedName("start_time") + var startTime: String? = null + + @SerializedName("end_time") + var endTime: String? = null + + constructor(startDay: Int, endDay: Int, startTime: String, endTime: String) { + this.startDay = startDay + this.endDay = endDay + this.startTime = startTime + this.endTime = endTime + } + + constructor() {} + + override fun toString(): String { + return "OpenTimes{" + + "startDay=" + startDay + + ", endDay=" + endDay + + ", startTime='" + startTime + '\'' + + ", endTime='" + endTime + '\'' + + '}' + } +} diff --git a/app/src/main/java/srct/whatsopen/model/SpecialSchedule.java b/app/src/main/java/srct/whatsopen/model/SpecialSchedule.java deleted file mode 100644 index a320bc9..0000000 --- a/app/src/main/java/srct/whatsopen/model/SpecialSchedule.java +++ /dev/null @@ -1,51 +0,0 @@ -package srct.whatsopen.model; - -import com.google.gson.annotations.SerializedName; - -import io.realm.RealmList; -import io.realm.RealmObject; - -public class SpecialSchedule extends RealmObject implements Schedule { - - public SpecialSchedule(RealmList openTimesList, String validStart, String validEnd) { - mOpenTimesList = openTimesList; - this.validStart = validStart; - this.validEnd = validEnd; - } - - public SpecialSchedule() { - } - - @SerializedName("open_times") - private RealmList mOpenTimesList; - - @SerializedName("valid_start") - private String validStart; - - @SerializedName("valid_end") - private String validEnd; - - public String getValidStart() { - return validStart; - } - - public void setValidStart(String validStart) { - this.validStart = validStart; - } - - public String getValidEnd() { - return validEnd; - } - - public void setValidEnd(String validEnd) { - this.validEnd = validEnd; - } - - public RealmList getOpenTimesList() { - return mOpenTimesList; - } - - public void setOpenTimesList(RealmList openTimesList) { - mOpenTimesList = openTimesList; - } -} diff --git a/app/src/main/java/srct/whatsopen/model/SpecialSchedule.kt b/app/src/main/java/srct/whatsopen/model/SpecialSchedule.kt new file mode 100644 index 0000000..796e4c3 --- /dev/null +++ b/app/src/main/java/srct/whatsopen/model/SpecialSchedule.kt @@ -0,0 +1,42 @@ +package srct.whatsopen.model + +import com.google.gson.annotations.SerializedName + +import io.realm.RealmList +import io.realm.RealmObject + +open class SpecialSchedule : RealmObject, Schedule { + + @SerializedName("open_times") + private var mOpenTimesList: RealmList? = null + + @SerializedName("valid_start") + var validStart: String? = null + + @SerializedName("valid_end") + private var validEnd: String? = null + + constructor(openTimesList: RealmList, validStart: String, validEnd: String) { + mOpenTimesList = openTimesList + this.validStart = validStart + this.validEnd = validEnd + } + + constructor() {} + + override fun getValidEnd(): String? { + return validEnd + } + + fun setValidEnd(validEnd: String) { + this.validEnd = validEnd + } + + override fun getOpenTimesList(): RealmList? { + return mOpenTimesList + } + + fun setOpenTimesList(openTimesList: RealmList) { + mOpenTimesList = openTimesList + } +} diff --git a/app/src/main/java/srct/whatsopen/presenters/FacilityPresenter.java b/app/src/main/java/srct/whatsopen/presenters/FacilityPresenter.java index 8c92bde..e5db6d5 100644 --- a/app/src/main/java/srct/whatsopen/presenters/FacilityPresenter.java +++ b/app/src/main/java/srct/whatsopen/presenters/FacilityPresenter.java @@ -59,7 +59,7 @@ public class FacilityPresenter { realm.executeTransactionAsync(bgRealm -> { // have to re-query for the object as it was created on a separate thread Facility f = bgRealm.where(Facility.class) - .equalTo("mName", facilityName).findFirst(); + .equalTo("name", facilityName).findFirst(); f.setFavorited(status); editor.putBoolean(facilityName+"FavoriteStatus", status); diff --git a/app/src/main/java/srct/whatsopen/presenters/MainPresenter.java b/app/src/main/java/srct/whatsopen/presenters/MainPresenter.java index 2d2e8d3..16d6a38 100644 --- a/app/src/main/java/srct/whatsopen/presenters/MainPresenter.java +++ b/app/src/main/java/srct/whatsopen/presenters/MainPresenter.java @@ -123,7 +123,7 @@ public class MainPresenter { private void removeFacilityFromRealm(Facility facility) { final String name = facility.getName(); mRealm.executeTransactionAsync((bgRealm) -> { - RealmResults results = bgRealm.where(Facility.class).equalTo("mName", name) + RealmResults results = bgRealm.where(Facility.class).equalTo("name", name) .findAll(); results.deleteAllFromRealm(); diff --git a/app/src/main/java/srct/whatsopen/util/WhatsOpenService.java b/app/src/main/java/srct/whatsopen/util/WhatsOpenService.java index 77be450..4fe78f3 100644 --- a/app/src/main/java/srct/whatsopen/util/WhatsOpenService.java +++ b/app/src/main/java/srct/whatsopen/util/WhatsOpenService.java @@ -19,7 +19,7 @@ public class WhatsOpenService { private static volatile Retrofit sRetrofit = null; private static WhatsOpenApi mService; - private static final String BASE_URL = "https://whatsopen.gmu.edu/api/"; + private static final String BASE_URL = "https://api.srct.gmu.edu/whatsopen/v2/"; public WhatsOpenService() { } diff --git a/app/src/main/java/srct/whatsopen/views/activities/DetailActivity.java b/app/src/main/java/srct/whatsopen/views/activities/DetailActivity.java index c539790..f359a07 100644 --- a/app/src/main/java/srct/whatsopen/views/activities/DetailActivity.java +++ b/app/src/main/java/srct/whatsopen/views/activities/DetailActivity.java @@ -164,7 +164,7 @@ public class DetailActivity extends AppCompatActivity implements FacilityView, // Queries Realm for the facility matching the key private void getFacility(String key) { - mFacility = mRealm.where(Facility.class).equalTo("mName", key).findFirst(); + mFacility = mRealm.where(Facility.class).equalTo("name", key).findFirst(); } // Configures the toolbar title, actions, etc @@ -203,7 +203,7 @@ public class DetailActivity extends AppCompatActivity implements FacilityView, openDurationTextView.setText(mFacility.getStatusDuration()); - locationTextView.setText(mFacility.getLocation()); + locationTextView.setText(mFacility.getLocation().getBuilding()); Calendar now = Calendar.getInstance(); Schedule currentSchedule = mPresenter.getActiveSchedule(mFacility, now); diff --git a/app/src/main/java/srct/whatsopen/views/adapters/FacilityListAdapter.java b/app/src/main/java/srct/whatsopen/views/adapters/FacilityListAdapter.java index 2142c53..7d99d27 100644 --- a/app/src/main/java/srct/whatsopen/views/adapters/FacilityListAdapter.java +++ b/app/src/main/java/srct/whatsopen/views/adapters/FacilityListAdapter.java @@ -161,7 +161,7 @@ public class FacilityListAdapter extends if(constraint != null && getData() != null) { RealmResults results = getData().where() - .contains("mName", constraint.toString(), Case.INSENSITIVE) + .contains("name", constraint.toString(), Case.INSENSITIVE) .findAll(); updateData(results); } diff --git a/build.gradle b/build.gradle index 97d5c5a..48a206c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.kotlin_version = '1.2.10' repositories { mavenCentral() jcenter() @@ -12,6 +13,7 @@ buildscript { classpath 'io.realm:realm-gradle-plugin:3.0.0' classpath 'me.tatarka:gradle-retrolambda:3.3.1' classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files -- GitLab