Skip to content

Instantly share code, notes, and snippets.

View Turskyi's full-sized avatar
💭
Everything is simple.

Dmytro Turskyi Turskyi

💭
Everything is simple.
View GitHub Profile
@Turskyi
Turskyi / SoccerGame.java
Last active March 8, 2021 12:14
Simulation of Soccer in console in Java.
package penalty;
import java.util.Random;
public class Player {
private String name;
private int skills;
public Player(String name, int skills) {
@Turskyi
Turskyi / ContextExtensions.kt
Last active August 3, 2021 11:40
Convenient context extensions for kotlin
tailrec fun Context.getActivity(): Activity? = when (this) {
is Activity -> this
else -> (this as? ContextWrapper)?.baseContext?.getActivity()
}
/**
* Starts the Activity [A], in a more concise way, while still allowing to configure the [Intent] in
* the optional [configIntent] lambda.
*/
inline fun <reified A : Activity> Context.start(configIntent: Intent.() -> Unit = {}) {
@Turskyi
Turskyi / StringExtensions.kt
Last active July 24, 2021 10:27
Convenient string extensions for kotlin
fun String.fromHtmlToSpanned(): Spanned = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Html.fromHtml(this, Html.FROM_HTML_MODE_LEGACY)
} else {
HtmlCompat.fromHtml(this, HtmlCompat.FROM_HTML_MODE_LEGACY)
}
/** turn string into the picture */
fun String.convertToBitmap(textSize: Float, textColor: Int): Bitmap {
val paint = Paint(Paint.ANTI_ALIAS_FLAG)
paint.textSize = textSize
@Turskyi
Turskyi / SpannedExtensions.kt
Last active July 24, 2021 10:27
Convenient Spanned extensions for kotlin
fun Spanned.toHtml(): String = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Html.toHtml( this, Html.FROM_HTML_MODE_LEGACY)
} else {
@Suppress("DEPRECATION")
Html.toHtml(this)
}
@Turskyi
Turskyi / fetch_preview_from_web_link.dart
Last active July 24, 2021 10:26
Fetch data(preview) from provided url.
@Turskyi
Turskyi / FragmentExtensions.kt
Last active July 24, 2021 10:25
Convenient extensions for Fragments in Kotlin
/**
* @Description
* Checks if device is online or not
*/
fun Fragment.isOnline(): Boolean {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val connectivityManager =
this.activity?.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val network = connectivityManager.activeNetwork
return if (network != null) {
@Turskyi
Turskyi / animation_functions.dart
Last active July 24, 2021 10:26
Convenient flutter methods.
/// After 0.5 second after creating, the list will slide down
/// to the bottom of the ListView
void _animateSlideDown(Model model) {
Timer(
Duration(milliseconds: 400),
() => model.scrollController.animateTo(
model.scrollController.position.maxScrollExtent,
duration: Duration(milliseconds: 500),
curve: Curves.fastOutSlowIn,
));
@Turskyi
Turskyi / custom_background.dart
Last active July 24, 2021 10:24
Background Flutter widget with linear gradient
class BackgroundWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
return Align(
alignment: AlignmentDirectional.topCenter,
child: Container(
width: constraints.maxWidth,
height: constraints.maxHeight,
@Turskyi
Turskyi / buttons.dart
Last active July 24, 2021 10:24
Different type of buttons
/// Button with outline
SizedBox(
height: 33,
child: new OutlineButton(
padding: AppDimens.insetsHorizontal32,
child: new Text(
translate('auth.back'),
style: Theme.of(context).textTheme.button,
),
borderSide: BorderSide(
@Turskyi
Turskyi / LiveDataExtensions.kt
Last active July 24, 2021 10:23
Convenient extensions for LiveData in Kotlin
fun <T> LiveData<T>.observeOnce(lifecycleOwner: LifecycleOwner,observer: androidx.lifecycle.Observer<T>) {
observe(lifecycleOwner, object : androidx.lifecycle.Observer<T> {
override fun onChanged(t: T) {
observer.onChanged(t)
removeObserver(this)
}
})
}