Repository files navigation

SimpleNotes

⚠️ WORK IN PROGRESS: This project is still under active development. Features may be incomplete or subject to change.

A clean, minimalist note-taking application for Android that demonstrates modern Android development practices.

Project Overview

SimpleNotes is a straightforward note-taking app that allows users to create, view, delete, and reorder notes. The project serves as a practical implementation of MVVM architecture with Dependency Injection using Hilt, Room database, Kotlin Coroutines, and other modern Android development components.

Features

Implemented Features

  • Create new notes with title and content
  • View list of all notes
  • Delete notes with swipe gestures
  • Reorder notes with drag and drop
  • Persistent storage with Room database

Technology Stack

  • Language: Kotlin
  • Architecture: MVVM (Model-View-ViewModel)
  • Dependency Injection: Hilt
  • Database: Room
  • Asynchronous Programming: Kotlin Coroutines
  • UI Components: RecyclerView, ConstraintLayout, Material Components
  • Android Jetpack: ViewModel, LiveData, ViewBinding

Architecture

SimpleNotes follows the MVVM (Model-View-ViewModel) architecture pattern with a clean separation of concerns:

Model Layer

  • Entity: Defines the data structure for notes
  • DAO: Provides methods to interact with the database
  • Database: Configures the Room database
  • Repository: Acts as a mediator between data sources and ViewModels

View Layer

  • Activities: Display UI and handle user interactions
  • Adapters: Connect data to RecyclerViews

ViewModel Layer

  • ViewModels: Hold UI-related data and survive configuration changes
  • LiveData: Observe data changes and update the UI accordingly

Dependency Injection Layer

  • Hilt Modules: Provide instances of dependencies
  • Component Annotations: Define scopes and dependencies

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/cctncr/SimpleNotes.git
    
  2. Open the project in Android Studio (Hedgehog or newer recommended)

  3. Sync the project with Gradle files

  4. Run the app on an emulator or physical device

Project Structure

app/
├── src/
│ ├── main/
│ │ ├── java/com/example/simplenotes/
│ │ │ ├── data/
│ │ │ │ ├── local/
│ │ │ │ │ ├── dao/ # Data Access Objects
│ │ │ │ │ ├── database/ # Room Database
│ │ │ │ │ └── entity/ # Data Models
│ │ │ │ └── repository/ # Data Repositories
│ │ │ ├── di/ # Dependency Injection
│ │ │ ├── ui/ # UI Components
│ │ │ │ ├── addnote/ # Add Note Screen
│ │ │ │ └── main/ # Main Screen
│ │ │ ├── viewmodel/ # ViewModels
│ │ │ └── SimpleNotesApplication.kt
│ │ └── res/ # Resources
│ ├── androidTest/ # Instrumentation Tests
│ └── test/ # Unit Tests
└── build.gradle.kts # App level Gradle

Screenshots

Screenshots will be added when the UI is finalized.

Development Roadmap

  • ✅ Initial project setup
  • ✅ Implement MVVM architecture
  • ✅ Add Room database integration
  • ✅ Implement note creation and listing
  • ✅ Add swipe to delete functionality
  • ✅ Add drag and drop reordering
  • ✅ Implement Hilt for dependency injection
  • ✅ Transition to a single activity with fragments approach
  • ✅ Add note editing functionality
  • ⬜ Implement search feature
  • ⬜ Add unit and UI tests
  • ⬜ Implement dark theme support
  • ⬜ Add data backup feature

Contributing

As this project is still in development, contributions are welcome. Please feel free to submit a pull request.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

SimpleNotes

⚠️ WORK IN PROGRESS: This project is still under active development. Features may be incomplete or subject to change.

A clean, minimalist note-taking application for Android that demonstrates modern Android development practices.

Project Overview

SimpleNotes is a straightforward note-taking app that allows users to create, view, delete, and reorder notes. The project serves as a practical implementation of MVVM architecture with Dependency Injection using Hilt, Room database, Kotlin Coroutines, and other modern Android development components.

Features

