Skip to content

Commit fca79ae

Browse files
committed
- added Drawable.kt
- update some functions
1 parent 6706c88 commit fca79ae

File tree

7 files changed

+62
-82
lines changed

7 files changed

+62
-82
lines changed

ActivityExtensions.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package io.github.jitinsharma.kotlinsomeextensions
22

33
import android.graphics.drawable.ColorDrawable
44
import android.support.annotation.ColorRes
5-
import android.support.v4.app.Fragment
5+
import android.support.v4.app.FragmentTransaction
66
import android.support.v4.content.ContextCompat
77
import android.support.v7.app.AppCompatActivity
88
import android.util.DisplayMetrics
@@ -51,9 +51,8 @@ fun AppCompatActivity.setToolbarColor(@ColorRes color: Int) {
5151
/**
5252
* Perform replace for a support fragment
5353
*/
54-
fun AppCompatActivity.loadFragment(fragment: Fragment, containerId: Int) {
55-
val transaction = this.supportFragmentManager.beginTransaction()
56-
transaction
57-
.replace(containerId, fragment)
58-
.commit()
54+
inline fun AppCompatActivity.transact(action: FragmentTransaction.() -> Unit) {
55+
supportFragmentManager.beginTransaction().apply {
56+
action()
57+
}.commit()
5958
}

Blocks.kt

Lines changed: 0 additions & 47 deletions
This file was deleted.

ContextExtensions.kt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package io.github.jitinsharma.kotlinsomeextensions
22

3-
import android.annotation.SuppressLint
3+
import android.Manifest
44
import android.content.Context
55
import android.graphics.drawable.Drawable
66
import android.net.ConnectivityManager
77
import android.support.annotation.ColorRes
88
import android.support.annotation.DrawableRes
9+
import android.support.annotation.RequiresPermission
910
import android.support.v4.content.ContextCompat
1011
import android.util.DisplayMetrics
1112
import android.view.WindowManager
@@ -15,7 +16,7 @@ import java.nio.charset.Charset
1516
/**
1617
* Checks network connectivity
1718
*/
18-
@SuppressLint("MissingPermission")
19+
@RequiresPermission(Manifest.permission.ACCESS_NETWORK_STATE)
1920
fun Context.isNetworkStatusAvailable(): Boolean {
2021
val connectivityManager = this
2122
.getSystemService(Context.CONNECTIVITY_SERVICE) as? ConnectivityManager
@@ -28,6 +29,16 @@ fun Context.isNetworkStatusAvailable(): Boolean {
2829
return false
2930
}
3031

32+
/**
33+
* Execute block of code if network is available
34+
*/
35+
@RequiresPermission(Manifest.permission.ACCESS_NETWORK_STATE)
36+
inline fun Context.withNetwork(block: () -> Unit) {
37+
if (isNetworkStatusAvailable()) {
38+
block()
39+
}
40+
}
41+
3142
/**
3243
* Loads content of file from assets as String using UTF-8 charset
3344
*/

Drawable.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package io.github.jitinsharma.kotlinsomeextensions
2+
3+
import android.graphics.drawable.Drawable
4+
import android.support.v4.graphics.drawable.DrawableCompat
5+
6+
/**
7+
* Returns a compat drawable with tint added
8+
*/
9+
fun Drawable.withTint(colorInt: Int): Drawable {
10+
return with(this) {
11+
DrawableCompat.wrap(this).apply {
12+
DrawableCompat.setTint(this, colorInt)
13+
}
14+
}
15+
}

GeneralExtensions.kt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package io.github.jitinsharma.kotlinsomeextensions
2+
3+
import android.os.Build
4+
5+
/**
6+
* Wrapping try/catch to ignore catch block
7+
*/
8+
inline fun <T> justTry(block: () -> T) = try { block() } catch (e: Throwable) {}
9+
10+
/**
11+
* App's debug mode
12+
*/
13+
inline fun debugMode(block : () -> Unit) {
14+
if (BuildConfig.DEBUG) {
15+
block()
16+
}
17+
}
18+
19+
/**
20+
* For functionality supported above API 21 (Eg. Material design stuff)
21+
*/
22+
inline fun lollipopAndAbove(block : () -> Unit) {
23+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
24+
block()
25+
}
26+
}

README.md

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
11
# Kotlin.someExtensions
22
Few extensions functions for Kotlin and Android
33

4-
Extensions.kt - General Extensions
4+
File names represent their content.
55

6-
ViewExtensions.kt - Extensions for Android Views
7-
8-
ContextExtensions.kt - Extensions for Android Context
9-
10-
ActivityExtensions.kt - Extensions for Android Activities
11-
12-
Blocks.kt - Higher order function blocks
13-
14-
- Blocks.kt may be required for other extension files as some functions
15-
are imported from this file.
6+
//TODO - Do something for more documentation.

ViewExtensions.kt

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
11
package io.github.jitinsharma.kotlinsomeextensions
22

3-
import android.graphics.drawable.ColorDrawable
4-
import android.graphics.drawable.Drawable
53
import android.os.Build
64
import android.support.annotation.ColorRes
75
import android.support.v4.content.ContextCompat
8-
import android.support.v4.graphics.drawable.DrawableCompat
9-
import android.support.v7.app.AppCompatActivity
10-
import android.util.DisplayMetrics
116
import android.view.View
127
import android.view.Window
138
import android.view.WindowManager
@@ -52,20 +47,10 @@ fun Button.enableButton() {
5247
alpha = 1.0f
5348
}
5449

55-
/**
56-
* Add Color tint to drawable image
57-
*/
58-
fun Drawable.addTintWithCompat(colorInt: Int): Drawable {
59-
var drawable = this
60-
drawable = DrawableCompat.wrap(drawable)
61-
DrawableCompat.setTint(drawable.mutate(), colorInt)
62-
return drawable
63-
}
64-
6550
/**
6651
* Sets color to status bar
6752
*/
68-
fun Window.setStatusBarColor(@ColorRes color: Int) {
53+
fun Window.addStatusBarColor(@ColorRes color: Int) {
6954
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
7055
this.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
7156
this.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)

0 commit comments

Comments
 (0)