| /* |
| * Copyright (C) 2018 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.internal.globalactions; |
| |
| import android.content.Context; |
| import android.graphics.drawable.Drawable; |
| import android.text.TextUtils; |
| import android.view.LayoutInflater; |
| import android.view.View; |
| import android.view.ViewGroup; |
| import android.widget.ImageView; |
| import android.widget.TextView; |
| import com.android.internal.R; |
| |
| /** A single press action maintains no state, just responds to a press and takes an action. */ |
| public abstract class SinglePressAction implements Action { |
| private final int mIconResId; |
| private final Drawable mIcon; |
| private final int mMessageResId; |
| private final CharSequence mMessage; |
| |
| protected SinglePressAction(int iconResId, int messageResId) { |
| mIconResId = iconResId; |
| mMessageResId = messageResId; |
| mMessage = null; |
| mIcon = null; |
| } |
| |
| protected SinglePressAction(int iconResId, Drawable icon, CharSequence message) { |
| mIconResId = iconResId; |
| mMessageResId = 0; |
| mMessage = message; |
| mIcon = icon; |
| } |
| |
| @Override |
| public boolean isEnabled() { |
| return true; |
| } |
| |
| public String getStatus() { |
| return null; |
| } |
| |
| @Override |
| abstract public void onPress(); |
| |
| @Override |
| public CharSequence getLabelForAccessibility(Context context) { |
| if (mMessage != null) { |
| return mMessage; |
| } else { |
| return context.getString(mMessageResId); |
| } |
| } |
| |
| @Override |
| public View create( |
| Context context, View convertView, ViewGroup parent, LayoutInflater inflater) { |
| View v = inflater.inflate(R.layout.global_actions_item, parent, false); |
| |
| ImageView icon = v.findViewById(R.id.icon); |
| TextView messageView = v.findViewById(R.id.message); |
| |
| TextView statusView = v.findViewById(R.id.status); |
| final String status = getStatus(); |
| if (statusView != null) { |
| if (!TextUtils.isEmpty(status)) { |
| statusView.setText(status); |
| } else { |
| statusView.setVisibility(View.GONE); |
| } |
| } |
| if (icon != null) { |
| if (mIcon != null) { |
| icon.setImageDrawable(mIcon); |
| icon.setScaleType(ImageView.ScaleType.CENTER_CROP); |
| } else if (mIconResId != 0) { |
| icon.setImageDrawable(context.getDrawable(mIconResId)); |
| } |
| } |
| if (messageView != null) { |
| if (mMessage != null) { |
| messageView.setText(mMessage); |
| } else { |
| messageView.setText(mMessageResId); |
| } |
| } |
| |
| return v; |
| } |
| } |