Skip to content
This repository has been archived by the owner on May 17, 2023. It is now read-only.

Commit

Permalink
Merge branch 'feature/throwback' into version/1.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Marc committed Jun 26, 2019
2 parents 8e561cc + 8aa4253 commit 6546956
Show file tree
Hide file tree
Showing 55 changed files with 1,433 additions and 193 deletions.
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Bug report
about: Create a report to help us improve
title: "[BUG]"
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Device (please complete the following information):**
- Device: [e.g. Samsung S10+]
- App Version (e.g. 1.4.0)
- Android Version [e.g. Pie]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[REQUEST] "
labels: enhancement
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ An app for Android designed to aid your Japanese learning through keeping a jour
- Search your entries based on date, content, location, tags or books
- Daily reminder to add an entry
- Ability to backup and restore your data
- Dark theme
- Dark theme and Light theme

## Screenshots
| Main Screen | Main Screen Dark | Add Entry |
Expand Down
14 changes: 9 additions & 5 deletions app/src/main/java/com/marcdonald/hibi/Hibi.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,20 @@ import com.marcdonald.hibi.internal.utils.FileUtils
import com.marcdonald.hibi.internal.utils.FileUtilsImpl
import com.marcdonald.hibi.internal.utils.ThemeUtils
import com.marcdonald.hibi.internal.utils.ThemeUtilsImpl
import com.marcdonald.hibi.mainscreens.booksfragment.bookentriesfragment.BookEntriesViewModelFactory
import com.marcdonald.hibi.mainscreens.booksfragment.mainbooksfragment.BooksFragmentViewModelFactory
import com.marcdonald.hibi.mainscreens.calendarfragment.CalendarTabViewModelFactory
import com.marcdonald.hibi.mainscreens.booksscreen.bookentriesfragment.BookEntriesViewModelFactory
import com.marcdonald.hibi.mainscreens.booksscreen.mainbooksfragment.BooksFragmentViewModelFactory
import com.marcdonald.hibi.mainscreens.calendarscreen.CalendarTabViewModelFactory
import com.marcdonald.hibi.mainscreens.entryscreens.addentryscreen.AddEntryViewModelFactory
import com.marcdonald.hibi.mainscreens.entryscreens.viewentryscreen.ViewEntryViewModelFactory
import com.marcdonald.hibi.mainscreens.mainentries.MainEntriesViewModelFactory
import com.marcdonald.hibi.mainscreens.searchentries.searchentriesscreen.SearchEntriesViewModelFactory
import com.marcdonald.hibi.mainscreens.settings.backupdialog.BackupDialogViewModelFactory
import com.marcdonald.hibi.mainscreens.settings.restoredialog.RestoreDialogViewModelFactory
import com.marcdonald.hibi.mainscreens.settings.updatedialog.UpdateDialogViewModelFactory
import com.marcdonald.hibi.mainscreens.tagsfragment.maintagsfragment.TagsFragmentViewModelFactory
import com.marcdonald.hibi.mainscreens.tagsfragment.taggedentriesfragment.TaggedEntriesViewModelFactory
import com.marcdonald.hibi.mainscreens.tagsscreen.maintagsfragment.TagsFragmentViewModelFactory
import com.marcdonald.hibi.mainscreens.tagsscreen.taggedentriesfragment.TaggedEntriesViewModelFactory
import com.marcdonald.hibi.mainscreens.throwbackscreen.mainthrowbackscreen.ThrowbackFragmentViewModelFactory
import com.marcdonald.hibi.mainscreens.throwbackscreen.throwbackentriesscreen.ThrowbackEntriesViewModelFactory
import com.marcdonald.hibi.search.searchmoreinfoscreen.SearchMoreInfoViewModelFactory
import com.marcdonald.hibi.search.searchresults.SearchViewModelFactory
import com.marcdonald.hibi.uicomponents.addbookdialog.AddBookViewModelFactory
Expand Down Expand Up @@ -98,6 +100,8 @@ class Hibi : Application(), KodeinAware {
bind() from provider { BackupDialogViewModelFactory(instance()) }
bind() from provider { RestoreDialogViewModelFactory(instance(), instance()) }
bind() from provider { UpdateDialogViewModelFactory(instance()) }
bind() from provider { ThrowbackFragmentViewModelFactory(instance(), instance(), instance()) }
bind() from provider { ThrowbackEntriesViewModelFactory(instance(), instance(), instance()) }
// </editor-fold>
}

