-
Notifications
You must be signed in to change notification settings - Fork 43
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
First commit - Implement RoomDb with LiveData
- Loading branch information
anitaa
committed
May 4, 2018
0 parents
commit be95c6c
Showing
71 changed files
with
2,414 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
temp/* | ||
|
||
# built application files | ||
*.apk | ||
*.ap_ | ||
|
||
# files for the dex VM | ||
*.dex | ||
|
||
# Java class files | ||
*.class | ||
|
||
# generated files | ||
bin/ | ||
gen/ | ||
|
||
# Local configuration file (sdk path, etc) | ||
local.properties | ||
*.keystore | ||
|
||
# Eclipse project files | ||
.classpath | ||
.project | ||
|
||
# Android Studio | ||
.idea/ | ||
|
||
# Ignore gradle files | ||
.gradle/ | ||
build/ | ||
|
||
.gradle | ||
/*/local.properties | ||
/*/out | ||
/*/*/build | ||
/*/*/production | ||
/*/*/*.iml | ||
/*/*.iml | ||
*.iml | ||
*.iws | ||
*.ipr | ||
*~ | ||
*.swp |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
temp/* | ||
|
||
# built application files | ||
*.apk | ||
*.ap_ | ||
|
||
# files for the dex VM | ||
*.dex | ||
|
||
# Java class files | ||
*.class | ||
|
||
# generated files | ||
bin/ | ||
gen/ | ||
|
||
# Local configuration file (sdk path, etc) | ||
local.properties | ||
*.keystore | ||
|
||
# Eclipse project files | ||
.classpath | ||
.project | ||
|
||
# Android Studio | ||
.idea/ | ||
|
||
# Ignore gradle files | ||
.gradle/ | ||
build/ | ||
|
||
.gradle | ||
/*/local.properties | ||
/*/out | ||
/*/*/build | ||
/*/*/production | ||
/*/*/*.iml | ||
/*/*.iml | ||
*.iml | ||
*.iws | ||
*.ipr | ||
*~ | ||
*.swp |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
apply plugin: 'com.android.application' | ||
|
||
android { | ||
compileSdkVersion 27 | ||
defaultConfig { | ||
applicationId "com.an.room" | ||
minSdkVersion 14 | ||
targetSdkVersion 27 | ||
versionCode 1 | ||
versionName "1.0" | ||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" | ||
} | ||
buildTypes { | ||
release { | ||
minifyEnabled false | ||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | ||
} | ||
} | ||
} | ||
|
||
dependencies { | ||
implementation fileTree(dir: 'libs', include: ['*.jar']) | ||
implementation 'com.android.support:appcompat-v7:27.1.1' | ||
implementation 'com.android.support:recyclerview-v7:27.1.1' | ||
implementation 'com.android.support:design:27.1.1' | ||
implementation 'com.android.support:cardview-v7:27.1.1' | ||
testImplementation 'junit:junit:4.12' | ||
androidTestImplementation 'com.android.support.test:runner:1.0.2' | ||
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' | ||
|
||
implementation "android.arch.persistence.room:runtime:1.0.0" | ||
annotationProcessor "android.arch.persistence.room:compiler:1.0.0" | ||
|
||
implementation "android.arch.lifecycle:livedata:1.1.1" | ||
annotationProcessor "android.arch.lifecycle:compiler:1.1.1" | ||
|
||
implementation 'com.an.customfontview:customfont:0.1.0' | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Add project specific ProGuard rules here. | ||
# You can control the set of applied configuration files using the | ||
# proguardFiles setting in build.gradle. | ||
# | ||
# For more details, see | ||
# http://developer.android.com/guide/developing/tools/proguard.html | ||
|
||
# If your project uses WebView with JS, uncomment the following | ||
# and specify the fully qualified class name to the JavaScript interface | ||
# class: | ||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { | ||
# public *; | ||
#} | ||
|
||
# Uncomment this to preserve the line number information for | ||
# debugging stack traces. | ||
#-keepattributes SourceFile,LineNumberTable | ||
|
||
# If you keep the line number information, uncomment this to | ||
# hide the original source file name. | ||
#-renamesourcefileattribute SourceFile |
112 changes: 112 additions & 0 deletions
112
app/src/androidTest/java/com/an/room/ExampleInstrumentedTest.java
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
package com.an.room; | ||
|
||
import android.content.Context; | ||
import android.support.test.InstrumentationRegistry; | ||
import android.support.test.runner.AndroidJUnit4; | ||
|
||
import com.an.room.repository.NoteRepository; | ||
import com.an.room.util.AppUtils; | ||
|
||
import org.junit.Test; | ||
import org.junit.runner.RunWith; | ||
|
||
import static org.junit.Assert.*; | ||
|
||
|
||
@RunWith(AndroidJUnit4.class) | ||
public class ExampleInstrumentedTest { | ||
@Test | ||
public void useAppContext() throws Exception { | ||
Context appContext = InstrumentationRegistry.getTargetContext(); | ||
assertEquals("com.an.room", appContext.getPackageName()); | ||
|
||
String password = "Password@1"; | ||
System.out.println(AppUtils.generateHash(password)); | ||
} | ||
|
||
|
||
private Context appContext; | ||
private NoteRepository noteRepository; | ||
|
||
@Test | ||
public void insertTaskTest() throws InterruptedException { | ||
appContext = InstrumentationRegistry.getTargetContext(); | ||
noteRepository = new NoteRepository(appContext); | ||
|
||
String title = "This is the title of the third task"; | ||
String description = "This is the description of the third task"; | ||
noteRepository.insertTask(title, description); | ||
|
||
// Task task = taskRepository.getTask(3); | ||
// assertEquals("Task is inserted successfully", title, task.getTitle()); | ||
Thread.sleep(3500); | ||
} | ||
|
||
|
||
@Test | ||
public void updateTaskTest() throws InterruptedException { | ||
appContext = InstrumentationRegistry.getTargetContext(); | ||
noteRepository = new NoteRepository(appContext); | ||
|
||
|
||
// Task task = taskRepository.getTask(2); | ||
// task.setEncrypt(true); | ||
// task.setPassword(AppUtils.generateHash("Password@1")); | ||
// task.setTitle("This is an example of modify"); | ||
// task.setDescription("This is an example to modify the second task"); | ||
// | ||
// taskRepository.updateTask(task); | ||
// Thread.sleep(3500); | ||
} | ||
|
||
|
||
@Test | ||
public void deleteTaskTest() throws InterruptedException { | ||
appContext = InstrumentationRegistry.getTargetContext(); | ||
noteRepository = new NoteRepository(appContext); | ||
|
||
noteRepository.deleteTask(3); | ||
Thread.sleep(3500); | ||
} | ||
|
||
|
||
@Test | ||
public void getTaskFromIdTest() { | ||
appContext = InstrumentationRegistry.getTargetContext(); | ||
noteRepository = new NoteRepository(appContext); | ||
|
||
// Task task = taskRepository.getTask(2); | ||
// System.out.println("-----------------------"); | ||
// System.out.println(task.getId()); | ||
// System.out.println(task.getTitle()); | ||
// System.out.println(task.getDescription()); | ||
// System.out.println(task.getCreatedAt()); | ||
// System.out.println(task.getModifiedAt()); | ||
// System.out.println(task.getPassword()); | ||
// System.out.println(task.isEncrypt()); | ||
// System.out.println("-----------------------"); | ||
} | ||
|
||
|
||
@Test | ||
public void getAllTasksTest() { | ||
appContext = InstrumentationRegistry.getTargetContext(); | ||
noteRepository = new NoteRepository(appContext); | ||
|
||
// taskRepository.getTasks().observe(appContext, new Observer<List<Task>>() { | ||
// @Override | ||
// public void onChanged(@Nullable List<Task> tasks) { | ||
// for(Task task : tasks) { | ||
// System.out.println("-----------------------"); | ||
// System.out.println(task.getId()); | ||
// System.out.println(task.getTitle()); | ||
// System.out.println(task.getDescription()); | ||
// System.out.println(task.getCreatedAt()); | ||
// System.out.println(task.getModifiedAt()); | ||
// System.out.println(task.getPassword()); | ||
// System.out.println(task.isEncrypt()); | ||
// } | ||
// } | ||
// }); | ||
} | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
package="com.an.room"> | ||
|
||
<application | ||
android:name=".AppController" | ||
android:allowBackup="true" | ||
android:icon="@mipmap/ic_launcher" | ||
android:label="@string/app_name" | ||
android:roundIcon="@mipmap/ic_launcher_round" | ||
android:supportsRtl="true" | ||
android:theme="@style/AppTheme"> | ||
|
||
|
||
<activity | ||
android:name=".ui.activity.NotesListActivity" | ||
android:label="@string/app_name" | ||
android:screenOrientation="portrait" | ||
android:theme="@style/Theme.AppCompat.Light.NoActionBar"> | ||
<intent-filter> | ||
<action android:name="android.intent.action.MAIN" /> | ||
<category android:name="android.intent.category.LAUNCHER" /> | ||
</intent-filter> | ||
</activity> | ||
|
||
|
||
<activity | ||
android:name=".ui.activity.AddNoteActivity" | ||
android:theme="@style/Theme.AppCompat.Light.NoActionBar" | ||
android:screenOrientation="portrait" /> | ||
|
||
<activity | ||
android:name=".ui.activity.PwdActivity" | ||
android:theme="@style/Theme.AppCompat.Light.NoActionBar" | ||
android:screenOrientation="portrait" /> | ||
|
||
</application> | ||
</manifest> |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package com.an.room; | ||
|
||
public interface AppConstants { | ||
|
||
String INTENT_TITLE = "intent_title"; | ||
String INTENT_DESC = "intent_desc"; | ||
String INTENT_ENCRYPT = "intent_encrypt"; | ||
String INTENT_PWD = "intent_pwd"; | ||
String INTENT_TASK = "intent_task"; | ||
String INTENT_DELETE = "intent_delete"; | ||
|
||
int ACTIVITY_REQUEST_CODE = 200; | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package com.an.room; | ||
|
||
import android.app.Application; | ||
|
||
public class AppController extends Application { | ||
|
||
|
||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
package com.an.room.dao; | ||
|
||
|
||
import android.arch.lifecycle.LiveData; | ||
import android.arch.persistence.room.Dao; | ||
import android.arch.persistence.room.Delete; | ||
import android.arch.persistence.room.Insert; | ||
import android.arch.persistence.room.Query; | ||
import android.arch.persistence.room.Update; | ||
|
||
import com.an.room.model.Note; | ||
|
||
import java.util.List; | ||
|
||
@Dao | ||
public interface DaoAccess { | ||
|
||
@Insert | ||
Long insertTask(Note note); | ||
|
||
|
||
@Query("SELECT * FROM Note ORDER BY created_at desc") | ||
LiveData<List<Note>> fetchAllTasks(); | ||
|
||
|
||
@Query("SELECT * FROM Note WHERE id =:taskId") | ||
LiveData<Note> getTask(int taskId); | ||
|
||
|
||
@Update | ||
void updateTask(Note note); | ||
|
||
|
||
@Delete | ||
void deleteTask(Note note); | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package com.an.room.db; | ||
|
||
import android.arch.persistence.room.Database; | ||
import android.arch.persistence.room.RoomDatabase; | ||
|
||
import com.an.room.dao.DaoAccess; | ||
import com.an.room.model.Note; | ||
|
||
|
||
@Database(entities = {Note.class}, version = 1, exportSchema = false) | ||
public abstract class NoteDatabase extends RoomDatabase { | ||
|
||
public abstract DaoAccess daoAccess(); | ||
} |
Oops, something went wrong.