Skip to content

Instantly share code, notes, and snippets.

View bastionkid's full-sized avatar

Akash Khunt bastionkid

View GitHub Profile
@bastionkid
bastionkid / size_metrics.yml
Last active June 16, 2023 05:22
Size Metrics workflow with only build job
name: Size Metrics
# cancel in-progress workflow if new commits are pushed to same head branch
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
on:
pull_request:
branches: [ "master", "main", "release/*", "feature/*" ]
@bastionkid
bastionkid / build.gradle.kts
Created June 13, 2023 07:26
density splits configuration
android {
...
splits {
...
density {
val onlyInclude = fun (density: kotlin.String) {
// Enables building multiple APKs per ABI.
isEnable = true
@bastionkid
bastionkid / build.gradle.kts
Created June 13, 2023 07:26
abi splits configuration
android {
...
splits {
abi {
val onlyInclude = fun(abiTag: kotlin.String) {
// Enables building multiple APKs per ABI.
isEnable = true
// By default all ABIs are included, so use reset() and include to specify that
@bastionkid
bastionkid / baseline_profile_generate_error.txt
Last active December 27, 2022 10:40
Baseline Profile Test Error Logs
12-27 16:04:05.090 15634 15662 E GrantPermissionCallable: Permission: android.permission.READ_EXTERNAL_STORAGE cannot be granted!
12-27 16:04:05.091 15634 15662 E TestRunner: failed: startup(com.tatadigital.tcp.example.benchmark.ExampleStartupBenchmark)
12-27 16:04:05.091 15634 15662 E TestRunner: ----- begin exception -----
12-27 16:04:05.092 15634 15662 E TestRunner: junit.framework.AssertionFailedError: Failed to grant permissions, see logcat for details
12-27 16:04:05.092 15634 15662 E TestRunner: at junit.framework.Assert.fail(Assert.java:50)
12-27 16:04:05.092 15634 15662 E TestRunner: at androidx.test.runner.permission.PermissionRequester.requestPermissions(PermissionRequester.java:111)
12-27 16:04:05.092 15634 15662 E TestRunner: at androidx.test.rule.GrantPermissionRule$RequestPermissionStatement.evaluate(GrantPermissionRule.java:133)
12-27 16:04:05.092 15634 15662 E TestRunner: at org.junit.rules.RunRules.evaluate(RunRules.java:20)
12-27 16:04:05.092 15634 15662 E TestRunner: at org.junit.runne
@bastionkid
bastionkid / center_aligned_text.kt
Last active October 12, 2022 06:22
Center Aligned Text composable with Modifier.wrapContentHeight()
fun CenterAlignedText() {
Text(
text = "Center",
textAlign = TextAlign.Center,
modifier = Modifier.size(100.dp)
.background(Color.Cyan)
.wrapContentHeight(),
)
}
@bastionkid
bastionkid / list_iterator_decompiled_bytecode.txt
Created September 15, 2022 11:00
Decompiled Bytecode for ListIterator
// plain kotlin code
for (observer in observers) {
observer.onStatusChange()
}
// decompiled bytecode of the above for loop
Iterator var2 = ((Scratch_2)this).observers.iterator();
while(var2.hasNext()) {
Observer observer = (Observer)var2.next();
@bastionkid
bastionkid / int_progression_iterator_decompiled_bytecode.txt
Created September 15, 2022 11:00
Decompiled Bytecode for IntProgressionIterator
// plain kotlin code
for (i in 0 until observers.size) {
observers[i].onStatusChange()
}
// decompiled bytecode of the above for loop
int i = 0;
for(int var5 = ((Scratch_2)this).observers.size(); i < var5; ++i) {
((Observer)((Scratch_2)this).observers.get(i)).onStatusChange();
@bastionkid
bastionkid / iterator_crash.txt
Last active September 15, 2022 08:20
Iterator Crash
Fatal Exception: java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.next(ArrayList.java:860)
...
...
...
@bastionkid
bastionkid / after_observer_loop_crash.kt
Created September 15, 2022 06:44
After Observer loop crash
for (observer in observers) {
observer.onStatusChange()
}
@bastionkid
bastionkid / before_observer_loop_crash.kt
Created September 15, 2022 06:44
Before Observer loop crash
for (i in 0 until observers.size) {
observers[i].onStatusChange()
}