Implemented Features

  • Create new notes with title and content
  • View list of all notes
  • Delete notes with swipe gestures
  • Reorder notes with drag and drop
  • Persistent storage with Room database

Technology Stack

  • Language: Kotlin
  • Architecture: MVVM (Model-View-ViewModel)
  • Dependency Injection: Hilt
  • Database: Room
  • Asynchronous Programming: Kotlin Coroutines
  • UI Components: RecyclerView, ConstraintLayout, Material Components
  • Android Jetpack: ViewModel, LiveData, ViewBinding

Architecture

SimpleNotes follows the MVVM (Model-View-ViewModel) architecture pattern with a clean separation of concerns:

Model Layer

  • Entity: Defines the data structure for notes
  • DAO: Provides methods to interact with the database
  • Database: Configures the Room database
  • Repository: Acts as a mediator between data sources and ViewModels

View Layer

  • Activities: Display UI and handle user interactions
  • Adapters: Connect data to RecyclerViews

ViewModel Layer

  • ViewModels: Hold UI-related data and survive configuration changes
  • LiveData: Observe data changes and update the UI accordingly

Dependency Injection Layer

  • Hilt Modules: Provide instances of dependencies
  • Component Annotations: Define scopes and dependencies

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/cctncr/SimpleNotes.git
    
  2. Open the project in Android Studio (Hedgehog or newer recommended)

  3. Sync the project with Gradle files

  4. Run the app on an emulator or physical device

Project Structure

app/
├── src/
│ ├── main/
│ │ ├── java/com/example/simplenotes/
│ │ │ ├── data/
│ │ │ │ ├── local/
│ │ │ │ │ ├── dao/ # Data Access Objects
│ │ │ │ │ ├── database/ # Room Database
│ │ │ │ │ └── entity/ # Data Models
│ │ │ │ └── repository/ # Data Repositories
│ │ │ ├── di/ # Dependency Injection
│ │ │ ├── ui/ # UI Components
│ │ │ │ ├── addnote/ # Add Note Screen
│ │ │ │ └── main/ # Main Screen
│ │ │ ├── viewmodel/ # ViewModels
│ │ │ └── SimpleNotesApplication.kt
│ │ └── res/ # Resources
│ ├── androidTest/ # Instrumentation Tests
│ └── test/ # Unit Tests
└── build.gradle.kts # App level Gradle

Screenshots

Screenshots will be added when the UI is finalized.

Development Roadmap

  • ✅ Initial project setup
  • ✅ Implement MVVM architecture
  • ✅ Add Room database integration
  • ✅ Implement note creation and listing
  • ✅ Add swipe to delete functionality
  • ✅ Add drag and drop reordering
  • ✅ Implement Hilt for dependency injection
  • ✅ Transition to a single activity with fragments approach
  • ✅ Add note editing functionality
  • ⬜ Implement search feature
  • ⬜ Add unit and UI tests
  • ⬜ Implement dark theme support
  • ⬜ Add data backup feature

Contributing

As this project is still in development, contributions are welcome. Please feel free to submit a pull request.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SimpleNotes

⚠️ WORK IN PROGRESS: This project is still under active development. Features may be incomplete or subject to change.

A clean, minimalist note-taking application for Android that demonstrates modern Android development practices.

Project Overview

SimpleNotes is a straightforward note-taking app that allows users to create, view, delete, and reorder notes. The project serves as a practical implementation of MVVM architecture with Dependency Injection using Hilt, Room database, Kotlin Coroutines, and other modern Android development components.

Features

Implemented Features

  • Create new notes with title and content
  • View list of all notes
  • Delete notes with swipe gestures
  • Reorder notes with drag and drop
  • Persistent storage with Room database

Technology Stack

  • Language: Kotlin
  • Architecture: MVVM (Model-View-ViewModel)
  • Dependency Injection: Hilt
  • Database: Room
  • Asynchronous Programming: Kotlin Coroutines
  • UI Components: RecyclerView, ConstraintLayout, Material Components
  • Android Jetpack: ViewModel, LiveData, ViewBinding

