GithubHelp home page GithubHelp logo

redface's People

Contributors

ayuget avatar cdongieux avatar davidsan avatar kaiserzip avatar nbonnec avatar romainsa avatar yargol avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

redface's Issues

Contenu des pages vide

Je viens de constater qu'en ouvrant un topic j'ai eu un but qui faisait qu'après disparition du spinner de chargement, je gardais une page blanche. Même chose si je change de page et même en changeant de topic.

Je suis en WiFi. J'ai bien accès au net et c'est la première fois que je vois ce bug.

Mini scroll dans la barre du pseudo

Dans la webview de visualisation on peut faire un miniscroll sur la div contenant le pseudo de l'user :o

observé sur nexus 5 lolipop 5.1

Bloc de texte clignotant lorsque smiley animé

Sur certains appareils, la présence d'un smiley animé dans la webview provoque des effets de clignotement de blocs de texte : https://youtu.be/j-lOsHhxWZw

Je pense que c'est lié à l'accélération matérielle sur les Webviews, il faudrait voir si proposer une option permettant de la désactiver ne serait pas pertinent (faute de mieux...)

Gérer le pré-chargement des pages / mode offline

Feature qui serait sympa notamment quand le réseau est chaotique :D Et de manière générale très pratique pour réduire les temps de chargement

On pourrait élargir le concept avec un mode offline complet. A creuser

Gérer la recherche

Une recherche avancée serait sympa. A voir si on utilise la recherche du forum, que je trouve assez bof, ou bien l'API Google Search

Bascule portrait/paysage

Le fait de basculer de portrait à paysage le téléphone recharge la page et replace l'ancre en début de page.

Quitter l'écriture d'un post

Lorsqu'on fait back en écrivant ou éditant en post il ne se passe rien.
En insistant cela fini par poster.
Il vaudrait mieux simplement annuler l'écriture du post.

RxJava et cycle de vie d'une activity

Parfois, une activity ou fragment reçoit un onNext de RxJava après que sa méthode onSaveInstanceState ait été appelée

BaseDrawerActivity  E  Error on retrieving categories for user 'User{username='Guest'}'
                        E  java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
                        E      at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1375)
                        E      at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1393)
                        E      at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:636)
                        E      at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:615)
                        E      at com.ayuget.redface.ui.TopicsActivity.onCategoryClicked(TopicsActivity.java:231)
                        E      at com.ayuget.redface.ui.TopicsActivity.loadDefaultCategory(TopicsActivity.java:217)
                        E      at com.ayuget.redface.ui.TopicsActivity.onCategoriesLoaded(TopicsActivity.java:199)
                        E      at com.ayuget.redface.ui.BaseDrawerActivity$1.onNext(BaseDrawerActivity.java:153)
                        E      at com.ayuget.redface.ui.BaseDrawerActivity$1.onNext(BaseDrawerActivity.java:149)
                        E      at rx.Observable$34.onNext(Observable.java:7212)
                        E      at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:130)
                        E      at rx.subjects.SubjectSubscriptionManager$SubjectObserver.onNext(SubjectSubscriptionManager.java:224)
                        E      at rx.subjects.PublishSubject.onNext(PublishSubject.java:121)
                        E      at rx.Observable$34.onNext(Observable.java:7212)
                        E      at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:130)
                        E      at rx.internal.operators.NotificationLite.accept(NotificationLite.java:150)
                        E      at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.pollQueue(OperatorObserveOn.java:189)
                        E      at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.access$000(OperatorObserveOn.java:65)
                        E      at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber$2.call(OperatorObserveOn.java:153)
                        E      at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:47)
                        E      at android.os.Handler.handleCallback(Handler.java:739)
                        E      at android.os.Handler.dispatchMessage(Handler.java:95)
                        E      at android.os.Looper.loop(Looper.java:135)
                        E      at android.app.ActivityThread.main(ActivityThread.java:5466)
                        E      at java.lang.reflect.Method.invoke(Native Method)
                        E      at java.lang.reflect.Method.invoke(Method.java:372)
                        E      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:938)
                        E      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)

