Skip to content

Commit 70c8a77

Browse files
author
achint2093
committed
add note , delete note
1 parent 6f20bb3 commit 70c8a77

File tree

18 files changed

+550
-34
lines changed

18 files changed

+550
-34
lines changed

.idea/gradle.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 41 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
xmlns:tools="http://schemas.android.com/tools">
44

55
<application
6+
android:name=".MyApplication"
67
android:allowBackup="true"
78
android:dataExtractionRules="@xml/data_extraction_rules"
89
android:fullBackupContent="@xml/backup_rules"

app/src/main/java/com/techuntried/notes/MainActivity.kt

Lines changed: 66 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,85 @@ package com.techuntried.notes
33
import android.os.Bundle
44
import androidx.activity.ComponentActivity
55
import androidx.activity.compose.setContent
6-
import androidx.compose.foundation.layout.fillMaxSize
7-
import androidx.compose.material3.MaterialTheme
8-
import androidx.compose.material3.Surface
9-
import androidx.compose.material3.Text
6+
import androidx.compose.material3.ExperimentalMaterial3Api
107
import androidx.compose.runtime.Composable
11-
import androidx.compose.ui.Modifier
12-
import androidx.compose.ui.tooling.preview.Preview
8+
import androidx.navigation.NavHostController
9+
import androidx.navigation.NavType
10+
import androidx.navigation.compose.NavHost
11+
import androidx.navigation.compose.composable
12+
import androidx.navigation.compose.rememberNavController
13+
import androidx.navigation.navArgument
14+
import com.techuntried.notes.navigation.Screens
15+
import com.techuntried.notes.screens.home.HomeScreen
16+
import com.techuntried.notes.screens.note.NoteScreen
1317
import com.techuntried.notes.ui.theme.NotesTheme
18+
import dagger.hilt.android.AndroidEntryPoint
1419

20+
@AndroidEntryPoint
1521
class MainActivity : ComponentActivity() {
22+
@OptIn(ExperimentalMaterial3Api::class)
1623
override fun onCreate(savedInstanceState: Bundle?) {
1724
super.onCreate(savedInstanceState)
1825
setContent {
1926
NotesTheme {
20-
// A surface container using the 'background' color from the theme
21-
Surface(
22-
modifier = Modifier.fillMaxSize(),
23-
color = MaterialTheme.colorScheme.background
24-
) {
25-
Greeting("Android")
26-
}
27+
val navController = rememberNavController()
28+
App(navController = navController)
2729
}
2830
}
2931
}
3032
}
3133

32-
@Composable
33-
fun Greeting(name: String, modifier: Modifier = Modifier) {
34-
Text(
35-
text = "Hello $name!",
36-
modifier = modifier
37-
)
38-
}
34+
//@OptIn(ExperimentalMaterial3Api::class)
35+
//@Composable
36+
//fun Toolbar(navController: NavHostController) {
37+
// val destination: NavDestination? =
38+
// navController.currentBackStackEntryAsState().value?.destination
39+
// val route = destination?.route
40+
// val title = when (route) {
41+
// Screens.HomeScreen.route -> "Home"
42+
// Screens.NoteScreen.route -> "Add note"
43+
// else -> ""
44+
// }
45+
// val context = LocalContext.current
46+
// TopAppBar(
47+
// title = { Text(text = title) },
48+
// actions = {
49+
// if (route == Screens.NoteScreen.route) {
50+
// IconButton(
51+
// onClick = {})
52+
// {
53+
// Icon(Icons.Default.Delete, "")
54+
// }
55+
// }
56+
//
57+
// }
58+
// )
59+
//}
3960

40-
@Preview(showBackground = true)
4161
@Composable
42-
fun GreetingPreview() {
43-
NotesTheme {
44-
Greeting("Android")
62+
fun App(navController: NavHostController) {
63+
NavHost(navController = navController, startDestination = Screens.HomeScreen.route) {
64+
composable(Screens.HomeScreen.route) {
65+
HomeScreen(
66+
onAddClick =
67+
{
68+
navController.navigate(Screens.NoteScreen.passId(-1L))
69+
},
70+
onNoteClick =
71+
{
72+
navController.navigate(Screens.NoteScreen.passId(it))
73+
}
74+
)
75+
}
76+
77+
composable(Screens.NoteScreen.route, arguments = listOf(
78+
navArgument("id") {
79+
type = NavType.LongType
80+
defaultValue = -1L
81+
}
82+
)) {
83+
NoteScreen { navController.popBackStack() }
84+
}
4585
}
46-
}
86+
}
87+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.techuntried.notes
2+
3+
4+
import android.app.Application
5+
import dagger.hilt.android.HiltAndroidApp
6+
7+
@HiltAndroidApp
8+
class MyApplication : Application() {
9+
override fun onCreate() {
10+
super.onCreate()
11+
}
12+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.techuntried.notes.database
2+
3+
import androidx.room.Delete
4+
import com.techuntried.notes.model.NoteEntity
5+
import androidx.room.Dao
6+
import androidx.room.Insert
7+
import androidx.room.Query
8+
import kotlinx.coroutines.flow.Flow
9+
10+
11+
@Dao
12+
interface NoteDao {
13+
@Insert
14+
suspend fun insertNote(noteEntity: NoteEntity): Long
15+
16+
@Query("DELETE FROM notes WHERE id =:id")
17+
suspend fun deleteNote(id: Long)
18+
19+
@Query("SELECT * FROM notes")
20+
fun getNotes(): Flow<List<NoteEntity>>
21+
22+
@Query("SELECT * FROM notes where id=:id")
23+
suspend fun getNoteById(id: Long): NoteEntity
24+
25+
}
26+
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.techuntried.notes.database
2+
3+
import androidx.room.Database
4+
import androidx.room.RoomDatabase
5+
import com.techuntried.notes.model.NoteEntity
6+
7+
@Database(entities = [NoteEntity::class], version = 1, exportSchema = false)
8+
abstract class NotesDatabase : RoomDatabase() {
9+
abstract fun noteDao(): NoteDao
10+
}
11+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.techuntried.notes.di
2+
3+
import android.content.Context
4+
import androidx.room.Room
5+
import com.techuntried.notes.database.NotesDatabase
6+
import dagger.Module
7+
import dagger.Provides
8+
import dagger.hilt.InstallIn
9+
import dagger.hilt.android.qualifiers.ApplicationContext
10+
import dagger.hilt.components.SingletonComponent
11+
import javax.inject.Singleton
12+
13+
@InstallIn(SingletonComponent::class)
14+
@Module
15+
class DatabaseModule() {
16+
17+
@Singleton
18+
@Provides
19+
fun provideMyAppDb(
20+
@ApplicationContext context: Context
21+
): NotesDatabase {
22+
return Room.databaseBuilder(context, NotesDatabase::class.java, "myAppDb")
23+
.build()
24+
}
25+
26+
@Provides
27+
fun provideNoteDao(db: NotesDatabase) = db.noteDao()
28+
}

app/src/main/java/com/techuntried/notes/model/NoteEntity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ import androidx.room.PrimaryKey
88
data class NoteEntity(
99
@PrimaryKey(autoGenerate = true)
1010
val id:Long,
11-
@ColumnInfo("")
12-
val folderName:String
11+
@ColumnInfo("title")
12+
val title:String
1313
)

0 commit comments

Comments
 (0)