Architecture

SimpleNotes follows the MVVM (Model-View-ViewModel) architecture pattern with a clean separation of concerns:

Model Layer

  • Entity: Defines the data structure for notes
  • DAO: Provides methods to interact with the database
  • Database: Configures the Room database
  • Repository: Acts as a mediator between data sources and ViewModels

View Layer

  • Activities: Display UI and handle user interactions
  • Adapters: Connect data to RecyclerViews

ViewModel Layer

  • ViewModels: Hold UI-related data and survive configuration changes
  • LiveData: Observe data changes and update the UI accordingly

Dependency Injection Layer

  • Hilt Modules: Provide instances of dependencies
  • Component Annotations: Define scopes and dependencies

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/cctncr/SimpleNotes.git
    
  2. Open the project in Android Studio (Hedgehog or newer recommended)

  3. Sync the project with Gradle files

  4. Run the app on an emulator or physical device

Project Structure

app/
├── src/
│ ├── main/
│ │ ├── java/com/example/simplenotes/
│ │ │ ├── data/
│ │ │ │ ├── local/
│ │ │ │ │ ├── dao/ # Data Access Objects
│ │ │ │ │ ├── database/ # Room Database
│ │ │ │ │ └── entity/ # Data Models
│ │ │ │ └── repository/ # Data Repositories
│ │ │ ├── di/ # Dependency Injection
│ │ │ ├── ui/ # UI Components
│ │ │ │ ├── addnote/ # Add Note Screen
│ │ │ │ └── main/ # Main Screen
│ │ │ ├── viewmodel/ # ViewModels
│ │ │ └── SimpleNotesApplication.kt
│ │ └── res/ # Resources
│ ├── androidTest/ # Instrumentation Tests
│ └── test/ # Unit Tests
└── build.gradle.kts # App level Gradle

Screenshots

Screenshots will be added when the UI is finalized.

Development Roadmap

  • ✅ Initial project setup
  • ✅ Implement MVVM architecture
  • ✅ Add Room database integration
  • ✅ Implement note creation and listing
  • ✅ Add swipe to delete functionality
  • ✅ Add drag and drop reordering
  • ✅ Implement Hilt for dependency injection
  • ✅ Transition to a single activity with fragments approach
  • ✅ Add note editing functionality
  • ⬜ Implement search feature
  • ⬜ Add unit and UI tests
  • ⬜ Implement dark theme support
  • ⬜ Add data backup feature

Contributing

As this project is still in development, contributions are welcome. Please feel free to submit a pull request.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SimpleNotes

⚠️ WORK IN PROGRESS: This project is still under active development. Features may be incomplete or subject to change.

A clean, minimalist note-taking application for Android that demonstrates modern Android development practices.

Project Overview

SimpleNotes is a straightforward note-taking app that allows users to create, view, delete, and reorder notes. The project serves as a practical implementation of MVVM architecture with Dependency Injection using Hilt, Room database, Kotlin Coroutines, and other modern Android development components.

Features

Implemented Features

  • Create new notes with title and content
  • View list of all notes
  • Delete notes with swipe gestures
  • Reorder notes with drag and drop
  • Persistent storage with Room database

Technology Stack

  • Language: Kotlin
  • Architecture: MVVM (Model-View-ViewModel)
  • Dependency Injection: Hilt
  • Database: Room
  • Asynchronous Programming: Kotlin Coroutines
  • UI Components: RecyclerView, ConstraintLayout, Material Components
  • Android Jetpack: ViewModel, LiveData, ViewBinding

Architecture

SimpleNotes follows the MVVM (Model-View-ViewModel) architecture pattern with a clean separation of concerns:

Model Layer

  • Entity: Defines the data structure for notes
  • DAO: Provides methods to interact with the database
  • Database: Configures the Room database
  • Repository: Acts as a mediator between data sources and ViewModels

View Layer

  • Activities: Display UI and handle user interactions
  • Adapters: Connect data to RecyclerViews

