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
const cheerio = require('cheerio'); | |
const axios = require('axios'); | |
var qs = require('qs'); | |
const fs = require('fs'); | |
const dist_file_dir = 'dist/'; | |
let provinsi = []; | |
let kabupaten = []; | |
let kecamatan = []; |
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 main() { | |
val shotGun = ShotGun("S12K", "Brown").apply { | |
projectile = 3 | |
} | |
val deagle = Deagle("Deagle", "Red").apply { | |
projectile = 3 | |
} | |
val snipper = Snipper().apply { |
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
interface MovieApiService { | |
@GET("/3/discover/movie") | |
suspend fun discoverAllMovies(): Response<MovieResponse> | |
@GET("/3/movie/{movieId}") | |
suspend fun getMovieDetail(@Path("movieId") movieId: Int): Response<MovieDetailResponse> | |
} |
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
abstract class BaseDataSource { | |
protected suspend fun <T> getResult(call: suspend () -> Response<T>): ResponseResult<ResponseWrapper<T>> { | |
try { | |
val response = call() | |
if (response.isSuccessful) { | |
val body = response.body() | |
if (null != body) return ResponseResult.Success(ResponseWrapper(body, null)) | |
} | |
return error("${response.code()} ${response.message()}") |
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
class MovieRemoteDataSource(private val movieApiService: MovieApiService) : BaseDataSource() { | |
fun discoverAllMovies(scope: CoroutineScope): LiveData<ResponseResult<ResponseWrapper<MovieResponse>>> = resultLiveData(scope) { | |
getResult { | |
movieApiService.discoverAllMovies() | |
} | |
} | |
fun getMovieDetails(movieId: Int, scope: CoroutineScope): LiveData<ResponseResult<ResponseWrapper<MovieDetailResponse>>> = resultLiveData(scope) { | |
getResult { |
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
class DashboardViewModel(private val movieRemoteDataSource: MovieRemoteDataSource) : ViewModel() { | |
private val _movieResult = MutableLiveData<ResponseResult<ResponseWrapper<MovieResponse>>>() | |
val movieResult: LiveData<ResponseResult<ResponseWrapper<MovieResponse>>> get() = _movieResult | |
fun discoverAllMovies() { | |
viewModelScope.launch { | |
val response = movieRemoteDataSource.discoverAllMovies(it) | |
//usually i do like this, but it will give null when we observe movieResult |
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
class DashboardViewModel(private val movieRemoteDataSource: MovieRemoteDataSource) : ViewModel() { | |
fun discoverAllMovies() = movieRemoteDataSource.discoverAllMovies(viewModelScope) | |
} |
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
class DashboardActivity : BaseActivity() { | |
private val dashboardViewModel by viewModel<DashboardViewModel>() | |
private val movieAdapter by lazy { | |
DashboardMovieAdapter { | |
launchActivity<MovieDetailActivity>( | |
MovieDetailActivity.ExtraKey.EXTRA_MOVIE_ID to it.first, | |
MovieDetailActivity.ExtraKey.EXTRA_MOVIE_TITLE to it.second | |
) | |
} |
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 org.w3c.dom.Node | |
/** | |
* This function will check child nodes from the AndroidManifest.xml file | |
* whether the nodes (activity, service, receiver) which contains "intent-filter" tag | |
* has the "android:exported" attribute or not. | |
* @param manifestFile | |
* @return List of nodes which doesn't have "android:exported" attribute | |
*/ |
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
#!/bin/sh | |
# This script is used to clean up the log files in the Gradle Daemon directory. | |
# All of the *.out.log files will be removed | |
# Use it if you have storage space issue, caused of gradle daemon log | |
GRADLE_HOME=$HOME/.gradle | |
GRADLE_DAEMON_DIR=$GRADLE_HOME/daemon | |
if [ -d "$GRADLE_HOME" ]; then |
OlderNewer