pax_global_header 0000666 0000000 0000000 00000000064 12646746423 0014530 g ustar 00root root 0000000 0000000 52 comment=2ae6a5b3689f5d73c6484dcdfd40f3ab151be22e
MagnatuneCompanion-master/ 0000775 0000000 0000000 00000000000 12646746423 0016150 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/ 0000775 0000000 0000000 00000000000 12646746423 0016730 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/build.gradle 0000664 0000000 0000000 00000002261 12646746423 0021210 0 ustar 00root root 0000000 0000000 apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.magnatune.eyecreate.companionformagnatune"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:design:23.1.+'
compile 'com.android.support:cardview-v7:23.0.+'
compile 'com.heinrichreimersoftware:material-drawer:2.2.0' //Apache 2.0
compile 'io.realm:realm-android:0.85.0' //Apache 2.0 + RCBL
compile 'com.squareup.picasso:picasso:2.5.2' //Apache 2.0
compile 'com.github.thorbenprimke:realm-recyclerview:0.9.7' //Apache 2.0
compile 'com.github.TonicArtos:SuperSLiM:ed0ba4b4d2'
compile 'com.squareup.retrofit:retrofit:2.0.0-beta2' //Apache 2.0
compile ('com.thoughtworks.xstream:xstream:1.4.7') { //BSD
exclude group: 'xmlpull'
}
}
MagnatuneCompanion-master/app/proguard-rules.pro 0000664 0000000 0000000 00000001230 12646746423 0022421 0 ustar 00root root 0000000 0000000 # Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /home/eyecreate/android-sdk-linux/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
MagnatuneCompanion-master/app/src/ 0000775 0000000 0000000 00000000000 12646746423 0017517 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/androidTest/ 0000775 0000000 0000000 00000000000 12646746423 0021777 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/androidTest/java/ 0000775 0000000 0000000 00000000000 12646746423 0022720 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/androidTest/java/com/ 0000775 0000000 0000000 00000000000 12646746423 0023476 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/androidTest/java/com/magnatune/ 0000775 0000000 0000000 00000000000 12646746423 0025455 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/androidTest/java/com/magnatune/eyecreate/ 0000775 0000000 0000000 00000000000 12646746423 0027423 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/androidTest/java/com/magnatune/eyecreate/companionformagnatune/ 0000775 0000000 0000000 00000000000 12646746423 0034015 5 ustar 00root root 0000000 0000000 ApplicationTest.java 0000664 0000000 0000000 00000000570 12646746423 0037706 0 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/androidTest/java/com/magnatune/eyecreate/companionformagnatune package com.magnatune.eyecreate.companionformagnatune;
import android.app.Application;
import android.test.ApplicationTestCase;
/**
* Testing Fundamentals
*/
public class ApplicationTest extends ApplicationTestCase {
public ApplicationTest() {
super(Application.class);
}
} MagnatuneCompanion-master/app/src/main/ 0000775 0000000 0000000 00000000000 12646746423 0020443 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/main/AndroidManifest.xml 0000664 0000000 0000000 00000002050 12646746423 0024231 0 ustar 00root root 0000000 0000000
MagnatuneCompanion-master/app/src/main/java/ 0000775 0000000 0000000 00000000000 12646746423 0021364 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/main/java/com/ 0000775 0000000 0000000 00000000000 12646746423 0022142 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/main/java/com/magnatune/ 0000775 0000000 0000000 00000000000 12646746423 0024121 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/main/java/com/magnatune/eyecreate/ 0000775 0000000 0000000 00000000000 12646746423 0026067 5 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/ 0000775 0000000 0000000 00000000000 12646746423 0032461 5 ustar 00root root 0000000 0000000 BrowseActivity.java 0000664 0000000 0000000 00000006022 12646746423 0036223 0 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/main/java/com/magnatune/eyecreate/companionformagnatune package com.magnatune.eyecreate.companionformagnatune;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.content.ContextCompat;
import com.heinrichreimersoftware.materialdrawer.DrawerActivity;
import com.heinrichreimersoftware.materialdrawer.structure.DrawerItem;
import com.heinrichreimersoftware.materialdrawer.structure.DrawerProfile;
import com.magnatune.eyecreate.companionformagnatune.fragments.AlbumsFragment;
import com.magnatune.eyecreate.companionformagnatune.fragments.ArtistsFragment;
import com.magnatune.eyecreate.companionformagnatune.login.MagnatuneAccountManager;
public class BrowseActivity extends DrawerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_browse);
addProfile(new DrawerProfile()
.setName(MagnatuneAccountManager.getMagnatuneName())
.setDescription(MagnatuneAccountManager.isLoggedIn() ? getString(R.string.click_to_logout) : getString(R.string.click_to_login))
.setRoundedAvatar((BitmapDrawable) ContextCompat.getDrawable(this, R.drawable.ic_account_white_48dp))
.setBackground(new ColorDrawable(ContextCompat.getColor(this, R.color.primary))));
addItem(new DrawerItem()
.setTextPrimary(getString(R.string.albums))
.setOnItemClickListener(new DrawerItem.OnItemClickListener() {
@Override
public void onClick(DrawerItem drawerItem, long l, int i) {
getSupportFragmentManager().beginTransaction()
.setCustomAnimations(R.anim.fragment_enter, R.anim.fragment_exit)
.replace(R.id.fragment_holder, new AlbumsFragment(), "albums")
.commit();
closeDrawer();
}
}));
addItem(new DrawerItem()
.setTextPrimary(getString(R.string.artists))
.setOnItemClickListener(new DrawerItem.OnItemClickListener() {
@Override
public void onClick(DrawerItem drawerItem, long l, int i) {
getSupportFragmentManager().beginTransaction()
.setCustomAnimations(R.anim.fragment_enter, R.anim.fragment_exit)
.replace(R.id.fragment_holder, new ArtistsFragment(), "artists")
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.commit();
closeDrawer();
}
}));
if(savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_holder,new AlbumsFragment(),"albums")
.commit();
}
}
}
MagnatuneCompainionApplication.java 0000664 0000000 0000000 00000002503 12646746423 0041365 0 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/main/java/com/magnatune/eyecreate/companionformagnatune package com.magnatune.eyecreate.companionformagnatune;
import android.app.Application;
import com.magnatune.eyecreate.companionformagnatune.api.MagnatuneAlbumsConverterFactory;
import com.magnatune.eyecreate.companionformagnatune.api.ToStringConverterFactory;
import com.magnatune.eyecreate.companionformagnatune.api.data_api;
import io.realm.RealmConfiguration;
import retrofit.Retrofit;
public class MagnatuneCompainionApplication extends Application {
private static MagnatuneCompainionApplication instance;
private static RealmConfiguration albumDBconfig;
@Override
public void onCreate() {
super.onCreate();
instance = this;
albumDBconfig = new RealmConfiguration.Builder(instance)
.name("albumDB")
.build();
}
public static Application getApplication() {
return instance;
}
public static data_api getDataApi() {
Retrofit api = new Retrofit.Builder()
.addConverterFactory(new MagnatuneAlbumsConverterFactory())
.addConverterFactory(new ToStringConverterFactory())
.baseUrl("http://he3.magnatune.com")
.build();
return api.create(data_api.class);
}
public static RealmConfiguration getAlbumDBConfig() {
return instance.albumDBconfig;
}
}
MagnatuneCompanion-master/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/adapters/ 0000775 0000000 0000000 00000000000 12646746423 0034264 5 ustar 00root root 0000000 0000000 AlbumsAdapter.java 0000664 0000000 0000000 00000012027 12646746423 0037576 0 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/adapters package com.magnatune.eyecreate.companionformagnatune.adapters;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v7.graphics.Palette;
import android.support.v7.widget.CardView;
import android.transition.ChangeBounds;
import android.transition.ChangeImageTransform;
import android.transition.ChangeTransform;
import android.transition.Slide;
import android.transition.TransitionSet;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import com.magnatune.eyecreate.companionformagnatune.R;
import com.magnatune.eyecreate.companionformagnatune.fragments.AlbumFragment;
import com.magnatune.eyecreate.companionformagnatune.model.Album;
import com.magnatune.eyecreate.companionformagnatune.viewholders.AlbumViewHolder;
import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso;
import io.realm.RealmBasedRecyclerViewAdapter;
import io.realm.RealmResults;
public class AlbumsAdapter extends RealmBasedRecyclerViewAdapter {
FragmentManager fragmentManager;
public AlbumsAdapter(Context context, RealmResults realmResults, boolean automaticUpdate, boolean animateResults, String animateExtraColumnName,FragmentManager fragmentManager) {
super(context, realmResults, automaticUpdate, animateResults, animateExtraColumnName);
this.fragmentManager = fragmentManager;
}
public AlbumsAdapter(Context context, RealmResults realmResults, boolean automaticUpdate, boolean animateResults, String animateExtraColumnName) {
super(context, realmResults, automaticUpdate, animateResults, animateExtraColumnName);
}
@Override
public AlbumViewHolder onCreateRealmViewHolder(ViewGroup viewGroup, int i) {
View v = inflater.inflate(R.layout.listitem_album_card,viewGroup,false);
AlbumViewHolder albumView = new AlbumViewHolder(v);
return albumView;
}
@Override
public void onBindRealmViewHolder(final AlbumViewHolder albumViewHolder, final int i) {
albumViewHolder.artistName.setText(realmResults.get(i).getArtist().getArtistname());
albumViewHolder.albumName.setText(realmResults.get(i).getAlbumname());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
albumViewHolder.albumArt.setTransitionName(realmResults.get(i).getAlbumsku());
}
Picasso.with(albumViewHolder.itemView.getContext()).load(realmResults.get(i).getCover_small()).into(albumViewHolder.albumArt, new Callback() {
@Override
public void onSuccess() {
Palette colors = Palette.from(((BitmapDrawable) albumViewHolder.albumArt.getDrawable()).getBitmap()).generate();
Palette.Swatch swatch = null;
swatch = colors.getVibrantSwatch();
if (swatch == null) {
swatch = colors.getMutedSwatch();
}
if (swatch == null && colors.getSwatches().size() > 0) {
swatch = colors.getSwatches().get(0);
}
if (swatch != null) {
((CardView) albumViewHolder.itemView).setCardBackgroundColor(swatch.getRgb());
albumViewHolder.albumName.setTextColor(swatch.getTitleTextColor());
albumViewHolder.artistName.setTextColor(swatch.getBodyTextColor());
}
}
@Override
public void onError() {
}
});
albumViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle args = new Bundle();
args.putString(AlbumFragment.ARG_ALBUM_ID, realmResults.get(i).getAlbumsku());
AlbumFragment fragment = new AlbumFragment();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
fragment.setEnterTransition(new Slide(Gravity.BOTTOM));
fragment.setExitTransition(new Slide(Gravity.BOTTOM));
TransitionSet sharedTransition = new TransitionSet();
sharedTransition.addTransition(new ChangeImageTransform()).addTransition(new ChangeBounds()).addTransition(new ChangeTransform());
fragment.setSharedElementEnterTransition(sharedTransition);
fragment.setSharedElementReturnTransition(sharedTransition);
}
fragment.setArguments(args);
fragmentManager.beginTransaction()
.setCustomAnimations(R.anim.fragment_enter,R.anim.fragment_exit,R.anim.fragment_pop_enter,R.anim.fragment_pop_exit)
.addSharedElement(albumViewHolder.albumArt,realmResults.get(i).getAlbumsku())
.replace(R.id.fragment_holder, fragment, "tracks")
.addToBackStack("tracks")
.commit();
}
});
}
}
ArtistsAdapter.java 0000664 0000000 0000000 00000007210 12646746423 0040002 0 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/adapters package com.magnatune.eyecreate.companionformagnatune.adapters;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.transition.ChangeBounds;
import android.transition.ChangeTransform;
import android.transition.Slide;
import android.transition.TransitionSet;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import com.magnatune.eyecreate.companionformagnatune.R;
import com.magnatune.eyecreate.companionformagnatune.fragments.ArtistFragment;
import com.magnatune.eyecreate.companionformagnatune.model.Artist;
import com.magnatune.eyecreate.companionformagnatune.viewholders.ArtistViewHolder;
import io.realm.RealmBasedRecyclerViewAdapter;
import io.realm.RealmResults;
public class ArtistsAdapter extends RealmBasedRecyclerViewAdapter {
FragmentManager fragmentManager;
public ArtistsAdapter(Context context, RealmResults realmResults, boolean automaticUpdate, boolean animateResults, boolean addSectionHeaders, String headerColumnName, FragmentManager fragmentManager) {
super(context, realmResults, automaticUpdate, animateResults, addSectionHeaders, headerColumnName);
this.fragmentManager = fragmentManager;
}
public ArtistsAdapter(Context context, RealmResults realmResults, boolean automaticUpdate, boolean animateResults, boolean addSectionHeaders, String headerColumnName) {
super(context, realmResults, automaticUpdate, animateResults, addSectionHeaders, headerColumnName);
}
@Override
public ArtistViewHolder onCreateRealmViewHolder(ViewGroup viewGroup, int i) {
View v = inflater.inflate(R.layout.listitem_artist,viewGroup,false);
ArtistViewHolder holder = new ArtistViewHolder(v);
return holder;
}
@Override
public void onBindRealmViewHolder(final ArtistViewHolder artistViewHolder, final int i) {
artistViewHolder.artistName.setText(realmResults.get(i).getArtistname());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
artistViewHolder.artistName.setTransitionName(realmResults.get(i).getArtistname());
}
artistViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Bundle args = new Bundle();
args.putString(ArtistFragment.ARG_ARTIST_NAME,realmResults.get(i).getArtistname());
ArtistFragment fragment = new ArtistFragment();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
fragment.setEnterTransition(new Slide(Gravity.BOTTOM));
fragment.setExitTransition(new Slide(Gravity.BOTTOM));
TransitionSet sharedTransition = new TransitionSet();
sharedTransition.addTransition(new ChangeBounds()).addTransition(new ChangeTransform());
fragment.setSharedElementEnterTransition(sharedTransition);
fragment.setSharedElementReturnTransition(sharedTransition);
}
fragment.setArguments(args);
fragmentManager.beginTransaction()
.setCustomAnimations(R.anim.fragment_enter,R.anim.fragment_exit,R.anim.fragment_pop_enter,R.anim.fragment_pop_exit)
.addSharedElement(artistViewHolder.artistName, realmResults.get(i).getArtistname())
.replace(R.id.fragment_holder, fragment, "artist")
.addToBackStack("artist")
.commit();
}
});
}
}
TracksAdapter.java 0000664 0000000 0000000 00000003074 12646746423 0037604 0 ustar 00root root 0000000 0000000 MagnatuneCompanion-master/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/adapters package com.magnatune.eyecreate.companionformagnatune.adapters;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.magnatune.eyecreate.companionformagnatune.R;
import com.magnatune.eyecreate.companionformagnatune.model.Track;
import io.realm.RealmBaseAdapter;
import io.realm.RealmResults;
public class TracksAdapter extends RealmBaseAdapter