This file contains 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
//add in build.gradle (app-level) | |
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>() { | |
compilerOptions.freeCompilerArgs.addAll( | |
"-P", | |
"plugin:androidx.compose.compiler.plugins.kotlin:experimentalStrongSkipping=true", | |
) | |
} |
This file contains 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 String getRealPathFromURI(Context context, Uri contentUri) { | |
Cursor cursor = null; | |
try { | |
String[] proj = { MediaStore.Images.Media.DATA }; | |
cursor = context.getContentResolver().query(contentUri, proj, null, null, null); | |
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); | |
cursor.moveToFirst(); | |
return cursor.getString(column_index); | |
} finally { | |
if (cursor != null) { |
This file contains 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
open class A{ | |
init { | |
println("init A") | |
} | |
constructor(){ | |
println("primary constructor of A") | |
} | |
constructor(x:Int) : this() { |
This file contains 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 Components{ | |
void showPrice(); | |
} | |
class Composite implements Components{ | |
String name; | |
List<Components> componentsList = new ArrayList<>(); | |
public Composite(String name){ | |
super(); |
This file contains 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
//one-to-many relation | |
@Entity(tableName = "TicketGroup") | |
data class TicketGroup( | |
@PrimaryKey(autoGenerate = false) | |
val groupId: Int, | |
val groupName: String, | |
) | |
@Entity(tableName = "Ticket") | |
data class Ticket( |
This file contains 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 MainActivity : AppCompatActivity(), ConstraintValidatorContext { | |
lateinit var edt: EditText | |
lateinit var btn: Button | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
setContentView(R.layout.activity_main) | |
edt = findViewById(R.id.edt) |
This file contains 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
************************************************************************************************************************************ | |
restore state of list of Int, String using rememberSaveable | |
************************************************************************************************************************************ | |
import androidx.compose.runtime.Composable | |
import androidx.compose.runtime.saveable.listSaver | |
import androidx.compose.runtime.saveable.rememberSaveable | |
import androidx.compose.runtime.snapshots.SnapshotStateList | |
import androidx.compose.runtime.toMutableStateList | |
This file contains 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
@Preview(group = "phone", name = "light", device = Devices.PIXEL_4_XL, showSystemUi = true) | |
@Preview( | |
group = "phone", | |
name = "dark", | |
uiMode = UI_MODE_NIGHT_YES, | |
device = Devices.PIXEL_4_XL, | |
showSystemUi = true, | |
showBackground = true | |
) | |
annotation class Phone |
This file contains 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
*********************************************************StateFlow Demo************************************************************** | |
Step-1) build.gradle | |
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.6" | |
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.6" | |
Step-2) data class | |
data class Resource<out T>(val status: Status, val data: T?, val message: String?) { | |
companion object { |
This file contains 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
Gzip interceptors = for data compression | |
public class GzipRequestInterceptor implements Interceptor { | |
@Override | |
public Response intercept(Chain chain) throws IOException { | |
Request originalRequest = chain.request(); | |
if (originalRequest.body() == null || originalRequest.header("Content-Encoding") != null) { | |
return chain.proceed(originalRequest); | |
} | |
Request compressedRequest = originalRequest.newBuilder() |
NewerOlder