Il faudrait voir si le unsubscribe ne serait pas à faire dans le onPause, qui à réinitialiser le CompositeSubscription dans le onResume (attention aujourd'hui on subscribe pas mal dans le onCreate des fragments & activity,...)

Navigateur d'images

Fonctionnalité très sympa présente notamment sur HFR+ : un navigateur d'images lorsqu'on est sur un topic.

Cela serait super pratique, notamment pour la cat Photo

Gérer les citations en mode "classique"

Le forum permet d'afficher les citations en mode "classique", ce qui provoque un markup HTML différent qui n'est du coup pas interprété par l'application.

Il faudrait dans un premier temps unifier l'affichage des quotes dans l'appli et parser correctement les citations "classiques".

Liste de topics favoris/cyan

Dans la liste de topic par favoris et cyan, il apparaît tous les topics y compris ceux qui n'ont pas de nouveaux messages.
Le forum affiche simplement ceux qui ont de nouveaux messages non lus.
ça serait plus lisible d'avoir le même comportement.

Ajouter un thème noir

Il serait sympa d'avoir un thème avec une dominante complètement noire, notamment pour les possesseurs d'écrans OLED.

Pourquoi pas mettre une barre d'action de couleur sombre au passage, pour contenter ceux qui trouvent le rouge des thèmes principaux trop agressif :)

Erreur fatale lors du retour sur l'application (unmarshalling unknown type)

Plusieurs rapports de crash avec l'exception suivante

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ayuget.redface/com.ayuget.redface.ui.TopicsActivity}: java.lang.RuntimeException: Parcel android.os.Parcel@412b7e48: Unmarshalling unknown type code 464 at offset 856
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@412b7e48: Unmarshalling unknown type code 464 at offset 856
at android.os.Parcel.readValue(Parcel.java:2032)
at android.os.Parcel.readListInternal(Parcel.java:2235)
at android.os.Parcel.readArrayList(Parcel.java:1655)
at android.os.Parcel.readValue(Parcel.java:1986)
at android.os.Parcel.readMapInternal(Parcel.java:2226)
at android.os.Bundle.unparcel(Bundle.java:223)
at android.os.Bundle.getSparseParcelableArray(Bundle.java:1240)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:883)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1118)
at android.support.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:1922)
at android.support.v4.app.Fragment.performCreate(Fragment.java:1776)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:915)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1118)
at android.support.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:1922)
at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:266)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:122)
at com.ayuget.redface.ui.BaseActivity.onCreate(BaseActivity.java:42)
at com.ayuget.redface.ui.BaseDrawerActivity.onCreate(BaseDrawerActivity.java:100)
at com.ayuget.redface.ui.TopicsActivity.onCreate(TopicsActivity.java:93)
at android.app.Activity.performCreate(Activity.java:5104)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
... 11 more

Crash userManager

Crash reçu ce matin

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ayuget.redface/com.ayuget.redface.ui.TopicsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.ayuget.redface.data.api.model.User.isGuest()' on a null object reference
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2362)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424)
       at android.app.ActivityThread.access$800(ActivityThread.java:144)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1329)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:135)
       at android.app.ActivityThread.main(ActivityThread.java:5466)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:938)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.ayuget.redface.data.api.model.User.isGuest()' on a null object reference
       at com.ayuget.redface.account.UserManager.activeUserIsLoggedIn(UserManager.java:54)
       at com.ayuget.redface.ui.BaseDrawerActivity.initiateNavDrawer(BaseDrawerActivity.java:303)
       at com.ayuget.redface.ui.BaseDrawerActivity.setupNavigationDrawer(BaseDrawerActivity.java:121)
       at com.ayuget.redface.ui.BaseDrawerActivity.setContentView(BaseDrawerActivity.java:106)
       at com.ayuget.redface.ui.TopicsActivity.onCreate(TopicsActivity.java:51)
       at android.app.Activity.performCreate(Activity.java:5933)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1116)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2315)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424)
       at android.app.ActivityThread.access$800(ActivityThread.java:144)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1329)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:135)
       at android.app.ActivityThread.main(ActivityThread.java:5466)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:938)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)

Accès HFR impossible via proxy + auth

Salut,

l'accès via proxy n'est pas fonctionnel si le proxy utilisé demande une authentification.
J'ai lancé un logcat et je n'ai pas vu de stackTrace.
Si tu veux que je teste une version de debug, no problem.

A+

Liste de catégorie pliable

Dans le menu latéral il y a la liste complète des catégories (et y en a beaucoup :o )
Pour une meilleure lisibilité du menu ça serait peut être pas mal de la replier par défaut ?

Date du dernier post dans un autre fuseau horaire

L'affichage de la date du dernier post est donnée par rapport à l'heure du fuseau dans lequel on se trouve.
Ce qui fait que cela peut donner une date dans le futur suivant les réglages du profil.

Bug sur l'insertion de balises si texte sélectionné

Dans la fenêtre de réponse si on sélectionne du texte et qu'on utilise les boutons b, i, ... Les balises sont bien insérées mais n'incluent aucun texte alors qu'elles devraient inclure le texte sélectionné

Erreur lors de l'installation

En tentant d'installer l'application depuis l'apk dl ici ou depuis le playstore je rencontré un message d'erreur :
Code erreur inconnu lors de l'installation : "-24"

J'ai un Samsung GS3 (i9300) sous cyanogenmod snapshot du 15/11/2014 android 4.4.4

