diff options
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/wear/settings/SettingsAdapter.java')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/wear/settings/SettingsAdapter.java | 276 |
1 files changed, 0 insertions, 276 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/wear/settings/SettingsAdapter.java b/src/com/android/packageinstaller/permission/ui/wear/settings/SettingsAdapter.java deleted file mode 100644 index baf1a2b4..00000000 --- a/src/com/android/packageinstaller/permission/ui/wear/settings/SettingsAdapter.java +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Copyright (C) 2015 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.packageinstaller.permission.ui.wear.settings; - -import android.content.Context; -import android.support.wearable.view.CircledImageView; -import android.support.wearable.view.WearableListView; -import android.util.Log; -import android.view.Gravity; -import android.view.View; -import android.view.ViewGroup; -import android.widget.FrameLayout; -import android.widget.TextView; - -import com.android.packageinstaller.R; - -import java.util.ArrayList; - -/** - * Common adapter for settings views. Maintains a list of 'Settings', consisting of a name, - * icon and optional activity-specific data. - */ -public class SettingsAdapter<T> extends WearableListView.Adapter { - private static final String TAG = "SettingsAdapter"; - private final Context mContext; - - public static final class Setting<S> { - public static final int ID_INVALID = -1; - - public final int id; - public int nameResourceId; - public CharSequence name; - public int iconResource; - public boolean inProgress; - public S data; - - public Setting(CharSequence name, int iconResource, S data) { - this(name, iconResource, data, ID_INVALID); - } - - public Setting(CharSequence name, int iconResource, S data, int id) { - this.name = name; - this.iconResource = iconResource; - this.data = data; - this.inProgress = false; - this.id = id; - } - - public Setting(int nameResource, int iconResource, S data, int id) { - this.nameResourceId = nameResource; - this.iconResource = iconResource; - this.data = data; - this.inProgress = false; - this.id = id; - } - - public Setting(int nameResource, int iconResource, int id) { - this.nameResourceId = nameResource; - this.iconResource = iconResource; - this.data = null; - this.inProgress = false; - this.id = id; - } - - public Setting(CharSequence name, int iconResource, int id) { - this(name, iconResource, null, id); - } - - } - - private final int mItemLayoutId; - private final float mDefaultCircleRadiusPercent; - private final float mSelectedCircleRadiusPercent; - - protected ArrayList<Setting<T>> mSettings = new ArrayList<Setting<T>>(); - - public SettingsAdapter(Context context, int itemLayoutId) { - mContext = context; - mItemLayoutId = itemLayoutId; - mDefaultCircleRadiusPercent = context.getResources().getFraction( - R.dimen.default_settings_circle_radius_percent, 1, 1); - mSelectedCircleRadiusPercent = context.getResources().getFraction( - R.dimen.selected_settings_circle_radius_percent, 1, 1); - } - - @Override - public WearableListView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - return new SettingsItemHolder(new SettingsItem(parent.getContext())); - } - - @Override - public void onBindViewHolder(WearableListView.ViewHolder holder, int position) { - Setting<T> setting = mSettings.get(position); - if (setting.iconResource == -1) { - ((SettingsItemHolder) holder).imageView.setVisibility(View.GONE); - } else { - ((SettingsItemHolder) holder).imageView.setVisibility(View.VISIBLE); - ((SettingsItemHolder) holder).imageView.setImageResource( - mSettings.get(position).iconResource); - } - Log.d(TAG, "onBindViewHolder " + setting.name + " " + setting.id + " " + setting - .nameResourceId); - if (setting.name == null && setting.nameResourceId != 0) { - setting.name = mContext.getString(setting.nameResourceId); - } - ((SettingsItemHolder) holder).textView.setText(setting.name); - } - - @Override - public int getItemCount() { - return mSettings.size(); - } - - public void addSetting(CharSequence name, int iconResource) { - addSetting(name, iconResource, null); - } - - public void addSetting(CharSequence name, int iconResource, T intent) { - addSetting(mSettings.size(), name, iconResource, intent); - } - - public void addSetting(int index, CharSequence name, int iconResource, T intent) { - addSetting(Setting.ID_INVALID, index, name, iconResource, intent); - } - - public void addSetting(int id, int index, CharSequence name, int iconResource, T intent) { - mSettings.add(index, new Setting<T>(name, iconResource, intent, id)); - notifyItemInserted(index); - } - - public void addSettingDontNotify(Setting<T> setting) { - mSettings.add(setting); - } - - public void addSetting(Setting<T> setting) { - mSettings.add(setting); - notifyItemInserted(mSettings.size() - 1); - } - - public void addSetting(int index, Setting<T> setting) { - mSettings.add(index, setting); - notifyItemInserted(index); - } - - /** - * Returns the index of the setting in the adapter based on the ID supplied when it was - * originally added. - * @param id the setting's id - * @return index in the adapter of the setting. -1 if not found. - */ - public int findSetting(int id) { - for (int i = mSettings.size() - 1; i >= 0; --i) { - Setting setting = mSettings.get(i); - - if (setting.id == id) { - return i; - } - } - - return -1; - } - - /** - * Removes a setting at the given index. - * @param index the index of the setting to be removed - */ - public void removeSetting(int index) { - mSettings.remove(index); - notifyDataSetChanged(); - } - - public void clearSettings() { - mSettings.clear(); - notifyDataSetChanged(); - } - - /** - * Updates a setting in place. - * @param index the index of the setting - * @param name the updated setting name - * @param iconResource the update setting icon - * @param intent the updated intent for the setting - */ - public void updateSetting(int index, CharSequence name, int iconResource, T intent) { - Setting<T> setting = mSettings.get(index); - setting.iconResource = iconResource; - setting.name = name; - setting.data = intent; - notifyItemChanged(index); - } - - public Setting<T> get(int position) { - return mSettings.get(position); - } - - protected static class SettingsItemHolder extends ExtendedViewHolder { - public final CircledImageView imageView; - public final TextView textView; - - public SettingsItemHolder(View itemView) { - super(itemView); - - imageView = ((CircledImageView) itemView.findViewById(R.id.image)); - textView = ((TextView) itemView.findViewById(R.id.text)); - } - } - - protected class SettingsItem extends FrameLayout implements ExtendedOnCenterProximityListener { - - protected final CircledImageView mImage; - protected final TextView mText; - - public SettingsItem(Context context) { - super(context); - View view = View.inflate(context, mItemLayoutId, null); - FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( - FrameLayout.LayoutParams.MATCH_PARENT, - FrameLayout.LayoutParams.MATCH_PARENT); - params.gravity = Gravity.CENTER_VERTICAL; - addView(view, params); - mImage = (CircledImageView) findViewById(R.id.image); - mText = (TextView) findViewById(R.id.text); - } - - @Override - public float getProximityMinValue() { - return mDefaultCircleRadiusPercent; - } - - @Override - public float getProximityMaxValue() { - return mSelectedCircleRadiusPercent; - } - - @Override - public float getCurrentProximityValue() { - return mImage.getCircleRadiusPressedPercent(); - } - - @Override - public void setScalingAnimatorValue(float value) { - mImage.setCircleRadiusPercent(value); - mImage.setCircleRadiusPressedPercent(value); - } - - @Override - public void onCenterPosition(boolean animate) { - mImage.setAlpha(1f); - mText.setAlpha(1f); - } - - @Override - public void onNonCenterPosition(boolean animate) { - mImage.setAlpha(0.5f); - mText.setAlpha(0.5f); - } - - TextView getTextView() { - return mText; - } - } -} |