Giter Club home page Giter Club logo

wanicchou's People

Contributors

limegrass avatar poussinou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

wanicchou's Issues

Add search on Forvo option

Add option to redirect the search term to the corresponding Forvo page, if it exists.

I believe Forvo's Terms and Conditions forbid downloading the audio, so redirection only is sufficient. (Research and Confirm)

AddContentAPI.findDuplicateNotes not finding duplicates

API not returning any results for matching keys on a model.

Causing AddUpdate to fail, and instead just adding a new card.

Replication:
Import the default text repeatedly (和日帳).
Stepping through the debugger shows it returns no results.

Swipe word for multiple matches

Pattern matching can return a list of results. Swipe on the word to tab between them.
Will probably need refactoring to do.

Both JE and JJ Definitions

Include option to search both dictionaries upon request, to display them, and include them all on the same Anki card upon import. Update existing card with new definitions if they exist for the word.

New controls and add controls description page/tutorial within the app

Swipe left/right on word to page between words
Swipe left/right on Definition to page between definitions
Long press vocab word/def to bring up their notes.
Long press a tag to bring up all words in the database with that tag.
Change related to long press to search instead of tap.

Ability to request community translations

Must have an online database setup before attempting this, so community translations can be stored.

Have a button where the user can request community translations for words that failed on other sources.

weblio

Initial choice for Sanseido was because weblio already had their own app (kinda).
But adding the option will provide the AnkiDroid import option for users, so not sure if I have to worry about it.

UI Tests

Split from #41,
Throwing UI Tests to the backlog for now.

Loading Indicator while searching

Upon searching, create a loading indicator in some way.
If not on the main UI itself, create a notification for the loading process in the background. (In case of slow connection)

Empty user-editable entry

UI screen for users to edit their own entry.

Could be done by making word and definition editable and having a button to create empty.
Word would have to do something like open a dialog to edit pitch and pronunciation.
Would need a new "Dictionary". Label as UserDictionary or otherwise.

Associated Database Website

Once Wanicchou's DB is set up, also develop a website (separate project entirely) for a browser view of definitions, along with being able to edit and add entries.

Wanicchou's own online database

Implement Wanicchou's own datastore built upon the user's searches to prevent future users requesting the same from having to request and process the whole webpage requested.

This'll cut down on data consumption and thus data costs for the user, so it'll be fairly important.

Major project, and depending on cost, will likely will choose a technology I am unfamiliar with (AWS) as the provider. If cost too high, likely Azure instead.

Must request permission from user to allow upload into this DB, since it'll incur small data costs onto them (at the benefit of other future users).

Tests

UNIT TESTS TOP PRIORITY

Crash Reporting

Crash and general bug reporting system from the user's devices.
There are probably plenty of frameworks, so research and implement.

Navigation drawer

Navigation drawer to database, settings activity.
If possible, add ListPreferences directly onto drawer.

EPWING

Add EPWING support, to generalize the app as a way to integrate a dictionary with AnkiDroid.

(Unsure if this already exists in an existing EPWING reader already. If so, unnecessary)

Re-search Online

Users must be able to search online if they are not satisfied with local DB results.

General overhaul

Recycle webview instead of generating new one.
Clean up code, organize it better.
Restructure DB such that search terms are linked to their EJ and JE definitions. And any other definitions if other dictionaries are included some day. (e.g. search EJ term and later search EFrench term)
Whatever else I was doing before I left it.

Share via option

Add as option for Android's Share via function upon copying text.

Firebase or some other cloud DB sourcing

Not sure if that's even what Firebase

Network all online searches using the app back into a DB service where the definitions are saved for future users to query from instead of from scraping Sanseido's website.

Anki Import button crash

Google Play review seems to suggests that the Anki Import button is appearing without access to Anki, causing a crash upon button press. The button should not reveal if Anki Droid is not installed and permission was not given to access it.

Crash

Hello,

I'm trying to build v0.1.0-beta for F-Droid (#10).
gradle assemble seems to work correctly but then the app crashes when I launch it on my phone:

07-05 16:31:23.317 28649 28649 D AndroidRuntime: Shutting down VM
07-05 16:31:23.318 28649 28649 E AndroidRuntime: FATAL EXCEPTION: main
07-05 16:31:23.318 28649 28649 E AndroidRuntime: Process: com.waifusims.wanicchou, PID: 28649
07-05 16:31:23.318 28649 28649 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.waifusims.wanicchou/com.waifusims.wanicchou.SearchActivity}: java.lang.RuntimeException: Cannot create an instance of class data.room.notes.NoteViewModel
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.app.ActivityThread.access$900(ActivityThread.java:150)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:102)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:148)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:5417)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: Caused by: java.lang.RuntimeException: Cannot create an instance of class data.room.notes.NoteViewModel
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.arch.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:201)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.arch.lifecycle.ViewModelProvider.get(ViewModelProvider.java:134)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.arch.lifecycle.ViewModelProvider.get(ViewModelProvider.java:102)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at com.waifusims.wanicchou.SearchActivity.onCreate(SearchActivity.java:88)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:6285)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	... 9 more
07-05 16:31:23.318 28649 28649 E AndroidRuntime: Caused by: java.lang.NoSuchMethodException: <init> [class android.app.Application]
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at java.lang.Class.getConstructor(Class.java:528)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at java.lang.Class.getConstructor(Class.java:492)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	at android.arch.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:199)
07-05 16:31:23.318 28649 28649 E AndroidRuntime: 	... 15 more

(I am using Android 6.0.1.)

Tags navigation

Clicking on tags should bring up some type of screen listing all words with the same tag.

Better Wiki Developer's Guide

Full architecture description within the Wiki, and update how to add a search provider after the new architecture is committed

Base offline dictionary

Add option in settings for user to download or upload a base dictionary for definitions and furigana on words in definitions. Utilize previously searched words's readings as furigana on newly searched words if they appear.

Add to F-Droid?

It'd be neat to have this on F-Droid, as there's currently no Japanese to Japanese dictionary there: https://f-droid.org/

If you don't want to work on the inclusion of this app by yourself, would it be ok for you if someone else do it for you?

Import not catching duplicate notes

Unsure if it is an API issue, but findDuplicateNotes not finding matching vocabulary.

Needs further investigation, and an issue on AnkiDroid if it is their problem (probably not).

Bug: Missing floating action bar

Really cool app. I downloaded the newest beta release on my Android device running stock Pie. I made a search but found no action bar. Also, I made sure to enable permissions to read write to the Anki database.

Is it my device or something else?

Google Translate API

Add option to auto translate with Google Translate any sentences that may be imported, such as if #22 is implemented.

User-defined search ordering

Need a priority and active flag on each, and throw into SearchManager (or whatever I rename that class.)

The problem is deciding how I want to handle persistence for it. Should research if Android has ranked/prioritized SharedPreference settings since I don't want to do it in DB.

mockk Tests not validating coVerify

coVerify fails despite stepping through code and seeing the code made.
Exists in some of the *RepositoryTest.kt files.

Need help fixing it.

Export/Import data as sqlitedb, csv

Add function in settings to export DB data into CSV, and another to open file explorer to the location of the sqlitedb. Add option to import CSV data and another to autogenerate Anki cards from the CSV.

Support selecting text

It would be nice to be able to select the text in the definition view, e.g. so that users can more easily look up words via the Android context menu.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.