From 6a44b8c969474fa7fef36f5e9989af9a03147548 Mon Sep 17 00:00:00 2001 From: Kevin Whitaker Date: Wed, 18 Nov 2015 00:20:13 -0500 Subject: [PATCH] Since smaller zipped file will be needed to update, create custom retrofit converter to handle task. Started laying out api code. --- .../MagnatuneCompainionApplication.java | 7 +++++++ .../api/MagnatuneAlbumsConverter.java | 16 +++++++++++++++ .../api/MagnatuneAlbumsConverterFactory.java | 20 +++++++++++++++++++ .../companionformagnatune/api/data_api.java | 11 ++++++++++ .../companionformagnatune/model/Album.java | 7 +++++++ .../model/AlbumResponse.java | 5 +++++ .../companionformagnatune/model/Track.java | 7 +++++++ 7 files changed, 73 insertions(+) create mode 100644 app/src/main/java/com/magnatune/eyecreate/companionformagnatune/api/MagnatuneAlbumsConverter.java create mode 100644 app/src/main/java/com/magnatune/eyecreate/companionformagnatune/api/MagnatuneAlbumsConverterFactory.java create mode 100644 app/src/main/java/com/magnatune/eyecreate/companionformagnatune/api/data_api.java create mode 100644 app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/Album.java create mode 100644 app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/AlbumResponse.java create mode 100644 app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/Track.java diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/MagnatuneCompainionApplication.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/MagnatuneCompainionApplication.java index 95ea5d0..4ae1128 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/MagnatuneCompainionApplication.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/MagnatuneCompainionApplication.java @@ -2,6 +2,8 @@ package com.magnatune.eyecreate.companionformagnatune; import android.app.Application; +import com.magnatune.eyecreate.companionformagnatune.api.data_api; + public class MagnatuneCompainionApplication extends Application { private static MagnatuneCompainionApplication instance; @@ -15,4 +17,9 @@ public class MagnatuneCompainionApplication extends Application { public static Application getApplication() { return instance; } + + public static data_api getDataApi() { + //TODO:implement + return null; + } } diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/api/MagnatuneAlbumsConverter.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/api/MagnatuneAlbumsConverter.java new file mode 100644 index 0000000..bf6dd85 --- /dev/null +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/api/MagnatuneAlbumsConverter.java @@ -0,0 +1,16 @@ +package com.magnatune.eyecreate.companionformagnatune.api; + +import com.magnatune.eyecreate.companionformagnatune.model.AlbumResponse; +import com.squareup.okhttp.ResponseBody; + +import java.io.IOException; + +import retrofit.Converter; + +public class MagnatuneAlbumsConverter implements Converter { + @Override + public AlbumResponse convert(ResponseBody value) throws IOException { + //TODO:convert from zip to xml to object + return null; + } +} diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/api/MagnatuneAlbumsConverterFactory.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/api/MagnatuneAlbumsConverterFactory.java new file mode 100644 index 0000000..eeb51be --- /dev/null +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/api/MagnatuneAlbumsConverterFactory.java @@ -0,0 +1,20 @@ +package com.magnatune.eyecreate.companionformagnatune.api; + +import com.magnatune.eyecreate.companionformagnatune.model.AlbumResponse; +import com.squareup.okhttp.ResponseBody; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Type; + +import retrofit.Converter; + +public class MagnatuneAlbumsConverterFactory extends Converter.Factory { + @Override + public Converter fromResponseBody(Type type, Annotation[] annotations) { + if(AlbumResponse.class.equals(type)) { + return new MagnatuneAlbumsConverter(); + } else { + return null; + } + } +} diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/api/data_api.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/api/data_api.java new file mode 100644 index 0000000..489382d --- /dev/null +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/api/data_api.java @@ -0,0 +1,11 @@ +package com.magnatune.eyecreate.companionformagnatune.api; + +import com.magnatune.eyecreate.companionformagnatune.model.AlbumResponse; + +import retrofit.Call; +import retrofit.http.GET; + +public interface data_api { + @GET("/info/album_info.xml") + Call getAlbumList(); +} diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/Album.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/Album.java new file mode 100644 index 0000000..3e6a059 --- /dev/null +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/Album.java @@ -0,0 +1,7 @@ +package com.magnatune.eyecreate.companionformagnatune.model; + +import io.realm.RealmObject; + +public class Album extends RealmObject { + //TODO:fill +} diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/AlbumResponse.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/AlbumResponse.java new file mode 100644 index 0000000..c454ca7 --- /dev/null +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/AlbumResponse.java @@ -0,0 +1,5 @@ +package com.magnatune.eyecreate.companionformagnatune.model; + +public class AlbumResponse { + //TODO:fill +} diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/Track.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/Track.java new file mode 100644 index 0000000..0e42223 --- /dev/null +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/Track.java @@ -0,0 +1,7 @@ +package com.magnatune.eyecreate.companionformagnatune.model; + +import io.realm.RealmObject; + +public class Track extends RealmObject { + //TODO:fill +} -- GitLab