ViewModel Layer

  • ViewModels: Hold UI-related data and survive configuration changes
  • LiveData: Observe data changes and update the UI accordingly

Dependency Injection Layer

  • Hilt Modules: Provide instances of dependencies
  • Component Annotations: Define scopes and dependencies

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/cctncr/SimpleNotes.git
    
  2. Open the project in Android Studio (Hedgehog or newer recommended)

  3. Sync the project with Gradle files

  4. Run the app on an emulator or physical device

Project Structure

app/
├── src/
│ ├── main/
│ │ ├── java/com/example/simplenotes/
│ │ │ ├── data/
│ │ │ │ ├── local/
│ │ │ │ │ ├── dao/ # Data Access Objects
│ │ │ │ │ ├── database/ # Room Database
│ │ │ │ │ └── entity/ # Data Models
│ │ │ │ └── repository/ # Data Repositories
│ │ │ ├── di/ # Dependency Injection
│ │ │ ├── ui/ # UI Components
│ │ │ │ ├── addnote/ # Add Note Screen
│ │ │ │ └── main/ # Main Screen
│ │ │ ├── viewmodel/ # ViewModels
│ │ │ └── SimpleNotesApplication.kt
│ │ └── res/ # Resources
│ ├── androidTest/ # Instrumentation Tests
│ └── test/ # Unit Tests
└── build.gradle.kts # App level Gradle

Screenshots

Screenshots will be added when the UI is finalized.

Development Roadmap

  • ✅ Initial project setup
  • ✅ Implement MVVM architecture
  • ✅ Add Room database integration
  • ✅ Implement note creation and listing
  • ✅ Add swipe to delete functionality
  • ✅ Add drag and drop reordering
  • ✅ Implement Hilt for dependency injection
  • ✅ Transition to a single activity with fragments approach
  • ✅ Add note editing functionality
  • ⬜ Implement search feature
  • ⬜ Add unit and UI tests
  • ⬜ Implement dark theme support
  • ⬜ Add data backup feature

Contributing

As this project is still in development, contributions are welcome. Please feel free to submit a pull request.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

SimpleNotes

⚠️ WORK IN PROGRESS: This project is still under active development. Features may be incomplete or subject to change.

A clean, minimalist note-taking application for Android that demonstrates modern Android development practices.

Project Overview

SimpleNotes is a straightforward note-taking app that allows users to create, view, delete, and reorder notes. The project serves as a practical implementation of MVVM architecture with Dependency Injection using Hilt, Room database, Kotlin Coroutines, and other modern Android development components.

Features

Implemented Features

  • Create new notes with title and content
  • View list of all notes
  • Delete notes with swipe gestures
  • Reorder notes with drag and drop
  • Persistent storage with Room database

Technology Stack

  • Language: Kotlin
  • Architecture: MVVM (Model-View-ViewModel)
  • Dependency Injection: Hilt
  • Database: Room
  • Asynchronous Programming: Kotlin Coroutines
  • UI Components: RecyclerView, ConstraintLayout, Material Components
  • Android Jetpack: ViewModel, LiveData, ViewBinding

Architecture

SimpleNotes follows the MVVM (Model-View-ViewModel) architecture pattern with a clean separation of concerns:

Model Layer

  • Entity: Defines the data structure for notes
  • DAO: Provides methods to interact with the database
  • Database: Configures the Room database
  • Repository: Acts as a mediator between data sources and ViewModels

View Layer

  • Activities: Display UI and handle user interactions
  • Adapters: Connect data to RecyclerViews

ViewModel Layer

  • ViewModels: Hold UI-related data and survive configuration changes
  • LiveData: Observe data changes and update the UI accordingly

Dependency Injection Layer

  • Hilt Modules: Provide instances of dependencies
  • Component Annotations: Define scopes and dependencies

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/cctncr/SimpleNotes.git
    
  2. Open the project in Android Studio (Hedgehog or newer recommended)

  3. Sync the project with Gradle files

  4. Run the app on an emulator or physical device

Project Structure

