Aller au contenu

Ecran de connection et fenetre modale


Clorish

Recommended Posts

Bonjour,

Je souhaite gerer un ecran de connection pour mon application, avec possibilité de "timeout". La logique voudrait que j'implemente une activity pour mon ecrant de connection avec demande de login/mdp que j'affiche lorsque cela est necessaire pour restaurer la connection.

Par contre, j'ai noté que l'activity n'est pas "modale", et donc la touche "back" permet de revenir a l'application, sans etre connecté.

Comment gerez vous ce type de cas ?

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Tu as plusieurs solutions.

Ce que je verrais bien c'est la surcharge de la classe application de ton projet (accessible donc à toutes les activités) : Des indices ici de comment faire.

A l'intérieur tu implémentes un genre de isConnected qui redirige avec un intent sur la page de login si c'est faux.

Dans le onCreate() de chaque activité tu récupères ton application ((mon appli) getApplicationContext()) et tu testes isConnected.

Je suis assez peux précis dans mon explication, désolé.

En espérant que ca t'aide,

Jok

Lien vers le commentaire
Partager sur d’autres sites

Oui je gere les choses un peu comme ca deja.

Je ne passe pas par une derivée de "Application" mais une classe singleton qui me sert de controleur principal.

Mais le resultat est le meme.

Mon soucis c'est qu'uen fois l'intent affiché, une pression sur la touche "back" ferme l'activity, et reviens donc a l'activité précédente, sans etre conencté evidement ;)

Alors je me pose la question sur d'autres methodes, plutot inspiré des site web : Effectuer un include de mon layout "login" en tete de chaque activity, que j'affiche ou masque lors que je solicite une connexion, mais je trouve cela pas tres propre.

Lien vers le commentaire
Partager sur d’autres sites

En gros, ce que tu dis c'est que quand tu reviens dans l'activity précédente, tu ne peux pas relancer le check isConnected avant de l'afficher ?

Une autre solution c'est de mapper le OnPause/On destroy de l'activity sur laquel tu fais back et de checker à ce moment là ?

Lien vers le commentaire
Partager sur d’autres sites

Non en fait je ne veux pas revenir sur la page precedent .... :)

en gros faire une activity modale.

Tant que l'utilisateur ne s'est pas connecté, je ne ferrme pas l'activity.

J'utilise aussi le OnCloseQuery en Win32 (DONET) pour effectuer un test avant vermeture et annuler le processus de fermeture si besoin.

Apres je peux en effet, egalement relancer le test losque la form du dessous redeviens active pour relancer eventuielement l'activité de connection ... mais je trouve cela un peu lourd.

Et sinon, l'idee de creer uen seule activity avec des "panels" (layout) rendu visible/invisible selon les besoins, avec des animations, c'est deconant comme idee ? ;)

en tout cas j'ai lu ton lien et je vais adopter le "Application" car c'est plus "propre" que la classe controlleur singleton :)

Lien vers le commentaire
Partager sur d’autres sites

Tu peux faire en sorte de catcher (keyEvent) l'appuie sur le bouton back et ... ne plus le prendre en compte ^^

Sinon le une seule activity avec des panneau Visible/Invisible c'est pas déconnant.

J'ai déja vu, MAIS ca dépend de la lourdeur de ce que tu veux faire ^^

Disons que si ton appli est complexe je pense que tu vas souffrir ^^

Sinon créer un custom dialog (genre alertDialog) qui se lance quand la connection timeOut et qui propose 2 choix : login ou quit ?

Enfin pour l'extend application, perso c'est ce que j'utilise je trouve ca plus ... intégré ^^

Bon courage ^^

Jok

Lien vers le commentaire
Partager sur d’autres sites

Sinon, tu ne peux pas te faire une boite de dialog plutot qu'une activity pour faire ca ?

Ca me parait plus simple, d'un point de vue de UI pur, ca ne me choque pas, et tout est pret pour ton implémentation :

Tu peux faire deux callbacks différentes pour un 'login' ou pour un 'cancel'.

Et tu peux la mettre en SetCancelable( false ) pour interdire le bouton back...

Non ?

Emmanuel / Alocaly

Lien vers le commentaire
Partager sur d’autres sites

Disons que l'idee de passer par une activity est de fournir une fenetre de connection avec un design sympas :)

Mais c'est en effet une possibilté.

Merci pour l'info, je vais creuser.

@jokamax : La classe dérivée de "Application" est egalement mise en pause j'imagine lorsque le terminal se met en veille ... comme les activity ?

Lien vers le commentaire
Partager sur d’autres sites

Le comme les activity me dérange lol.

En gros ta classe étendu c'est comme la coquille d'un oeuf (ton appli) ^^

Ce n'est pas une activité en tant que tel et donc n'a pas de méthode onPause par exemple.

Donc l'application 'active' se met en pause.

La classe application ... est une simple classe pour moi.

Aprés j'avoue pour le moment je n'ai pas creusé plus que ca ^^

Je fais mes recherches au fur et à mesure que j'avance dans mon appli, je tente des trucs et j'essaie de faire partager ^^

J'ai pas encore géré la veille ^^

Bon courage de ton coté,

Jok

Lien vers le commentaire
Partager sur d’autres sites

Disons que l'idee de passer par une activity est de fournir une fenetre de connection avec un design sympas :)

Mais c'est en effet une possibilté.

Note que la Dialog box, c'est comme une activity : son design est totalement customisable !!

Emmanuel / Alocaly

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...