添加新的应用级别入口

This commit is contained in:
ZhanGSKen
2025-11-10 08:02:57 +08:00
parent bf52f86b3d
commit e3826148fa
9 changed files with 101 additions and 11 deletions

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Wed Nov 05 08:47:36 GMT 2025 #Mon Nov 10 00:01:30 GMT 2025
stageCount=18 stageCount=18
libraryProject= libraryProject=
baseVersion=15.0 baseVersion=15.0
publishVersion=15.0.17 publishVersion=15.0.17
buildCount=29 buildCount=35
baseBetaVersion=15.0.18 baseBetaVersion=15.0.18

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">悟空笔记#</string> <string name="app_name">悟空笔记#</string>
<string name="app_laojun_name">老君道說#</string>
</resources> </resources>

View File

@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Positions +</string> <string name="app_name">Positions</string>
<string name="app_laojun_name">Positions +</string>
</resources> </resources>

View File

@@ -47,6 +47,21 @@
</activity> </activity>
<!-- 新增应用启动Alias入口桌面会显示两个图标 -->
<activity-alias
android:name=".MainActivityLaojun"
android:targetActivity=".MainActivity"
android:exported="true"
android:label="@string/app_laojun_name"
android:icon="@mipmap/ic_launcher">
<!-- 配置为启动入口 -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
<meta-data <meta-data
android:name="android.max_aspect" android:name="android.max_aspect"
android:value="4.0"/> android:value="4.0"/>

View File

@@ -14,7 +14,6 @@ import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.Gravity;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -24,7 +23,9 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager; import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.GlobalApplication;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.ToastUtils; import cc.winboll.studio.libappbase.ToastUtils;
import cc.winboll.studio.positions.activities.WinBoLLActivity;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.Closeable; import java.io.Closeable;
@@ -44,25 +45,49 @@ import java.util.concurrent.atomic.AtomicBoolean;
public class App extends GlobalApplication { public class App extends GlobalApplication {
public static volatile AppLevel _mAppLevel = AppLevel.WUKONG;
private static Handler MAIN_HANDLER = new Handler(Looper.getMainLooper()); private static Handler MAIN_HANDLER = new Handler(Looper.getMainLooper());
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
setIsDebuging(BuildConfig.DEBUG); setIsDebuging(BuildConfig.DEBUG);
WinBoLLActivityManager.init(this); WinBoLLActivityManager.init(this);
// 初始化 Toast 框架 // 初始化 Toast 框架
ToastUtils.init(this); ToastUtils.init(this);
// 设置 Toast 布局样式 // 设置 Toast 布局样式
//ToastUtils.setView(R.layout.view_toast); //ToastUtils.setView(R.layout.view_toast);
//ToastUtils.setStyle(new WhiteToastStyle()); //ToastUtils.setStyle(new WhiteToastStyle());
//ToastUtils.setGravity(Gravity.BOTTOM, 0, 200); //ToastUtils.setGravity(Gravity.BOTTOM, 0, 200);
//CrashHandler.getInstance().registerGlobal(this); //CrashHandler.getInstance().registerGlobal(this);
//CrashHandler.getInstance().registerPart(this); //CrashHandler.getInstance().registerPart(this);
} }
public static void setAppLevel(WinBoLLActivity activity) {
// 根据应用当前启动入口设定整体应用级别
String launchComponent = activity.getComponentName().getClassName();
boolean isAliasLaunch = launchComponent.endsWith("MainActivityLaojun");
if (isAliasLaunch) {
// Alias入口启动逻辑如切换应用级别、加载专属配置
LogUtils.d(TAG, "通过Alias入口启动切换为LAOJUN级别");
ToastUtils.show("通过Alias入口启动切换为LAOJUN级别");
App._mAppLevel = AppLevel.LAOJUN; // 结合之前定义的枚举
// 执行Alias专属初始化...
} else {
// 原入口启动逻辑
LogUtils.d(TAG, "通过原入口启动默认WUKONG级别");
ToastUtils.show("通过原入口启动默认WUKONG级别");
App._mAppLevel = AppLevel.WUKONG;
}
}
public static void write(InputStream input, OutputStream output) throws IOException { public static void write(InputStream input, OutputStream output) throws IOException {
byte[] buf = new byte[1024 * 8]; byte[] buf = new byte[1024 * 8];

View File

@@ -0,0 +1,43 @@
package cc.winboll.studio.positions;
/**
* @Author ZhanGSKen&豆包大模型<zhangsken@qq.com>
* @Date 2025/11/10 07:23
* @Describe 应用级别类型枚举
*/
public enum AppLevel {
WUKONG("wukong", "悟空级别"),
LAOJUN("laojun", "老君级别");
public static final String TAG = "AppLevel";
// 枚举属性
private final String code; // 编码(如 "wukong"
private final String desc; // 描述
// 构造方法Java 7 需显式定义)
AppLevel(String code, String desc) {
this.code = code;
this.desc = desc;
}
// Getter 方法(获取枚举属性)
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
// 可选:根据 code 获取枚举项(便于业务使用)
public static AppLevel getByCode(String code) {
for (AppLevel level : values()) {
if (level.code.equals(code)) {
return level;
}
}
return null; // 或抛出异常,根据业务需求调整
}
}

View File

@@ -17,9 +17,9 @@ import androidx.core.content.ContextCompat;
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity; import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
import cc.winboll.studio.libaes.utils.WinBoLLActivityManager; import cc.winboll.studio.libaes.utils.WinBoLLActivityManager;
import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.ToastUtils;
import cc.winboll.studio.positions.activities.LocationActivity; import cc.winboll.studio.positions.activities.LocationActivity;
import cc.winboll.studio.positions.activities.WinBoLLActivity; import cc.winboll.studio.positions.activities.WinBoLLActivity;
import cc.winboll.studio.positions.services.MainService;
import cc.winboll.studio.positions.utils.AppConfigsUtil; import cc.winboll.studio.positions.utils.AppConfigsUtil;
import cc.winboll.studio.positions.utils.ServiceUtil; import cc.winboll.studio.positions.utils.ServiceUtil;
@@ -82,6 +82,7 @@ public class MainActivity extends WinBoLLActivity implements IWinBoLLActivity {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 关联主页面布局 setContentView(R.layout.activity_main); // 关联主页面布局
App.setAppLevel(this);
// 1. 初始化顶部 Toolbar保留原逻辑设置页面标题 // 1. 初始化顶部 Toolbar保留原逻辑设置页面标题
initToolbar(); initToolbar();
@@ -94,6 +95,7 @@ public class MainActivity extends WinBoLLActivity implements IWinBoLLActivity {
// 4. 绑定服务(仅用于获取服务实时状态,不影响服务独立运行) // 4. 绑定服务(仅用于获取服务实时状态,不影响服务独立运行)
//bindDistanceService(); //bindDistanceService();
} }
@Override @Override
protected void onDestroy() { protected void onDestroy() {
@@ -114,9 +116,9 @@ public class MainActivity extends WinBoLLActivity implements IWinBoLLActivity {
mToolbar = (Toolbar) findViewById(R.id.toolbar); // Java 7 显式 findViewById + 强转 mToolbar = (Toolbar) findViewById(R.id.toolbar); // Java 7 显式 findViewById + 强转
setSupportActionBar(mToolbar); setSupportActionBar(mToolbar);
// 给ActionBar设置标题先判断非空避免空指针异常 // 给ActionBar设置标题先判断非空避免空指针异常
if (getSupportActionBar() != null) { /*if (getSupportActionBar() != null) {
getSupportActionBar().setTitle(getString(R.string.app_name)); getSupportActionBar().setTitle(getString(R.string.app_name));
} }*/
} }
/** /**

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">悟空笔记</string> <string name="app_name">悟空笔记</string>
<string name="app_laojun_name">老君道說</string>
</resources> </resources>

View File

@@ -1,3 +1,4 @@
<resources> <resources>
<string name="app_name">Positions</string> <string name="app_name">Positions</string>
<string name="app_laojun_name">Positions</string>
</resources> </resources>