Skip to content

Instantly share code, notes, and snippets.

View ExNDY's full-sized avatar
🐙

Kolchurin Konstantin ExNDY

🐙
View GitHub Profile

❌ [4/18] Milestones

  • Common generator
  • Target generator
  • Android MR generator
  • JVM MR generator
  • JS MR generator ⬅️Current target
  • Apple MR generator ⬅️Current target
  • Define generated resources as sourceSet, assets, resources ⬅️Current target
  • Copy resources of Apple and JS targets in KLibs ⬅️Current target
@ExNDY
ExNDY / NetworkMonitor.kt
Created May 23, 2023 17:03
Network status monitoring - Android 25+, Jetpack Compose compatibility
class NetworkMonitor(
applicationContext: Context,
) : NetworkConnectivityService {
private val connectivityManager = applicationContext.getSystemService(
Context.CONNECTIVITY_SERVICE
) as ConnectivityManager
override val networkStatus: Flow<NetworkStatus> = callbackFlow {
val connectivityCallback = object : NetworkCallback() {
override fun onAvailable(network: Network) {
@ExNDY
ExNDY / AutoSizeTextLayout
Created January 17, 2023 07:50
Compose: AutoSizeText
package ui.kit
//https://stackoverflow.com/a/69780826
import androidx.compose.material.LocalTextStyle
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
@ExNDY
ExNDY / DipToPixels
Last active August 8, 2022 08:56
Android converter function dp-to-px
fun dipToPixels(dip: Int): Int {
return TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
dip.toFloat(),
Resources.getSystem().displayMetrics
).toInt()
}
@ExNDY
ExNDY / Validator.kt
Last active April 5, 2022 09:18
GitHub authentication validation (login, authToken)
object Validator {
private const val LOGIN_PATTERN = "^[a-zA-Z0-9_-]{0,38}$"
private const val AUTHORIZATION_TOKEN_PATTERN = "^gh[pousr]_[a-zA-Z0-9]{0,40}$"
fun validateLogin(login: String): Validation {
if (login.isEmpty()) return FieldValidation.Empty
val matcher = Pattern.compile(LOGIN_PATTERN).matcher(login)
return if (matcher.matches()) Validation.Correct else Validation.Incorrect
@ExNDY
ExNDY / Activity.kt
Last active March 28, 2022 06:12
NetworkMonitoring (Android = 25+)
class AppActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
NetworkConnectionManager(this).startNetworkCallback()
setContentView(R.layout.activity_app)
}
override fun onPause() {
@ExNDY
ExNDY / XmlParser
Created September 9, 2021 16:12
Xml data parser Stream to ArrayList with integration converter of Windows-1251 to Utf8 (Actual for android platform, for example).
import org.xmlpull.v1.XmlPullParser
import org.xmlpull.v1.XmlPullParserException
import org.xmlpull.v1.XmlPullParserFactory
import java.io.IOException
import java.io.InputStream
import java.math.BigDecimal
import java.nio.charset.Charset
import java.util.ArrayList
class XmlParser {
@ExNDY
ExNDY / ActivityClass.java
Last active November 18, 2020 17:15
Monitoring network connection for Android ( API 24+ ) with using LiveData
public class Activity extends AppCompatActivity{
...
private NetworkConnectionMonitor connectionMonitor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
...
connectionMonitor = new NetworkConnectionMonitor(getApplicationContext());