Skip to content

Instantly share code, notes, and snippets.

@cmathew
cmathew / AndroidLintJodaExample.kt
Created September 12, 2023 17:19
Example of providing a stubbed dependency to an Android Lint unit test
// Define Joda-Time stub
val JODA_STUB = TestFiles.kotlin(
"""
package org.joda.time
class DateTime(
private val moment: Int,
private val zone: String
) {
companion object {
@cmathew
cmathew / WarnLocalDateConversion.kt
Created September 12, 2023 15:25
Android Lint code to remind developers that DateTime.toLocalDate is a lossy operation
class WarnLocalDateConversion : Detector(), SourceCodeScanner {
override fun getApplicableMethodNames(): List<String> = listOf("toLocalDateTime", "toLocalDate")
override fun visitMethodCall(context: JavaContext, node: UCallExpression, method: PsiMethod) {
val receiverClassName = (node.receiverType as PsiClassReferenceType).reference.qualifiedName
if (receiverClassName == "org.joda.time.DateTime") {
context.report(
WARN_LOCAL_DATE_CONVERSION,
node,
context.getLocation(node),
@u0705666
u0705666 / suspend-api-single.kt
Created June 8, 2023 04:41
suspend api single call
@Inject lateinit var suspendApi: SuspendApi
shownScope.launch {
view.showSearchLoading()
val result = suspendApi.getCategorizedAssetsSearch(searchStr, assetCategory?.categoryIdentifier)
view.hideSearchLoading()
when (result) {
is ApiResult.Success -> {
view.replaceListItems(getAssetListItem(result.data.categorizedAssets))
@u0705666
u0705666 / rxjava-combined-api-call-example.kt
Created June 8, 2023 04:39
rxjava-combined-api-call-example
private fun fetchAccounts() {
val externalAccountLinkStatusObservable = linkCoordinator.linkStatusObservable
val wealthFrontAccountObservable = accountRepository.wealthfrontAccountObservable
val wealthFrontAccountRequestsObservable = accountRequestsRepository.wealthfrontAccountRequestObservable
val calloutObservable = calloutsRepository.getCalloutsObservable(AccountListSection::class.java)
autoDisposer.autoDispose(
combineLatest(
externalAccountLinkStatusObservable,
wealthFrontAccountObservable,
@u0705666
u0705666 / rxjava-api-call-example.java
Created June 8, 2023 04:38
rxjava-api-call-example
autoDispose(
api.getCategorizedAssetsSearch(searchStr, assetCategory?.categoryIdentifier)
.observeOn(mainThread())
.doOnSubscribe { view.showSearchLoading() }
.doOnTerminate { view.hideSearchLoading() }
.subscribe(
{
view.replaceListItems(getAssetListItem(it.categorizedAssets))
},
{
@xanathar
xanathar / launch.json
Created September 17, 2020 18:16
launch.json to debug Rust with VsCode
{
// The following are sample configurations for common case scenarios of debugging
// Rust in Visual Studio Code
//
// For syntax, visit: https://go.microsoft.com/fwlink/?linkid=830387
//
"version": "0.2.0",
"configurations": [
{
"name": "Launch an application",
@danieldogeanu
danieldogeanu / RenameGitBranch.md
Last active June 11, 2024 12:27
How to rename your Git master branch to main.

To rename your Git master branch to main, you must do the following steps:

  1. Navigate to your repository in the command line and issue the following commands: - git branch -m master main - git push -u origin main

  2. Change your default branch on GitHub by going to your GitHub repository in your browser, and navigate to Settings > Branches and click on the dropdown and switch from master to main and click Update (this will only show if you have two or more branches). The main branch is now your default branch.

  3. Update the tracking of the branch from your command line with the following command: - git branch -u origin/main main

@xorxornop
xorxornop / launch.json
Created March 25, 2018 04:31
Launch configuration for debugging Rust code inside VS Code with LLDB
{
// Launch configuration for debugging Rust code inside VS Code with LLDB
// This configuration is used by the extension 'LLDB Debugger'
//
// The necessary extension may be downloaded at: https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb
// Alternatively, the repository for it may be found at: https://github.com/vadimcn/vscode-lldb.git
"version": "0.1.0",
"configurations": [
{
@Pulimet
Pulimet / AdbCommands
Last active July 17, 2024 12:55
Adb useful commands list
adb help // List all comands
== Adb Server
adb kill-server
adb start-server
== Adb Reboot
adb reboot
adb reboot recovery
adb reboot-bootloader
@Jim-Bar
Jim-Bar / YUV_formats.md
Last active July 7, 2024 14:56
About YUV formats

About YUV formats

First of all: YUV pixel formats and Recommended 8-Bit YUV Formats for Video Rendering. Chromium's source code contains good documentation about those formats too: chromium/src/media/base/video_types.h and chromium/src/media/base/video_frame.cc (search for RequiresEvenSizeAllocation(), NumPlanes() and those kinds of functions).

YUV?

You can think of an image as a superposition of several planes (or layers in a more natural language). YUV formats have three planes: Y, U, and V.

Y is the luma plane, and can be seen as the image as grayscale. U and V are reffered to as the chroma planes, which are basically the colours. All the YUV formats have these three planes, and differ by the different orderings of them.