/** * 小组件 */ public class WidgetAdapterListener

83 阅读1分钟
package com.alibaba.genie.panel.ui.fragment.home.holder.listener;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.ViewGroup;

import androidx.annotation.NonNull;

import com.alibaba.genie.panel.R;
import com.alibaba.genie.panel.basic.base.adapter.BaseMultiItemAdapter;
import com.alibaba.genie.panel.model.data.MultiItemBean;
import com.alibaba.genie.panel.ui.fragment.home.holder.AlarmViewHolder;
import com.alibaba.genie.panel.ui.fragment.home.holder.BaseEditViewHolder;
import com.alibaba.genie.panel.ui.fragment.home.holder.ClockTimeViewHolder;
import com.alibaba.genie.panel.ui.fragment.home.holder.MusicViewHolder;
import com.alibaba.genie.panel.ui.fragment.home.holder.WeatherViewHolder;

/**
 * 小组件
 */
public class WidgetAdapterListener
        extends BaseMultiItemAdapter.SimpleOnMultiItemAdapterListener<MultiItemBean, BaseEditViewHolder> {

    private static final String TAG = WidgetAdapterListener.class.getSimpleName();

    @Override
    public BaseEditViewHolder onCreate(@NonNull Context context, @NonNull ViewGroup parent, int viewType) {
        if (viewType == MultiItemBean.TYPE_WIDGET_CLOCK) {
            return new ClockTimeViewHolder(LayoutInflater.from(context).inflate(R.layout.iot_home_item_widget_clock, parent, false));
        } else if (viewType == MultiItemBean.TYPE_WIDGET_WEATHER) {
            return new WeatherViewHolder(LayoutInflater.from(context).inflate(R.layout.iot_home_item_widget_weather, parent, false));
        } else if (viewType == MultiItemBean.TYPE_WIDGET_ALARM) {
            return new AlarmViewHolder(LayoutInflater.from(context).inflate(R.layout.iot_home_item_widget_alarm, parent, false));
        } else if (viewType == MultiItemBean.TYPE_WIDGET_MUSIC) {
            return new MusicViewHolder(LayoutInflater.from(context).inflate(R.layout.iot_home_item_widget_music, parent, false));
        } else
            return new ClockTimeViewHolder(LayoutInflater.from(context).inflate(R.layout.iot_home_item_widget_clock, parent, false));
    }

    @Override
    public void onBind(@NonNull BaseEditViewHolder holder, int position, @NonNull MultiItemBean item) {
        if (item.disableWhenUnbind()) {
            holder.refreshItemEnableState(item);
        }

        //刷新时钟上的农历日期
        if (holder instanceof ClockTimeViewHolder) {
            ((ClockTimeViewHolder) holder).refreshLunarDate();
        }
//        else if (holder instanceof AlarmViewHolder) {
//            ((AlarmViewHolder) holder).refresh();
//        }
    }

    @Override
    public boolean isFullSpanItem(int itemType) {
        if (MultiItemBean.TYPE_WIDGET_CLOCK == itemType
                || MultiItemBean.TYPE_SCENE_GROUP == itemType
                || MultiItemBean.TYPE_WIDGET_MUSIC == itemType
        ) {
            return true;
        }
        return super.isFullSpanItem(itemType);
    }
}