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