mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-24 23:25:19 +00:00
65 lines
2.5 KiB
Kotlin
65 lines
2.5 KiB
Kotlin
package com.bitchat.android
|
||
|
||
import android.app.Application
|
||
import com.bitchat.android.nostr.RelayDirectory
|
||
import com.bitchat.android.ui.theme.ThemePreferenceManager
|
||
import com.bitchat.android.net.ArtiTorManager
|
||
|
||
/**
|
||
* Main application class for bitchat Android
|
||
*/
|
||
class BitchatApplication : Application() {
|
||
|
||
override fun onCreate() {
|
||
super.onCreate()
|
||
|
||
// Initialize Tor first so any early network goes over Tor
|
||
try {
|
||
val torProvider = ArtiTorManager.getInstance()
|
||
torProvider.init(this)
|
||
} catch (_: Exception){}
|
||
|
||
// Initialize relay directory (loads assets/nostr_relays.csv)
|
||
RelayDirectory.initialize(this)
|
||
|
||
// Initialize LocationNotesManager dependencies early so sheet subscriptions can start immediately
|
||
try { com.bitchat.android.nostr.LocationNotesInitializer.initialize(this) } catch (_: Exception) { }
|
||
|
||
// Initialize favorites persistence early so MessageRouter/NostrTransport can use it on startup
|
||
try {
|
||
com.bitchat.android.favorites.FavoritesPersistenceService.initialize(this)
|
||
} catch (_: Exception) { }
|
||
|
||
// Warm up Nostr identity to ensure npub is available for favorite notifications
|
||
try {
|
||
com.bitchat.android.nostr.NostrIdentityBridge.getCurrentNostrIdentity(this)
|
||
} catch (_: Exception) { }
|
||
|
||
// Initialize theme preference
|
||
ThemePreferenceManager.init(this)
|
||
|
||
// Initialize debug preference manager (persists debug toggles)
|
||
try { com.bitchat.android.ui.debug.DebugPreferenceManager.init(this) } catch (_: Exception) { }
|
||
|
||
// Initialize Wi‑Fi Aware controller with persisted default
|
||
try {
|
||
val enabled = com.bitchat.android.ui.debug.DebugPreferenceManager.getWifiAwareEnabled(true)
|
||
com.bitchat.android.wifiaware.WifiAwareController.initialize(this, enabled)
|
||
} catch (_: Exception) { }
|
||
|
||
// Initialize Geohash Registries for persistence
|
||
try {
|
||
com.bitchat.android.nostr.GeohashAliasRegistry.initialize(this)
|
||
com.bitchat.android.nostr.GeohashConversationRegistry.initialize(this)
|
||
} catch (_: Exception) { }
|
||
|
||
// Initialize mesh service preferences
|
||
try { com.bitchat.android.service.MeshServicePreferences.init(this) } catch (_: Exception) { }
|
||
|
||
// Proactively start the foreground service to keep mesh alive
|
||
try { com.bitchat.android.service.MeshForegroundService.start(this) } catch (_: Exception) { }
|
||
|
||
// TorManager already initialized above
|
||
}
|
||
}
|