diff --git a/bytheway/build.properties b/bytheway/build.properties index f9d39e4..4391fe0 100644 --- a/bytheway/build.properties +++ b/bytheway/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Jul 06 20:33:32 CST 2026 +#Mon Jul 06 16:31:22 GMT 2026 stageCount=2 libraryProject= baseVersion=15.20 publishVersion=15.20.1 -buildCount=16 +buildCount=19 baseBetaVersion=15.20.2 diff --git a/bytheway/src/main/AndroidManifest.xml b/bytheway/src/main/AndroidManifest.xml index 8a4f318..e8d7bc7 100644 --- a/bytheway/src/main/AndroidManifest.xml +++ b/bytheway/src/main/AndroidManifest.xml @@ -12,7 +12,7 @@ - + + + \ No newline at end of file diff --git a/bytheway/src/main/java/cc/winboll/studio/bytheway/App.java b/bytheway/src/main/java/cc/winboll/studio/bytheway/App.java index 24507f6..401ac1b 100644 --- a/bytheway/src/main/java/cc/winboll/studio/bytheway/App.java +++ b/bytheway/src/main/java/cc/winboll/studio/bytheway/App.java @@ -21,11 +21,11 @@ import android.widget.HorizontalScrollView; import android.widget.ScrollView; import android.widget.TextView; import android.widget.Toast; -import cc.winboll.studio.libappbase.CrashActivity; +import cc.winboll.studio.libaes.utils.AESThemeUtil; +import cc.winboll.studio.libaes.utils.WinBoLLActivityManager; import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.ToastUtils; import cc.winboll.studio.libappbase.utils.CrashHandleNotifyUtils; -import cc.winboll.studio.libaes.utils.AESThemeUtil; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.Closeable; @@ -53,6 +53,7 @@ public class App extends GlobalApplication { public void onCreate() { try { super.onCreate(); + WinBoLLActivityManager.init(this); // 初始化主题样式ID列表 AESThemeUtil.init(null); diff --git a/bytheway/src/main/java/cc/winboll/studio/bytheway/MainActivity.java b/bytheway/src/main/java/cc/winboll/studio/bytheway/MainActivity.java index 12ad8ab..714fef7 100644 --- a/bytheway/src/main/java/cc/winboll/studio/bytheway/MainActivity.java +++ b/bytheway/src/main/java/cc/winboll/studio/bytheway/MainActivity.java @@ -2,26 +2,30 @@ package cc.winboll.studio.bytheway; import android.content.Intent; import android.os.Bundle; -import cc.winboll.studio.bytheway.activities.GpsListActivity; -import cc.winboll.studio.bytheway.activities.SettingsActivity; import android.view.Menu; import android.view.MenuItem; -import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; -import cc.winboll.studio.libappbase.GlobalApplication; -import cc.winboll.studio.libappbase.LogUtils; -import cc.winboll.studio.libappbase.LogView; -import cc.winboll.studio.libappbase.ToastUtils; +import cc.winboll.studio.bytheway.activities.BaseWinBoLLActivity; +import cc.winboll.studio.bytheway.activities.GpsListActivity; +import cc.winboll.studio.bytheway.activities.SettingsActivity; import cc.winboll.studio.libaes.utils.AESThemeUtil; import cc.winboll.studio.libaes.utils.DevelopUtils; +import cc.winboll.studio.libappbase.GlobalApplication; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.libappbase.ToastUtils; -public class MainActivity extends AppCompatActivity { +public class MainActivity extends BaseWinBoLLActivity { + + public static final String TAG = "MainActivity"; - public static final String TAG = "MainActivity"; + @Override + public String getTag() { + return TAG; + } @Override protected void onCreate(Bundle savedInstanceState) { - AESThemeUtil.applyAppCompatTheme(this); + //AESThemeUtil.applyAppCompatTheme(this); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); diff --git a/bytheway/src/main/java/cc/winboll/studio/bytheway/activities/AboutActivity.java b/bytheway/src/main/java/cc/winboll/studio/bytheway/activities/AboutActivity.java new file mode 100644 index 0000000..dd2215a --- /dev/null +++ b/bytheway/src/main/java/cc/winboll/studio/bytheway/activities/AboutActivity.java @@ -0,0 +1,79 @@ +package cc.winboll.studio.bytheway.activities; + +import android.os.Bundle; +import android.view.View; +import androidx.appcompat.widget.Toolbar; +import cc.winboll.studio.bytheway.MainActivity; +import cc.winboll.studio.bytheway.R; +import cc.winboll.studio.libaes.utils.WinBoLLActivityManager; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.libappbase.models.APPInfo; +import cc.winboll.studio.libappbase.views.AboutView; + +/** + * @Author 豆包&BigPickle&ZhanGSKen + * @Date 2026/07/07 00:17 + * @Describe 应用介绍窗口 + */ +public class AboutActivity extends BaseWinBoLLActivity { + + public static final String TAG = "AboutActivity"; + + private Toolbar mToolbar; + + @Override + public String getTag() { + return TAG; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_about); + + // 设置工具栏 + initToolbar(); + + AboutView aboutView = findViewById(R.id.aboutview); + aboutView.setAPPInfo(genDefaultAppInfo()); + } + + private void initToolbar() { + LogUtils.d(TAG, "initToolbar() 开始初始化"); + mToolbar = findViewById(R.id.toolbar); + if (mToolbar == null) { + LogUtils.e(TAG, "initToolbar() | Toolbar未找到"); + return; + } + setSupportActionBar(mToolbar); + mToolbar.setSubtitle(getTag()); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + mToolbar.setNavigationOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + LogUtils.d(TAG, "导航栏 点击返回按钮"); + WinBoLLActivityManager.getInstance().resumeActivity(MainActivity.class); + WinBoLLActivityManager.getInstance().finish(AboutActivity.this); + } + }); + LogUtils.d(TAG, "initToolbar() 配置完成"); + } + + private APPInfo genDefaultAppInfo() { + LogUtils.d(TAG, "genDefaultAppInfo() 调用"); + String branchName = "bytheway"; + APPInfo appInfo = new APPInfo(); + appInfo.setAppName(getString(R.string.app_name)); + appInfo.setAppIcon(R.drawable.ic_winboll); + appInfo.setAppDescription(getString(R.string.app_description)); + appInfo.setAppGitName("MyWinBoLL"); + appInfo.setAppGitOwner("ZhanGSKen"); + appInfo.setAppGitAPPBranch(branchName); + appInfo.setAppGitAPPSubProjectFolder(branchName); + appInfo.setAppHomePage("https://www.winboll.cc/apks/index.php?project=ByTheWay"); + appInfo.setAppAPKName("ByTheWay"); + appInfo.setAppAPKFolderName("ByTheWay"); + LogUtils.d(TAG, "genDefaultAppInfo: 应用信息已生成"); + return appInfo; + } +} diff --git a/bytheway/src/main/java/cc/winboll/studio/bytheway/activities/BaseWinBoLLActivity.java b/bytheway/src/main/java/cc/winboll/studio/bytheway/activities/BaseWinBoLLActivity.java new file mode 100644 index 0000000..fbd1edf --- /dev/null +++ b/bytheway/src/main/java/cc/winboll/studio/bytheway/activities/BaseWinBoLLActivity.java @@ -0,0 +1,46 @@ +package cc.winboll.studio.bytheway.activities; + +import android.app.Activity; +import android.os.Bundle; +import androidx.appcompat.app.AppCompatActivity; +import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity; +import cc.winboll.studio.libaes.models.AESThemeBean; +import cc.winboll.studio.libaes.utils.AESThemeUtil; +import cc.winboll.studio.libaes.utils.WinBoLLActivityManager; + +/** + * @Author 豆包&BigPickle&ZhanGSKen + * @Date 2026/07/07 00:21 + * @Describe BaseWinBollActivity 【继承AppCompatActivity,保留核心能力,不额外暴露方法】 + * 继承链路:BaseWinBoLLActivity → AppCompatActivity → FragmentActivity,AppCompat能力天然继承可用 + */ +public abstract class BaseWinBoLLActivity extends AppCompatActivity implements IWinBoLLActivity { + public static final String TAG = "BaseWinBoLLActivity"; + + protected volatile AESThemeBean.ThemeType mThemeType; + + @Override + protected void onCreate(Bundle savedInstanceState) { + //AESThemeUtil.applyAppCompatTheme(this); + mThemeType = AESThemeBean.getThemeStyleType(AESThemeUtil.getThemeTypeID(getApplicationContext())); + setTheme(AESThemeUtil.getThemeTypeID(getApplicationContext())); + super.onCreate(savedInstanceState); + WinBoLLActivityManager.getInstance().add(this); + } + + @Override + protected void onDestroy() { + WinBoLLActivityManager.getInstance().registeRemove(this); + super.onDestroy(); + } + + // 子类必须实现getTag(),确保唯一标识 + @Override + public abstract String getTag(); + + @Override + public Activity getActivity() { + return this; + } +} + diff --git a/bytheway/src/main/res/layout/activity_about.xml b/bytheway/src/main/res/layout/activity_about.xml new file mode 100644 index 0000000..5cbe3fd --- /dev/null +++ b/bytheway/src/main/res/layout/activity_about.xml @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/bytheway/src/main/res/values/strings.xml b/bytheway/src/main/res/values/strings.xml index 1ef2496..b819e3c 100644 --- a/bytheway/src/main/res/values/strings.xml +++ b/bytheway/src/main/res/values/strings.xml @@ -2,4 +2,6 @@ ByTheWay 设置 GPS列表 + The [ByTheWay] project is designed to quickly schedule task reminders related to time and location. Its main feature is the ability to quickly create task-related data. +