This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fun factorial(number: Int): Int { | |
| var factor = 1 | |
| return if (number <= 1) | |
| factor | |
| else { | |
| (1 until number).forEach { factor*=(it+1) } | |
| factor | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //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; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| 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: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* 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' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //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 { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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. | |
| */ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public class BObserver<T> extends DisposableObserver<T> { | |
| private StateLiveData<T> liveData; | |
| public BObserver(StateLiveData<T> liveData) { | |
| this.liveData = liveData; | |
| } | |
| @Override |