package net.micode.notes; // 指定代码所属的包名

import android.os.Bundle; // 导入Bundle类，用于传递和保存状态数据

import androidx.activity.EdgeToEdge; // 导入边缘到边缘功能类，支持沉浸式布局
import androidx.appcompat.app.AppCompatActivity; // 导入AppCompat活动基类，提供兼容性支持
import androidx.core.graphics.Insets; // 导入Insets类，用于表示窗口插入区域的尺寸
import androidx.core.view.ViewCompat; // 导入视图兼容工具类，提供跨版本视图功能
import androidx.core.view.WindowInsetsCompat; // 导入窗口插入兼容类，处理窗口插入事件

/**
 * 应用主活动类
 * 负责应用的主界面展示和初始化工作
 */
public class MainActivity extends AppCompatActivity {

    /**
     * 活动创建时调用的方法
     * 进行布局初始化和窗口插入事件处理
     * @param savedInstanceState 保存的活动状态，如果活动是重新创建的
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); // 调用父类的onCreate方法

        // 启用边缘到边缘功能，允许内容延伸到系统状态栏和导航栏区域
        EdgeToEdge.enable(this);

        // 设置活动的内容视图为activity_main布局
        setContentView(R.layout.activity_main);

        // 为id为main的视图设置窗口插入事件监听器
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            // 获取系统状态栏、导航栏等系统栏的插入区域尺寸
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());

            // 设置视图的内边距，确保内容不会被系统栏遮挡
            // 左内边距 = 系统栏左侧插入区域宽度
            // 上内边距 = 系统栏顶部插入区域高度（通常是状态栏高度）
            // 右内边距 = 系统栏右侧插入区域宽度
            // 下内边距 = 系统栏底部插入区域高度（通常是导航栏高度）
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);

            // 返回处理后的窗口插入事件，允许其他监听器继续处理
            return insets;
        });
    }
}