app/
├── src/
│ ├── main/
│ │ ├── java/com/example/simplenotes/
│ │ │ ├── data/
│ │ │ │ ├── local/
│ │ │ │ │ ├── dao/ # Data Access Objects
│ │ │ │ │ ├── database/ # Room Database
│ │ │ │ │ └── entity/ # Data Models
│ │ │ │ └── repository/ # Data Repositories
│ │ │ ├── di/ # Dependency Injection
│ │ │ ├── ui/ # UI Components
│ │ │ │ ├── addnote/ # Add Note Screen
│ │ │ │ └── main/ # Main Screen
│ │ │ ├── viewmodel/ # ViewModels
│ │ │ └── SimpleNotesApplication.kt
│ │ └── res/ # Resources
│ ├── androidTest/ # Instrumentation Tests
│ └── test/ # Unit Tests
└── build.gradle.kts # App level Gradle

Screenshots

Screenshots will be added when the UI is finalized.

Development Roadmap

  • ✅ Initial project setup
  • ✅ Implement MVVM architecture
  • ✅ Add Room database integration
  • ✅ Implement note creation and listing
  • ✅ Add swipe to delete functionality
  • ✅ Add drag and drop reordering
  • ✅ Implement Hilt for dependency injection
  • ✅ Transition to a single activity with fragments approach
  • ✅ Add note editing functionality
  • ⬜ Implement search feature
  • ⬜ Add unit and UI tests
  • ⬜ Implement dark theme support
  • ⬜ Add data backup feature

Contributing

As this project is still in development, contributions are welcome. Please feel free to submit a pull request.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SimpleNotes

⚠️ WORK IN PROGRESS: This project is still under active development. Features may be incomplete or subject to change.

A clean, minimalist note-taking application for Android that demonstrates modern Android development practices.

Project Overview

SimpleNotes is a straightforward note-taking app that allows users to create, view, delete, and reorder notes. The project serves as a practical implementation of MVVM architecture with Dependency Injection using Hilt, Room database, Kotlin Coroutines, and other modern Android development components.

Features

Implemented Features

  • Create new notes with title and content
  • View list of all notes
  • Delete notes with swipe gestures
  • Reorder notes with drag and drop
  • Persistent storage with Room database

Technology Stack

  • Language: Kotlin
  • Architecture: MVVM (Model-View-ViewModel)
  • Dependency Injection: Hilt
  • Database: Room
  • Asynchronous Programming: Kotlin Coroutines
  • UI Components: RecyclerView, ConstraintLayout, Material Components
  • Android Jetpack: ViewModel, LiveData, ViewBinding

Architecture

SimpleNotes follows the MVVM (Model-View-ViewModel) architecture pattern with a clean separation of concerns:

Model Layer

  • Entity: Defines the data structure for notes
  • DAO: Provides methods to interact with the database
  • Database: Configures the Room database
  • Repository: Acts as a mediator between data sources and ViewModels

View Layer

  • Activities: Display UI and handle user interactions
  • Adapters: Connect data to RecyclerViews

ViewModel Layer

  • ViewModels: Hold UI-related data and survive configuration changes
  • LiveData: Observe data changes and update the UI accordingly

Dependency Injection Layer

  • Hilt Modules: Provide instances of dependencies
  • Component Annotations: Define scopes and dependencies

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/cctncr/SimpleNotes.git
    
  2. Open the project in Android Studio (Hedgehog or newer recommended)

  3. Sync the project with Gradle files

  4. Run the app on an emulator or physical device

Project Structure

app/
├── src/
│ ├── main/
│ │ ├── java/com/example/simplenotes/
│ │ │ ├── data/
│ │ │ │ ├── local/
│ │ │ │ │ ├── dao/ # Data Access Objects
│ │ │ │ │ ├── database/ # Room Database
│ │ │ │ │ └── entity/ # Data Models
│ │ │ │ └── repository/ # Data Repositories
│ │ │ ├── di/ # Dependency Injection
│ │ │ ├── ui/ # UI Components
│ │ │ │ ├── addnote/ # Add Note Screen
│ │ │ │ └── main/ # Main Screen
│ │ │ ├── viewmodel/ # ViewModels
│ │ │ └── SimpleNotesApplication.kt
│ │ └── res/ # Resources
│ ├── androidTest/ # Instrumentation Tests
│ └── test/ # Unit Tests
└── build.gradle.kts # App level Gradle

