Skip to content

Instantly share code, notes, and snippets.

View mksantoki's full-sized avatar
🏠
Working from home

Maulik Santoki (MK) mksantoki

🏠
Working from home
  • India
View GitHub Profile
@mksantoki
mksantoki / MapExtensions.kt
Created October 14, 2020 09:47
how to draw an arc line on google map?
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.Polyline
import com.google.android.gms.maps.model.PolylineOptions
import com.google.maps.android.SphericalUtil
val optionsForeground: PolylineOptions? = null
fun showCurvedPolyline(
googleMap: GoogleMap,
@mksantoki
mksantoki / ValidationExtension.kt
Created September 16, 2020 17:17
Kotlin validation extensions to validate email,phone number and many others
import android.text.TextUtils
import android.widget.EditText
import androidx.appcompat.widget.AppCompatEditText
fun String.isEmpty(): Boolean {
return (TextUtils.isEmpty(this)
|| this.equals("", ignoreCase = true)
|| this.equals("{}", ignoreCase = true)
|| this.equals("null", ignoreCase = true)
|| this.equals("undefined", ignoreCase = true))
@mksantoki
mksantoki / IntentExtensions.kt
Created September 16, 2020 17:12
This extensions is used to perform intent operations
fun onDocument(): Intent {
val mimeTypes = arrayOf(
"application/pdf",
"image/*"
)
val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addCategory(Intent.CATEGORY_OPENABLE)
intent.type = if (mimeTypes.size == 1) mimeTypes[0] else "*/*"
if (mimeTypes.isNotEmpty()) {
@mksantoki
mksantoki / DateFormatExtensions.kt
Created September 16, 2020 17:07
This extension is used to format dates. Android date format extension kotlin
import java.text.SimpleDateFormat
import java.util.*
fun getDefaultDateTime(date: String): String {
val formatter = SimpleDateFormat("dd-MM-yyyy hh:mm aa")
return formatter.format(date.toDate())
}
fun getDefaultDateTime1(date: String): String {
val formatter = SimpleDateFormat("dd-MM-yyyy HH:MM")
@mksantoki
mksantoki / command.txt
Created July 6, 2020 04:08
List all gradlew tasks in command
./gradlew tasks
@mksantoki
mksantoki / navigation.kt
Last active June 25, 2020 13:25
Provide custom back navigation
requireActivity().onBackPressedDispatcher.addCallback(object :
OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
requireActivity().toastGreen("Testing")
}
})
@mksantoki
mksantoki / BaseDataBindingBottomSheetDialogFragment.kt
Created June 24, 2020 04:49
Binding BottomSheetDialogFragment
abstract class BaseDataBindingBottomSheetDialogFragment : BottomSheetDialogFragment() {
private var mProgressDialog: Dialog? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initControl()
initView(view)
setListener()
@mksantoki
mksantoki / MapExtensions.kt
Created June 24, 2020 03:48
Android get bearing from two locations
fun getBearing(begin: LatLng, end: LatLng): Float {
val lat = abs(x = begin.latitude - end.latitude)
val lng = abs(x = begin.longitude - end.longitude)
if (begin.latitude < end.latitude && begin.longitude < end.longitude)
return (Math.toDegrees(Math.atan(lng / lat)).toFloat())
else if (begin.latitude >= end.latitude && begin.longitude < end.longitude)
return (((90 - Math.toDegrees(Math.atan(lng / lat))) + 90).toFloat())
else if (begin.latitude >= end.latitude && begin.longitude >= end.longitude)
return ((Math.toDegrees(Math.atan(lng / lat)) + 180).toFloat())
@mksantoki
mksantoki / MapExtensions.kt
Created June 24, 2020 03:47
Convert miles to meters kotlin.
fun getMeters(miles: Double): Double {
return miles * 1609.344
}
@mksantoki
mksantoki / Helper.java
Last active February 14, 2019 06:20
Android Remove zero from stating in string
public static String removeZero(String str)
{
// Count leading zeros
int i = 0;
while (str.charAt(i) == '0')
i++;
// Convert str into StringBuffer as Strings
// are immutable.
StringBuffer sb = new StringBuffer(str);