package cc.winboll.studio.numtable;

import android.content.Intent;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.graphics.drawable.Icon;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import cc.winboll.studio.libappbase.LogView;
import cc.winboll.studio.numtable.R;
import com.hjq.toast.ToastUtils;
import java.util.UUID;

public class MainActivity extends AppCompatActivity {

    LogView mLogView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

		Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar);
		setSupportActionBar(toolbar);

        mLogView = findViewById(R.id.logview);

		// 初始化创建快捷方式按钮
		Button btnCreateShortcut = findViewById(R.id.btn_create_shortcut);
		btnCreateShortcut.setOnClickListener(new View.OnClickListener() {
				@Override
				public void onClick(View v) {
					createDesktopShortcut();
				}
			});


		((RadioButton)findViewById(R.id.rb_right)).setChecked(true);
		((RadioButton)findViewById(R.id.rb_left)).setChecked(false);
    }

	public void onDirectionClick(View view) {
		switch (view.getId()) {
			case R.id.rb_right:
				{
					((RadioButton)findViewById(R.id.rb_left)).setChecked(false);
					break;
				}
			case R.id.rb_left:
				{
					((RadioButton)findViewById(R.id.rb_right)).setChecked(false);
					break;
				}
		}
	}

	/**
	 * 创建桌面快捷方式
	 */
	private void createDesktopShortcut() {
		// 1. 创建启动目标Activity的Intent（通常是你的主Activity）
		Intent targetIntent = new Intent(this, MainActivity.class); // 替换为你的主Activity
		targetIntent.setAction(Intent.ACTION_MAIN);
		targetIntent.addCategory(Intent.CATEGORY_LAUNCHER);
		targetIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

		// 2. 创建快捷方式的Intent
		Intent shortcutIntent = new Intent();
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
			// 生成随机UUID
			UUID uuid = UUID.randomUUID();
			// 转换为字符串
			String uuidStr = uuid.toString();
			// Android 8.0及以上：使用ShortcutManager
			ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
			if (shortcutManager.isRequestPinShortcutSupported()) {
				if (((RadioButton)findViewById(R.id.rb_right)).isChecked()) {
					// 创建快捷方式信息
					ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(this, uuidStr) // 唯一ID
						.setShortLabel(">>") // 短标签（显示在桌面）
						.setLongLabel("在右边 >>") // 长标签（长按显示）
						.setIcon(Icon.createWithResource(this, R.drawable.ic_point_right)) // 图标
						.setIntent(targetIntent)
						.build();
					// 发送创建请求
					shortcutManager.requestPinShortcut(shortcutInfo, null);
				} else {
					ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(this, uuidStr) // 唯一ID
						.setShortLabel("<<") // 短标签（显示在桌面）
						.setLongLabel("在左边 <<") // 长标签（长按显示）
						.setIcon(Icon.createWithResource(this, R.drawable.ic_point_left)) // 图标
						.setIntent(targetIntent)
						.build();
					// 发送创建请求
					shortcutManager.requestPinShortcut(shortcutInfo, null);
				}
				ToastUtils.show("已请求创建快捷方式");
			} else {
				ToastUtils.show("当前设备不支持创建快捷方式");
			}
		} else {
			// Android 7.1及以下：使用旧版广播方式
			shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, targetIntent);
			shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "应用快捷方式"); // 快捷方式名称
			// 设置图标（使用应用图标）
			shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, 
									Intent.ShortcutIconResource.fromContext(this, R.mipmap.ic_launcher));
			// 标记为创建快捷方式
			shortcutIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
			// 防止重复创建
			shortcutIntent.putExtra("duplicate", false);

			// 发送广播创建快捷方式
			sendBroadcast(shortcutIntent);
			ToastUtils.show("快捷方式已创建");
		}
	}


    @Override
    protected void onResume() {
        super.onResume();
        mLogView.start();
    }
}