Screenshots

Screenshots will be added when the UI is finalized.

Development Roadmap

  • ✅ Initial project setup
  • ✅ Implement MVVM architecture
  • ✅ Add Room database integration
  • ✅ Implement note creation and listing
  • ✅ Add swipe to delete functionality
  • ✅ Add drag and drop reordering
  • ✅ Implement Hilt for dependency injection
  • ✅ Transition to a single activity with fragments approach
  • ✅ Add note editing functionality
  • ⬜ Implement search feature
  • ⬜ Add unit and UI tests
  • ⬜ Implement dark theme support
  • ⬜ Add data backup feature

Contributing

As this project is still in development, contributions are welcome. Please feel free to submit a pull request.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SimpleNotes

⚠️ WORK IN PROGRESS: This project is still under active development. Features may be incomplete or subject to change.

A clean, minimalist note-taking application for Android that demonstrates modern Android development practices.

Project Overview

SimpleNotes is a straightforward note-taking app that allows users to create, view, delete, and reorder notes. The project serves as a practical implementation of MVVM architecture with Dependency Injection using Hilt, Room database, Kotlin Coroutines, and other modern Android development components.

Features

Implemented Features

  • Create new notes with title and content
  • View list of all notes
  • Delete notes with swipe gestures
  • Reorder notes with drag and drop
  • Persistent storage with Room database

Technology Stack

  • Language: Kotlin
  • Architecture: MVVM (Model-View-ViewModel)
  • Dependency Injection: Hilt
  • Database: Room
  • Asynchronous Programming: Kotlin Coroutines
  • UI Components: RecyclerView, ConstraintLayout, Material Components
  • Android Jetpack: ViewModel, LiveData, ViewBinding

Architecture

SimpleNotes follows the MVVM (Model-View-ViewModel) architecture pattern with a clean separation of concerns:

Model Layer

  • Entity: Defines the data structure for notes
  • DAO: Provides methods to interact with the database
  • Database: Configures the Room database
  • Repository: Acts as a mediator between data sources and ViewModels

View Layer

  • Activities: Display UI and handle user interactions
  • Adapters: Connect data to RecyclerViews

ViewModel Layer

  • ViewModels: Hold UI-related data and survive configuration changes
  • LiveData: Observe data changes and update the UI accordingly

Dependency Injection Layer

  • Hilt Modules: Provide instances of dependencies
  • Component Annotations: Define scopes and dependencies

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/cctncr/SimpleNotes.git
    
  2. Open the project in Android Studio (Hedgehog or newer recommended)

  3. Sync the project with Gradle files

  4. Run the app on an emulator or physical device

Project Structure

app/
├── src/
│ ├── main/
│ │ ├── java/com/example/simplenotes/
│ │ │ ├── data/
│ │ │ │ ├── local/
│ │ │ │ │ ├── dao/ # Data Access Objects
│ │ │ │ │ ├── database/ # Room Database
│ │ │ │ │ └── entity/ # Data Models
│ │ │ │ └── repository/ # Data Repositories
│ │ │ ├── di/ # Dependency Injection
│ │ │ ├── ui/ # UI Components
│ │ │ │ ├── addnote/ # Add Note Screen
│ │ │ │ └── main/ # Main Screen
│ │ │ ├── viewmodel/ # ViewModels
│ │ │ └── SimpleNotesApplication.kt
│ │ └── res/ # Resources
│ ├── androidTest/ # Instrumentation Tests
│ └── test/ # Unit Tests
└── build.gradle.kts # App level Gradle

Screenshots

Screenshots will be added when the UI is finalized.

