�� / *
* C o p y r i g h t ( C ) 2 0 1 0 G o o g l e I n c .
*
* L i c e n s e d u n d e r t h e A p a c h e L i c e n s e , V e r s i o n 2 . 0 ( t h e " L i c e n s e " ) ; y o u m a y n o t
* u s e t h i s f i l e e x c e p t i n c o m p l i a n c e w i t h t h e L i c e n s e . Y o u m a y o b t a i n a c o p y o f
* t h e L i c e n s e a t
*
* h t t p : / / w w w . a p a c h e . o r g / l i c e n s e s / L I C E N S E - 2 . 0
*
* U n l e s s r e q u i r e d b y a p p l i c a b l e l a w o r a g r e e d t o i n w r i t i n g , s o f t w a r e
* d i s t r i b u t e d u n d e r t h e L i c e n s e i s d i s t r i b u t e d o n a n " A S I S " B A S I S , W I T H O U T
* W A R R A N T I E S O R C O N D I T I O N S O F A N Y K I N D , e i t h e r e x p r e s s o r i m p l i e d . S e e t h e
* L i c e n s e f o r t h e s p e c i f i c l a n g u a g e g o v e r n i n g p e r m i s s i o n s a n d l i m i t a t i o n s u n d e r
* t h e L i c e n s e .
* /
p a c k a g e c o m . s 1 6 . i n p u t m e t h o d . s k e y b o a r d ;
i m p o r t j a v a . u t i l . L o c a l e ;
i m p o r t a n d r o i d . c o n t e n t . S h a r e d P r e f e r e n c e s ;
i m p o r t a n d r o i d . c o n t e n t . S h a r e d P r e f e r e n c e s . E d i t o r ;
i m p o r t a n d r o i d . p r e f e r e n c e . P r e f e r e n c e M a n a g e r ;
i m p o r t a n d r o i d . t e x t . T e x t U t i l s ;
/ * *
* K e e p s t r a c k o f l i s t o f s e l e c t e d i n p u t l a n g u a g e s a n d t h e c u r r e n t
* i n p u t l a n g u a g e t h a t t h e u s e r h a s s e l e c t e d .
* /
p u b l i c c l a s s L a n g u a g e S w i t c h e r {
p r i v a t e L o c a l e [ ] m L o c a l e s ;
p r i v a t e L a t i n I M E m I m e ;
p r i v a t e S t r i n g [ ] m S e l e c t e d L a n g u a g e A r r a y ;
p r i v a t e S t r i n g m S e l e c t e d L a n g u a g e s ;
p r i v a t e i n t m C u r r e n t I n d e x = 0 ;
p r i v a t e S t r i n g m D e f a u l t I n p u t L a n g u a g e ;
p r i v a t e L o c a l e m D e f a u l t I n p u t L o c a l e ;
p r i v a t e L o c a l e m S y s t e m L o c a l e ;
p u b l i c L a n g u a g e S w i t c h e r ( L a t i n I M E i m e ) {
m I m e = i m e ;
m L o c a l e s = n e w L o c a l e [ 0 ] ;
}
p u b l i c L o c a l e [ ] g e t L o c a l e s ( ) {
r e t u r n m L o c a l e s ;
}
p u b l i c i n t g e t L o c a l e C o u n t ( ) {
r e t u r n m L o c a l e s . l e n g t h ;
}
/ * *
* L o a d s t h e c u r r e n t l y s e l e c t e d i n p u t l a n g u a g e s f r o m s h a r e d p r e f e r e n c e s .
* @ p a r a m s p
* @ r e t u r n w h e t h e r t h e r e w a s a n y c h a n g e
* /
p u b l i c b o o l e a n l o a d L o c a l e s ( S h a r e d P r e f e r e n c e s s p ) {
S t r i n g s e l e c t e d L a n g u a g e s = s p . g e t S t r i n g ( L a t i n I M E . P R E F _ S E L E C T E D _ L A N G U A G E S , I n p u t L a n g u a g e S e l e c t i o n . D E F A U L T _ S E L E C T E D _ L A N G U A G E S ) ;
S t r i n g c u r r e n t L a n g u a g e = s p . g e t S t r i n g ( L a t i n I M E . P R E F _ I N P U T _ L A N G U A G E , n u l l ) ;
i f ( s e l e c t e d L a n g u a g e s = = n u l l | | s e l e c t e d L a n g u a g e s . l e n g t h ( ) <