You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xiaomi_notes_reading/src/notes/widget/NoteWidgetProvider_4x.java

91 lines
3.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
*
* 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 net.micode.notes.widget;
import android.appwidget.AppWidgetManager;
import android.content.Context;
import net.micode.notes.R;
import net.micode.notes.data.Notes;
import net.micode.notes.tool.ResourceParser;
/**
* 4x4尺寸便签小部件提供者
* 继承自NoteWidgetProvider抽象基类实现4x4大尺寸小部件的具体行为
* 负责管理桌面4x4网格尺寸的便签小部件显示和交互提供更大的显示区域
*/
public class NoteWidgetProvider_4x extends NoteWidgetProvider {
/**
* 小部件更新回调方法
* 当小部件需要更新显示内容时调用,复用父类的通用更新逻辑
* 4x4小部件使用与2x2相同的更新机制但显示布局和背景资源不同
*
* @param context 上下文对象,用于访问应用资源和服务
* @param appWidgetManager 小部件管理器实例,用于执行小部件更新操作
* @param appWidgetIds 需要更新的小部件ID数组支持批量更新多个小部件实例
*/
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// 直接调用父类的通用更新逻辑,避免代码重复
// 父类已实现数据查询、界面绑定、点击事件等完整的小部件更新流程
super.update(context, appWidgetManager, appWidgetIds);
}
/**
* 获取4x4小部件专用布局资源ID
* 实现抽象方法返回针对4x4网格尺寸优化的布局文件
* 4x4布局相比2x2具有更大的显示区域可以展示更多内容
*
* @return 4x4小部件的布局资源ID定义在R.layout.widget_4x中
*/
@Override
protected int getLayoutId() {
// 返回4x4尺寸专用的布局文件
// 该布局针对4x4网格进行了优化可能包含更大的文本区域或额外的显示元素
return R.layout.widget_4x;
}
/**
* 根据背景颜色ID获取4x4小部件的背景资源ID
* 实现抽象方法提供4x4尺寸专用的背景图片映射
* 4x4背景图片在尺寸和比例上与2x2不同适配更大的显示区域
*
* @param bgId 背景颜色IDNotes.COLOR_YELLOW, Notes.COLOR_BLUE等颜色常量
* @return 对应颜色的4x4小部件背景图片资源ID
*/
@Override
protected int getBgResourceId(int bgId) {
// 通过资源解析器获取4x4尺寸专用的背景图片资源
// ResourceParser.WidgetBgResources.getWidget4xBgResource()专门处理4x4尺寸的背景映射
return ResourceParser.WidgetBgResources.getWidget4xBgResource(bgId);
}
/**
* 获取小部件类型标识符
* 实现抽象方法返回4x4小部件的唯一类型常量
* 该标识符用于在数据库和Intent中区分不同尺寸的小部件
*
* @return 4x4小部件的类型标识符值为Notes.TYPE_WIDGET_4X
*/
@Override
protected int getWidgetType() {
// 返回4x4小部件的类型常量
// 这个值会存储在数据库中,用于关联便签数据和小部件实例
return Notes.TYPE_WIDGET_4X;
}
}