Dark theme

This commit is contained in:
2021-02-20 23:21:25 +03:00
parent 88dddcb133
commit 06aa41cab1
179 changed files with 1011 additions and 1133 deletions
@@ -0,0 +1,120 @@
package com.meloda.fast.util
import android.content.ClipData
import android.content.Context
import android.content.Intent
import android.net.NetworkCapabilities
import android.net.Uri
import android.os.Build
import android.provider.Settings
import android.util.DisplayMetrics
import android.util.TypedValue
import androidx.annotation.AttrRes
import com.meloda.fast.BuildConfig
import com.meloda.fast.common.AppGlobal
object AndroidUtils {
fun px(dp: Float): Float {
return dp * (AppGlobal.resources.displayMetrics.densityDpi.toFloat() / DisplayMetrics.DENSITY_DEFAULT)
}
fun px(dp: Int) = px(dp.toFloat())
fun dp(px: Float): Float {
return px / (AppGlobal.resources.displayMetrics.densityDpi.toFloat() / DisplayMetrics.DENSITY_DEFAULT)
}
fun dp(px: Int) = dp(px.toFloat())
fun hasConnection(): Boolean {
val network = AppGlobal.connectivityManager.activeNetwork ?: return false
val activeNetwork =
AppGlobal.connectivityManager.getNetworkCapabilities(network) ?: return false
return when {
activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true
activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH) -> true
else -> false
}
}
fun getDisplayWidth(): Int {
return AppGlobal.resources.displayMetrics.widthPixels
}
fun getDisplayHeight(): Int {
return AppGlobal.resources.displayMetrics.heightPixels
}
fun isDeveloperSettingsEnabled(context: Context) = Settings.Secure.getInt(
context.contentResolver,
Settings.Global.DEVELOPMENT_SETTINGS_ENABLED,
0
) == 1
@Suppress("DEPRECATION")
fun isCanInstallUnknownApps(context: Context) =
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
Settings.Secure.getInt(
context.contentResolver,
Settings.Secure.INSTALL_NON_MARKET_APPS
) == 1
} else {
AppGlobal.packageManager.canRequestPackageInstalls()
}
fun openInstallUnknownAppsScreen(context: Context) {
context.startActivity(Intent().apply {
action = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
Settings.ACTION_SECURITY_SETTINGS
} else {
data = Uri.parse("package:${BuildConfig.APPLICATION_ID}")
Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES
}
})
}
fun copyText(label: String? = "", text: String) {
AppGlobal.clipboardManager.setPrimaryClip(ClipData.newPlainText(label, text))
}
fun getThemeAttrColor(context: Context, @AttrRes resId: Int): Int {
// val typedValue = TypedValue()
//
// context.theme.resolveAttribute(resId, typedValue, true)
//
// return typedValue.data
val typedValue = TypedValue()
context.theme.resolveAttribute(resId, typedValue, true)
val colorRes = typedValue.resourceId
var color = -1
try {
color = context.resources.getColor(colorRes, context.theme)
} catch (e: Exception) {
}
return color
}
/*
TypedValue typedValue = new TypedValue();
context.getTheme().resolveAttribute(attributeId, typedValue, true);
int colorRes = typedValue.resourceId;
int color = -1;
try {
color = context.getResources().getColor(colorRes);
} catch (Resources.NotFoundException e) {
Log.w(TAG, "Not found color resource by id: " + colorRes);
}
return color;
*/
}