Skip to content

Simple Refactoring MainActivity#28

Open
wwxiaoqi wants to merge 10 commits intosiyuan-note:mainfrom
wwxiaoqi:simple-refactoring-mainactivity
Open

Simple Refactoring MainActivity#28
wwxiaoqi wants to merge 10 commits intosiyuan-note:mainfrom
wwxiaoqi:simple-refactoring-mainactivity

Conversation

@wwxiaoqi
Copy link
Copy Markdown
Contributor

@wwxiaoqi wwxiaoqi commented Mar 6, 2026

Significant changes:

  1. Moved some existing constants to AppConfig.
    Improve AppConfig configuration constants. b22f7d7
    Extract config constants to AppConfig.

  2. Extracted parts previously managed by MainActivity into several separate components:

  • AppAssetManager: Manages application assets, currently used for unpacking and managing the app.zip version.
  • HttpServerManager: HTTP server manager, handles starting and stopping the HTTP service.
  • KernelManager: Kernel lifecycle manager, handles starting and stopping the kernel.
  • SyncManager: Data synchronization manager, performs data synchronization asynchronously. Note: Replaced the original Boolean with AtomicBoolean to improve thread safety.
  • WebViewManager: Primarily handles WebView lifecycle and configuration. Note: Uses WeakReference to prevent memory leaks.

Extract asset management to AppAssetManager.
Extract HTTP server to HttpServerManager.
Extract kernel management to KernelManager.
Extract sync logic to SyncManager.
Extract WebView management to WebViewManager.

  1. Reorganized the original project structure.
    new folder has been organized by modules.
  org.b3log.siyuan/
  ├── activity/                                   # Activity related
  │   ├── MainActivity.java
  │   ├── BootActivity.java
  │   ├── ShortcutActivity.java
  │   └── RedirectUriReceiverActivity.java
  ├── manager/                                   # Manager classes
  │   ├── AppAssetManager.java
  │   ├── HttpServerManager.java
  │   ├── KernelManager.java
  │   ├── SyncManager.java
  │   └── WebViewManager.java
  ├── service/                                   # Service classes
  │   ├── KeepLiveService.java
  │   └── NotificationReceiver.java
  ├── bridge/                                    # JavaScript bridge
  │   └── JSAndroid.java
  ├── util/                                      # Utility classes
  │   ├── Utils.java
  │   └── AndroidBug5497Workaround.java
  ├── config/                                    # Configuration classes
  │   └── AppConfig.java
  └── App.java                                   # Application class

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant