summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStephen Bird <sbird@cyngn.com>2016-01-21 19:04:13 -0800
committerRichard MacGregor <rmacgregor@cyngn.com>2016-04-08 10:42:49 -0700
commita6049e69f130b9f5557465315112c5ca6647b3b9 (patch)
tree11d9eb75ea2a396cc33a489bc6a3755b31bdd5e3 /src
parentc5f5b115f589f95d02fb0fd3690d098ca6397974 (diff)
downloadandroid_packages_apps_PhoneCommon-a6049e69f130b9f5557465315112c5ca6647b3b9.tar.gz
android_packages_apps_PhoneCommon-a6049e69f130b9f5557465315112c5ca6647b3b9.tar.bz2
android_packages_apps_PhoneCommon-a6049e69f130b9f5557465315112c5ca6647b3b9.zip
Bring CallMethod items here
Change-Id: Iec207cac5b513199e7a1707e4e6617f607d78771
Diffstat (limited to 'src')
-rw-r--r--src/com/android/phone/common/incall/CallMethodSpinnerAdapter.java231
1 files changed, 0 insertions, 231 deletions
diff --git a/src/com/android/phone/common/incall/CallMethodSpinnerAdapter.java b/src/com/android/phone/common/incall/CallMethodSpinnerAdapter.java
deleted file mode 100644
index 434e13d..0000000
--- a/src/com/android/phone/common/incall/CallMethodSpinnerAdapter.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Copyright (C) 2015 The CyanogenMod 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.phone.common.incall;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.LayerDrawable;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.SpinnerAdapter;
-import android.widget.TextView;
-import com.android.dialer.incall.CallMethodInfo;
-
-import com.android.phone.common.R;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static com.cyanogen.ambient.incall.util.InCallHelper.NO_COLOR;
-
-public class CallMethodSpinnerAdapter extends ArrayAdapter<CallMethodInfo>
- implements SpinnerAdapter {
- private static final String TAG = CallMethodSpinnerAdapter.class.getSimpleName();
-
- private final Context mContext;
- private Map<String, Integer> mComponentMap;
-
- public CallMethodSpinnerAdapter(Context context, List<CallMethodInfo> objects) {
- super(context, 0, objects);
- mContext = context.getApplicationContext();
- processCallMethods(objects);
- }
-
- /**
- * Remove all elements from the list.
- */
- @Override
- public void clear() {
- super.clear();
- mComponentMap.clear();
- }
-
- /**
- * Adds the specified list of call method infos at the end of the array.
- *
- * @param objects The list of call method info entries to add at the end of the array.
- */
- public void addAll(List<CallMethodInfo> objects) {
- super.addAll(objects);
- processCallMethods(objects);
- }
-
- /**
- * Adds the specified list of call method infos at the end of the array.
- *
- * @param objects The list of call method info entries to add at the end of the array.
- */
- public void addAll(HashMap<ComponentName, CallMethodInfo> objects) {
- super.addAll(objects.values());
- processCallMethods(objects.values());
- }
-
- /**
- * Get a View that displays the data at the specified position in the data set. You can either
- * create a View manually or inflate it from an XML layout file. When the View is inflated, the
- * parent View (GridView, ListView...) will apply default layout parameters unless you use
- * {@link LayoutInflater#inflate(int, ViewGroup, boolean)}
- * to specify a root view and to prevent attachment to the root.
- *
- * @param position The position of the item within the adapter's data set of the item whose
- * view we want.
- * @param convertView The old view to reuse, if possible. Note: You should check that this view
- * is non-null and of an appropriate type before using. If it is not possible
- * to convert this view to display the correct data, this method can create a
- * new view. Heterogeneous lists can specify their number of view types, so
- * that this View is always of the right type
- * (see {@link #getViewTypeCount()} and {@link #getItemViewType(int)}).
- * @param parent The parent that this view will eventually be attached to
- * @return A View corresponding to the data at the specified position.
- */
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- CallMethodInfo callMethodInfo = getItem(position);
- if (convertView == null) {
- convertView = LayoutInflater.from(mContext)
- .inflate(R.layout.call_method_spinner_item, parent, false);
- }
-
- setIcon(convertView, callMethodInfo);
-
- return convertView;
- }
-
- /**
- * <p>Get a {@link View} that displays in the drop down popup
- * the data at the specified position in the data set.</p>
- *
- * @param position index of the item whose view we want.
- * @param convertView the old view to reuse, if possible. Note: You should
- * check that this view is non-null and of an appropriate type before
- * using. If it is not possible to convert this view to display the
- * correct data, this method can create a new view.
- * @param parent the parent that this view will eventually be attached to
- * @return a {@link View} corresponding to the data at the
- * specified position.
- */
- @Override
- public View getDropDownView(int position, View convertView, ViewGroup parent) {
- CallMethodInfo callMethodInfo = getItem(position);
- if (convertView == null) {
- convertView = LayoutInflater.from(mContext)
- .inflate(R.layout.call_method_spinner_dropdown_item, parent, false);
- }
-
- setIcon(convertView, callMethodInfo);
-
- TextView text=(TextView) convertView.findViewById(R.id.call_method_spinner_item_text);
- text.setText(callMethodInfo.mName);
-
- return convertView;
- }
-
- private void setIcon(View convertView, CallMethodInfo callMethodInfo) {
- ImageView icon = (ImageView) convertView.findViewById(R.id.call_method_spinner_item_image);
- if (callMethodInfo.mBadgeIcon != null) {
- icon.setImageDrawable(callMethodInfo.mBadgeIcon);
- icon.getDrawable().setTintList(null);
- icon.setBackground(null);
- } else {
- int drawableId = getIconForSlot(callMethodInfo.mSlotId);
-
- // if not all calls
- if (callMethodInfo.mSlotId != -1) {
- Drawable forground = mContext.getDrawable(drawableId);
- Drawable background = mContext.getDrawable(R.drawable.ic_sim_backing);
-
- if (callMethodInfo.mColor != NO_COLOR) {
- forground.setTint(callMethodInfo.mColor);
- } else {
- forground.setTint(mContext.getResources().getColor(R.color.sim_icon_color));
- }
-
- Drawable[] layers = {background, forground};
- LayerDrawable layerDrawable = new LayerDrawable(layers);
- icon.setImageDrawable(layerDrawable);
- } else {
- icon.setImageResource(drawableId);
- icon.getDrawable().setTint(mContext.getResources().getColor(R.color.sim_icon_color));
- icon.setBackground(null);
- }
- }
- }
-
- public static int getIconForSlot(int slotId) {
- switch (slotId) {
- case -1:
- return R.drawable.fab_ic_call;
- case 1:
- return R.drawable.ic_sim_2;
- case 2:
- return R.drawable.ic_sim_3;
- case 3:
- return R.drawable.ic_sim_4;
- default:
- return R.drawable.ic_sim_1;
- }
- }
-
- /**
- * Map call method component names to spinner positions.
- * @param callMethodInfoList list of current call methods
- */
- private void processCallMethods(Collection<CallMethodInfo> callMethodInfoList) {
- if (mComponentMap == null) {
- mComponentMap = new HashMap<String, Integer>();
- }
- if (callMethodInfoList != null) {
- for (CallMethodInfo info : callMethodInfoList) {
- String key = getCallMethodKey(info);
- mComponentMap.put(key, mComponentMap.size());
- }
- }
- }
-
- /**
- * Returns the position of the specified component within the spinner
- * @param key String key for call method lookup
- * @return Position of specified component, 0 if not found.
- */
- public int getPosition(String key) {
- int position = 0;
- if (!TextUtils.isEmpty(key)) {
- position = mComponentMap.containsKey(key) ?
- mComponentMap.get(key) : 0;
- }
- return position;
- }
-
- /**
- * Returns an ID for the specified CallMethodInfo
- * @param info CallMethodInfo to create id for
- * @return String key for specified CallMethodInfo.
- */
- public static String getCallMethodKey(CallMethodInfo info) {
- if (info == null || info.mComponent == null) {
- return null;
- }
- return info.mComponent.flattenToString() + String.valueOf(info.mSubId);
- }
-}