forked from melod1n/fast-messenger
e127501889
new attachments
94 lines
3.0 KiB
Kotlin
94 lines
3.0 KiB
Kotlin
package com.meloda.fast.common
|
|
|
|
import android.app.Application
|
|
import android.content.ClipboardManager
|
|
import android.content.Context
|
|
import android.content.SharedPreferences
|
|
import android.content.pm.PackageManager
|
|
import android.content.res.Resources
|
|
import android.net.ConnectivityManager
|
|
import android.util.Log
|
|
import android.view.inputmethod.InputMethodManager
|
|
import androidx.core.content.pm.PackageInfoCompat
|
|
import androidx.preference.PreferenceManager
|
|
import androidx.room.Room
|
|
import com.meloda.fast.BuildConfig
|
|
import com.meloda.fast.database.AppDatabase
|
|
import dagger.hilt.android.HiltAndroidApp
|
|
import org.acra.ACRA
|
|
import kotlin.math.sqrt
|
|
|
|
@HiltAndroidApp
|
|
class AppGlobal : Application() {
|
|
|
|
companion object {
|
|
|
|
lateinit var inputMethodManager: InputMethodManager
|
|
lateinit var connectivityManager: ConnectivityManager
|
|
lateinit var clipboardManager: ClipboardManager
|
|
|
|
lateinit var preferences: SharedPreferences
|
|
lateinit var resources: Resources
|
|
lateinit var packageName: String
|
|
lateinit var instance: AppGlobal
|
|
|
|
lateinit var appDatabase: AppDatabase
|
|
|
|
lateinit var packageManager: PackageManager
|
|
|
|
var versionName = ""
|
|
var versionCode = 0L
|
|
|
|
var screenWidth = 0
|
|
var screenHeight = 0
|
|
}
|
|
|
|
override fun onCreate() {
|
|
super.onCreate()
|
|
instance = this
|
|
|
|
if (!BuildConfig.DEBUG) {
|
|
ACRA.init(this)
|
|
}
|
|
|
|
appDatabase = Room.databaseBuilder(
|
|
this, AppDatabase::class.java, "cache"
|
|
)
|
|
.fallbackToDestructiveMigration()
|
|
.build()
|
|
|
|
preferences = PreferenceManager.getDefaultSharedPreferences(this)
|
|
|
|
val info = packageManager.getPackageInfo(this.packageName, PackageManager.GET_ACTIVITIES)
|
|
versionName = info.versionName
|
|
versionCode = PackageInfoCompat.getLongVersionCode(info)
|
|
|
|
Companion.resources = resources
|
|
Companion.packageName = packageName
|
|
Companion.packageManager = packageManager
|
|
|
|
screenWidth = resources.displayMetrics.widthPixels
|
|
screenHeight = resources.displayMetrics.heightPixels
|
|
|
|
val density = resources.displayMetrics.density
|
|
val densityDpi = resources.displayMetrics.densityDpi
|
|
val densityScaled = resources.displayMetrics.scaledDensity
|
|
val xDpi = resources.displayMetrics.xdpi
|
|
val yDpi = resources.displayMetrics.ydpi
|
|
|
|
val diagonal = sqrt(
|
|
(screenWidth * screenWidth - screenHeight * screenHeight).toFloat()
|
|
)
|
|
|
|
Log.i(
|
|
"Fast::DeviceInfo",
|
|
"width: $screenWidth; height: $screenHeight; density: $density; diagonal: $diagonal; dpiDensity: $densityDpi; scaledDensity: $densityScaled; xDpi: $xDpi; yDpi: $yDpi"
|
|
)
|
|
|
|
|
|
inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
|
connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
|
clipboardManager = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
|
}
|
|
|
|
} |