186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn/*
286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * Copyright (C) 2015 The Android Open Source Project
386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn *
486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * in compliance with the License. You may obtain a copy of the License at
686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn *
786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * http://www.apache.org/licenses/LICENSE-2.0
886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn *
986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * Unless required by applicable law or agreed to in writing, software distributed under the License
1086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
1186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * or implied. See the License for the specific language governing permissions and limitations under
1286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn * the License.
1386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn *
1486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn */
1586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
16ad31f63f5843898de645f6ee1ac244c872ded8ccRobert Hahnpackage android.support.v17.leanback.supportleanbackshowcase.models;
1786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
1886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.content.Context;
191dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiriimport android.graphics.drawable.Drawable;
2086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.support.v17.leanback.supportleanbackshowcase.R;
211dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiriimport android.support.v17.leanback.widget.BaseOnItemViewSelectedListener;
221dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiriimport android.support.v17.leanback.widget.MultiActionsProvider;
2386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.support.v17.leanback.widget.Row;
2486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.support.v17.leanback.widget.RowPresenter;
251dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiriimport android.util.Log;
2686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.view.LayoutInflater;
2786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.view.View;
2886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.view.ViewGroup;
2986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport android.widget.TextView;
3086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
311dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiriimport com.google.gson.Gson;
3286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahnimport com.google.gson.annotations.SerializedName;
3386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
341dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiripublic class Song implements MultiActionsProvider {
3586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
3686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    @SerializedName("title") private String mTitle = "";
3786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    @SerializedName("description") private String mDescription = "";
3886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    @SerializedName("text") private String mText = "";
3986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    @SerializedName("image") private String mImage = null;
4086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    @SerializedName("file") private String mFile = null;
4186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    @SerializedName("duration") private String mDuration = null;
4286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    @SerializedName("number") private int mNumber = 0;
431dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    @SerializedName("favorite") private boolean mFavorite = false;
4486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
451dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    private MultiAction[] mMediaRowActions;
461dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri
471dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri
481dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    public void setMediaRowActions(MultiAction[] mediaRowActions) {
491dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri        mMediaRowActions = mediaRowActions;
501dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    }
511dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri
521dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    public MultiAction[] getMediaRowActions() {
531dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri        return mMediaRowActions;
541dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    }
5586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
5686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    public String getDuration() {
5786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        return mDuration;
5886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    }
5986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
601dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    public void setDuration(String duration) {
611dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri        mDuration = duration;
621dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    }
631dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri
6486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    public int getNumber() {
6586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        return mNumber;
6686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    }
6786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
6886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    public String getText() {
6986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        return mText;
7086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    }
7186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
7286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    public String getDescription() {
7386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        return mDescription;
7486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    }
7586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
761dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    public void setDescription(String description) {
771dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri        mDescription = description;
781dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    }
791dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri
8086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    public String getTitle() {
8186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        return mTitle;
8286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    }
8386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
841dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    public void setTitle(String title) {
851dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri        mTitle = title;
861dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    }
871dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri
881dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    public boolean isFavorite() {
891dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri        return mFavorite;
901dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    }
911dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri
921dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    public void setFavorite(boolean favorite) {
931dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri        mFavorite = favorite;
941dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    }
951dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri
9686163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    public int getFileResource(Context context) {
9786163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        return context.getResources()
9886163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                      .getIdentifier(mFile, "raw", context.getPackageName());
9986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    }
10086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
10186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    public int getImageResource(Context context) {
10286163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn        return context.getResources()
10386163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn                      .getIdentifier(mImage, "drawable", context.getPackageName());
10486163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    }
10586163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
1061dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    @Override
1071dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri    public MultiAction[] getActions() {
1081dd934eb3d2aa4e685585fa0f26c738feee0db4cKeyvan Amiri        return mMediaRowActions;
10986163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn    }
11086163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn
11186163d539e1aeb9ae7612def7aaf7dbfc5b88f28Robert Hahn}
112