Skip to content

Instantly share code, notes, and snippets.

fun factorial(number: Int): Int {
var factor = 1
return if (number <= 1)
factor
else {
(1 until number).forEach { factor*=(it+1) }
factor
}
}
@rezaiyan
rezaiyan / MaxSubArray.java
Last active April 1, 2019 07:06
Maximum sum of a sub-array
//Given an integer array nums,
//find the contiguous subarray (containing at least one number)
//which has the largest sum and return its sum.
class Solution {
public int maxSubArray(int[] nums) {
if (nums.length == 1)
return nums[0];
int sum = 0;
@rezaiyan
rezaiyan / MergeIntervals.java
Last active April 5, 2019 10:38
Given a collection of intervals, merge all overlapping intervals.
/*
Given a collection of intervals, merge all overlapping intervals.
Example 1:
Input: [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6].
Example 2:
@rezaiyan
rezaiyan / DrawableToBitmap.kt
Created April 21, 2019 10:08
A snippet code to do convert drawable to bitmap
fun Drawable.toBitmap(): Bitmap {
val bitmap = if (this.intrinsicWidth <= 0 || this.intrinsicHeight <= 0) {
Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888) // Single color bitmap will be created of 1x1 pixel
} else {
Bitmap.createBitmap(this.intrinsicWidth, this.intrinsicHeight, Bitmap.Config.ARGB_8888)
}
if (this is BitmapDrawable) {
if (this.bitmap != null) {
return this.bitmap
@rezaiyan
rezaiyan / build.gradle
Created April 24, 2019 11:42
Androidx conflict
/* packagingOptions {
exclude 'META-INF/androidx.localbroadcastmanager_localbroadcastmanager.version'
exclude 'META-INF/androidx.appcompat_appcompat.version'
exclude 'META-INF/androidx.customview_customview.version'
exclude 'META-INF/androidx.legacy_legacy-support-core-ui.version'
exclude 'META-INF/androidx.drawerlayout_drawerlayout.version'
exclude 'META-INF/androidx.interpolator_interpolator.version'
exclude 'META-INF/androidx.legacy_legacy-support-core-utils.version'
exclude 'META-INF/androidx.slidingpanelayout_slidingpanelayout.version'
exclude 'META-INF/androidx.swiperefreshlayout_swiperefreshlayout.version'
@rezaiyan
rezaiyan / PrettyLogger.kt
Created April 26, 2019 16:16
Pretty Json Logger
//Reference//
//https://github.com/orhanobut/logger
//https://github.com/JakeWharton/timber
// 1- Add this initializations to the oncreate method of Application class
Logger.addLogAdapter(AndroidLogAdapter())
Timber.plant(Timber.DebugTree())
// 2- Create a snippet to detect log is a json format (I used a string extention function)
fun String.isJson(): Boolean {
import android.annotation.SuppressLint
import android.view.MotionEvent
import android.view.View
import android.view.View.OnTouchListener
import java.util.*
/**
* Detects left and right swipes across a view.
*/
@rezaiyan
rezaiyan / OnTouchListener.java
Created June 11, 2019 08:07
This is a sample to swipe a layout to left and right
import android.view.MotionEvent;
import android.view.View;
/**
* @author ali (alirezaiyann@gmail.com)
* @since 6/11/19 12:24 PM.
*/
public class OnTouchListener implements View.OnTouchListener {
@rezaiyan
rezaiyan / BObserver.java
Last active October 14, 2019 16:28
Binding Observer with LiveData
public class BObserver<T> extends DisposableObserver<T> {
private StateLiveData<T> liveData;
public BObserver(StateLiveData<T> liveData) {
this.liveData = liveData;
}
@Override
@rezaiyan
rezaiyan / SharedViewModel.java
Last active November 11, 2019 08:01
This is a simple example of a shared viewmodel
class SharedViewModel extends ViewModel {
public MutableLiveData<String> liveData = new MutableLiveData<>();
}
class parentFragment {
sharedVm = new ViewModelProvider(requireActivity()).get(SharedViewModel.class);