From 32ce46d9d8cf682d1e463faa1c30dbe5382835b4 Mon Sep 17 00:00:00 2001 From: Lennart Rosam Date: Sun, 22 Jan 2012 21:08:47 +0100 Subject: [PATCH] Added a landing page for the app. --- AndroidManifest.xml | 16 +- res/drawable-hdpi/contacts.png | Bin 0 -> 3553 bytes res/drawable-hdpi/home.png | Bin 0 -> 1506 bytes res/drawable-hdpi/music.png | Bin 0 -> 2255 bytes res/drawable-ldpi/contacts.png | Bin 0 -> 1724 bytes res/drawable-ldpi/home.png | Bin 0 -> 919 bytes res/drawable-ldpi/music.png | Bin 0 -> 1202 bytes res/drawable-mdpi/contacts.png | Bin 0 -> 2291 bytes res/drawable-mdpi/home.png | Bin 0 -> 939 bytes res/drawable-mdpi/music.png | Bin 0 -> 1435 bytes res/drawable/bookmarks.png | Bin 0 -> 496 bytes res/drawable/calendar.png | Bin 0 -> 398 bytes res/drawable/home.png | Bin 0 -> 416 bytes res/drawable/music.png | Bin 0 -> 561 bytes res/layout/landing_page.xml | 26 ++++ res/layout/landing_page_fragment.xml | 41 +++++ res/layout/landing_page_item.xml | 25 +++ src/eu/alefzero/owncloud/ui/LandingActivity.java | 38 +++++ .../owncloud/ui/fragment/LandingPageFragment.java | 171 +++++++++++++++++++++ 19 files changed, 310 insertions(+), 7 deletions(-) create mode 100644 res/drawable-hdpi/contacts.png create mode 100644 res/drawable-hdpi/home.png create mode 100644 res/drawable-hdpi/music.png create mode 100644 res/drawable-ldpi/contacts.png create mode 100644 res/drawable-ldpi/home.png create mode 100644 res/drawable-ldpi/music.png create mode 100644 res/drawable-mdpi/contacts.png create mode 100644 res/drawable-mdpi/home.png create mode 100644 res/drawable-mdpi/music.png create mode 100644 res/drawable/bookmarks.png create mode 100644 res/drawable/calendar.png create mode 100644 res/drawable/home.png create mode 100644 res/drawable/music.png create mode 100644 res/layout/landing_page.xml create mode 100644 res/layout/landing_page_fragment.xml create mode 100644 res/layout/landing_page_item.xml create mode 100644 src/eu/alefzero/owncloud/ui/LandingActivity.java create mode 100644 src/eu/alefzero/owncloud/ui/fragment/LandingPageFragment.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 8dd03ade..2500eaa5 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -25,13 +25,7 @@ - - - - - - + @@ -71,5 +65,13 @@ + + + + + + \ No newline at end of file diff --git a/res/drawable-hdpi/contacts.png b/res/drawable-hdpi/contacts.png new file mode 100644 index 0000000000000000000000000000000000000000..6436cfa94555e20320535c25009e970b45d474b8 GIT binary patch literal 3553 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 bj%5BnSoAMX(#`5k00000NkvXXu0mjf_KwEN literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/home.png b/res/drawable-hdpi/home.png new file mode 100644 index 0000000000000000000000000000000000000000..06362e550f0e17ac7a4ea4d7c24f220c927e0b9b GIT binary patch literal 1506 zcmV<81s(c{P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyS` z3Vi%Ghzija*~XYv)jxn$7woFGqDXC*^r61QqN-HUNJ%kqf&?VCLl6XC-_wm9-2egX z1ix~RG@IiY-ragYH;rIZB#Q$&PEnodMB%=}9)AyFT|$+r@^ zt|tKC)~#C=U%#ua>lXZWlTv=$_Ckritk>&bv^!4p6P!#YGoHz0#?$F^%-8o-DdkxJ z@}O8u3xz@jAw<4qCtcSQ*=%-P2th<;PF3 z~6otKSu*g+ifuBJwLInaO0vskw@#9Vna4W|GOI<{SHZI2``8+jH)wY-6gb z&I8D`5{6+U9mjF}aJHqbC}MJQG7F$osZ{PZ({HG%>Si(-v)zX~j^kXpa;0wp#Uhc& z4mi55?+V8cDVNJl0JvVO)i#^yHx0wk+nvC~#Dv+_3j6xxNeJwYKvE|;6sG_5DQ zYtbb*lbyivL(1p#xo9*x(rrL5%wmZ|BDS@)RRoaT3mm`QrlzKHOG``tbub)4i2ebT zNF-wQdc8Jw2Vm~j$s%n+qUfDz)0Gty-^tEz2wb-8aL7Ju|0ThX7sBE<_3eq$!sVK@h0OPHkX_{%%G_7HQ(=nhX zoFV{cnBjDEAEaqoQc77ALO89v7SlA-mStJZ`yBLRE0szkuIv7I@7}%23#&mbI7H<5 zYR*6?=i$SLhg{d4kHup77Xm06ji$ok@DAlzmX)?`+wN!Ow3-kCLWpQ66e<{ok=s{5 zj^m^vkw}q0tDBpfwT=Nj365o1V}k|<0K(z0s;X+JTCHw0Q-_%OxT>mu-oJl;W4CeiG&qe$ zqX@wADQCZr=b70Ub~yf6Uthnoyu7^XOWl!D&Xr1~o7)O93_}lv zLObACmZc9noR*Tp;jrRU&4}lD$5N@(@6~E`lUi^9=zci5uA4YOv9`8$yId~c+_o0c zZ7Jnh84iaJd!F}Q>w{CLPR$-Ua^y7tyY3CHUAvZ8SXdYvBmlWwZvE)dqj#RxXK``y z--{P7{?;toa9#KCj<*;yp9JvXvmSQg!iD^$OP6K_3DAiXCzej1KE3c9U4I~=uO7P( zV&-=NeDJ&v9JFhnHs<>lGkZkz&GuoHncr&%&H;#bnE68hkWD!62TUG|lg#W%BDxIV zayui>oH2Q?_L zSYWY(e$)so7Fa9*6x5*LH6JKwNE8&*pa4)0EY|!pQUEBZL4m~r1qElZepJxx?CkZK znVE$_TIlHL=we68>tql!zYXA{0TaXbMD%q~q=SuO0I09xe|tTRoIK3yoB#j-07*qo IM6N<$g7jUxjQ{`u literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/music.png b/res/drawable-hdpi/music.png new file mode 100644 index 0000000000000000000000000000000000000000..1c7a1f0a0509ab2a80242b9265c32aad6334c0fb GIT binary patch literal 2255 zcmV;=2r&1FP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyS` z3>Py}b4%j@00>V>L_t(|+U=ZQXdB5L$G^Y*H@lJ?tt3nGN|q%%{u5iNMUP(lg0$MYQry(Hw~#>q8J z;y9PuK3lS4+0yRxAyQFuxp*b5Y$>N72%%+|nf=V~_nqI2W|#0{nhd}I5Csq^`9uMD z0Q?QW9{^aJRYVO8K?D#g-nbwLMF0`bd2q9P&cV~jCHQ541)69hphEt}8h^EYqayq!v=4sI(T#@GqY`Rh*A zCkTSza=D5C6joxQD2nCOl}e>nu3x`CxNRZka=DCrK0jJ1gaUy7K~NM$k!4wSs(*gJ zU)xp<+Su3_5Cq|KJycayMbk8+?uAT zCED;AUD)#c!R7=|OF(X2*FA|uB3`aO)DxhZjiRcmQb$KetRCSM@*uvgfQE*KjIGj> z3ISQ$8e*YPXvc#G59)Ufv)vlR7*m|egkMMvs#oo)WPMbtSqxj{LAtJIBauid9*?hf zcXy}y`}B-2l%$;bv9uh^^NtPL7`L?#UbVo-=y0f!$wYRr7Juonk z)^$B!ZToc%$c~MUj{f`f>C-nHtkMGT2*7;+hZ;V_7-MD?)juwPm@9nW129iS8vtYQxAH^D5guiqWF10L^-Fuw;?nrolY+Tc)JLL zh*DpeMA6PDJ$(4^0TEr=j<)M!ny(JE^ArZoY*kV}oG1~rHVZR=XBmVlgUyQx7< zKuwWuObxQL7ON$|W}?{Cpr!^j6UF9YwHac~5R)2tbd$-XlF4LV5(MF8&Uu1}c34l& z3V%}f9#mruk~%v(zn;xzza*8&jr_xJyRbN&_1p% z#pCg=YG#mf@*qi)Ot07Lb8;4!B*{E@@Zep?0Ewb_z_KinF{UIE2}j@*bRfG~nf?3s z)55}nqmMM~-MjZ*Yin!9vHc*<`5r+K5R1iPvMkHR8LHY(I2>NttnI^x4{tct9uYy; z^|fQij@<(AAIAU@kr50ATUAwcJ2{e(NMuu?+_!JvMko|=Wcouo2 zX_}q0hv~7gvH9ugY2((dTNUL&Znrx-F){Js@bGXE&Rqbrj(Lz_7|cl>AR<0CHg*@l zr#70O7X$$(PMo+JkH?qFZD;rH-SbmZQ}33*;Q;>V=u%@~U?4LyGvk=|3=a>_4Gs>j z09dk7{3d{Puh)w+XU=?Z;lhQE%a<>At*@^u&q*Jw-rn9v%#Q(bl}E~8@`2w z1y?qkl^A1YAP`vV>grk<85vp7b^Tf4dmX^9h{$pj5a;}t=gysb^~#ki(Q4qh-R|tk zlPBMg$K#Iy+##Z$+ic$t;543kg+-b6A%NePd*<5iEM`qkPJUz<#!98S6NyBYPn|mT zUI7jOykExF#1eqFVB>v1&+0pXzX146MF-Mtj^LXB1~Qq9bpHJLJ-2V)w!P)R7|Xr( z+G}@?9zFW8D2hd4TmbOXay!g9-wohhr_9%p`lO4$H(urw6x@(>iDmT=xQY$=A1JCUj;A%p#7HPbF28Nd_(z4ZF*?5t;Yc6P_|^0F$+vgz@7a=NZ>3=R%17qZo7*`JB% zq7$=W0agf4Udgo%;8P-c>}0-1Wprj2fHzV3|M?ui--+l?Xdt69M{ESZcPrScT?OzK z5nVxp8CBrcJphj2$y?^^fO!YNJ4BR00~%Er`vQPr0IvXu6|`v`Po4r?2Jmqq1O8_v dQ)@lhe*w1XNPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyS` z3=t*p{aG{s00ulsL_t(o!^K$NYa7`W{?5I3M)N}&dB>6>M?>T|*%XpIgpxH)OrUA% z=Arl@*%UU}ZrF#VG$!DL7W$B<5&|{kA1D+GZ5~Uz+k)G-y4y`13f=Svp}U(+)=88$ zj$_G^Mk8r7n%jqtiq?|99|Bke za2tReWRaaPn=$r1DdoYwj)?vqhT#tY6hCi5Cg=Pn07nSH$>$I2-*Oiw%hIR0I2;pgc1Ps=*@zS4;4lE77@+ZwryFKmFTxfwOVzH#bPB4!(X*p ztsf3eNKuqm7-O#k*cS~o04z3}&7VZM0RXC|X+KS+QjTF5`c`k&Xfztno;@r0zW+@C zey=&a*I+CbJIy)&E)m&8gb0F&_6s4t6a>K{0AJHIXJlmL^<**`XN+MhsH!T6hzCKi z7z9D7mv7N0C*Bf5h-5Mu*L7VZA_{^aa9!7{R;xMFG`~@+)qbofik3_!<3xj}qGefe z*LAgi&)LQSUDprkx^6j+v&*uqxS}XR2*EW?i=|Sjm$KQcO+-flU}k0}6hiPW6}N<< zDE!o^Qy7>~JRXl_G8vn5PQ7F|O;g{sYgZZoW@l$>LI^oXxH{mR2 z!PL~$`;(KC&jEbWHTUDghYzpL&(HsC*ffA?$8jD=Dc^be^y#|*+DDHbUD>y9Uz@SdioUY4qGq$%v>*13_}^I^F&Jd0TCTbrBZuzUH{Cf z?|Gj0;>C-90{A_EUl$66`+W)R*|X=XL^Q`3Bf~KCcsy>Zs;X}G7GW5Mp67X$O2v&D zF95*k=;(-Pnr0tDrLGX)C!*gNhOv0>-n~z?A+&ez-Z$d$_?wnxS)6k|Y`a*i)oQ-) z`?{{{nx<*pigugt`@ZYCwQh9*tONK35iKk)FE;>yPMkRLea`vJR*ri)*^YJ8bzQgC zYPC8Y=n8=OhYug#r;{g7{zyvsMf@ME*=#l{l}feQZ2ACdjIqlCKzbXI+7ZQcUDtG7 z*Xs3py;v-=FbofhFbqe!2@UFKm@aWEGYmslRaGgM%Ql~zo7-I~mD2Tk-5jR#8wQ)T zBOP$gStgTtNK(qz0EnffrO~COCFjwjM`Pu3*{W13RuBZSAPAH&3|XH9-O-#fP4nj@ zrJRheI(-xA(xpo?%gf6zf8I&1Y1(fE5&cn0`BwmW02u(I0L<%qBSB~1Hgy5S!@@ab1_f>nxCIfuB@z# zdY+fui5=CWvy}OK{=tO{7Zzy1BKR5rarf@smlhTl4nBVTIJdU8HWmZ{-)?MTu~;*c z$^2t{eEi9oGiN@Sn3!+@tPe`)5P(Af)UFQ){LY;_=|Z7kt*)+GrBW&3d7ja3x5@YY z7yx37wS^EZRaJe%Fq*b)SF+h`d17K>{m79cCC+(w6>b1{pN2Rp1c1E}MmH-HLzoYs z)1yBjqHtSVM@q>fQmLp!m;mCDf+A{-Mf5$X4WI>}8GWd7Bdh{gC!$ZCRsRB6^-L&} SiHFGm0000Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyS` z3OCG8LN_EydM`=RI{+~2-3;r6k!ATgrBnj|ux)!!2=NpE(u}cw zA;hp(k`Uqp0Q_ty5M%5n0Hi3TT6cGM6aZj#bv13<_8&=-CLPDQ4FHcSq(3=2I{NAr zkQ)J`D2hS|AuTN}+V1XdUI=lwy}ca?A#p`fSozR({nO6QPR46*QUgq%EXy-R7|yv; zjH#*`=;`Uv*Vfj6QhL9mqvN{Q9wQ?o*Or%;p>7~e)A}68Nl{AGcsw3sjPdd{O-)Tr zrfGIrmSrJ&cZ4igE(|#f3;?7QMbS*tjC#S8IHd*xfj}jo|LIgfs;c%Q;tXS~DolwB zQZ4;i6{xMP?Uv&>(~L3AFpN{d)FV<2#&z9k&bek7MwD~j5Ew$p*@0SHTL%#FnW88S zcV>NkJyNmMUX$T)c(4d#nr4)9&JhtBHC9$uB9zj!Wm#KQfx_YNAOK7iooO@-B0@Hs z%^n^e4y&rVRSqSW!3-gyuP}%R&CShPE|;?kg+fBpv`x#hzW?(ri$o$ruIo;5&Q-%O zVw6(m=V`KS+fJv`>3lwKIgaykdwcuKi9?Y{WcWN`j^9&qFc=K(@9$eeh&!65eaq!? zKd`g2b65y5$vIbJvDmr5l&VlDoH&JuFNo{9`9vb|W@2LEA!968T)45Z(L6Ud*W(Ao z`1trrS6A15N%^v~v$Jm(78VZ3=H})O06YKy0RX>?i{|I&9Z8aWaizDncQ2Vt?v~Dt zj*i{~fY$^7bO88Vo|MUC1`sjn2T&%HSpXcP;C=?1E=(_&PkB5dr tp@TF3{cv5^0D#9n8Sx4c*DpoM{sPl*^ITapmRbM+002ovPDHLkV1m))mBIi3 literal 0 HcmV?d00001 diff --git a/res/drawable-ldpi/music.png b/res/drawable-ldpi/music.png new file mode 100644 index 0000000000000000000000000000000000000000..aa4aac163c1244453524e7bf8b206ba0a6f3a2e9 GIT binary patch literal 1202 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 N002ovPDHLkV1kILNqYbQ literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/home.png b/res/drawable-mdpi/home.png new file mode 100644 index 0000000000000000000000000000000000000000..b6d6ccd6f07aa82615e187e0c5f7816b119c7edc GIT binary patch literal 939 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 Hl+XkKqHLsY literal 0 HcmV?d00001 diff --git a/res/drawable/music.png b/res/drawable/music.png new file mode 100644 index 0000000000000000000000000000000000000000..4c844425d644f2c6e83e2962ec6c4dd201e3100e GIT binary patch literal 561 zcmV-10?z%3P)}`JC4z9x5z?ec8%P^Sliwj%T^C5eI8`9rHCEwl!|p*KY&1$(Swv0cX4hNfw8UDxA` zvA9GSh9Q8}0;N)^$2s3r6h(=&2QXPgE+mu5B&Ad#gn$qNO6ek#$^2_H8Z$YQh;*Q; zY777dgTZaFSPaVLvae~{48VP}**t!;8zmrL@I3DXz&(J!LWuB{TQ4A^3n8vnaqA*P zjU%}a9ejrSv_PlRu?ZoiN~N+|pxf_8h^tS8`!+3lrkjv%18-`JoeIk)qE)@!eFF_D21?% + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/landing_page_fragment.xml b/res/layout/landing_page_fragment.xml new file mode 100644 index 00000000..13e5b07f --- /dev/null +++ b/res/layout/landing_page_fragment.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/landing_page_item.xml b/res/layout/landing_page_item.xml new file mode 100644 index 00000000..66fe32ad --- /dev/null +++ b/res/layout/landing_page_item.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/src/eu/alefzero/owncloud/ui/LandingActivity.java b/src/eu/alefzero/owncloud/ui/LandingActivity.java new file mode 100644 index 00000000..acad25f1 --- /dev/null +++ b/src/eu/alefzero/owncloud/ui/LandingActivity.java @@ -0,0 +1,38 @@ +/* ownCloud Android client application + * Copyright (C) 2012 Lennart Rosam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +package eu.alefzero.owncloud.ui; + +import android.os.Bundle; +import android.support.v4.app.FragmentActivity; +import eu.alefzero.owncloud.R; + +/** + * This activity is used as a landing page when the user first opens this app. + * + * @author Lennart Rosam + */ +public class LandingActivity extends FragmentActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.landing_page); + + } + +} diff --git a/src/eu/alefzero/owncloud/ui/fragment/LandingPageFragment.java b/src/eu/alefzero/owncloud/ui/fragment/LandingPageFragment.java new file mode 100644 index 00000000..5d2d92e2 --- /dev/null +++ b/src/eu/alefzero/owncloud/ui/fragment/LandingPageFragment.java @@ -0,0 +1,171 @@ +package eu.alefzero.owncloud.ui.fragment; + +import android.accounts.Account; +import android.accounts.AccountManager; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.BaseAdapter; +import android.widget.GridView; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; +import eu.alefzero.owncloud.R; +import eu.alefzero.owncloud.authenticator.AccountAuthenticator; +import eu.alefzero.owncloud.ui.FileDisplayActivity; +import eu.alefzero.owncloud.ui.Preferences; + +public class LandingPageFragment extends Fragment implements OnItemClickListener { + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View root = inflater.inflate(R.layout.landing_page_fragment, container); + return root; + } + + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + GridView grid = (GridView) getView().findViewById(R.id.gridview); + grid.setAdapter(new LandingScreenAdapter(getActivity())); + grid.setOnItemClickListener(this); + } + + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + Intent intent; + + /** + * If the user selects something and acounts are setup, + * we can use our LandingScreenAdapter to get the matching + * intent for the selected item. + * + * Otherwise, the accounsAreSetuo() method will trigger the + * creation of one. + */ + if(accountsAreSetup()){ + intent = (Intent) parent.getAdapter().getItem(position); + if(intent != null ){ + startActivity(intent); + } else { + Toast toast = Toast.makeText(getActivity(), "Not yet implemented!", Toast.LENGTH_SHORT); + toast.show(); + } + + } + } + + /** + * Checks, whether or not there are any ownCloud accounts + * setup. If there is none, it will create one. + * + * If there are more then one, it will trigger a selection + * unless the selection has not been made yet. + * + * @return true, if there is at least one account. + */ + private boolean accountsAreSetup() { + AccountManager accMan = AccountManager.get(getActivity()); + Account[] accounts = accMan + .getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE); + + if (accounts.length == 0) { + Intent intent = new Intent("android.settings.ADD_ACCOUNT_SETTINGS"); + intent.putExtra("authorities", + new String[] { AccountAuthenticator.AUTH_TOKEN_TYPE }); + startActivity(intent); + return false; + } else if (accounts.length > 1) { + // TODO: Figure out what to do. + } + + return true; + } + + /** + * Used to populate the landing page grid. + * Defined this one right in here as private class + * as it is unlikely that this Adapter can be useful + * anywhere else. + * + * @author Lennart Rosam + * + */ + private class LandingScreenAdapter extends BaseAdapter { + + private Context mContext; + + private final Integer[] mLandingScreenIcons = { R.drawable.home, + R.drawable.music, R.drawable.contacts, + android.R.drawable.ic_menu_today, + android.R.drawable.ic_menu_agenda, + android.R.drawable.ic_menu_preferences }; + + private final Integer[] mLandingScreenTexts = { R.string.main_files, + R.string.main_music, R.string.main_contacts, + R.string.main_calendar, R.string.main_bookmarks, + R.string.main_settings }; + + public LandingScreenAdapter(Context context) { + mContext = context; + } + + @Override + public int getCount() { + return mLandingScreenIcons.length; + } + + @Override + /** + * Returns the Intent associated with this object + * or null if the functionality is not yet implemented + */ + public Object getItem(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(mContext, FileDisplayActivity.class); + break; + case 5: + intent.setClass(mContext, Preferences.class); + break; + default: + intent = null; + } + return intent; + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + if (convertView == null) { + LayoutInflater inflator = LayoutInflater.from(mContext); + convertView = inflator + .inflate(R.layout.landing_page_item, null); + + ImageView icon = (ImageView) convertView + .findViewById(R.id.gridImage); + TextView iconText = (TextView) convertView + .findViewById(R.id.gridText); + + icon.setImageResource(mLandingScreenIcons[position]); + iconText.setText(mLandingScreenTexts[position]); + } + return convertView; + } + + } +} -- 2.11.0