Development Roadmap

  • ✅ Initial project setup
  • ✅ Implement MVVM architecture
  • ✅ Add Room database integration
  • ✅ Implement note creation and listing
  • ✅ Add swipe to delete functionality
  • ✅ Add drag and drop reordering
  • ✅ Implement Hilt for dependency injection
  • ✅ Transition to a single activity with fragments approach
  • ✅ Add note editing functionality
  • ⬜ Implement search feature
  • ⬜ Add unit and UI tests
  • ⬜ Implement dark theme support
  • ⬜ Add data backup feature

Contributing

As this project is still in development, contributions are welcome. Please feel free to submit a pull request.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

SimpleNotes

⚠️ WORK IN PROGRESS: This project is still under active development. Features may be incomplete or subject to change.

A clean, minimalist note-taking application for Android that demonstrates modern Android development practices.

Project Overview

SimpleNotes is a straightforward note-taking app that allows users to create, view, delete, and reorder notes. The project serves as a practical implementation of MVVM architecture with Dependency Injection using Hilt, Room database, Kotlin Coroutines, and other modern Android development components.

Features

Implemented Features

  • Create new notes with title and content
  • View list of all notes
  • Delete notes with swipe gestures
  • Reorder notes with drag and drop
  • Persistent storage with Room database

Technology Stack

  • Language: Kotlin
  • Architecture: MVVM (Model-View-ViewModel)
  • Dependency Injection: Hilt
  • Database: Room
  • Asynchronous Programming: Kotlin Coroutines
  • UI Components: RecyclerView, ConstraintLayout, Material Components
  • Android Jetpack: ViewModel, LiveData, ViewBinding

Architecture

SimpleNotes follows the MVVM (Model-View-ViewModel) architecture pattern with a clean separation of concerns:

Model Layer

  • Entity: Defines the data structure for notes
  • DAO: Provides methods to interact with the database
  • Database: Configures the Room database
  • Repository: Acts as a mediator between data sources and ViewModels

View Layer

  • Activities: Display UI and handle user interactions
  • Adapters: Connect data to RecyclerViews

ViewModel Layer

  • ViewModels: Hold UI-related data and survive configuration changes
  • LiveData: Observe data changes and update the UI accordingly

Dependency Injection Layer

  • Hilt Modules: Provide instances of dependencies
  • Component Annotations: Define scopes and dependencies

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/cctncr/SimpleNotes.git
    
  2. Open the project in Android Studio (Hedgehog or newer recommended)

  3. Sync the project with Gradle files

  4. Run the app on an emulator or physical device

Project Structure

app/
├── src/
│ ├── main/
│ │ ├── java/com/example/simplenotes/
│ │ │ ├── data/
│ │ │ │ ├── local/
│ │ │ │ │ ├── dao/ # Data Access Objects
│ │ │ │ │ ├── database/ # Room Database
│ │ │ │ │ └── entity/ # Data Models
│ │ │ │ └── repository/ # Data Repositories
│ │ │ ├── di/ # Dependency Injection
│ │ │ ├── ui/ # UI Components
│ │ │ │ ├── addnote/ # Add Note Screen
│ │ │ │ └── main/ # Main Screen
│ │ │ ├── viewmodel/ # ViewModels
│ │ │ └── SimpleNotesApplication.kt
│ │ └── res/ # Resources
│ ├── androidTest/ # Instrumentation Tests
│ └── test/ # Unit Tests
└── build.gradle.kts # App level Gradle

Screenshots

Screenshots will be added when the UI is finalized.

Development Roadmap

  • ✅ Initial project setup
  • ✅ Implement MVVM architecture
  • ✅ Add Room database integration
  • ✅ Implement note creation and listing
  • ✅ Add swipe to delete functionality
  • ✅ Add drag and drop reordering
  • ✅ Implement Hilt for dependency injection
  • ✅ Transition to a single activity with fragments approach
  • ✅ Add note editing functionality
  • ⬜ Implement search feature
  • ⬜ Add unit and UI tests
  • ⬜ Implement dark theme support
  • ⬜ Add data backup feature

Contributing

As this project is still in development, contributions are welcome. Please feel free to submit a pull request.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages