/*
 * 版权所有 (c) 2010-2011，MiCode 开源社区 (www.micode.net)
 * 根据 Apache 许可证 2.0 版本（"许可证"）授权；
 * 除非符合许可证的规定，否则不得使用本文件。
 * 您可以从以下网址获取许可证副本：
 * http://www.apache.org/licenses/LICENSE-2.0
 * 除非适用法律要求或书面同意，本软件按"原样"分发，
 * 没有任何明示或暗示的保证或条件。
 * 详见许可证中规定的权限和限制。
 * （注：这是一份标准的Apache许可证2.0版本的开源声明）
 */
// 定义包路径（说明该类所属的Java包）
package net.micode.notes.widget;

// 导入Android系统类库
import android.appwidget.AppWidgetManager;   // 小部件管理类，用于管理App Widgets
import android.content.Context;             // 上下文类，提供应用环境信息

// 导入项目资源
import net.micode.notes.R;                // 自动生成的R.java 文件，包含所有资源ID
// 导入项目数据类
import net.micode.notes.data.Notes;       // 笔记应用的常量定义
// 导入工具类
import net.micode.notes.tool.ResourceParser;  // 资源解析工具类

/**
 * 4x尺寸笔记小部件提供者类
 * 继承自NoteWidgetProvider抽象基类，专门用于4x大小的小部件实现
 */
public class NoteWidgetProvider_4x extends NoteWidgetProvider {

    /**
     * 当小部件需要更新时调用的方法
     * 覆盖父类方法，提供4x小部件的更新逻辑
     *
     * @param context 上下文对象，提供应用环境信息
     * @param appWidgetManager 小部件管理器，用于更新小部件
     * @param appWidgetIds 需要更新的小部件ID数组
     */
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        // 直接调用父类的update方法完成基础更新操作
        super.update(context,  appWidgetManager, appWidgetIds);
    }

    /**
     * 获取4x小部件的布局资源ID
     * 实现父类抽象方法，返回4x小部件特有的布局文件
     *
     * @return int 返回4x小部件的布局资源ID（R.layout.widget_4x ）
     */
    @Override
    protected int getLayoutId() {
        // 返回4x小部件专用的布局文件ID
        return R.layout.widget_4x;
    }

    /**
     * 根据背景颜色ID获取对应的4x小部件背景资源
     * 实现父类抽象方法，返回4x尺寸的背景资源
     *
     * @param bgId 背景颜色ID（来自ResourceParser的颜色常量）
     * @return int 返回对应的4x尺寸背景图片资源ID
     */
    @Override
    protected int getBgResourceId(int bgId) {
        // 通过ResourceParser工具类获取4x尺寸的背景资源
        return ResourceParser.WidgetBgResources.getWidget4xBgResource(bgId);
    }

    /**
     * 获取小部件类型标识
     * 实现父类抽象方法，返回4x小部件的类型常量
     *
     * @return int 返回4x小部件的类型常量（Notes.TYPE_WIDGET_4X）
     */
    @Override
    protected int getWidgetType() {
        // 返回4x小部件的类型定义常量
        return Notes.TYPE_WIDGET_4X;
    }
}