Expand Down
18 changes: 15 additions & 3 deletions app/src/main/java/com/marcdonald/hibi/data/database/DAO.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ package com.marcdonald.hibi.data.database
import androidx.lifecycle.LiveData
import androidx.room.*
import com.marcdonald.hibi.data.entity.*
import com.marcdonald.hibi.mainscreens.booksfragment.mainbooksfragment.BookDisplayItem
import com.marcdonald.hibi.mainscreens.booksscreen.mainbooksfragment.BookDisplayItem
import com.marcdonald.hibi.mainscreens.mainentriesrecycler.BookEntryDisplayItem
import com.marcdonald.hibi.mainscreens.mainentriesrecycler.TagEntryDisplayItem
import com.marcdonald.hibi.mainscreens.tagsfragment.maintagsfragment.TagDisplayItem
import com.marcdonald.hibi.mainscreens.tagsscreen.maintagsfragment.TagDisplayItem

@Dao
interface DAO {
Expand Down Expand Up @@ -37,9 +37,12 @@ interface DAO {
@Query("SELECT id FROM Entry ORDER BY id DESC LIMIT 1")
fun getLastEntryId(): Int

@Query("SELECT * FROM Entry WHERE year = :year AND month = :month AND day = :day")
@Query("SELECT * FROM Entry WHERE year = :year AND month = :month AND day = :day ORDER BY year DESC, month DESC, day DESC, hour DESC, minute DESC, id DESC")
fun getEntriesOnDate(year: Int, month: Int, day: Int): List<Entry>

@Query("SELECT * FROM Entry WHERE year = :year AND month = :month AND day = :day ORDER BY year ASC, month ASC, day ASC, hour ASC, minute ASC, id ASC")
fun getEntriesOnDateAscending(year: Int, month: Int, day: Int): List<Entry>

@Query("UPDATE Entry SET location = :location WHERE id = :entryId")
fun setLocation(entryId: Int, location: String)

Expand All @@ -48,6 +51,15 @@ interface DAO {

@Query("SELECT location FROM Entry WHERE id = :entryId")
fun getLocationLD(entryId: Int): LiveData<String>

@Query("SELECT DISTINCT year FROM Entry ORDER BY year DESC")
fun getAllYears(): List<Int>

@Query("SELECT * FROM Entry WHERE year = :year AND month = :month AND day = :day ORDER BY year ASC, month ASC, day ASC, hour ASC, minute ASC, id LIMIT 1")
fun getFirstEntryOnDate(year: Int, month: Int, day: Int): Entry

@Query("SELECT COUNT(*) FROM Entry WHERE year = :year AND month = :month AND day = :day")
fun getAmountOfEntriesOnDate(year: Int, month: Int, day: Int): Int
// </editor-fold>

// <editor-fold desc="Tag">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import androidx.lifecycle.LiveData
import com.marcdonald.hibi.data.entity.Book
import com.marcdonald.hibi.data.entity.BookEntryRelation
import com.marcdonald.hibi.data.entity.Entry
import com.marcdonald.hibi.mainscreens.booksfragment.mainbooksfragment.BookDisplayItem
import com.marcdonald.hibi.mainscreens.booksscreen.mainbooksfragment.BookDisplayItem
import com.marcdonald.hibi.mainscreens.mainentriesrecycler.BookEntryDisplayItem

interface BookEntryRelationRepository {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import com.marcdonald.hibi.data.database.DAO
import com.marcdonald.hibi.data.entity.Book
import com.marcdonald.hibi.data.entity.BookEntryRelation
import com.marcdonald.hibi.data.entity.Entry
import com.marcdonald.hibi.mainscreens.booksfragment.mainbooksfragment.BookDisplayItem
import com.marcdonald.hibi.mainscreens.booksscreen.mainbooksfragment.BookDisplayItem
import com.marcdonald.hibi.mainscreens.mainentriesrecycler.BookEntryDisplayItem
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.marcdonald.hibi.data.repository

import androidx.lifecycle.LiveData
import com.marcdonald.hibi.data.entity.Entry
import java.util.*

interface EntryRepository {

Expand All @@ -19,9 +20,19 @@ interface EntryRepository {

suspend fun getEntriesOnDate(year: Int, month: Int, day: Int): List<Entry>

suspend fun getEntriesOnDate(calendar: Calendar): List<Entry>

suspend fun getEntriesOnDate(calendar: Calendar, ascending: Boolean): List<Entry>

suspend fun saveLocation(entryId: Int, location: String)

suspend fun getLocation(entryId: Int): String

fun getLocationLD(entryId: Int): LiveData<String>

suspend fun getAllYears(): List<Int>

suspend fun getFirstEntryOnDate(calendar: Calendar): Entry?

suspend fun getAmountOfEntriesOnDate(calendar: Calendar): Int
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.marcdonald.hibi.internal.utils.FileUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import timber.log.Timber
import java.util.*

class EntryRepositoryImpl private constructor(private val dao: DAO, private val fileUtils: FileUtils) : EntryRepository {

Expand Down Expand Up @@ -67,6 +68,16 @@ class EntryRepositoryImpl private constructor(private val dao: DAO, private val
}
}

override suspend fun getEntriesOnDate(calendar: Calendar): List<Entry> {
return withContext(Dispatchers.IO) {
return@withContext getEntriesOnDate(
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH)
)
}
}

override suspend fun saveLocation(entryId: Int, location: String) {
withContext(Dispatchers.IO) {
dao.setLocation(entryId, location)
Expand All @@ -83,6 +94,46 @@ class EntryRepositoryImpl private constructor(private val dao: DAO, private val
return dao.getLocationLD(entryId)
}

override suspend fun getAllYears(): List<Int> {
return withContext(Dispatchers.IO) {
return@withContext dao.getAllYears()
}
}

override suspend fun getFirstEntryOnDate(calendar: Calendar): Entry {
return withContext(Dispatchers.IO) {
return@withContext dao.getFirstEntryOnDate(
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH)
)
}
}

override suspend fun getAmountOfEntriesOnDate(calendar: Calendar): Int {
return withContext(Dispatchers.IO) {
return@withContext dao.getAmountOfEntriesOnDate(
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH)
)
}
}

override suspend fun getEntriesOnDate(calendar: Calendar, ascending: Boolean): List<Entry> {
if(ascending) {
return withContext(Dispatchers.IO) {
return@withContext dao.getEntriesOnDateAscending(
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH)
)
}
} else {
return getEntriesOnDate(calendar)
}
}

companion object {
@Volatile private var instance: EntryRepositoryImpl? = null

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import com.marcdonald.hibi.data.entity.Entry
import com.marcdonald.hibi.data.entity.Tag
import com.marcdonald.hibi.data.entity.TagEntryRelation
import com.marcdonald.hibi.mainscreens.mainentriesrecycler.TagEntryDisplayItem
import com.marcdonald.hibi.mainscreens.tagsfragment.maintagsfragment.TagDisplayItem
import com.marcdonald.hibi.mainscreens.tagsscreen.maintagsfragment.TagDisplayItem

interface TagEntryRelationRepository {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import com.marcdonald.hibi.data.entity.Entry
import com.marcdonald.hibi.data.entity.Tag
import com.marcdonald.hibi.data.entity.TagEntryRelation
import com.marcdonald.hibi.mainscreens.mainentriesrecycler.TagEntryDisplayItem
import com.marcdonald.hibi.mainscreens.tagsfragment.maintagsfragment.TagDisplayItem
import com.marcdonald.hibi.mainscreens.tagsscreen.maintagsfragment.TagDisplayItem
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import timber.log.Timber
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ import com.marcdonald.hibi.internal.BOOKS_TAB
import com.marcdonald.hibi.internal.CALENDAR_TAB
import com.marcdonald.hibi.internal.ENTRIES_TAB
import com.marcdonald.hibi.internal.TAGS_TAB
import com.marcdonald.hibi.mainscreens.booksfragment.mainbooksfragment.BooksFragment
import com.marcdonald.hibi.mainscreens.calendarfragment.CalendarFragment
import com.marcdonald.hibi.mainscreens.booksscreen.mainbooksfragment.BooksFragment
import com.marcdonald.hibi.mainscreens.calendarscreen.CalendarFragment
import com.marcdonald.hibi.mainscreens.mainentries.MainEntriesFragment
import com.marcdonald.hibi.mainscreens.tagsfragment.maintagsfragment.TagsFragment
import com.marcdonald.hibi.mainscreens.tagsscreen.maintagsfragment.TagsFragment
import com.marcdonald.hibi.uicomponents.addbookdialog.AddBookDialog
import com.marcdonald.hibi.uicomponents.addtagdialog.AddTagDialog
import timber.log.Timber
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,25 @@ class MainScreenMenuDialog : HibiBottomSheetDialogFragment() {
}

private fun bindViews(view: View) {
val settingsButton: MaterialButton = view.findViewById(R.id.btn_main_menu_settings)
settingsButton.setOnClickListener(settingsClickListener)
view.findViewById<MaterialButton>(R.id.btn_main_menu_throwback)
.setOnClickListener {
val throwbackAction = MainScreenFragmentDirections.throwbackAction()
Navigation.findNavController(requireParentFragment().requireView()).navigate(throwbackAction)
dismiss()
}

val aboutButton: MaterialButton = view.findViewById(R.id.btn_main_menu_about)
aboutButton.setOnClickListener(aboutClickListener)
}

private val settingsClickListener = View.OnClickListener {
val settingsAction = MainScreenFragmentDirections.settingsAction()
Navigation.findNavController(requireParentFragment().requireView()).navigate(settingsAction)
dismiss()
}
view.findViewById<MaterialButton>(R.id.btn_main_menu_settings)
.setOnClickListener {
val settingsAction = MainScreenFragmentDirections.settingsAction()
Navigation.findNavController(requireParentFragment().requireView()).navigate(settingsAction)
dismiss()
}

private val aboutClickListener = View.OnClickListener {
val aboutAction = MainScreenFragmentDirections.aboutAction()
Navigation.findNavController(requireParentFragment().requireView()).navigate(aboutAction)
dismiss()
view.findViewById<MaterialButton>(R.id.btn_main_menu_about)
.setOnClickListener {
val aboutAction = MainScreenFragmentDirections.aboutAction()
Navigation.findNavController(requireParentFragment().requireView()).navigate(aboutAction)
dismiss()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class AboutPreferenceFragment : PreferenceFragmentCompat() {
}

findPreference("about_author").onPreferenceClickListener = Preference.OnPreferenceClickListener {
launchURL("https://github.com/MarcDonald/")
launchURL("https://marcdonald.com")
true
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.marcdonald.hibi.mainscreens.booksfragment.bookentriesfragment
package com.marcdonald.hibi.mainscreens.booksscreen.bookentriesfragment

import android.os.Bundle
import android.preference.PreferenceManager
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.marcdonald.hibi.mainscreens.booksfragment.bookentriesfragment
package com.marcdonald.hibi.mainscreens.booksscreen.bookentriesfragment

import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.marcdonald.hibi.mainscreens.booksfragment.bookentriesfragment
package com.marcdonald.hibi.mainscreens.booksscreen.bookentriesfragment

import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.marcdonald.hibi.mainscreens.booksfragment.mainbooksfragment
package com.marcdonald.hibi.mainscreens.booksscreen.mainbooksfragment

data class BookDisplayItem(val bookId: Int,
val bookName: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.marcdonald.hibi.mainscreens.booksfragment.mainbooksfragment
package com.marcdonald.hibi.mainscreens.booksscreen.mainbooksfragment

import android.os.Bundle
import android.preference.PreferenceManager
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.marcdonald.hibi.mainscreens.booksfragment.mainbooksfragment
package com.marcdonald.hibi.mainscreens.booksscreen.mainbooksfragment

import android.os.Bundle
import android.view.View
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.marcdonald.hibi.mainscreens.booksfragment.mainbooksfragment
package com.marcdonald.hibi.mainscreens.booksscreen.mainbooksfragment

import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.marcdonald.hibi.mainscreens.booksfragment.mainbooksfragment
package com.marcdonald.hibi.mainscreens.booksscreen.mainbooksfragment

import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.marcdonald.hibi.mainscreens.booksfragment.mainbooksfragment
package com.marcdonald.hibi.mainscreens.booksscreen.mainbooksfragment

import android.content.Context
import android.view.LayoutInflater
Expand Down

0 comments on commit 6546956

Please sign in to comment.