Skip to content

Instantly share code, notes, and snippets.

View hacomeister's full-sized avatar

Hakan Erbaş hacomeister

View GitHub Profile
plugins {
id 'com.android.application'
id 'kotlin-android'
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
@hacomeister
hacomeister / MainActivity.kt
Last active September 12, 2020 19:25
First compose implementation
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text("Hello world by compose")
}
}
}
@hacomeister
hacomeister / MainActivity-previewfeature.kt
Created September 12, 2020 19:40
Compose preview feature
package com.hacomeister.jetpackcompose
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.compose.foundation.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.setContent
import androidx.ui.tooling.preview.Preview
class MainActivity : AppCompatActivity() {
@hacomeister
hacomeister / MainActivity-customview.kt
Created September 13, 2020 19:29
Composable function which contains image and text with background.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting(name = "Responsible")
}
}
private val TAG: String = "ComposeTutorial"
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting(name = "Responsible")
@hacomeister
hacomeister / CloudDbRepository.kt
Last active October 11, 2020 21:01
Cloud Db Repository file to implement huawei cloud db
class CloudDbRepository {
private var mCloudDb: AGConnectCloudDB
var mCloudDbZone: CloudDBZone? = null
init {
mCloudDb = AGConnectCloudDB.getInstance()
}
companion object {
@hacomeister
hacomeister / BaseFoodRepository.kt
Last active October 11, 2020 23:06
BaseFoodRepository and IngredientRepository which include cloud db interaction on object types
class BaseFoodRepository(val mCloudDbZone: CloudDBZone) : IRepository {
//baseFoodList is a live data object.
val baseFoodList = MutableLiveData<MutableList<BaseFood>>()
//getAll method is getting all BaseFood data from cloud db without any filtering.
override fun getAll() {
//In here, we mention that we want to get BaseFood ObjectType information.
val query = CloudDBZoneQuery.where(BaseFood::class.java)
val queryTask: CloudDBZoneTask<CloudDBZoneSnapshot<BaseFood>> = mCloudDbZone.executeQuery(
class MainActivityViewModel : ViewModel() {
var cloudDbRepository: CloudDbRepository = CloudDbRepository()
private var ingredientRepository : IngredientRepository
private var baseFoodRepository : BaseFoodRepository
val ingredientList : MutableLiveData<MutableList<Ingredient>>
val baseFoodList : MutableLiveData<MutableList<BaseFood>>
init {
@hacomeister
hacomeister / item_base_food.xml
Last active October 11, 2020 22:25
adapter item layouts
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/item_name"
android:layout_width="wrap_content"
class BaseFoodAdapter(
var baseFoods: MutableList<BaseFood>,
var clickListener: OnBaseFoodClickListener
) : RecyclerView.Adapter<BaseFoodAdapter.BaseFoodViewHolder>() {
fun updateBaseFoods(newBaseFoods: List<BaseFood>) {
baseFoods.clear()
baseFoods.addAll(newBaseFoods)
notifyDataSetChanged()
}