Affichage sur une partie de l'écran après bascule de portrait à paysage

Appareil utilisé : Nexus 7 sous Android 4.2.2

Lors de l'affichage des messages d'un topic, en basculant du mode portrait à paysage, les messages s'affichent sur une partie de l'écran (sur le côté gauche).
Voir les images de l'affichage en portrait et en mode paysage.
Je ne sais pas si c'est à rapprocher de l'issue #1

Affichage en portrait
2015-04-03 22 57 28

Affichage après bascule en paysage
2015-04-03 22 57 34

Ajouter la gestion des drapeaux "fusionnés"

Sur le forum, il est possible de visualiser tous les favoris / cyans / lus de toutes les catégories, sur une vue fusionnée.

Il faudrait pouvoir faire la même chose dans l'application

Pouvoir poser/enlever un favori sur un post

Fonctionnalité à prévoir, au sens large

  • Pour les favoris (les poser, les enlever)
  • Pour les drapeaux (les enlever, les poser se fait soit par une action de lecture ou de post dans un topic)

Crash sur event reçu et traité after onSaveInstanceState

Crash dans certains cas :

java.lang.RuntimeException: Could not dispatch event: class com.ayuget.redface.ui.event.TopicContextItemSelectedEvent to handler [EventHandler public void com.ayuget.redface.ui.TopicsActivity.onTopicContextItemSelected(com.ayuget.redface.ui.event.TopicContextItemSelectedEvent)]: Can not perform this action after onSaveInstanceState
       at com.squareup.otto.Bus.throwRuntimeException(Bus.java:456)
       at com.squareup.otto.Bus.dispatch(Bus.java:386)
       at com.squareup.otto.Bus.dispatchQueuedEvents(Bus.java:367)
       at com.squareup.otto.Bus.post(Bus.java:336)
       at com.ayuget.redface.ui.fragment.TopicListFragment.onContextItemSelected(TopicListFragment.java:480)
       at android.support.v4.app.Fragment.performContextItemSelected(Fragment.java:1909)
       at android.support.v4.app.FragmentManagerImpl.dispatchContextItemSelected(FragmentManager.java:2058)
       at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:359)
       at android.support.v7.app.ActionBarActivity.onMenuItemSelected(ActionBarActivity.java:152)
       at com.android.internal.policy.impl.PhoneWindow$DialogMenuCallback.onMenuItemSelected(PhoneWindow.java:4995)
       at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:761)
       at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:155)
       at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:904)
       at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:894)
       at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:172)
       at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1019)
       at android.widget.AdapterView.performItemClick(AdapterView.java:334)
       at android.widget.AbsListView.performItemClick(AbsListView.java:1531)
       at android.widget.AbsListView$PerformClick.run(AbsListView.java:3664)
       at android.widget.AbsListView$3.run(AbsListView.java:5585)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:5940)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184)
Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
       at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1375)
       at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1393)
       at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:636)
       at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:615)
       at com.ayuget.redface.ui.TopicsActivity.loadTopic(TopicsActivity.java:289)
       at com.ayuget.redface.ui.TopicsActivity.onTopicContextItemSelected(TopicsActivity.java:346)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.squareup.otto.EventHandler.handleEvent(EventHandler.java:89)
       at com.squareup.otto.Bus.dispatch(Bus.java:384)
       at com.squareup.otto.Bus.dispatchQueuedEvents(Bus.java:367)
       at com.squareup.otto.Bus.post(Bus.java:336)
       at com.ayuget.redface.ui.fragment.TopicListFragment.onContextItemSelected(TopicListFragment.java:480)
       at android.support.v4.app.Fragment.performContextItemSelected(Fragment.java:1909)
       at android.support.v4.app.FragmentManagerImpl.dispatchContextItemSelected(FragmentManager.java:2058)
       at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:359)
       at android.support.v7.app.ActionBarActivity.onMenuItemSelected(ActionBarActivity.java:152)
       at com.android.internal.policy.impl.PhoneWindow$DialogMenuCallback.onMenuItemSelected(PhoneWindow.java:4995)
       at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:761)
       at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:155)
       at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:904)
       at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:894)
       at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:172)
       at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1019)
       at android.widget.AdapterView.performItemClick(AdapterView.java:334)
       at android.widget.AbsListView.performItemClick(AbsListView.java:1531)
       at android.widget.AbsListView$PerformClick.run(AbsListView.java:3664)
       at android.widget.AbsListView$3.run(AbsListView.java:5585)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:5940)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184)

Lié au fait qu'on traite un event trop tard. Il faut s'enregistrer / se désenregistrer du bus d'évènement plus tôt dans le cycle de vie de l'Activity / du Fragment

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.