Giter Club home page Giter Club logo

hanji-android-app's People

Contributors

ninjaman494 avatar renovate[bot] avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

hanji-android-app's Issues

Release Notes

Show a dialog on each new update that lists changes made. This dialog would pop-up when the user opens the new update for the first time.

Make ad on Search Results page a card - AdMob Policy Violation

We got a policy violation notification from Admob:

ADS AND CONTENT OVERLAP: As stated in our Program policies, publishers are not permitted to alter the behavior of Google ads in any way. This includes placing ads so that they cover any part of the site or app content or implementing parts of a webpage to cover any portion of the ads. If your site has drop-down menus they are not permitted to cover the ads.

This violation must be fixed by Dec. 9th, or else they will disable our ads. Most likely, this violation is caused by the small banner ad on the search results page, because it can sometimes cover up search results. An enhancement we've been wanting to do for a while is to turn that ad into a card that shows up in the results list, which should also fix this violation.

Show search history

Show a history of recent searches in MainActivity, under the Word of the Day card.

Conjugations are no longer clickable

After making conjugation text selectable in #27, you can no longer click on them to see conjugation info. Copy and paste functionality is pretty important, so we can't just undo that PR.

Intermittent crashes caused by stopped activities trying to open a dialog

After closing an activity (pressing back, closing app, etc.), a fragment on this closed activity may try to open, which causes an Illegal State Exception. The most common scenario is when a user search comes up empty and they close the app before the dialog displays.

All dialogs in the app should first check if they're allowed to open before opening. This could be handled by a custom open method.

Reports:

NPE on Example Adapter

Null pointer exception on example.sentence() in Example Adapter. We should also start logging what entry the user's looking at in Display Activity to make debugging easier. It's possible there's an entry with malformed example

Crashlytics Report

IllegalStateException on Error Dialog in Search Activity

This is a very specific bug where, if onBackPressed is called while the app in the background, an IllegalStateException occurs. This happens because the Error Dialog's onDismissed listener called onBackPressed, it should be updated to finish. Other activities should also be updated accordingly.

Crashlytics Report

Add hints to Suggestions Activity

A lot of user suggestions are in the wrong language (i.e. English antonyms/synonyms, Spanish for example translation, etc.). We should add hints to the text fields indicating what language fields should be in.

Conjugate words without dictionary information

In 1.0, Hanji would provide conjugations for a word even if it wasn't in the dictionary. 2.0 should have this same functionality.

A note should be added in the response explaining how it was conjugated.
Part of Speech will have to be deduced/assumed somehow

Edit: A better solution would be to create a separate flow for conjugationing without dictionary info, see comments

Examples are being fetched twice in DisplayActivity

In DisplayActivity, entry, conjugations, and examples are done as three separate queries. Entry and examples are done in parallel, and then conjugations is done after the entry request is done.

It appears that the examples are already being fetched in the entry query, so the examples query is actually redundant and should be removed.

Dialog buttons in Favorites Activity are the wrong color

After updating to a MaterialComponents theme, the default dialog buttons color is set to colorPrimary, but we want it to be the accent color. The default AppTheme should be updated so it sets dialog buttons to the accent color using colorSecondary

Extended bar is out when returning to Search Results

When you go back to the search results (press back or home), the extended bar is out. This is correct when you're at the top of the results, but not when it returns you to the middle of them.

Possible solutions are to scroll to the top or change how extended bar handles back/home

Allow copy

Enable long press to copy words to clipboard

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • Update dependency com.android.billingclient:billing to v6
  • Update dependency com.android.tools.build:gradle to v8
  • Update dependency com.codemybrainsout.rating:ratingdialog to v2
  • Update dependency com.google.android.gms:play-services-ads to v23
  • Update dependency com.google.firebase:firebase-bom to v32
  • Update dependency com.mikepenz:aboutlibraries to v11
  • Update dependency gradle to v8
  • Update dependency org.jetbrains:annotations to v24
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Edited/Blocked

These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.

  • Update Non-Major Dependencies (gradle, org.robolectric:shadows-httpclient, org.robolectric:robolectric, org.mockito:mockito-core, junit:junit, com.android.billingclient:billing, io.reactivex.rxjava2:rxandroid, com.mikepenz:aboutlibraries, com.codemybrainsout.rating:ratingdialog, com.google.guava:guava, com.google.code.gson:gson, com.google.android.gms:play-services-ads, com.google.firebase:firebase-bom, com.google.android.material:material, androidx.preference:preference, androidx.recyclerview:recyclerview, androidx.constraintlayout:constraintlayout, androidx.appcompat:appcompat, com.google.firebase:firebase-crashlytics-gradle, org.jacoco:org.jacoco.core, com.google.gms:google-services, jacoco)
  • Update dependency com.google.guava:guava to v33

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

github-actions
.github/workflows/instrumentedTest.yml
  • actions/checkout v2
  • reactivecircus/android-emulator-runner v2
  • actions/upload-artifact v2
.github/workflows/unitTest.yml
  • actions/checkout v2
  • actions/setup-java v2
  • asadmansr/android-test-report-action v1.2.0
gradle
gradle.properties
settings.gradle
build.gradle
  • com.android.tools.build:gradle 3.6.4
  • com.google.gms:google-services 4.3.3
  • com.apollographql.apollo:apollo-gradle-plugin 2.5.11
  • org.jacoco:org.jacoco.core 0.8.2
  • com.google.firebase:firebase-crashlytics-gradle 2.3.0
app/build.gradle
  • jacoco 0.8.2
  • com.google.code.findbugs:jsr305 3.0.2
  • androidx.appcompat:appcompat 1.2.0
  • androidx.constraintlayout:constraintlayout 2.0.4
  • androidx.legacy:legacy-support-v4 1.0.0
  • androidx.multidex:multidex 2.0.1
  • androidx.cardview:cardview 1.0.0
  • androidx.recyclerview:recyclerview 1.1.0
  • androidx.preference:preference 1.1.1
  • com.google.android.material:material 1.2.1
  • org.jetbrains:annotations 22.0.0
  • com.github.frankiesardo:linearlistview 1.0.1
  • com.codemybrainsout.onboarding:onboarder 1.0.4
  • com.github.MFlisar:changelog 1.1.7
  • com.google.firebase:firebase-bom 29.0.0
  • com.google.android.gms:play-services-ads 20.2.0
  • com.google.code.gson:gson 2.8.5
  • com.google.guava:guava 30.1.1-android
  • com.codemybrainsout.rating:ratingdialog 1.0.8
  • com.github.eggheadgames:android-about-box 2.0.1
  • com.mikepenz:aboutlibraries 8.3.1
  • org.rm3l:maoni 9.1.0
  • org.rm3l:maoni-email 9.1.0
  • org.rm3l:maoni-common 9.1.0
  • com.github.pschroen:slack-api-android c66cc8d997
  • com.apollographql.apollo:apollo-runtime 2.5.11
  • com.apollographql.apollo:apollo-http-cache 2.5.11
  • com.apollographql.apollo:apollo-rx2-support 2.5.11
  • io.reactivex.rxjava2:rxandroid 2.0.1
  • com.android.billingclient:billing 4.0.0
  • androidx.test.espresso:espresso-contrib 3.4.0
  • com.squareup.okhttp3:okhttp 4.9.1
  • junit:junit 4.13
  • org.mockito:mockito-core 3.11.2
  • org.robolectric:robolectric 4.2.1
  • androidx.test:core 1.4.0
  • androidx.test:rules 1.4.0
  • androidx.test.espresso:espresso-intents 3.4.0
  • androidx.test.ext:junit 1.1.3
  • org.robolectric:shadows-httpclient 4.6.1
  • com.squareup.okhttp3:mockwebserver 4.9.1
  • androidx.test:runner 1.4.0
  • androidx.test:rules 1.4.0
  • androidx.test.espresso:espresso-intents 3.4.0
  • androidx.test.espresso:espresso-core 3.4.0
  • androidx.test.espresso:espresso-contrib 3.4.0
  • androidx.test.ext:junit 1.1.3
  • com.squareup.okhttp3:mockwebserver 4.9.1
  • androidx.test:orchestrator 1.4.0
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 6.1.1

  • Check this box to trigger a request for Renovate to run again on this repository

Try out batch querying

Apollo Android recently added support for batch querying, which might be useful on parts of the app where multiple requests are sent out at once (i.e. DisplayActivity). It's worth trying out this new feature to see if it improves performance.

Update Feedback Activity

The Feedback Activity, created by Maoni, could definitely used some UI improvements:

  • Fix FAB icon color
  • Change header image
  • Fix text input style
  • Add an optional email field so users can be contacted for further information

Multiple cases of DeadSystemExeception

Originally, I thought this exception was happening because the OS force shut down the app. However, it's strange that this error is happening so often, so I think further investigation is warranted.

Write more instrumented tests

There should be one for each activity, but at the moment we only have tests for Conjugation and ConjInfo activities

Old favorites still exist on some users' phones

The JSON format for favorites changed with 2.0, and any old 1.0 favorites were cleared when a user installed the 2.0 updated. However, it appears that some users still have old favorites on their phone, causing the app to crash with a serialization error.

Bug Report

We should also log shared preferences in Crashlytics reports to help use diagnose future issues.

Honorific favorites don't work

The app uses conjugation names to fetch only the favorited conjugations from the server. This pretty efficient, but it ignores the honorific flag. The flag + conjugation name needs to be sent.

Change Conjugation Activity to use a custom Action Bar

Currently, the extended bar is simply a view in the Relative Layout. This is works well in cases where overlap is needed, but in this activity it opens us up to a bunch of bugs. Specifically, it can cause the bar to go into the wrong state when animating. This can easily by solved by swiping down, but it looks bad. Changing the implementation to a custom Action Bar might fix it, because this functionality is already supported.

Add Error Message for TimeoutError

com.android.volley.TimeoutError is an error that occurs when the server takes too long to respond. It's a pretty common error that's usually caused by a bad connection, but there's no specific error message for it. Currently, the generic "something went wrong" message is used. We such should a timeout specific error message so user's know what's going on.

Dark Mode

Self explanatory, having a dark mode feature would be cool. About Box and About Libraries already support it, so there actually two activities in Hanji that already have dark mode functionality.

WOD Card's button should be disabled while loading

Summary

The Word of the Day card has a button that redirects to Display Activity. Clicking on this button while the card is loading causes Display Activity to receive a null id, which makes sense because it hasn't fetched the entry yet.

The app catches this exception, so it's non-fatal. There were 22 cases of this issue from 9/5 - 10/5

Acceptance Criteria

WOD card's button is disabled until it's done loading.

slack-android-api library forces min api to be 19

Hanji's minimum api level used to be 16, but we had to raise it to 19 because of this slack library. Since we didn't want to alienate users with older phone, we now have to two versions of the app, one with api 16 and one(the newest version) with api 19. This not ideal, so we should figure out a way to bring the api level back down to 16 while still using the slack-android-api.

Stop using fork of About Box

The reason a fork is being used in the first place was due to a bug in About Box that showed empty cards. This bug was fixed in a pull request, so we should be able to go back to using the official library.

Using the official library should also make it possible to setup Github Actions

NOTE: The latest release tag outlines some things that need to be changed for the latest version to work

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.