133781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux/* 233781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * Copyright (C) 2016 The Android Open Source Project 333781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * 433781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * Licensed under the Apache License, Version 2.0 (the "License"); 533781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * you may not use this file except in compliance with the License. 633781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * You may obtain a copy of the License at 733781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * 833781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * http://www.apache.org/licenses/LICENSE-2.0 933781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * 1033781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * Unless required by applicable law or agreed to in writing, software 1133781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * distributed under the License is distributed on an "AS IS" BASIS, 1233781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1333781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * See the License for the specific language governing permissions and 1433781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux * limitations under the License. 1533781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux */ 1633781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux 1733781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieuxpackage com.android.deskclock.ringtone; 1833781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux 1933781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieuximport android.net.Uri; 2033781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux 2133781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieuximport com.android.deskclock.ItemAdapter; 2233781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieuximport com.android.deskclock.Utils; 2333781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieuximport com.android.deskclock.data.DataModel; 2433781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux 2533781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieuximport static android.support.v7.widget.RecyclerView.NO_ID; 2633781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux 2733781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieuxabstract class RingtoneHolder extends ItemAdapter.ItemHolder<Uri> { 2833781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux 2933781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux private final String mName; 3095eed3212011413e1cb717c281e2157859a5adf4Sean Stout private final boolean mHasPermissions; 3133781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux private boolean mSelected; 3233781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux private boolean mPlaying; 3333781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux 3433781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux RingtoneHolder(Uri uri, String name) { 3595eed3212011413e1cb717c281e2157859a5adf4Sean Stout this(uri, name, true); 3695eed3212011413e1cb717c281e2157859a5adf4Sean Stout } 3795eed3212011413e1cb717c281e2157859a5adf4Sean Stout 3895eed3212011413e1cb717c281e2157859a5adf4Sean Stout RingtoneHolder(Uri uri, String name, boolean hasPermissions) { 3933781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux super(uri, NO_ID); 4033781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux mName = name; 4195eed3212011413e1cb717c281e2157859a5adf4Sean Stout mHasPermissions = hasPermissions; 4233781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux } 4333781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux 4433781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux long getId() { return itemId; } 4595eed3212011413e1cb717c281e2157859a5adf4Sean Stout boolean hasPermissions() { return mHasPermissions; } 4633781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux Uri getUri() { return item; } 4795eed3212011413e1cb717c281e2157859a5adf4Sean Stout 4833781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux boolean isSilent() { return Utils.RINGTONE_SILENT.equals(getUri()); } 4933781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux 5033781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux boolean isSelected() { return mSelected; } 5133781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux void setSelected(boolean selected) { mSelected = selected; } 5233781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux 5333781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux boolean isPlaying() { return mPlaying; } 5433781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux void setPlaying(boolean playing) { mPlaying = playing; } 5533781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux 5633781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux String getName() { 5733781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux return mName != null ? mName : DataModel.getDataModel().getRingtoneTitle(getUri()); 5833781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux } 5933781c882e4229f4ec1a8fafbabb9d4b8b8e2932James Lemieux}