/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.tv.settings.dialog.old; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; import android.util.Log; import java.util.ArrayList; /** * An action within an {@link ActionAdapter}. */ public class Action implements Parcelable { private static final String TAG = "Action"; public static final int NO_DRAWABLE = 0; public static final int NO_CHECK_SET = 0; public static final int DEFAULT_CHECK_SET_ID = 1; private final String mKey; private final String mTitle; private final String mDescription; private final Intent mIntent; /** * If not {@code null}, the package name to use to retrieve {{@link #mDrawableResource}. */ private final String mResourcePackageName; private final int mDrawableResource; private final Uri mIconUri; private boolean mChecked; private final boolean mMultilineDescription; private final boolean mHasNext; private final boolean mInfoOnly; private final int mCheckSetId; private boolean mEnabled; /** * Builds a Action object. */ public static class Builder { private String mKey; private String mTitle; private String mDescription; private Intent mIntent; private String mResourcePackageName; private int mDrawableResource = NO_DRAWABLE; private Uri mIconUri; private boolean mChecked; private boolean mMultilineDescription; private boolean mHasNext; private boolean mInfoOnly; private int mCheckSetId = NO_CHECK_SET; private boolean mEnabled = true; public Action build() { return new Action( mKey, mTitle, mDescription, mResourcePackageName, mDrawableResource, mIconUri, mChecked, mMultilineDescription, mHasNext, mInfoOnly, mIntent, mCheckSetId, mEnabled); } public Builder key(String key) { mKey = key; return this; } public Builder title(String title) { mTitle = title; return this; } public Builder description(String description) { mDescription = description; return this; } public Builder intent(Intent intent) { mIntent = intent; return this; } public Builder resourcePackageName(String resourcePackageName) { mResourcePackageName = resourcePackageName; return this; } public Builder drawableResource(int drawableResource) { mDrawableResource = drawableResource; return this; } public Builder iconUri(Uri iconUri) { mIconUri = iconUri; return this; } public Builder checked(boolean checked) { mChecked = checked; return this; } public Builder multilineDescription(boolean multilineDescription) { mMultilineDescription = multilineDescription; return this; } public Builder hasNext(boolean hasNext) { mHasNext = hasNext; return this; } public Builder infoOnly(boolean infoOnly) { mInfoOnly = infoOnly; return this; } public Builder checkSetId(int checkSetId) { mCheckSetId = checkSetId; return this; } public Builder enabled(boolean enabled) { mEnabled = enabled; return this; } } protected Action(String key, String title, String description, String resourcePackageName, int drawableResource, Uri iconUri, boolean checked, boolean multilineDescription, boolean hasNext, boolean infoOnly, Intent intent, int checkSetId, boolean enabled) { mKey = key; mTitle = title; mDescription = description; mResourcePackageName = resourcePackageName; mDrawableResource = drawableResource; mIconUri = iconUri; mChecked = checked; mMultilineDescription = multilineDescription; mHasNext = hasNext; mInfoOnly = infoOnly; mIntent = intent; mCheckSetId = checkSetId; mEnabled = enabled; } /** * Returns a list of {@link Action} with the specified keys and titles * matched up. *
* The key and title arrays must be of equal length.
*/
public static ArrayList
* The key and title arrays must be of equal length.
*/
public static ArrayList