├── libs ├── curiosdk.jar ├── activation.jar └── additionnal.jar ├── src ├── main │ ├── res │ │ ├── drawable │ │ │ ├── blog.png │ │ │ ├── d101.png │ │ │ ├── d201.png │ │ │ ├── d301.png │ │ │ ├── d401.png │ │ │ ├── pro.jpg │ │ │ ├── apiios.png │ │ │ ├── arama.png │ │ │ ├── blogg.jpg │ │ │ ├── d101s.png │ │ │ ├── d201s.png │ │ │ ├── d301s.png │ │ │ ├── d401s.png │ │ │ ├── daire.png │ │ │ ├── feyza.png │ │ │ ├── konum.png │ │ │ ├── sagok.png │ │ │ ├── apiweb401.png │ │ │ ├── apiweb501.png │ │ │ ├── asagiikon.png │ │ │ ├── asagiok.png │ │ │ ├── backarrow.png │ │ │ ├── blogicon.png │ │ │ ├── bloglogo.png │ │ │ ├── egitimial.png │ │ │ ├── egitimkep.png │ │ │ ├── elciicon.png │ │ │ ├── face_icon.png │ │ │ ├── ioslogosu.png │ │ │ ├── kadirhan.png │ │ │ ├── kepikon.png │ │ │ ├── left_back.png │ │ │ ├── linkedin.png │ │ │ ├── mobil_gri.png │ │ │ ├── oyun_gri.png │ │ │ ├── saridaire.png │ │ │ ├── tanerutku.png │ │ │ ├── web_gri.png │ │ │ ├── webblog.png │ │ │ ├── egitimicon.png │ │ │ ├── googleplus.png │ │ │ ├── searchicon.png │ │ │ ├── volkankilic.png │ │ │ ├── yesildaire.png │ │ │ ├── yukariikon.png │ │ │ ├── androidlogosu.png │ │ │ ├── arduinologosu.png │ │ │ ├── defaultimage.png │ │ │ ├── etkinlik_gun.png │ │ │ ├── etkinlikicon.png │ │ │ ├── etkinliklogosu.png │ │ │ ├── haciabdullah.png │ │ │ ├── iletisimicon.png │ │ │ ├── kirmizidaire.png │ │ │ ├── mobil_ust_logo.png │ │ │ ├── orneketkinlik.png │ │ │ ├── oyun_ust_logo.png │ │ │ ├── resim_default.png │ │ │ ├── scratchlogosu.png │ │ │ ├── turuncudaire.png │ │ │ ├── twitter_icon.png │ │ │ ├── web_ust_logo.png │ │ │ ├── youtube_icon.png │ │ │ ├── yusuferenutku.png │ │ │ ├── dogukanyildirim2.png │ │ │ ├── gelistiriciicon.png │ │ │ ├── gizemnuryurdagul.png │ │ │ ├── appinventorlogosu.png │ │ │ ├── oyungelistirmeikon.png │ │ │ ├── webprogramlamaicon.png │ │ │ ├── windowsphonelogosu.png │ │ │ ├── arama_background.xml │ │ │ └── fab_label_background.xml │ │ ├── mipmap-hdpi │ │ │ └── ic_logo.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_logo.png │ │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ │ ├── ic_logo.png │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_logo.png │ │ │ └── ic_launcher.png │ │ ├── values-v16 │ │ │ └── styles.xml │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ ├── color │ │ │ └── selector.xml │ │ ├── menu │ │ │ ├── menu_main.xml │ │ │ ├── menu_arama.xml │ │ │ ├── menu_profil.xml │ │ │ ├── menu_yorum.xml │ │ │ ├── menu_egitim_baslik.xml │ │ │ ├── menu_egitim_icerik.xml │ │ │ ├── menu_blog_icerik_acitivity.xml │ │ │ └── menu_etkinlik_icerik.xml │ │ ├── values │ │ │ ├── curio.xml │ │ │ ├── styles.xml │ │ │ ├── dimens.xml │ │ │ ├── colors.xml │ │ │ └── strings.xml │ │ └── layout │ │ │ ├── fragment_blog_liste.xml │ │ │ ├── toolbar.xml │ │ │ ├── fragment_arama.xml │ │ │ ├── activity_egitim_baslik.xml │ │ │ ├── kategori_parent_item.xml │ │ │ ├── drawer_list_item.xml │ │ │ ├── activity_yorum.xml │ │ │ ├── aramabar.xml │ │ │ ├── kategori_child_item.xml │ │ │ ├── activity_arama.xml │ │ │ ├── fragment_etkinlik.xml │ │ │ ├── fragment_blog.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_etkinlik_icerik.xml │ │ │ ├── fragment_egitim.xml │ │ │ ├── activity_egitim_icerik.xml │ │ │ ├── yorum_satir_tasarim.xml │ │ │ ├── icerik_arama_satir.xml │ │ │ ├── arama_satir_layout.xml │ │ │ ├── activity_blog_icerik_acitivity.xml │ │ │ ├── card_item_etkinlik.xml │ │ │ ├── activity_profil.xml │ │ │ └── card_item_blog.xml │ ├── java │ │ └── com │ │ │ └── turkcell │ │ │ └── gelecegiyazanlar │ │ │ ├── fragments │ │ │ ├── WebFragment.java │ │ │ ├── AramaFragment.java │ │ │ ├── BlogFragment.java │ │ │ ├── MobilFragment.java │ │ │ ├── OyunFragment.java │ │ │ ├── EgitimFragment.java │ │ │ ├── EtkinlikFragment.java │ │ │ ├── IcerikAramaFragment.java │ │ │ ├── BlogEtkinlikListeFragment.java │ │ │ └── ElcilerFragment.java │ │ │ ├── activities │ │ │ ├── MainActivity.java │ │ │ ├── BlogIcerikAcitivity.java │ │ │ ├── EgitimBaslikActivity.java │ │ │ ├── EgitimIcerikActivity.java │ │ │ ├── EtkinlikIcerikActivity.java │ │ │ ├── ProfilActivity.java │ │ │ ├── YorumActivity.java │ │ │ └── AramaActivity.java │ │ │ ├── animations │ │ │ └── DerinSayfaDegisimi.java │ │ │ ├── adapterlisteners │ │ │ ├── ViewPagerAdapter.java │ │ │ ├── ViewPagerAdapterArama.java │ │ │ ├── ViewPagerAdapterBlogEtkinlik.java │ │ │ ├── ViewPagerAdapterProfil.java │ │ │ ├── ListDrawerAdapter.java │ │ │ ├── KullaniciAramaAdapter.java │ │ │ ├── IcerikAramaAdapter.java │ │ │ ├── ListViewAdapterYorum.java │ │ │ ├── MyExpandableAdapter.java │ │ │ ├── RecyclerAdapterEtkinlik.java │ │ │ └── RecyclerAdapterBlog.java │ │ │ ├── services │ │ │ ├── PushNotificationIntentService.java │ │ │ └── PushNotificationBroadcastReceiver.java │ │ │ ├── models │ │ │ ├── DrawerItems.java │ │ │ ├── Egitim.java │ │ │ ├── Icerik.java │ │ │ ├── Kisi.java │ │ │ ├── Yorum.java │ │ │ ├── Etkinlik.java │ │ │ └── Blog.java │ │ │ ├── utilities │ │ │ ├── TarihCevir.java │ │ │ ├── YuklenmeEkran.java │ │ │ └── LruBitmapCache.java │ │ │ ├── configurations │ │ │ ├── AppController.java │ │ │ └── GYConfiguration.java │ │ │ └── designs │ │ │ ├── SlidingTabStrip.java │ │ │ ├── SlidingTabLayoutIcon.java │ │ │ └── SlidingTabLayout.java │ └── AndroidManifest.xml └── androidTest │ └── java │ └── com │ └── turkcell │ └── gelecegiyazanlar │ └── ApplicationTest.java ├── .gitignore ├── proguard-rules.pro ├── README.md └── LICENCE /libs/curiosdk.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/libs/curiosdk.jar -------------------------------------------------------------------------------- /libs/activation.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/libs/activation.jar -------------------------------------------------------------------------------- /libs/additionnal.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/libs/additionnal.jar -------------------------------------------------------------------------------- /src/main/res/drawable/blog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/blog.png -------------------------------------------------------------------------------- /src/main/res/drawable/d101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/d101.png -------------------------------------------------------------------------------- /src/main/res/drawable/d201.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/d201.png -------------------------------------------------------------------------------- /src/main/res/drawable/d301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/d301.png -------------------------------------------------------------------------------- /src/main/res/drawable/d401.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/d401.png -------------------------------------------------------------------------------- /src/main/res/drawable/pro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/pro.jpg -------------------------------------------------------------------------------- /src/main/res/drawable/apiios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/apiios.png -------------------------------------------------------------------------------- /src/main/res/drawable/arama.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/arama.png -------------------------------------------------------------------------------- /src/main/res/drawable/blogg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/blogg.jpg -------------------------------------------------------------------------------- /src/main/res/drawable/d101s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/d101s.png -------------------------------------------------------------------------------- /src/main/res/drawable/d201s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/d201s.png -------------------------------------------------------------------------------- /src/main/res/drawable/d301s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/d301s.png -------------------------------------------------------------------------------- /src/main/res/drawable/d401s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/d401s.png -------------------------------------------------------------------------------- /src/main/res/drawable/daire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/daire.png -------------------------------------------------------------------------------- /src/main/res/drawable/feyza.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/feyza.png -------------------------------------------------------------------------------- /src/main/res/drawable/konum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/konum.png -------------------------------------------------------------------------------- /src/main/res/drawable/sagok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/sagok.png -------------------------------------------------------------------------------- /src/main/res/drawable/apiweb401.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/apiweb401.png -------------------------------------------------------------------------------- /src/main/res/drawable/apiweb501.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/apiweb501.png -------------------------------------------------------------------------------- /src/main/res/drawable/asagiikon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/asagiikon.png -------------------------------------------------------------------------------- /src/main/res/drawable/asagiok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/asagiok.png -------------------------------------------------------------------------------- /src/main/res/drawable/backarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/backarrow.png -------------------------------------------------------------------------------- /src/main/res/drawable/blogicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/blogicon.png -------------------------------------------------------------------------------- /src/main/res/drawable/bloglogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/bloglogo.png -------------------------------------------------------------------------------- /src/main/res/drawable/egitimial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/egitimial.png -------------------------------------------------------------------------------- /src/main/res/drawable/egitimkep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/egitimkep.png -------------------------------------------------------------------------------- /src/main/res/drawable/elciicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/elciicon.png -------------------------------------------------------------------------------- /src/main/res/drawable/face_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/face_icon.png -------------------------------------------------------------------------------- /src/main/res/drawable/ioslogosu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/ioslogosu.png -------------------------------------------------------------------------------- /src/main/res/drawable/kadirhan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/kadirhan.png -------------------------------------------------------------------------------- /src/main/res/drawable/kepikon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/kepikon.png -------------------------------------------------------------------------------- /src/main/res/drawable/left_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/left_back.png -------------------------------------------------------------------------------- /src/main/res/drawable/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/linkedin.png -------------------------------------------------------------------------------- /src/main/res/drawable/mobil_gri.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/mobil_gri.png -------------------------------------------------------------------------------- /src/main/res/drawable/oyun_gri.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/oyun_gri.png -------------------------------------------------------------------------------- /src/main/res/drawable/saridaire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/saridaire.png -------------------------------------------------------------------------------- /src/main/res/drawable/tanerutku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/tanerutku.png -------------------------------------------------------------------------------- /src/main/res/drawable/web_gri.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/web_gri.png -------------------------------------------------------------------------------- /src/main/res/drawable/webblog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/webblog.png -------------------------------------------------------------------------------- /src/main/res/drawable/egitimicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/egitimicon.png -------------------------------------------------------------------------------- /src/main/res/drawable/googleplus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/googleplus.png -------------------------------------------------------------------------------- /src/main/res/drawable/searchicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/searchicon.png -------------------------------------------------------------------------------- /src/main/res/drawable/volkankilic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/volkankilic.png -------------------------------------------------------------------------------- /src/main/res/drawable/yesildaire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/yesildaire.png -------------------------------------------------------------------------------- /src/main/res/drawable/yukariikon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/yukariikon.png -------------------------------------------------------------------------------- /src/main/res/mipmap-hdpi/ic_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/mipmap-hdpi/ic_logo.png -------------------------------------------------------------------------------- /src/main/res/mipmap-mdpi/ic_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/mipmap-mdpi/ic_logo.png -------------------------------------------------------------------------------- /src/main/res/mipmap-xhdpi/ic_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/mipmap-xhdpi/ic_logo.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | /captures 8 | -------------------------------------------------------------------------------- /src/main/res/drawable/androidlogosu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/androidlogosu.png -------------------------------------------------------------------------------- /src/main/res/drawable/arduinologosu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/arduinologosu.png -------------------------------------------------------------------------------- /src/main/res/drawable/defaultimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/defaultimage.png -------------------------------------------------------------------------------- /src/main/res/drawable/etkinlik_gun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/etkinlik_gun.png -------------------------------------------------------------------------------- /src/main/res/drawable/etkinlikicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/etkinlikicon.png -------------------------------------------------------------------------------- /src/main/res/drawable/etkinliklogosu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/etkinliklogosu.png -------------------------------------------------------------------------------- /src/main/res/drawable/haciabdullah.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/haciabdullah.png -------------------------------------------------------------------------------- /src/main/res/drawable/iletisimicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/iletisimicon.png -------------------------------------------------------------------------------- /src/main/res/drawable/kirmizidaire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/kirmizidaire.png -------------------------------------------------------------------------------- /src/main/res/drawable/mobil_ust_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/mobil_ust_logo.png -------------------------------------------------------------------------------- /src/main/res/drawable/orneketkinlik.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/orneketkinlik.png -------------------------------------------------------------------------------- /src/main/res/drawable/oyun_ust_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/oyun_ust_logo.png -------------------------------------------------------------------------------- /src/main/res/drawable/resim_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/resim_default.png -------------------------------------------------------------------------------- /src/main/res/drawable/scratchlogosu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/scratchlogosu.png -------------------------------------------------------------------------------- /src/main/res/drawable/turuncudaire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/turuncudaire.png -------------------------------------------------------------------------------- /src/main/res/drawable/twitter_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/twitter_icon.png -------------------------------------------------------------------------------- /src/main/res/drawable/web_ust_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/web_ust_logo.png -------------------------------------------------------------------------------- /src/main/res/drawable/youtube_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/youtube_icon.png -------------------------------------------------------------------------------- /src/main/res/drawable/yusuferenutku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/yusuferenutku.png -------------------------------------------------------------------------------- /src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/main/res/mipmap-xxhdpi/ic_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/mipmap-xxhdpi/ic_logo.png -------------------------------------------------------------------------------- /src/main/res/drawable/dogukanyildirim2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/dogukanyildirim2.png -------------------------------------------------------------------------------- /src/main/res/drawable/gelistiriciicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/gelistiriciicon.png -------------------------------------------------------------------------------- /src/main/res/drawable/gizemnuryurdagul.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/gizemnuryurdagul.png -------------------------------------------------------------------------------- /src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/main/res/drawable/appinventorlogosu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/appinventorlogosu.png -------------------------------------------------------------------------------- /src/main/res/drawable/oyungelistirmeikon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/oyungelistirmeikon.png -------------------------------------------------------------------------------- /src/main/res/drawable/webprogramlamaicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/webprogramlamaicon.png -------------------------------------------------------------------------------- /src/main/res/drawable/windowsphonelogosu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/res/drawable/windowsphonelogosu.png -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/fragments/WebFragment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/fragments/WebFragment.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/activities/MainActivity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/activities/MainActivity.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/fragments/AramaFragment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/fragments/AramaFragment.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/fragments/BlogFragment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/fragments/BlogFragment.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/fragments/MobilFragment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/fragments/MobilFragment.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/fragments/OyunFragment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/fragments/OyunFragment.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/fragments/EgitimFragment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/fragments/EgitimFragment.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/fragments/EtkinlikFragment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/fragments/EtkinlikFragment.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/activities/BlogIcerikAcitivity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/activities/BlogIcerikAcitivity.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/activities/EgitimBaslikActivity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/activities/EgitimBaslikActivity.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/activities/EgitimIcerikActivity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/activities/EgitimIcerikActivity.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/animations/DerinSayfaDegisimi.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/animations/DerinSayfaDegisimi.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/fragments/IcerikAramaFragment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/fragments/IcerikAramaFragment.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/activities/EtkinlikIcerikActivity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/activities/EtkinlikIcerikActivity.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/adapterlisteners/ViewPagerAdapter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/adapterlisteners/ViewPagerAdapter.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/fragments/BlogEtkinlikListeFragment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/fragments/BlogEtkinlikListeFragment.java -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/services/PushNotificationIntentService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Turkcell/GYAppAnd/HEAD/src/main/java/com/turkcell/gelecegiyazanlar/services/PushNotificationIntentService.java -------------------------------------------------------------------------------- /src/main/res/values-v16/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | -------------------------------------------------------------------------------- /src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /src/main/res/color/selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /src/main/res/menu/menu_arama.xml: -------------------------------------------------------------------------------- 1 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /src/main/res/menu/menu_profil.xml: -------------------------------------------------------------------------------- 1 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /src/main/res/menu/menu_yorum.xml: -------------------------------------------------------------------------------- 1 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /src/main/res/menu/menu_egitim_baslik.xml: -------------------------------------------------------------------------------- 1 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /src/main/res/menu/menu_egitim_icerik.xml: -------------------------------------------------------------------------------- 1 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /src/main/res/menu/menu_blog_icerik_acitivity.xml: -------------------------------------------------------------------------------- 1 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /src/main/res/menu/menu_etkinlik_icerik.xml: -------------------------------------------------------------------------------- 1 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /src/androidTest/java/com/turkcell/gelecegiyazanlar/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /src/main/res/values/curio.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | https://curio.turkcell.com.tr/api/v2/ 4 | XXXXXXXXX 5 | 5DSWWU2F 6 | XXXXXXXX 7 | true 8 | 50 9 | false 10 | 5 11 | 1000 12 | true 13 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/models/DrawerItems.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.models; 2 | 3 | 4 | public class DrawerItems { 5 | 6 | private int icon; 7 | private String text; 8 | 9 | public DrawerItems(int icon, String text) { 10 | this.icon = icon; 11 | this.text = text; 12 | } 13 | 14 | public int getIcon() { 15 | return icon; 16 | } 17 | 18 | public void setIcon(int icon) { 19 | this.icon = icon; 20 | } 21 | 22 | public String getText() { 23 | return text; 24 | } 25 | 26 | public void setText(String text) { 27 | this.text = text; 28 | } 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/utilities/TarihCevir.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.utilities; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.Date; 5 | 6 | /** 7 | * Created by asus on 16.9.2015. 8 | */ 9 | public class TarihCevir { 10 | long tarih; 11 | String tarihformat; 12 | 13 | public TarihCevir() { 14 | 15 | } 16 | 17 | public String Cevir(String timestamp) { 18 | 19 | 20 | tarih = Long.parseLong(timestamp) * 1000; 21 | 22 | java.text.DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 23 | Date netDate = (new Date(tarih)); 24 | 25 | 26 | tarihformat = sdf.format(netDate); 27 | 28 | return tarihformat; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\asus\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /src/main/res/layout/fragment_blog_liste.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 9 | 10 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/res/layout/toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 14 | 15 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/utilities/YuklenmeEkran.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.utilities; 2 | 3 | import android.app.Activity; 4 | import android.app.ProgressDialog; 5 | 6 | import com.turkcell.gelecegiyazanlar.R; 7 | 8 | /** 9 | * Created by asus on 16.9.2015. 10 | */ 11 | public class YuklenmeEkran { 12 | Activity activity; 13 | ProgressDialog pDialog; 14 | 15 | public YuklenmeEkran(Activity mActivity) { 16 | this.activity = mActivity; 17 | } 18 | 19 | public void surecBasla() { 20 | pDialog = new ProgressDialog(activity); 21 | pDialog.setMessage(activity.getString(R.string.yukleniyor)); 22 | pDialog.show(); 23 | } 24 | 25 | public void surecDurdur() { 26 | 27 | if (pDialog != null) { 28 | pDialog.dismiss(); 29 | pDialog = null; 30 | } 31 | 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/services/PushNotificationBroadcastReceiver.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.services; 2 | 3 | import android.app.Activity; 4 | import android.content.ComponentName; 5 | import android.content.Context; 6 | import android.content.Intent; 7 | import android.support.v4.content.WakefulBroadcastReceiver; 8 | 9 | 10 | /** 11 | * 12 | * 13 | * 14 | */ 15 | public class PushNotificationBroadcastReceiver extends WakefulBroadcastReceiver { 16 | 17 | /** 18 | * @param context 19 | * @param intent 20 | */ 21 | @Override 22 | public void onReceive(Context context, Intent intent) { 23 | ComponentName comp = new ComponentName(context.getPackageName(), PushNotificationIntentService.class.getName()); 24 | startWakefulService(context, (intent.setComponent(comp))); 25 | setResultCode(Activity.RESULT_OK); 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 25dp 6 | 15dp 7 | 5dp 8 | 10dp 9 | 17sp 10 | 25sp 11 | 50dp 12 | 100dp 13 | 250dp 14 | 160.5dp 15 | 36dp 16 | 17 | 35dp 18 | 19 | -------------------------------------------------------------------------------- /src/main/res/layout/fragment_arama.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/res/layout/activity_egitim_baslik.xml: -------------------------------------------------------------------------------- 1 | 5 | 11 | 12 | 17 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/res/layout/kategori_parent_item.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 19 | 20 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/res/layout/drawer_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 | 24 | 25 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/models/Egitim.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.models; 2 | 3 | 4 | public class Egitim { 5 | 6 | 7 | public static final String NODE_ID = "nodeID"; 8 | public static final String TITLE_TAG = "title"; 9 | public static final String COLOR_TAG = "color"; 10 | public static final String NODE_ID_EGITIM = "nodeIDEgitim"; 11 | public static final String NODE_TITLE = "nodeTitle"; 12 | 13 | 14 | private String yazar; 15 | private String yazarAvatar; 16 | private String icerik; 17 | 18 | 19 | public Egitim() { 20 | 21 | } 22 | 23 | public String getYazar() { 24 | return yazar; 25 | } 26 | 27 | public void setYazar(String yazar) { 28 | this.yazar = yazar; 29 | } 30 | 31 | public String getYazarAvatar() { 32 | return yazarAvatar; 33 | } 34 | 35 | public void setYazarAvatar(String yazarAvatar) { 36 | this.yazarAvatar = yazarAvatar; 37 | } 38 | 39 | public String getIcerik() { 40 | return icerik; 41 | } 42 | 43 | public void setIcerik(String icerik) { 44 | this.icerik = icerik; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/res/layout/activity_yorum.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 18 | 19 | 20 | 21 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/utilities/LruBitmapCache.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.utilities; 2 | 3 | import android.graphics.Bitmap; 4 | import android.support.v4.util.LruCache; 5 | 6 | import com.android.volley.toolbox.ImageLoader.ImageCache; 7 | 8 | public class LruBitmapCache extends LruCache implements 9 | ImageCache { 10 | public LruBitmapCache() { 11 | this(getDefaultLruCacheSize()); 12 | } 13 | 14 | public LruBitmapCache(int sizeInKiloBytes) { 15 | super(sizeInKiloBytes); 16 | } 17 | 18 | public static int getDefaultLruCacheSize() { 19 | final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024); 20 | final int cacheSize = maxMemory / 8; 21 | 22 | return cacheSize; 23 | } 24 | 25 | @Override 26 | protected int sizeOf(String key, Bitmap value) { 27 | return value.getRowBytes() * value.getHeight() / 1024; 28 | } 29 | 30 | @Override 31 | public Bitmap getBitmap(String url) { 32 | return get(url); 33 | } 34 | 35 | @Override 36 | public void putBitmap(String url, Bitmap bitmap) { 37 | put(url, bitmap); 38 | } 39 | } -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/models/Icerik.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.models; 2 | 3 | 4 | public class Icerik { 5 | private String nodeID, title, date, nodetype, excerpt; 6 | 7 | public Icerik() { 8 | this.nodeID = ""; 9 | this.title = ""; 10 | this.date = ""; 11 | this.nodetype = ""; 12 | this.excerpt = ""; 13 | } 14 | 15 | public String getNodeID() { 16 | return nodeID; 17 | } 18 | 19 | public void setNodeID(String nodeID) { 20 | this.nodeID = nodeID; 21 | } 22 | 23 | public String getTitle() { 24 | return title; 25 | } 26 | 27 | public void setTitle(String title) { 28 | this.title = title; 29 | } 30 | 31 | public String getDate() { 32 | return date; 33 | } 34 | 35 | public void setDate(String date) { 36 | this.date = date; 37 | } 38 | 39 | public String getNodetype() { 40 | return nodetype; 41 | } 42 | 43 | public void setNodetype(String nodetype) { 44 | this.nodetype = nodetype; 45 | } 46 | 47 | public String getExcerpt() { 48 | return excerpt; 49 | } 50 | 51 | public void setExcerpt(String exerpt) { 52 | this.excerpt = exerpt; 53 | } 54 | } -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/models/Kisi.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.models; 2 | 3 | 4 | public class Kisi { 5 | 6 | 7 | public static final String PROFIL_ID = "profilID"; 8 | 9 | private String kullaniciAdi; 10 | private String kullaniciAvatarUrl; 11 | private String adSoyad; 12 | private String kullaniciID; 13 | 14 | 15 | public Kisi() { 16 | 17 | } 18 | 19 | public String getAdSoyad() { 20 | return adSoyad; 21 | } 22 | 23 | public void setAdSoyad(String adSoyad) { 24 | this.adSoyad = adSoyad; 25 | } 26 | 27 | public String getKullaniciAdi() { 28 | return kullaniciAdi; 29 | } 30 | 31 | public void setKullaniciAdi(String kullaniciAdi) { 32 | this.kullaniciAdi = kullaniciAdi; 33 | } 34 | 35 | public String getKullaniciID() { 36 | return kullaniciID; 37 | } 38 | 39 | public void setKullaniciID(String kullaniciID) { 40 | this.kullaniciID = kullaniciID; 41 | } 42 | 43 | public String getKullaniciAvatarUrl() { 44 | return kullaniciAvatarUrl; 45 | } 46 | 47 | public void setKullaniciAvatarUrl(String kullaniciAvatarUrl) { 48 | this.kullaniciAvatarUrl = kullaniciAvatarUrl; 49 | } 50 | 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/res/drawable/arama_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/main/res/layout/aramabar.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 25 | 26 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /src/main/res/layout/kategori_child_item.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 15 | 25 | 26 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/adapterlisteners/ViewPagerAdapterArama.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.adapterlisteners; 2 | 3 | 4 | import android.support.v4.app.Fragment; 5 | import android.support.v4.app.FragmentManager; 6 | import android.support.v4.app.FragmentStatePagerAdapter; 7 | 8 | import com.turkcell.gelecegiyazanlar.fragments.AramaFragment; 9 | 10 | public class ViewPagerAdapterArama extends FragmentStatePagerAdapter { 11 | 12 | CharSequence Titles[]; 13 | int numbOfTabs; // Store the number of tabs, this will also be passed when the ViewPagerAdapter is created 14 | 15 | 16 | // Build a Constructor and assign the passed Values to appropriate values in the class 17 | public ViewPagerAdapterArama(FragmentManager fm, CharSequence mTitles[], int mNumbOfTabsumb) { 18 | super(fm); 19 | 20 | this.Titles = mTitles; 21 | this.numbOfTabs = mNumbOfTabsumb; 22 | 23 | } 24 | 25 | //This method return the fragment for the every position in the View Pager 26 | @Override 27 | public Fragment getItem(int position) { 28 | 29 | 30 | AramaFragment tab = new AramaFragment(); 31 | return tab; 32 | 33 | } 34 | 35 | // This method return the titles for the Tabs in the Tab Strip 36 | 37 | @Override 38 | public CharSequence getPageTitle(int position) { 39 | return Titles[position]; 40 | } 41 | 42 | // This method return the Number of tabs for the tabs Strip 43 | 44 | @Override 45 | public int getCount() { 46 | return numbOfTabs; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/adapterlisteners/ViewPagerAdapterBlogEtkinlik.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.adapterlisteners; 2 | 3 | 4 | import android.support.v4.app.Fragment; 5 | import android.support.v4.app.FragmentManager; 6 | import android.support.v4.app.FragmentStatePagerAdapter; 7 | 8 | import com.turkcell.gelecegiyazanlar.fragments.BlogEtkinlikListeFragment; 9 | 10 | public class ViewPagerAdapterBlogEtkinlik extends FragmentStatePagerAdapter { 11 | 12 | CharSequence titles[]; 13 | int numbOfTabs; // Store the number of tabs, this will also be passed when the ViewPagerAdapter is created 14 | 15 | 16 | // Build a Constructor and assign the passed Values to appropriate values in the class 17 | public ViewPagerAdapterBlogEtkinlik(FragmentManager fm, CharSequence mTitles[], int mNumbOfTabsumb) { 18 | super(fm); 19 | 20 | this.titles = mTitles; 21 | this.numbOfTabs = mNumbOfTabsumb; 22 | 23 | } 24 | 25 | //This method return the fragment for the every position in the View Pager 26 | @Override 27 | public Fragment getItem(int position) { 28 | 29 | return new BlogEtkinlikListeFragment(); 30 | 31 | } 32 | 33 | // This method return the titles for the Tabs in the Tab Strip 34 | 35 | @Override 36 | public CharSequence getPageTitle(int position) { 37 | return titles[position]; 38 | } 39 | 40 | // This method return the Number of tabs for the tabs Strip 41 | 42 | @Override 43 | public int getCount() { 44 | return numbOfTabs; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/models/Yorum.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.models; 2 | 3 | 4 | public class Yorum { 5 | 6 | public static final String YORUM_ID = "yorumID"; 7 | 8 | private String adsoyad; 9 | private String yorum; 10 | private String foto; 11 | private String tarih; 12 | private String id; 13 | 14 | 15 | public Yorum(String adsoyad, String yorum, String foto, String tarih, String id) { 16 | 17 | super(); 18 | this.adsoyad = adsoyad; 19 | this.yorum = yorum; 20 | this.foto = foto; 21 | this.tarih = tarih; 22 | this.id = id; 23 | 24 | } 25 | 26 | public String getId() { 27 | return id; 28 | } 29 | 30 | public void setId(String id) { 31 | this.id = id; 32 | } 33 | 34 | 35 | @Override 36 | public String toString() { 37 | return adsoyad; 38 | } 39 | 40 | public String getAdsoyad() { 41 | return adsoyad; 42 | } 43 | 44 | public void setAdsoyad(String adsoyad) { 45 | this.adsoyad = adsoyad; 46 | } 47 | 48 | public String getYorum() { 49 | return yorum; 50 | } 51 | 52 | public void setYorum(String yorum) { 53 | this.yorum = yorum; 54 | } 55 | 56 | public String getFoto() { 57 | return foto; 58 | } 59 | 60 | public void setFoto(String foto) { 61 | this.foto = foto; 62 | } 63 | 64 | public String getTarih() { 65 | return tarih; 66 | } 67 | 68 | public void setTarih(String tarih) { 69 | this.tarih = tarih; 70 | } 71 | 72 | 73 | } 74 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/adapterlisteners/ViewPagerAdapterProfil.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.adapterlisteners; 2 | 3 | 4 | import android.support.v4.app.Fragment; 5 | import android.support.v4.app.FragmentManager; 6 | import android.support.v4.app.FragmentStatePagerAdapter; 7 | 8 | import com.turkcell.gelecegiyazanlar.fragments.ProfilFragment; 9 | 10 | public class ViewPagerAdapterProfil extends FragmentStatePagerAdapter { 11 | 12 | CharSequence titles[]; // This will Store the Titles of the Tabs which are Going to be passed when ViewPagerAdapter is created 13 | int numbOfTabs; // Store the number of tabs, this will also be passed when the ViewPagerAdapter is created 14 | 15 | 16 | // Build a Constructor and assign the passed Values to appropriate values in the class 17 | public ViewPagerAdapterProfil(FragmentManager fm, CharSequence mTitles[], int mNumbOfTabsumb) { 18 | super(fm); 19 | 20 | this.titles = mTitles; 21 | this.numbOfTabs = mNumbOfTabsumb; 22 | 23 | } 24 | 25 | 26 | //This method return the fragment for the every position in the View Pager 27 | @Override 28 | public Fragment getItem(int position) { 29 | 30 | return new ProfilFragment(); 31 | 32 | } 33 | 34 | // This method return the titles for the Tabs in the Tab Strip 35 | 36 | @Override 37 | public CharSequence getPageTitle(int position) { 38 | return titles[position]; 39 | } 40 | 41 | // This method return the Number of tabs for the tabs Strip 42 | 43 | @Override 44 | public int getCount() { 45 | return numbOfTabs; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/res/layout/activity_arama.xml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 16 | 17 | 21 | 22 | 23 | 32 | 33 | 34 | 41 | 42 | -------------------------------------------------------------------------------- /src/main/res/layout/fragment_etkinlik.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 12 | 13 | 17 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/adapterlisteners/ListDrawerAdapter.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.adapterlisteners; 2 | 3 | import android.view.LayoutInflater; 4 | import android.view.View; 5 | import android.view.ViewGroup; 6 | import android.widget.BaseAdapter; 7 | import android.widget.ImageView; 8 | import android.widget.TextView; 9 | 10 | import com.turkcell.gelecegiyazanlar.R; 11 | import com.turkcell.gelecegiyazanlar.models.DrawerItems; 12 | 13 | import java.util.ArrayList; 14 | 15 | /** 16 | * Created by asus on 27.8.2015. 17 | */ 18 | public class ListDrawerAdapter extends BaseAdapter { 19 | 20 | ArrayList drawerItemList; 21 | 22 | public ListDrawerAdapter(ArrayList drawerItemList) { 23 | this.drawerItemList = drawerItemList; 24 | } 25 | 26 | @Override 27 | public int getCount() { 28 | return drawerItemList.size(); 29 | } 30 | 31 | @Override 32 | public Object getItem(int position) { 33 | return drawerItemList.get(position); 34 | } 35 | 36 | @Override 37 | public long getItemId(int position) { 38 | return 0; 39 | } 40 | 41 | @Override 42 | public View getView(int position, View convertView, ViewGroup parent) { 43 | if (convertView == null) { 44 | LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext()); 45 | convertView = layoutInflater.inflate(R.layout.drawer_list_item, parent, false); 46 | } 47 | 48 | DrawerItems drawerItems = drawerItemList.get(position); 49 | ImageView icon = (ImageView) convertView.findViewById(R.id.icon); 50 | TextView textView = (TextView) convertView.findViewById(R.id.drawerText); 51 | 52 | icon.setImageResource(drawerItems.getIcon()); 53 | textView.setText(drawerItems.getText()); 54 | 55 | return convertView; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/activities/ProfilActivity.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.activities; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.view.ViewPager; 5 | import android.support.v7.app.ActionBarActivity; 6 | import android.support.v7.widget.Toolbar; 7 | 8 | import com.splunk.mint.Mint; 9 | import com.turkcell.gelecegiyazanlar.R; 10 | import com.turkcell.gelecegiyazanlar.adapterlisteners.ViewPagerAdapterProfil; 11 | import com.turkcell.gelecegiyazanlar.configurations.GYConfiguration; 12 | import com.turkcell.gelecegiyazanlar.designs.SlidingTabLayout; 13 | 14 | public class ProfilActivity extends ActionBarActivity { 15 | 16 | public SlidingTabLayout tabs; 17 | CharSequence titles[]; 18 | int tabSayisi = 2; 19 | 20 | ViewPager pager; 21 | ViewPagerAdapterProfil adapter; 22 | 23 | 24 | @Override 25 | protected void onCreate(Bundle savedInstanceState) { 26 | super.onCreate(savedInstanceState); 27 | setContentView(R.layout.activity_profil); 28 | Mint.initAndStartSession(ProfilActivity.this, GYConfiguration.SPLUNK_ID); 29 | Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar_back); 30 | setSupportActionBar(toolbar); 31 | 32 | 33 | titles = new CharSequence[]{getString(R.string.profil_baslik_hakkinda), 34 | getString(R.string.profil_baslik_basari_belgeleri)}; 35 | 36 | adapter = new ViewPagerAdapterProfil(getSupportFragmentManager(), titles, tabSayisi); 37 | 38 | pager = (ViewPager) findViewById(R.id.pagerProfil); 39 | pager.setAdapter(adapter); 40 | 41 | 42 | tabs = (SlidingTabLayout) findViewById(R.id.tabsBlog); 43 | tabs.setDistributeEvenly(true); // tablar?n d?zenlenebilir olmas?n? sa?lar 44 | tabs.setSelectedIndicatorColors(getResources().getColor(R.color.beyaz_renk)); 45 | 46 | tabs.setViewPager(pager); 47 | } 48 | 49 | 50 | } -------------------------------------------------------------------------------- /src/main/res/layout/fragment_blog.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 15 | 22 | 23 | 29 | 30 | 31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 16 | 17 | 18 | 22 | 23 | 28 | 29 | 30 | 31 | 36 | 37 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /src/main/res/layout/activity_etkinlik_icerik.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 11 | 18 | 21 | 29 | 30 | 41 | 42 | 43 | 44 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/main/res/layout/fragment_egitim.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | 14 | 21 | 22 | 28 | 29 | 30 | 31 | 32 | 38 | 39 | 46 | 47 | 48 | 49 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /src/main/res/layout/activity_egitim_icerik.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | 14 | 23 | 24 | 35 | 45 | 46 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /src/main/res/layout/yorum_satir_tasarim.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 15 | 16 | 25 | 26 | 27 | 28 | 29 | 37 | 38 | 48 | 49 | 50 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/configurations/AppController.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.configurations; 2 | 3 | import android.app.Application; 4 | import android.text.TextUtils; 5 | 6 | import com.android.volley.Request; 7 | import com.android.volley.RequestQueue; 8 | import com.android.volley.toolbox.ImageLoader; 9 | import com.android.volley.toolbox.Volley; 10 | import com.splunk.mint.Mint; 11 | import com.turkcell.gelecegiyazanlar.utilities.LruBitmapCache; 12 | 13 | public class AppController extends Application { 14 | 15 | public static final String TAG = AppController.class.getSimpleName(); 16 | private static AppController mInstance; 17 | private RequestQueue mRequestQueue; 18 | private ImageLoader mImageLoader; 19 | 20 | public static synchronized AppController getInstance() { 21 | return mInstance; 22 | } 23 | 24 | @Override 25 | public void onCreate() { 26 | super.onCreate(); 27 | Mint.initAndStartSession(getApplicationContext(), GYConfiguration.SPLUNK_ID); 28 | mInstance = this; 29 | } 30 | 31 | public RequestQueue getRequestQueue() { 32 | if (mRequestQueue == null) { 33 | mRequestQueue = Volley.newRequestQueue(getApplicationContext()); 34 | } 35 | 36 | return mRequestQueue; 37 | } 38 | 39 | public ImageLoader getImageLoader() { 40 | getRequestQueue(); 41 | if (mImageLoader == null) { 42 | mImageLoader = new ImageLoader(this.mRequestQueue, 43 | new LruBitmapCache()); 44 | } 45 | return this.mImageLoader; 46 | } 47 | 48 | public void addToRequestQueue(Request req, String tag) { 49 | // set the default tag if tag is empty 50 | req.setTag(TextUtils.isEmpty(tag) ? TAG : tag); 51 | getRequestQueue().add(req); 52 | } 53 | 54 | public void addToRequestQueue(Request req) { 55 | req.setTag(TAG); 56 | getRequestQueue().add(req); 57 | } 58 | 59 | public void cancelPendingRequests(Object tag) { 60 | if (mRequestQueue != null) { 61 | mRequestQueue.cancelAll(tag); 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/models/Etkinlik.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.models; 2 | 3 | 4 | public class Etkinlik { 5 | 6 | 7 | public static final String ETKINLIK_ID = "etkinlikID"; 8 | 9 | private String nodeID; 10 | private String title; 11 | private String startDate; 12 | private String endDate; 13 | private String sonBasvuruTarihi; 14 | private String kalanGun; 15 | private String image; 16 | 17 | 18 | public Etkinlik() { 19 | 20 | } 21 | 22 | 23 | public Etkinlik(String nodeID, String title, String startDate, String endDate, String thumbnail, String day) { 24 | this.title = title; 25 | this.startDate = startDate; 26 | this.endDate = endDate; 27 | this.image = thumbnail; 28 | this.nodeID = nodeID; 29 | this.kalanGun = day; 30 | 31 | } 32 | 33 | 34 | public String getImage() { 35 | return image; 36 | } 37 | 38 | public void setImage(String image) { 39 | this.image = image; 40 | } 41 | 42 | 43 | public String getNodeID() { 44 | 45 | return nodeID; 46 | } 47 | 48 | public void setNodeID(String nodeID) { 49 | this.nodeID = nodeID; 50 | } 51 | 52 | public String getTitle() { 53 | return title; 54 | } 55 | 56 | public void setTitle(String title) { 57 | this.title = title; 58 | } 59 | 60 | public String getStartDate() { 61 | return startDate; 62 | } 63 | 64 | public void setStartDate(String startDate) { 65 | this.startDate = startDate; 66 | } 67 | 68 | public String getEndDate() { 69 | return endDate; 70 | } 71 | 72 | public void setEndDate(String endDate) { 73 | this.endDate = endDate; 74 | } 75 | 76 | public String getSonBasvuruTarihi() { 77 | return sonBasvuruTarihi; 78 | } 79 | 80 | public void setSonBasvuruTarihi(String sonBasvuruTarihi) { 81 | this.sonBasvuruTarihi = sonBasvuruTarihi; 82 | } 83 | 84 | 85 | public String getKalanGun() { 86 | return kalanGun; 87 | } 88 | 89 | public void setKalanGun(String kalanGun) { 90 | this.kalanGun = kalanGun; 91 | } 92 | 93 | 94 | } 95 | -------------------------------------------------------------------------------- /src/main/res/drawable/fab_label_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/adapterlisteners/KullaniciAramaAdapter.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.adapterlisteners; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | import android.widget.BaseAdapter; 9 | import android.widget.TextView; 10 | 11 | import com.android.volley.toolbox.ImageLoader; 12 | import com.android.volley.toolbox.NetworkImageView; 13 | import com.turkcell.gelecegiyazanlar.R; 14 | import com.turkcell.gelecegiyazanlar.configurations.AppController; 15 | import com.turkcell.gelecegiyazanlar.models.Kisi; 16 | 17 | import java.util.List; 18 | 19 | /** 20 | * Created by asus on 17.9.2015. 21 | */ 22 | public class KullaniciAramaAdapter extends BaseAdapter { 23 | ImageLoader image = AppController.getInstance().getImageLoader(); 24 | private LayoutInflater layoutInflater; 25 | private List adapterKisiList; 26 | 27 | public KullaniciAramaAdapter(Activity activity, List kisiler) { 28 | layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 29 | adapterKisiList = kisiler; 30 | 31 | } 32 | 33 | 34 | @Override 35 | public int getCount() { 36 | return adapterKisiList.size(); 37 | } 38 | 39 | @Override 40 | public Object getItem(int position) { 41 | return adapterKisiList.get(position); 42 | } 43 | 44 | @Override 45 | public long getItemId(int position) { 46 | return position; 47 | } 48 | 49 | @Override 50 | public View getView(int position, View convertView, ViewGroup parent) { 51 | 52 | if (image == null) { 53 | image = AppController.getInstance().getImageLoader(); 54 | } 55 | 56 | 57 | View view = layoutInflater.inflate(R.layout.arama_satir_layout, parent, false); 58 | TextView textView = (TextView) view.findViewById(R.id.tvisimsoyisim); 59 | TextView kullanici = (TextView) view.findViewById(R.id.tvkullanici); 60 | NetworkImageView imageView = (NetworkImageView) view.findViewById(R.id.ivsimge); 61 | 62 | 63 | Kisi kisi = adapterKisiList.get(position); 64 | textView.setText(kisi.getAdSoyad()); 65 | kullanici.setText(kisi.getKullaniciAdi()); 66 | imageView.setImageUrl(kisi.getKullaniciAvatarUrl(), image); 67 | 68 | 69 | return view; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/main/res/layout/icerik_arama_satir.xml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 19 | 27 | 28 | 35 | 36 | 37 | 42 | 50 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/models/Blog.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.models; 2 | 3 | 4 | public class Blog { 5 | 6 | public static final String BLOG_ID = "blogID"; 7 | 8 | private String author; 9 | private String excerpt; 10 | private String date; 11 | private String title; 12 | private String categories; 13 | private String blogID; 14 | private String profilID; 15 | private String avatar; 16 | private String image; 17 | 18 | 19 | public Blog(String title, String date, String author, String excerpt, String categories, String avatar, String image, String profilID, String blogID) { 20 | this.author = author; 21 | this.excerpt = excerpt; 22 | this.date = date; 23 | this.title = title; 24 | this.categories = categories; 25 | this.image = image; 26 | this.avatar = avatar; 27 | this.profilID = profilID; 28 | this.blogID = blogID; 29 | 30 | } 31 | 32 | public String getProfilID() { 33 | return profilID; 34 | } 35 | 36 | public void setProfilID(String profilID) { 37 | this.profilID = profilID; 38 | } 39 | 40 | public String getTitle() { 41 | return title; 42 | } 43 | 44 | public void setTitle(String title) { 45 | this.title = title; 46 | } 47 | 48 | public String getAuthor() { 49 | return author; 50 | } 51 | 52 | public void setAuthor(String author) { 53 | this.author = author; 54 | } 55 | 56 | public String getExcerpt() { 57 | return excerpt; 58 | } 59 | 60 | public void setExcerpt(String excerpt) { 61 | this.excerpt = excerpt; 62 | } 63 | 64 | public String getDate() { 65 | return date; 66 | } 67 | 68 | public void setDate(String date) { 69 | this.date = date; 70 | } 71 | 72 | public String getCategories() { 73 | return categories; 74 | } 75 | 76 | public void setCategories(String categories) { 77 | this.categories = categories; 78 | } 79 | 80 | public String getBlogID() { 81 | return blogID; 82 | } 83 | 84 | public void setBlogID(String blogID) { 85 | this.blogID = blogID; 86 | } 87 | 88 | public String getAvatar() { 89 | return avatar; 90 | } 91 | 92 | public void setAvatar(String avatar) { 93 | this.avatar = avatar; 94 | } 95 | 96 | 97 | public String getImage() { 98 | return image; 99 | } 100 | 101 | public void setImage(String image) { 102 | this.image = image; 103 | } 104 | 105 | 106 | } 107 | -------------------------------------------------------------------------------- /src/main/res/layout/arama_satir_layout.xml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 14 | 15 | 16 | 23 | 28 | 32 | 40 | 41 | 47 | 48 | 49 | 54 | 62 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/configurations/GYConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.configurations; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.content.DialogInterface; 6 | import android.net.ConnectivityManager; 7 | import android.net.NetworkInfo; 8 | import android.support.v7.app.AlertDialog; 9 | 10 | import com.turkcell.gelecegiyazanlar.R; 11 | 12 | 13 | enum Domain { 14 | TESTOZGUR, TESTTURKCELL, PRP, PROD 15 | }; 16 | 17 | 18 | public class GYConfiguration { 19 | 20 | public static String SPLUNK_ID = "75ff8154"; 21 | //Dinamik 22 | static Domain domain = Domain.PROD; 23 | 24 | public static String getDomain() { 25 | 26 | String url = null; 27 | 28 | if (domain == Domain.PROD) { 29 | url = "https://gelecegiyazanlar.turkcell.com.tr/gypservis/"; 30 | } else if (domain == Domain.TESTOZGUR) { 31 | url = "https://gelecegiyazanlar.turkcell.com.tr/gypservis/"; 32 | } else if (domain == Domain.TESTTURKCELL) { 33 | url = "https://gelecegiyazanlar.turkcell.com.tr/gypservis/"; 34 | } else if (domain == Domain.PRP) { 35 | url = "https://gelecegiyazanlar.turkcell.com.tr/gypservis/"; 36 | } 37 | 38 | return url; 39 | } 40 | 41 | public static boolean isNetworkAvailable(Activity activity) { 42 | ConnectivityManager connectivityManager = (ConnectivityManager) activity.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); 43 | NetworkInfo activeNetworkInfo = connectivityManager 44 | .getActiveNetworkInfo(); 45 | return activeNetworkInfo != null; 46 | } 47 | 48 | public static void showDialog(Activity activity, String message) { 49 | 50 | final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity); 51 | alertDialogBuilder.setMessage(message); 52 | 53 | alertDialogBuilder.setPositiveButton(activity.getString(R.string.buton_tamam_metni), new DialogInterface.OnClickListener() { 54 | @Override 55 | public void onClick(DialogInterface arg0, int arg1) { 56 | arg0.dismiss(); 57 | } 58 | }); 59 | 60 | 61 | AlertDialog alertDialog = alertDialogBuilder.create(); 62 | alertDialog.show(); 63 | } 64 | 65 | public static boolean checkInternetConnectionShowDialog(Activity activity) { 66 | 67 | if (!isNetworkAvailable(activity)) { 68 | showDialog(activity, activity.getString(R.string.internet_baglantinizi_kontrol_edin)); 69 | return false; 70 | } else { 71 | return true; 72 | } 73 | 74 | 75 | } 76 | 77 | 78 | 79 | } 80 | 81 | 82 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/adapterlisteners/IcerikAramaAdapter.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.adapterlisteners; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.text.Html; 7 | import android.view.LayoutInflater; 8 | import android.view.View; 9 | import android.view.ViewGroup; 10 | import android.widget.BaseAdapter; 11 | import android.widget.TextView; 12 | 13 | import com.turkcell.gelecegiyazanlar.R; 14 | import com.turkcell.gelecegiyazanlar.activities.BlogIcerikAcitivity; 15 | import com.turkcell.gelecegiyazanlar.models.Blog; 16 | import com.turkcell.gelecegiyazanlar.models.Icerik; 17 | 18 | import java.util.List; 19 | 20 | /** 21 | * Created by asus on 30.9.2015. 22 | */ 23 | public class IcerikAramaAdapter extends BaseAdapter { 24 | 25 | Activity activity; 26 | private LayoutInflater layoutInflater; 27 | private List adapterIcerikList; 28 | 29 | public IcerikAramaAdapter(Activity activity, List icerikler) { 30 | layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 31 | adapterIcerikList = icerikler; 32 | this.activity = activity; 33 | 34 | } 35 | 36 | 37 | @Override 38 | public int getCount() { 39 | return adapterIcerikList.size(); 40 | } 41 | 42 | @Override 43 | public Object getItem(int position) { 44 | return adapterIcerikList.get(position); 45 | } 46 | 47 | @Override 48 | public long getItemId(int position) { 49 | return position; 50 | } 51 | 52 | @Override 53 | public View getView(int position, View convertView, final ViewGroup parent) { 54 | 55 | // if(image==null){ 56 | // image=AppController.getInstance().getImageLoader(); 57 | // } 58 | 59 | 60 | final View view = layoutInflater.inflate(R.layout.icerik_arama_satir, parent, false); 61 | TextView tvbaslik = (TextView) view.findViewById(R.id.tvbaslik); 62 | TextView tvicerik = (TextView) view.findViewById(R.id.tvicerik); 63 | //NetworkImageView imageView = (NetworkImageView) view.findViewById(R.id.ivsimge); 64 | 65 | 66 | final Icerik icerik = adapterIcerikList.get(position); 67 | tvbaslik.setText(icerik.getTitle()); 68 | tvicerik.setText(Html.fromHtml(icerik.getExcerpt())); 69 | //imageView.setImageUrl(icerik.getKullaniciAvatarUrl(),image); 70 | 71 | view.setOnClickListener(new View.OnClickListener() { 72 | @Override 73 | public void onClick(View v) { 74 | Intent i = new Intent(activity, BlogIcerikAcitivity.class); 75 | i.putExtra(Blog.BLOG_ID, icerik.getNodeID()); 76 | activity.startActivity(i); 77 | } 78 | }); 79 | 80 | 81 | return view; 82 | } 83 | } -------------------------------------------------------------------------------- /src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3fb0e8 4 | #ff4190c9 5 | #fff5f49b 6 | #f2ca43 7 | #a5c845 8 | #4c5b6a 9 | #333f4f 10 | #3fbaf9 11 | #f7a750 12 | #e06b60 13 | #f16529 14 | #722791 15 | #ff8c8f8c 16 | #3d4455 17 | #7AB2C3 18 | #437ab2c3 19 | #fff 20 | #15979C 21 | #88969696 22 | #2196F3 23 | #ff747474 24 | #e3e3e3 25 | #dde0e3 26 | #f2fcff 27 | #a4000000 28 | #ff999999 29 | #f5f7f5 30 | #55a3d0 31 | #615d64 32 | #99bab5c0 33 | #ff808080 34 | #88000000 35 | #b9b9b9 36 | #20afbbaf 37 | #ffcfa83e 38 | #ff6d6d6d 39 | #fff5f7f7 40 | #ff6c6c6c 41 | #3b8ce2 42 | 43 | 44 | #ff2929 45 | #ff5252 46 | #727272 47 | 48 | //sosyal medya 49 | #43609B 50 | #55ACEE 51 | #DF2826 52 | #0077B5 53 | #fffff16e 54 | 55 | 56 | #ff333b66 57 | #ff427cab 58 | #ffb42321 59 | #ff025e99 60 | #ffe5d768 61 | 62 | -------------------------------------------------------------------------------- /src/main/res/layout/activity_blog_icerik_acitivity.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 15 | 16 | 17 | 20 | 28 | 29 | 40 | 41 | /> 42 | 43 | 51 | 52 | 53 | 54 | 55 | 63 | 64 | 70 | 71 | 79 | 80 | 81 | 82 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 21 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 35 | 36 | 40 | 41 | 45 | 46 | 50 | 51 | 55 | 56 | 60 | 61 | 65 | 66 | 67 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/adapterlisteners/ListViewAdapterYorum.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.adapterlisteners; 2 | 3 | /** 4 | * Created by macbook on 9/9/15. 5 | */ 6 | 7 | import android.app.Activity; 8 | import android.content.Context; 9 | import android.content.Intent; 10 | import android.graphics.Bitmap; 11 | import android.text.Html; 12 | import android.view.LayoutInflater; 13 | import android.view.View; 14 | import android.view.ViewGroup; 15 | import android.widget.BaseAdapter; 16 | import android.widget.ImageView; 17 | import android.widget.TextView; 18 | 19 | import com.android.volley.Response; 20 | import com.android.volley.VolleyError; 21 | import com.android.volley.toolbox.ImageRequest; 22 | import com.turkcell.gelecegiyazanlar.R; 23 | import com.turkcell.gelecegiyazanlar.activities.ProfilActivity; 24 | import com.turkcell.gelecegiyazanlar.configurations.AppController; 25 | import com.turkcell.gelecegiyazanlar.models.Yorum; 26 | 27 | import java.util.List; 28 | 29 | /** 30 | * Created by macbook on 9/9/15. 31 | */ 32 | public class ListViewAdapterYorum extends BaseAdapter { 33 | 34 | private LayoutInflater mInflater; 35 | private List mYorumListesi; 36 | 37 | 38 | public ListViewAdapterYorum(Activity activity, List yorumlar) { 39 | //XML'i alıp View'a çevirecek inflater'ı örnekleyelim 40 | mInflater = (LayoutInflater) activity.getSystemService( 41 | Context.LAYOUT_INFLATER_SERVICE); 42 | //gösterilecek listeyi de alalım 43 | mYorumListesi = yorumlar; 44 | } 45 | 46 | @Override 47 | public int getCount() { 48 | return mYorumListesi.size(); 49 | } 50 | 51 | @Override 52 | public Yorum getItem(int position) { 53 | //şöyle de olabilir: public Object getItem(int position) 54 | return mYorumListesi.get(position); 55 | } 56 | 57 | @Override 58 | public long getItemId(int position) { 59 | return position; 60 | } 61 | 62 | @Override 63 | public View getView(int position, View convertView, ViewGroup parent) { 64 | View satirView; 65 | 66 | satirView = mInflater.inflate(R.layout.yorum_satir_tasarim, null); 67 | TextView textView = 68 | (TextView) satirView.findViewById(R.id.isimsoyisim); 69 | ImageView imageView = 70 | (ImageView) satirView.findViewById(R.id.simge); 71 | 72 | 73 | TextView yorum = 74 | (TextView) satirView.findViewById(R.id.yorum); 75 | 76 | TextView tarih = 77 | (TextView) satirView.findViewById(R.id.tarih); 78 | 79 | final Yorum kisi = mYorumListesi.get(position); 80 | 81 | 82 | textView.setText(kisi.getAdsoyad()); 83 | yorum.setText(Html.fromHtml(kisi.getYorum())); 84 | tarih.setText(kisi.getTarih()); 85 | imageView.setImageDrawable(satirView.getResources().getDrawable(R.drawable.resim_default)); 86 | ResimGoruntule(String.valueOf(kisi.getFoto()), imageView); 87 | 88 | imageView.setOnClickListener(new View.OnClickListener() { 89 | @Override 90 | public void onClick(View v) { 91 | Intent i = new Intent(v.getContext(), ProfilActivity.class); 92 | i.putExtra("id", kisi.getId()); 93 | v.getContext().startActivity(i); 94 | } 95 | }); 96 | 97 | 98 | return satirView; 99 | } 100 | 101 | public void ResimGoruntule(String resimURL, final ImageView image) { 102 | 103 | ImageRequest im = new ImageRequest(resimURL, new Response.Listener() { 104 | @Override 105 | public void onResponse(Bitmap response) { 106 | image.setImageBitmap(response); 107 | } 108 | }, 0, 0, null, new Response.ErrorListener() { 109 | @Override 110 | public void onErrorResponse(VolleyError error) { 111 | 112 | } 113 | }); 114 | AppController.getInstance().addToRequestQueue(im); 115 | } 116 | } -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/activities/YorumActivity.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.activities; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.ActionBarActivity; 5 | import android.util.Log; 6 | import android.view.View; 7 | import android.widget.ListView; 8 | import android.widget.TextView; 9 | 10 | import com.android.volley.Request; 11 | import com.android.volley.Response; 12 | import com.android.volley.VolleyError; 13 | import com.android.volley.toolbox.JsonArrayRequest; 14 | import com.splunk.mint.Mint; 15 | import com.turkcell.gelecegiyazanlar.R; 16 | import com.turkcell.gelecegiyazanlar.adapterlisteners.ListViewAdapterYorum; 17 | import com.turkcell.gelecegiyazanlar.configurations.AppController; 18 | import com.turkcell.gelecegiyazanlar.configurations.GYConfiguration; 19 | import com.turkcell.gelecegiyazanlar.models.Yorum; 20 | import com.turkcell.gelecegiyazanlar.utilities.TarihCevir; 21 | import com.turkcell.gelecegiyazanlar.utilities.YuklenmeEkran; 22 | 23 | import org.json.JSONArray; 24 | import org.json.JSONException; 25 | 26 | import java.util.ArrayList; 27 | import java.util.List; 28 | 29 | public class YorumActivity extends ActionBarActivity { 30 | 31 | 32 | final List yorumlar = new ArrayList(); 33 | String url; 34 | 35 | String nodeID; 36 | JsonArrayRequest request; 37 | String icon; 38 | TextView yorumYok; 39 | 40 | ListView listemiz; 41 | 42 | YuklenmeEkran ekran; 43 | TarihCevir tarihCevir; 44 | 45 | @Override 46 | protected void onCreate(Bundle savedInstanceState) { 47 | super.onCreate(savedInstanceState); 48 | setContentView(R.layout.activity_yorum); 49 | Mint.initAndStartSession(YorumActivity.this, GYConfiguration.SPLUNK_ID); 50 | url = GYConfiguration.getDomain() + "yorumlar/retrieve?nodeID="; 51 | 52 | ekran = new YuklenmeEkran(this); 53 | tarihCevir = new TarihCevir(); 54 | 55 | listemiz = (ListView) findViewById(R.id.liste); 56 | 57 | yorumYok = (TextView) findViewById(R.id.yorumyok); 58 | 59 | Bundle bundle = getIntent().getExtras(); 60 | nodeID = bundle.getString(Yorum.YORUM_ID); 61 | 62 | Goruntule(nodeID); 63 | 64 | 65 | } 66 | 67 | 68 | public void Goruntule(String nodeid) { 69 | 70 | ekran.surecBasla(); 71 | request = new JsonArrayRequest(Request.Method.GET, url + nodeid, null, new Response.Listener() { 72 | @Override 73 | public void onResponse(JSONArray response) { 74 | ekran.surecDurdur(); 75 | try { 76 | 77 | 78 | if (response.length() == 0) { 79 | yorumYok.setVisibility(View.VISIBLE); 80 | 81 | } else { 82 | for (int i = 0; i < response.length(); i++) { 83 | String isimsoyisim = response.getJSONObject(i).getString("adSoyad"); 84 | String yorum = response.getJSONObject(i).getString("content"); 85 | icon = response.getJSONObject(i).getString("authorAvatarUrl"); 86 | String tarihVeri = response.getJSONObject(i).getString("date"); 87 | String authorID = response.getJSONObject(i).getString("authorID"); 88 | 89 | Log.d("TAG:", icon); 90 | 91 | 92 | //add to 93 | yorumlar.add(new Yorum(isimsoyisim, yorum, icon, tarihCevir.Cevir(tarihVeri), authorID)); 94 | 95 | } 96 | 97 | 98 | } 99 | } catch (JSONException e) { 100 | e.printStackTrace(); 101 | } 102 | ListViewAdapterYorum adaptorumuz = new ListViewAdapterYorum(YorumActivity.this, yorumlar); 103 | listemiz.setAdapter(adaptorumuz); 104 | 105 | } 106 | 107 | 108 | }, 109 | 110 | new Response.ErrorListener() { 111 | @Override 112 | public void onErrorResponse(VolleyError error) { 113 | Log.d("hata", "hata"); 114 | } 115 | }); 116 | 117 | 118 | AppController.getInstance().addToRequestQueue(request); 119 | } 120 | 121 | 122 | } 123 | -------------------------------------------------------------------------------- /src/main/res/layout/card_item_etkinlik.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 21 | 22 | 23 | 24 | 28 | 33 | 44 | 51 | 61 | 73 | 74 | 83 | 84 | 85 | 86 | 87 | 97 | 98 | 105 | 111 | 117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /src/main/res/layout/activity_profil.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 14 | 15 | 19 | 23 | 29 | 30 | 38 | 39 | 40 | 48 | 49 | 54 | 55 | 59 | 60 | 69 | 70 | 76 | 77 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 104 | 105 | 109 | 110 | 111 | 112 | 113 | 120 | 121 | 122 | 123 | 124 | 125 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/activities/AramaActivity.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.activities; 2 | 3 | import android.content.DialogInterface; 4 | import android.os.Bundle; 5 | import android.support.design.widget.TabLayout; 6 | import android.support.v4.app.Fragment; 7 | import android.support.v4.app.FragmentPagerAdapter; 8 | import android.support.v4.view.ViewPager; 9 | import android.support.v7.app.AlertDialog; 10 | import android.support.v7.app.AppCompatActivity; 11 | import android.support.v7.widget.Toolbar; 12 | import android.view.View; 13 | 14 | import com.splunk.mint.Mint; 15 | import com.turkcell.gelecegiyazanlar.R; 16 | import com.turkcell.gelecegiyazanlar.configurations.GYConfiguration; 17 | import com.turkcell.gelecegiyazanlar.fragments.AramaFragment; 18 | import com.turkcell.gelecegiyazanlar.fragments.IcerikAramaFragment; 19 | 20 | public class AramaActivity extends AppCompatActivity { 21 | 22 | public TabLayout tabs; 23 | 24 | ViewPager pager; 25 | 26 | @Override 27 | protected void onCreate(Bundle savedInstanceState) { 28 | super.onCreate(savedInstanceState); 29 | setContentView(R.layout.activity_arama); 30 | 31 | Mint.initAndStartSession(AramaActivity.this, GYConfiguration.SPLUNK_ID); 32 | 33 | Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar_ara); 34 | setSupportActionBar(toolbar); 35 | 36 | 37 | if (!GYConfiguration.isNetworkAvailable(AramaActivity.this)) { 38 | final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); 39 | alertDialogBuilder.setMessage(getResources().getString(R.string.internet_baglantinizi_kontrol_edin)); 40 | 41 | alertDialogBuilder.setPositiveButton(getResources().getString(R.string.tamam), new DialogInterface.OnClickListener() { 42 | @Override 43 | public void onClick(DialogInterface arg0, int arg1) { 44 | arg0.dismiss(); 45 | } 46 | }); 47 | 48 | 49 | AlertDialog alertDialog = alertDialogBuilder.create(); 50 | alertDialog.show(); 51 | } 52 | 53 | 54 | pager = (ViewPager) findViewById(R.id.pagerArama); 55 | pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 56 | @Override 57 | public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 58 | managePageChanged(); 59 | } 60 | 61 | @Override 62 | public void onPageSelected(int position) { 63 | managePageChanged(); 64 | } 65 | 66 | @Override 67 | public void onPageScrollStateChanged(int state) { 68 | 69 | } 70 | }); 71 | MyPagerAdapter pagerAdapter = new MyPagerAdapter(getSupportFragmentManager()); 72 | pager.setAdapter(pagerAdapter); 73 | 74 | 75 | tabs = (TabLayout) findViewById(R.id.tabsArama); 76 | tabs.setTabsFromPagerAdapter(pagerAdapter); 77 | 78 | 79 | tabs.setupWithViewPager(pager); 80 | 81 | 82 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 83 | getSupportActionBar().setDisplayShowHomeEnabled(true); 84 | 85 | toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.left_back)); 86 | toolbar.setNavigationOnClickListener(new View.OnClickListener() { 87 | @Override 88 | public void onClick(View v) { 89 | finish(); 90 | } 91 | }); 92 | } 93 | 94 | public Fragment getCurrentFragment() { 95 | Fragment page = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pagerArama + ":" + pager.getCurrentItem()); 96 | return page; 97 | } 98 | 99 | private void managePageChanged() { 100 | IArama aramaFragment = (IArama) getCurrentFragment(); 101 | if (aramaFragment != null) 102 | aramaFragment.onPageActivated(); 103 | } 104 | 105 | public static interface IArama { 106 | void onPageActivated(); 107 | } 108 | 109 | private class MyPagerAdapter extends FragmentPagerAdapter { 110 | 111 | public MyPagerAdapter(android.support.v4.app.FragmentManager fm) { 112 | super(fm); 113 | } 114 | 115 | @Override 116 | public android.support.v4.app.Fragment getItem(int pos) { 117 | switch (pos) { 118 | 119 | case 0: 120 | return IcerikAramaFragment.newInstance(); 121 | case 1: 122 | return AramaFragment.newInstance(); 123 | default: 124 | return IcerikAramaFragment.newInstance(); 125 | } 126 | } 127 | 128 | @Override 129 | public int getCount() { 130 | return 2; 131 | } 132 | 133 | @Override 134 | public CharSequence getPageTitle(int position) { 135 | String title; 136 | if (position == 0) { 137 | title = getString(R.string.arama_sayfasi_icerikler_baslik); 138 | } else { 139 | title = getString(R.string.arama_sayfasi_kullanicilar_baslik); 140 | } 141 | return title; 142 | } 143 | } 144 | 145 | 146 | } 147 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/fragments/ElcilerFragment.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.fragments; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | import android.widget.LinearLayout; 9 | 10 | import com.turkcell.gelecegiyazanlar.R; 11 | import com.turkcell.gelecegiyazanlar.activities.ProfilActivity; 12 | import com.turkcell.gelecegiyazanlar.models.Kisi; 13 | 14 | 15 | public class ElcilerFragment extends android.support.v4.app.Fragment { 16 | 17 | LinearLayout lyDogukanYildirim; 18 | LinearLayout lyGizemYurdagul; 19 | LinearLayout lyAbdullahSarikaya; 20 | LinearLayout lyKadirhanEkmekcioglu; 21 | LinearLayout lyTanerUtku; 22 | LinearLayout lyErenUtku; 23 | LinearLayout lyVolkanKilic; 24 | LinearLayout lyFeyzaOkumus; 25 | String id; 26 | 27 | 28 | @Override 29 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 30 | Bundle savedInstanceState) { 31 | // Inflate the layout for this fragment 32 | View rootView = inflater.inflate(R.layout.fragment_gelistiriciler, container, false); 33 | 34 | 35 | lyFeyzaOkumus = (LinearLayout) rootView.findViewById(R.id.feyza); 36 | lyDogukanYildirim = (LinearLayout) rootView.findViewById(R.id.dogukanYildirim); 37 | lyGizemYurdagul = (LinearLayout) rootView.findViewById(R.id.gizemYurdagul); 38 | lyAbdullahSarikaya = (LinearLayout) rootView.findViewById(R.id.abdullahSarikaya); 39 | lyKadirhanEkmekcioglu = (LinearLayout) rootView.findViewById(R.id.kadirhanEkmekcioglu); 40 | lyTanerUtku = (LinearLayout) rootView.findViewById(R.id.tanerUtku); 41 | lyErenUtku = (LinearLayout) rootView.findViewById(R.id.erenUtku); 42 | lyVolkanKilic = (LinearLayout) rootView.findViewById(R.id.volkanKilic); 43 | 44 | 45 | lyFeyzaOkumus.setOnClickListener(new View.OnClickListener() { 46 | @Override 47 | public void onClick(View view) { 48 | id = "59885"; 49 | 50 | Intent intent = new Intent(getActivity(), ProfilActivity.class); 51 | intent.putExtra(Kisi.PROFIL_ID, id); 52 | startActivity(intent); 53 | 54 | } 55 | }); 56 | 57 | 58 | lyDogukanYildirim.setOnClickListener(new View.OnClickListener() { 59 | @Override 60 | public void onClick(View view) { 61 | id = "21294"; 62 | 63 | Intent intent = new Intent(getActivity(), ProfilActivity.class); 64 | intent.putExtra(Kisi.PROFIL_ID, id); 65 | startActivity(intent); 66 | } 67 | }); 68 | 69 | lyGizemYurdagul.setOnClickListener(new View.OnClickListener() { 70 | @Override 71 | public void onClick(View view) { 72 | id = "36644"; 73 | 74 | Intent intent = new Intent(getActivity(), ProfilActivity.class); 75 | intent.putExtra(Kisi.PROFIL_ID, id); 76 | startActivity(intent); 77 | } 78 | }); 79 | 80 | lyAbdullahSarikaya.setOnClickListener(new View.OnClickListener() { 81 | @Override 82 | public void onClick(View view) { 83 | id = "17846"; 84 | 85 | Intent intent = new Intent(getActivity(), ProfilActivity.class); 86 | intent.putExtra(Kisi.PROFIL_ID, id); 87 | startActivity(intent); 88 | } 89 | }); 90 | 91 | 92 | lyKadirhanEkmekcioglu.setOnClickListener(new View.OnClickListener() { 93 | @Override 94 | public void onClick(View view) { 95 | id = "10678"; 96 | 97 | Intent intent = new Intent(getActivity(), ProfilActivity.class); 98 | intent.putExtra(Kisi.PROFIL_ID, id); 99 | startActivity(intent); 100 | } 101 | }); 102 | 103 | lyTanerUtku.setOnClickListener(new View.OnClickListener() { 104 | @Override 105 | public void onClick(View view) { 106 | id = "7934"; 107 | 108 | Intent intent = new Intent(getActivity(), ProfilActivity.class); 109 | intent.putExtra(Kisi.PROFIL_ID, id); 110 | startActivity(intent); 111 | } 112 | }); 113 | 114 | 115 | lyErenUtku.setOnClickListener(new View.OnClickListener() { 116 | @Override 117 | public void onClick(View view) { 118 | id = "35522"; 119 | 120 | Intent intent = new Intent(getActivity(), ProfilActivity.class); 121 | intent.putExtra(Kisi.PROFIL_ID, id); 122 | startActivity(intent); 123 | } 124 | }); 125 | 126 | lyVolkanKilic.setOnClickListener(new View.OnClickListener() { 127 | @Override 128 | public void onClick(View view) { 129 | id = "2681"; 130 | 131 | Intent intent = new Intent(getActivity(), ProfilActivity.class); 132 | intent.putExtra(Kisi.PROFIL_ID, id); 133 | startActivity(intent); 134 | } 135 | }); 136 | return rootView; 137 | } 138 | 139 | 140 | } 141 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/adapterlisteners/MyExpandableAdapter.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.adapterlisteners; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.util.Log; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.View.OnClickListener; 9 | import android.view.ViewGroup; 10 | import android.widget.BaseExpandableListAdapter; 11 | import android.widget.CheckedTextView; 12 | import android.widget.TextView; 13 | 14 | import com.turkcell.gelecegiyazanlar.R; 15 | import com.turkcell.gelecegiyazanlar.activities.EgitimIcerikActivity; 16 | import com.turkcell.gelecegiyazanlar.models.Egitim; 17 | 18 | import java.util.ArrayList; 19 | 20 | public class MyExpandableAdapter extends BaseExpandableListAdapter { 21 | 22 | private Activity activity; 23 | private ArrayList childtems, childIdItems; 24 | private LayoutInflater inflater; 25 | private ArrayList parentItems, child, nodeIDGroup, childId; 26 | private int lastPosition = -1; 27 | 28 | public MyExpandableAdapter(ArrayList parents, ArrayList childern, ArrayList childIdItems, ArrayList nodeIDParent) { 29 | this.parentItems = parents; 30 | this.childtems = childern; 31 | this.nodeIDGroup = nodeIDParent; 32 | this.childIdItems = childIdItems; 33 | } 34 | 35 | public void setInflater(LayoutInflater inflater, Activity activity) { 36 | this.inflater = inflater; 37 | this.activity = activity; 38 | } 39 | 40 | @Override 41 | public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { 42 | 43 | child = (ArrayList) childtems.get(groupPosition); 44 | childId = (ArrayList) childIdItems.get(groupPosition); 45 | 46 | final TextView textView; 47 | 48 | 49 | if (convertView == null) { 50 | convertView = inflater.inflate(R.layout.kategori_child_item, null); 51 | } 52 | 53 | textView = (TextView) convertView.findViewById(R.id.tvChildParent); 54 | final TextView nodeChild = (TextView) convertView.findViewById(R.id.nodeID); 55 | textView.setText(child.get(childPosition)); 56 | nodeChild.setText(childId.get(childPosition)); 57 | Log.d("ifade", childId.get(childPosition) + " " + child.get(childPosition)); 58 | 59 | 60 | convertView.setOnClickListener(new OnClickListener() { 61 | @Override 62 | public void onClick(View v) { 63 | 64 | Intent i = new Intent(activity, EgitimIcerikActivity.class); 65 | i.putExtra(Egitim.NODE_ID_EGITIM, nodeChild.getText().toString()); 66 | i.putExtra(Egitim.NODE_TITLE, textView.getText().toString()); 67 | activity.startActivity(i); 68 | } 69 | }); 70 | 71 | textView.setOnClickListener(new OnClickListener() { 72 | @Override 73 | public void onClick(View v) { 74 | Intent i = new Intent(activity, EgitimIcerikActivity.class); 75 | i.putExtra(Egitim.NODE_ID_EGITIM, nodeChild.getText().toString()); 76 | i.putExtra(Egitim.NODE_TITLE, textView.getText().toString()); 77 | activity.startActivity(i); 78 | } 79 | }); 80 | 81 | 82 | return convertView; 83 | } 84 | 85 | @Override 86 | public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { 87 | 88 | if (convertView == null) { 89 | convertView = inflater.inflate(R.layout.kategori_parent_item, null); 90 | } 91 | 92 | ((CheckedTextView) convertView.findViewById(R.id.tvChildParent)).setText(parentItems.get(groupPosition)); 93 | ((CheckedTextView) convertView.findViewById(R.id.tvChildParent)).setChecked(isExpanded); 94 | final TextView id = ((TextView) convertView.findViewById(R.id.id)); 95 | id.setText(nodeIDGroup.get(groupPosition)); 96 | 97 | 98 | return convertView; 99 | } 100 | 101 | @Override 102 | public Object getChild(int groupPosition, int childPosition) { 103 | return null; 104 | } 105 | 106 | @Override 107 | public long getChildId(int groupPosition, int childPosition) { 108 | return childPosition; 109 | } 110 | 111 | @Override 112 | public int getChildrenCount(int groupPosition) { 113 | return ((ArrayList) childtems.get(groupPosition)).size(); 114 | } 115 | 116 | @Override 117 | public Object getGroup(int groupPosition) { 118 | return null; 119 | } 120 | 121 | @Override 122 | public int getGroupCount() { 123 | return parentItems.size(); 124 | } 125 | 126 | @Override 127 | public void onGroupCollapsed(int groupPosition) { 128 | super.onGroupCollapsed(groupPosition); 129 | } 130 | 131 | @Override 132 | public void onGroupExpanded(int groupPosition) { 133 | super.onGroupExpanded(groupPosition); 134 | } 135 | 136 | @Override 137 | public long getGroupId(int groupPosition) { 138 | return groupPosition; 139 | } 140 | 141 | @Override 142 | public boolean hasStableIds() { 143 | return true; 144 | } 145 | 146 | @Override 147 | public boolean isChildSelectable(int groupPosition, int childPosition) { 148 | return true; 149 | } 150 | 151 | } 152 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/adapterlisteners/RecyclerAdapterEtkinlik.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.adapterlisteners; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.support.v7.widget.RecyclerView; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | import android.widget.LinearLayout; 10 | import android.widget.TextView; 11 | 12 | import com.android.volley.toolbox.ImageLoader; 13 | import com.android.volley.toolbox.NetworkImageView; 14 | import com.turkcell.gelecegiyazanlar.R; 15 | import com.turkcell.gelecegiyazanlar.activities.EtkinlikIcerikActivity; 16 | import com.turkcell.gelecegiyazanlar.configurations.AppController; 17 | import com.turkcell.gelecegiyazanlar.models.Etkinlik; 18 | 19 | import java.util.List; 20 | 21 | /** 22 | * Created by dyildirim76 on 09.09.2015. 23 | */ 24 | public class RecyclerAdapterEtkinlik extends RecyclerView.Adapter { 25 | 26 | Activity activity; 27 | private List mItemList; 28 | 29 | 30 | public RecyclerAdapterEtkinlik(List mItemList, Activity activity) { 31 | 32 | 33 | this.mItemList = mItemList; 34 | this.activity = activity; 35 | } 36 | 37 | 38 | @Override 39 | public RecyclerView.ViewHolder onCreateViewHolder(final ViewGroup parent, int viewType) { 40 | final View view = LayoutInflater.from(parent.getContext()). 41 | inflate(R.layout.card_item_etkinlik, parent, false); 42 | 43 | 44 | return RecyclerItemViewHolder.newInstance(view); 45 | } 46 | 47 | 48 | @Override 49 | public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { 50 | 51 | RecyclerItemViewHolder holder = (RecyclerItemViewHolder) viewHolder; 52 | Etkinlik etkinlik = mItemList.get(position); 53 | String titleText = etkinlik.getTitle(); 54 | String startDateTextView = etkinlik.getStartDate(); 55 | String endDateTextView = etkinlik.getEndDate(); 56 | String thumbnail = etkinlik.getImage(); 57 | String id = etkinlik.getNodeID(); 58 | String days = etkinlik.getKalanGun(); 59 | 60 | holder.setItemText(titleText, startDateTextView, endDateTextView, id, days); 61 | holder.setmImageView(thumbnail); 62 | 63 | 64 | } 65 | 66 | 67 | @Override 68 | public int getItemCount() { 69 | return mItemList == null ? 0 : mItemList.size(); 70 | } 71 | 72 | public static class RecyclerItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 73 | private final TextView mTitleTextView; 74 | private final TextView mStartDateTextView; 75 | private final TextView mEndDateTextView; 76 | ImageLoader imageLoader = AppController.getInstance().getImageLoader(); 77 | private NetworkImageView mImageView; 78 | private TextView profilid; 79 | private TextView days; 80 | private LinearLayout layout; 81 | 82 | public RecyclerItemViewHolder(final View parent, TextView titleTextView, 83 | TextView mStartDateTextView, TextView mEndDateTextView, 84 | NetworkImageView mImageView, TextView id, TextView gun, LinearLayout layout_gun) { 85 | 86 | super(parent); 87 | parent.setClickable(true); 88 | parent.setOnClickListener(this); 89 | mTitleTextView = titleTextView; 90 | this.mStartDateTextView = mStartDateTextView; 91 | this.mEndDateTextView = mEndDateTextView; 92 | this.mImageView = mImageView; 93 | this.profilid = id; 94 | this.days = gun; 95 | this.layout = layout_gun; 96 | 97 | } 98 | 99 | public static RecyclerItemViewHolder newInstance(View parent) { 100 | TextView titleTextView = (TextView) parent.findViewById(R.id.titleTextView); 101 | TextView startDateTextView = (TextView) parent.findViewById(R.id.startDateTextView); 102 | TextView endDateTextView = (TextView) parent.findViewById(R.id.endDateTextView); 103 | NetworkImageView imageView = (NetworkImageView) parent.findViewById(R.id.bannerImageView); 104 | TextView Profilid = (TextView) parent.findViewById(R.id.etkinlikId); 105 | TextView kalanGun = (TextView) parent.findViewById(R.id.kalan_gun); 106 | 107 | LinearLayout layout = (LinearLayout) parent.findViewById(R.id.layout_gun); 108 | 109 | return new RecyclerItemViewHolder(parent, titleTextView, startDateTextView, 110 | endDateTextView, imageView, Profilid, kalanGun, layout); 111 | } 112 | 113 | 114 | //Burada problem vardi.CharSequence text tek olarak tanımlanmıstı. 115 | // (CharSequence text,CharSequence texta,CharSequence textb) yaptık. 116 | 117 | public void setItemText(CharSequence text, CharSequence texta, CharSequence textb, CharSequence id, CharSequence kalanGun) { 118 | mTitleTextView.setText(text); 119 | mStartDateTextView.setText(texta); 120 | mEndDateTextView.setText(textb); 121 | profilid.setText(id); 122 | if (kalanGun.equals("-")) { 123 | layout.setVisibility(View.GONE); 124 | } else layout.setVisibility(View.VISIBLE); 125 | days.setText(kalanGun); 126 | 127 | } 128 | 129 | public void setmImageView(String image) { 130 | if (imageLoader == null) { 131 | imageLoader = AppController.getInstance().getImageLoader(); 132 | } 133 | mImageView.setImageUrl(image, imageLoader); 134 | } 135 | 136 | @Override 137 | public void onClick(View v) { 138 | Intent i = new Intent(v.getContext(), EtkinlikIcerikActivity.class); 139 | i.putExtra(Etkinlik.ETKINLIK_ID, profilid.getText()); 140 | v.getContext().startActivity(i); 141 | } 142 | } 143 | 144 | 145 | } 146 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Geleceği Yazanlar Android Uygulaması 2 | 3 | ![Geleceği Yazanlar Uygulaması](https://gelecegiyazanlar.turkcell.com.tr/sites/default/files/burrrak_0.jpg) 4 | 5 | Uygulamayı Google Play üzerinden indirmek için: https://play.google.com/store/apps/details?id=com.turkcell.gelecegiyazanlar 6 | 7 | Bu proje Geleceği Yazanlar elçilerinden 7 üniversite öğrencisinin bir araya gelip Android öğrenerek dört haftada geliştirdiği bir android uygulamasıdır. Projenin amacı Geleceği Yazanlar üyelerinin Android uygulamasıyla platformdaki kullanıcı girişi gerektirmeyen; 8 | 9 | • Eğitimler (Mobil - Web - Oyun)
10 | • Etkinlikler
11 | • Blog
12 | • Profil sayfaları
13 | • Site içi arama
14 | 15 | sayfalarına daha rahat ulaşmasını sağlamaktır.
16 | 17 | Uygulamamızı geliştirirken hafta hafta blog yazıları ile neler yaşadığımızı anlattık;
18 | 19 | • [1. hafta](https://gelecegiyazanlar.turkcell.com.tr/blog/mobil-uygulamamizi-gelistiriyoruz-1.-hafta)
20 | • [2. hafta](https://gelecegiyazanlar.turkcell.com.tr/blog/mobil-uygulamamizi-gelistiriyoruz-2.-hafta)
21 | • [3. hafta](https://gelecegiyazanlar.turkcell.com.tr/blog/mobil-uygulamamizi-gelistiriyoruz-3.-hafta)
22 | • [4. hafta](https://gelecegiyazanlar.turkcell.com.tr/blog/mobil-uygulamamizi-gelistiriyoruz-4.-hafta)
23 | 24 | 25 | ####Uygulama geliştiricileri:
26 | 27 | • [Abdullah Sarıkaya](https://gelecegiyazanlar.turkcell.com.tr/kisi/haciabdullahsarikaya): Eğitim sayfası,
28 | • [Doğukan Yıldırım](https://gelecegiyazanlar.turkcell.com.tr/kisi/dyildirim76): Etkinlik sayfası,
29 | • [Gizem Nur Yurdagül](https://gelecegiyazanlar.turkcell.com.tr/kisi/gizemnuryurdagul): Yorumlar sayfası,
30 | • [Kadirhan Ekmekçioğlu](https://gelecegiyazanlar.turkcell.com.tr/kisi/kadirhann21): Blog sayfası,
31 | • [Volkan Kılıç](https://gelecegiyazanlar.turkcell.com.tr/kisi/volkankilic): Geliştiriciler sayfası,
32 | • [Taner Utku](https://gelecegiyazanlar.turkcell.com.tr/kisi/tanerutku): Profil sayfası,
33 | • [Yusuf Eren Utku](https://gelecegiyazanlar.turkcell.com.tr/kisi/yerenutku): Arama sayfası
34 | 35 | Proje ile ilgili hata ve eksikliklerin düzeltilip, projenin geliştirilmesi için projeyi GitHub'da paylaşmaya karar verdik. Geliştirilmesine katkıda bulunan herkese teşekkür ederiz. 36 | 37 | 38 | ## Projenin Genel Yapısı Hakkında Bilgiler 39 | 40 | ####Fragment Yapısı 41 | 42 | Öncelikle uygulamamızı Android Studio IDE’si ile geliştirildi. Uygulama sayfa düzeni açısından Activityler ve Fragmentlar olarak hiyerarşik bir yapıdadır. 43 | 44 | İlk açılan sayfamız MainActivitydir. Fakat içerisinde EğitimFragment adında bir fragment dönüyor. Bu fragment ise kendi içerisinde tablar ile geçiş yaparak dönen 3 farklı eğitim kategorisi fragmentlarını döndürmektedir. Bunlar ise; Mobil,Oyun ve Web Fragmentlarıdır. 45 | 46 | Devamında sol taraftan açılan hamburger menü listemiz de MainActivity içersinde DrawerLayout olarak bulunuyor. Listemizde ki menü isimleriyle BlogFragment, 47 | 48 | EtkinlikFragment gibi diğer sayfalara geçişler sağlanmaktadır. Ayrıca arama sayfamızı da AramaActivity içerisinden inceleyebilirsiniz. 49 | 50 | ####Material Design 51 | 52 | Uygulamamız Google’ın son çıkardığı design yani Material Design kullanımına uyumludur. 53 | 54 | Bunu yapabilmek için ise kütüphane olarak ‘com.android.support:design:22.2.0’ 55 | 56 | kütüphanesini projemize ekledik. 57 | 58 | Çünkü uygulamamızda bu designa ait bileşenlerden, renk yapısından ve animasyonlarından yararlandık. 59 | 60 | Material Design kullanımı ile ilgili aşağıdaki yazıyı inceleyebilirsiniz: 61 | 62 | http://android-developers.blogspot.com.tr/2015/05/android-design-support-library.html 63 | 64 | 65 | 66 | ####Recyclerview & Cardview 67 | 68 | Listeleme ve kart görünümünde sayfalar oluşturmak için layout dosyamızda RecyclerView ve CardView widgetlarını kullandık.Bu özellik için ‘com.android.support:recyclerview-v7:22.2.0’ ve ‘com.android.support:cardview-v7:22.2.0’ kütüphanelerini projeye ekledik. Blog ve Etkinlik sayfalarında nasıl kullanıldığını inceleyebilirsiniz. 69 | 70 | RecyclerView ve Cardview kullanımı ile ilgili inceleyebilceğiniz bir yazı: 71 | 72 | https://lokeshcodes.wordpress.com/2015/09/22/recycler-view-with-cardview/ 73 | 74 | 75 | 76 | ####CircleImageView 77 | 78 | Dairesel ve özel fotoğraf yapıları oluşturmak için hazır olarak CircleImageView 'de.hdodenhof:circleimageview:1.3.0' kütüphanesinden yararlandık. 79 | 80 | CircleImageView ile ilgili ayrıntılı dökümana aşağıdaki linkten ulaşabilirsiniz: 81 | 82 | https://github.com/hdodenhof/CircleImageView 83 | 84 | ####Floating Action Button 85 | 86 | Profil ve bize ulaşın sayfasında sağ alt taraftaki butona tıkladığınızda size seçenek butonları çıkıyor. Bu yapı için Floating Action Button ‘com.getbase:floatingactionbutton:1.10.0’ kütüphanesini projemize ekledik. 87 | 88 | Floating Action Button kütüphanesi ile ilgili ayrıntılı dökümana aşağıdaki linkten ulaşabilirsiniz: 89 | 90 | https://github.com/futuresimple/android-floating-action-button 91 | 92 | 93 | 94 | 95 | 96 | ####Volley 97 | 98 | Uygulama içerisindeki Bloglar, Etkinlikler, Eğitimler gibi bir çok bölüm dinamik olarak geliyor. Site üzerindeki dinamik olarak gelen verileri uygulamada kullanabilmek için servisler yani API’lar yazılmıştı. Bu API’lar bize json çıktıları üretmektedir. Gelen verileri uygulamaya parse etmek için Google’ın Volley kütüphanesinden yararlandık. 99 | 100 | Bu kütüphaneyi kullanmak için projeye; ‘eu.the4thfloor.volley:com.android.volley:2015.05.28’ kütüphanesini projeye dahil ederek Volley’i kullandık. 101 | 102 | Volley küphanesi ile ilgili dökümana aşağıdaki linkten ulaşabilirsiniz: 103 | 104 | https://github.com/the4thfloor/volley 105 | 106 | ####Turkcell CurioSDK 107 | 108 | Turkcell’in geliştirmiş olduğu CurioSDK kullanılarak kullanıcı ve veri analitiği sağlanabilmektedir. Bunu kullanabilmek için ise curiosdk.jar dosyasını projemize ekledik. 109 | 110 | CurioSDK ile ilgili dökümana aşağıdaki linkten ulaşabilirsiniz: 111 | 112 | https://github.com/Turkcell/Curio_android_SDK_Gradle 113 | 114 | ####Splunk MINT SDK 115 | 116 | Projemizde herhangi bir hata alındığında bilgimiz olması için Splunk MINT SDK’i kullandık. Projemize 'com.splunk.mint:mint:4.4.0' kütüphanesini ekledik. 117 | 118 | MINT SDK ile ilgili dökümana aşağıdaki linkten ulaşabilirsiniz: 119 | 120 | http://docs.splunk.com/Documentation/MintAndroidSDK/latest/DevGuide/Requirementsandinstallation 121 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/designs/SlidingTabStrip.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.designs; 2 | 3 | import android.R; 4 | import android.content.Context; 5 | import android.graphics.Canvas; 6 | import android.graphics.Color; 7 | import android.graphics.Paint; 8 | import android.util.AttributeSet; 9 | import android.util.TypedValue; 10 | import android.view.View; 11 | import android.widget.LinearLayout; 12 | 13 | 14 | class SlidingTabStrip extends LinearLayout { 15 | 16 | private static final int DEFAULT_BOTTOM_BORDER_THICKNESS_DIPS = 0; 17 | private static final byte DEFAULT_BOTTOM_BORDER_COLOR_ALPHA = 0x26; 18 | private static final int SELECTED_INDICATOR_THICKNESS_DIPS = 3; 19 | private static final int DEFAULT_SELECTED_INDICATOR_COLOR = 0xFF33B5E5; 20 | 21 | private final int mBottomBorderThickness; 22 | private final Paint mBottomBorderPaint; 23 | 24 | private final int mSelectedIndicatorThickness; 25 | private final Paint mSelectedIndicatorPaint; 26 | 27 | private final int mDefaultBottomBorderColor; 28 | private final SimpleTabColorizer mDefaultTabColorizer; 29 | private int mSelectedPosition; 30 | private float mSelectionOffset; 31 | private SlidingTabLayout.TabColorizer mCustomTabColorizer; 32 | 33 | SlidingTabStrip(Context context) { 34 | this(context, null); 35 | } 36 | 37 | SlidingTabStrip(Context context, AttributeSet attrs) { 38 | super(context, attrs); 39 | setWillNotDraw(false); 40 | 41 | final float density = getResources().getDisplayMetrics().density; 42 | 43 | TypedValue outValue = new TypedValue(); 44 | context.getTheme().resolveAttribute(R.attr.colorForeground, outValue, true); 45 | final int themeForegroundColor = outValue.data; 46 | 47 | mDefaultBottomBorderColor = setColorAlpha(themeForegroundColor, 48 | DEFAULT_BOTTOM_BORDER_COLOR_ALPHA); 49 | 50 | mDefaultTabColorizer = new SimpleTabColorizer(); 51 | mDefaultTabColorizer.setIndicatorColors(DEFAULT_SELECTED_INDICATOR_COLOR); 52 | 53 | mBottomBorderThickness = (int) (DEFAULT_BOTTOM_BORDER_THICKNESS_DIPS * density); 54 | mBottomBorderPaint = new Paint(); 55 | mBottomBorderPaint.setColor(mDefaultBottomBorderColor); 56 | 57 | mSelectedIndicatorThickness = (int) (SELECTED_INDICATOR_THICKNESS_DIPS * density); 58 | mSelectedIndicatorPaint = new Paint(); 59 | } 60 | 61 | /** 62 | * Set the alpha value of the {@code color} to be the given {@code alpha} value. 63 | */ 64 | private static int setColorAlpha(int color, byte alpha) { 65 | return Color.argb(alpha, Color.red(color), Color.green(color), Color.blue(color)); 66 | } 67 | 68 | /** 69 | * Blend {@code color1} and {@code color2} using the given ratio. 70 | * 71 | * @param ratio of which to blend. 1.0 will return {@code color1}, 0.5 will give an even blend, 72 | * 0.0 will return {@code color2}. 73 | */ 74 | private static int blendColors(int color1, int color2, float ratio) { 75 | final float inverseRation = 1f - ratio; 76 | float r = (Color.red(color1) * ratio) + (Color.red(color2) * inverseRation); 77 | float g = (Color.green(color1) * ratio) + (Color.green(color2) * inverseRation); 78 | float b = (Color.blue(color1) * ratio) + (Color.blue(color2) * inverseRation); 79 | return Color.rgb((int) r, (int) g, (int) b); 80 | } 81 | 82 | void setCustomTabColorizer(SlidingTabLayout.TabColorizer customTabColorizer) { 83 | mCustomTabColorizer = customTabColorizer; 84 | invalidate(); 85 | } 86 | 87 | void setSelectedIndicatorColors(int... colors) { 88 | // Make sure that the custom colorizer is removed 89 | mCustomTabColorizer = null; 90 | mDefaultTabColorizer.setIndicatorColors(colors); 91 | invalidate(); 92 | } 93 | 94 | void onViewPagerPageChanged(int position, float positionOffset) { 95 | mSelectedPosition = position; 96 | mSelectionOffset = positionOffset; 97 | invalidate(); 98 | } 99 | 100 | @Override 101 | protected void onDraw(Canvas canvas) { 102 | final int height = getHeight(); 103 | final int childCount = getChildCount(); 104 | final SlidingTabLayout.TabColorizer tabColorizer = mCustomTabColorizer != null 105 | ? mCustomTabColorizer 106 | : mDefaultTabColorizer; 107 | 108 | // Thick colored underline below the current selection 109 | if (childCount > 0) { 110 | View selectedTitle = getChildAt(mSelectedPosition); 111 | int left = selectedTitle.getLeft(); 112 | int right = selectedTitle.getRight(); 113 | int color = tabColorizer.getIndicatorColor(mSelectedPosition); 114 | 115 | if (mSelectionOffset > 0f && mSelectedPosition < (getChildCount() - 1)) { 116 | int nextColor = tabColorizer.getIndicatorColor(mSelectedPosition + 1); 117 | if (color != nextColor) { 118 | color = blendColors(nextColor, color, mSelectionOffset); 119 | } 120 | 121 | // Draw the selection partway between the tabs 122 | View nextTitle = getChildAt(mSelectedPosition + 1); 123 | left = (int) (mSelectionOffset * nextTitle.getLeft() + 124 | (1.0f - mSelectionOffset) * left); 125 | right = (int) (mSelectionOffset * nextTitle.getRight() + 126 | (1.0f - mSelectionOffset) * right); 127 | } 128 | 129 | mSelectedIndicatorPaint.setColor(color); 130 | 131 | canvas.drawRect(left, height - mSelectedIndicatorThickness, right, 132 | height, mSelectedIndicatorPaint); 133 | } 134 | 135 | // Thin underline along the entire bottom edge 136 | canvas.drawRect(0, height - mBottomBorderThickness, getWidth(), height, mBottomBorderPaint); 137 | } 138 | 139 | private static class SimpleTabColorizer implements SlidingTabLayout.TabColorizer { 140 | private int[] mIndicatorColors; 141 | 142 | @Override 143 | public final int getIndicatorColor(int position) { 144 | return mIndicatorColors[position % mIndicatorColors.length]; 145 | } 146 | 147 | void setIndicatorColors(int... colors) { 148 | mIndicatorColors = colors; 149 | } 150 | } 151 | } 152 | -------------------------------------------------------------------------------- /src/main/res/layout/card_item_blog.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 21 | 22 | 27 | 28 | 36 | 37 | 44 | 45 | 46 | 56 | 57 | 61 | 62 | 68 | 78 | 79 | 80 | 94 | 95 | 96 | 97 | 102 | 103 | 104 | 105 | 106 | 107 | 111 | 112 | 119 | 120 | 127 | 128 | 141 | 142 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/adapterlisteners/RecyclerAdapterBlog.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.adapterlisteners; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.graphics.Bitmap; 6 | import android.support.v7.widget.RecyclerView; 7 | import android.text.Html; 8 | import android.util.Log; 9 | import android.view.LayoutInflater; 10 | import android.view.View; 11 | import android.view.ViewGroup; 12 | import android.widget.TextView; 13 | 14 | import com.android.volley.Response; 15 | import com.android.volley.VolleyError; 16 | import com.android.volley.toolbox.ImageLoader; 17 | import com.android.volley.toolbox.ImageRequest; 18 | import com.android.volley.toolbox.NetworkImageView; 19 | import com.turkcell.gelecegiyazanlar.R; 20 | import com.turkcell.gelecegiyazanlar.activities.BlogIcerikAcitivity; 21 | import com.turkcell.gelecegiyazanlar.activities.ProfilActivity; 22 | import com.turkcell.gelecegiyazanlar.configurations.AppController; 23 | import com.turkcell.gelecegiyazanlar.models.Blog; 24 | import com.turkcell.gelecegiyazanlar.models.Kisi; 25 | 26 | import java.util.List; 27 | 28 | import de.hdodenhof.circleimageview.CircleImageView; 29 | 30 | public class RecyclerAdapterBlog extends RecyclerView.Adapter { 31 | 32 | 33 | Activity activity; 34 | private List mItemList; 35 | 36 | 37 | public RecyclerAdapterBlog(List mItemList, Activity activity) { 38 | this.mItemList = mItemList; 39 | this.activity = activity; 40 | } 41 | 42 | 43 | @Override 44 | public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 45 | final View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_item_blog, parent, false); 46 | return RecyclerItemViewHolder.newInstance(view); 47 | } 48 | 49 | 50 | @Override 51 | public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { 52 | RecyclerItemViewHolder holder = (RecyclerItemViewHolder) viewHolder; 53 | Blog blog = mItemList.get(position); 54 | String title = blog.getTitle(); 55 | String date = blog.getDate(); 56 | String author = blog.getAuthor(); 57 | String excerpt = blog.getExcerpt(); 58 | String categories = blog.getCategories(); 59 | String foto = blog.getImage(); 60 | String avatar = blog.getAvatar(); 61 | String profilID = blog.getProfilID(); 62 | String blogID = blog.getBlogID(); 63 | 64 | holder.setItemText(title, date, author, Html.fromHtml(excerpt), categories, profilID, blogID); 65 | holder.setItemImage(foto); 66 | holder.setItemAvatar(avatar); 67 | 68 | } 69 | 70 | @Override 71 | public int getItemCount() { 72 | return mItemList == null ? 0 : mItemList.size(); 73 | } 74 | 75 | public static class RecyclerItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 76 | private final TextView mItemTextView; 77 | private final TextView mItemTextView1; 78 | private final TextView mItemTextView2; 79 | private final TextView mItemTextView3; 80 | private final TextView mItemTextView4; 81 | private final TextView mItemTextViewID; 82 | private final TextView blogsID; 83 | ImageLoader imageLoader = AppController.getInstance().getImageLoader(); 84 | private NetworkImageView image; 85 | private CircleImageView avatar; 86 | 87 | 88 | public RecyclerItemViewHolder(final View parent, TextView title, TextView date, TextView author, TextView excerpt, TextView categories, NetworkImageView networkImageView, CircleImageView avatarImage, TextView profilID, TextView blogID) { 89 | super(parent); 90 | parent.setClickable(true); 91 | parent.setOnClickListener(this); 92 | mItemTextView = title; 93 | mItemTextView1 = date; 94 | mItemTextView2 = author; 95 | mItemTextView3 = excerpt; 96 | mItemTextView4 = categories; 97 | mItemTextViewID = profilID; 98 | image = networkImageView; 99 | avatar = avatarImage; 100 | blogsID = blogID; 101 | 102 | } 103 | 104 | 105 | public static RecyclerItemViewHolder newInstance(final View parent) { 106 | TextView blogID = (TextView) parent.findViewById(R.id.blogID); 107 | TextView title = (TextView) parent.findViewById(R.id.itemBaslik); 108 | TextView date = (TextView) parent.findViewById(R.id.blogTarih); 109 | TextView author = (TextView) parent.findViewById(R.id.profilIsim); 110 | TextView excerpt = (TextView) parent.findViewById(R.id.itemOzet); 111 | TextView categories = (TextView) parent.findViewById(R.id.categories); 112 | final TextView profileID = (TextView) parent.findViewById(R.id.profilID); 113 | 114 | NetworkImageView image = (NetworkImageView) parent.findViewById(R.id.image); 115 | CircleImageView avatar = (CircleImageView) parent.findViewById(R.id.profile_image); 116 | 117 | avatar.setOnClickListener(new View.OnClickListener() { 118 | @Override 119 | public void onClick(View v) { 120 | Intent i = new Intent(parent.getContext(), ProfilActivity.class); 121 | i.putExtra(Kisi.PROFIL_ID, profileID.getText()); 122 | parent.getContext().startActivity(i); 123 | } 124 | }); 125 | 126 | return new RecyclerItemViewHolder(parent, title, date, author, excerpt, categories, image, avatar, profileID, blogID); 127 | } 128 | 129 | public void setItemText(String title, CharSequence date, CharSequence author, CharSequence excerpt, CharSequence categories, CharSequence profilID, CharSequence blogID) { 130 | mItemTextView.setText(title); 131 | mItemTextView1.setText(date); 132 | mItemTextView2.setText(author); 133 | mItemTextView3.setText(excerpt); 134 | mItemTextView4.setText(categories); 135 | mItemTextViewID.setText(profilID); 136 | blogsID.setText(blogID); 137 | 138 | 139 | } 140 | 141 | public void setItemImage(String itemImage) { 142 | if (imageLoader == null) 143 | imageLoader = AppController.getInstance().getImageLoader(); 144 | image.setImageUrl(itemImage, imageLoader); 145 | } 146 | 147 | public void setItemAvatar(String itemImage) { 148 | ImageRequest im = new ImageRequest(itemImage, new Response.Listener() { 149 | @Override 150 | public void onResponse(Bitmap response) { 151 | avatar.setImageBitmap(response); 152 | 153 | 154 | } 155 | }, 0, 0, null, new Response.ErrorListener() { 156 | @Override 157 | public void onErrorResponse(VolleyError error) { 158 | 159 | } 160 | }); 161 | AppController.getInstance().addToRequestQueue(im); 162 | } 163 | 164 | @Override 165 | public void onClick(View v) { 166 | Log.d("tag:", blogsID.getText().toString()); 167 | Intent i = new Intent(v.getContext(), BlogIcerikAcitivity.class); 168 | i.putExtra(Blog.BLOG_ID, blogsID.getText()); 169 | v.getContext().startActivity(i); 170 | } 171 | } 172 | 173 | } 174 | 175 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/designs/SlidingTabLayoutIcon.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.designs; 2 | 3 | import android.content.Context; 4 | import android.support.v4.view.ViewPager; 5 | import android.util.AttributeSet; 6 | import android.util.SparseArray; 7 | import android.view.View; 8 | import android.widget.HorizontalScrollView; 9 | import android.widget.ImageView; 10 | import android.widget.TextView; 11 | 12 | import com.turkcell.gelecegiyazanlar.adapterlisteners.ViewPagerAdapter; 13 | 14 | /** 15 | * Created by asus on 1.9.2015. 16 | */ 17 | public class SlidingTabLayoutIcon extends HorizontalScrollView { 18 | 19 | 20 | private static final int TITLE_OFFSET_DIPS = 5; 21 | private static final int TAB_VIEW_PADDING_DIPS = 5; 22 | private static final int TAB_VIEW_TEXT_SIZE_SP = 12; 23 | private final SlidingTabStrip mTabStrip; 24 | private int mTitleOffset; 25 | 26 | private int mTabViewLayoutId; 27 | private int mTabViewTextViewId; 28 | private boolean mDistributeEvenly; 29 | 30 | private ViewPager mViewPager; 31 | private SparseArray mContentDescriptions = new SparseArray(); 32 | private ViewPager.OnPageChangeListener mViewPagerPageChangeListener; 33 | 34 | public SlidingTabLayoutIcon(Context context) { 35 | this(context, null); 36 | } 37 | 38 | public SlidingTabLayoutIcon(Context context, AttributeSet attrs) { 39 | this(context, attrs, 0); 40 | } 41 | 42 | public SlidingTabLayoutIcon(Context context, AttributeSet attrs, int defStyle) { 43 | super(context, attrs, defStyle); 44 | 45 | 46 | setHorizontalScrollBarEnabled(false); 47 | 48 | setFillViewport(true); 49 | 50 | mTitleOffset = (int) (TITLE_OFFSET_DIPS * getResources().getDisplayMetrics().density); 51 | 52 | mTabStrip = new SlidingTabStrip(context); 53 | addView(mTabStrip, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 54 | } 55 | 56 | /** 57 | * Set the custom {@link TabColorizer} to be used. 58 | *

59 | * If you only require simple custmisation then you can use 60 | * {@link #setSelectedIndicatorColors(int...)} to achieve 61 | * similar effects. 62 | */ 63 | 64 | 65 | public void setDistributeEvenly(boolean distributeEvenly) { 66 | mDistributeEvenly = distributeEvenly; 67 | } 68 | 69 | /** 70 | * Sets the colors to be used for indicating the selected tab. These colors are treated as a 71 | * circular array. Providing one color will mean that all tabs are indicated with the same color. 72 | */ 73 | public void setSelectedIndicatorColors(int... colors) { 74 | mTabStrip.setSelectedIndicatorColors(colors); 75 | } 76 | 77 | /** 78 | * Set the {@link ViewPager.OnPageChangeListener}. When using {@link SlidingTabLayout} you are 79 | * required to set any {@link ViewPager.OnPageChangeListener} through this method. This is so 80 | * that the layout can update it's scroll position correctly. 81 | * 82 | * @see ViewPager#setOnPageChangeListener(ViewPager.OnPageChangeListener) 83 | */ 84 | public void setOnPageChangeListener(ViewPager.OnPageChangeListener listener) { 85 | mViewPagerPageChangeListener = listener; 86 | } 87 | 88 | /** 89 | * Set the custom layout to be inflated for the tab views. 90 | * 91 | * @param layoutResId Layout id to be inflated 92 | * @param textViewId id of the {@link TextView} in the inflated view 93 | */ 94 | public void setCustomTabView(int layoutResId, int textViewId) { 95 | mTabViewLayoutId = layoutResId; 96 | mTabViewTextViewId = textViewId; 97 | } 98 | 99 | public void setViewPager(ViewPager viewPager) { 100 | mTabStrip.removeAllViews(); 101 | 102 | mViewPager = viewPager; 103 | if (viewPager != null) { 104 | viewPager.setOnPageChangeListener(new InternalViewPagerListener()); 105 | populateTabStrip(); 106 | } 107 | } 108 | 109 | /** 110 | * Create a default view to be used for tabs. This is called if a custom tab view is not set via 111 | * {@link #setCustomTabView(int, int)}. 112 | */ 113 | protected ImageView createDefaultImageView(Context context) { 114 | ImageView imageView = new ImageView(context); 115 | 116 | int padding = (int) (TAB_VIEW_PADDING_DIPS * getResources().getDisplayMetrics().density); 117 | imageView.setPadding(padding - 8, padding, padding - 8, padding); 118 | 119 | 120 | int width = (int) (getResources().getDisplayMetrics().widthPixels / mViewPager.getAdapter().getCount()); 121 | imageView.setMinimumWidth(width - 120); 122 | 123 | return imageView; 124 | } 125 | 126 | private void populateTabStrip() { 127 | final ViewPagerAdapter adapter = (ViewPagerAdapter) mViewPager.getAdapter(); 128 | final OnClickListener tabClickListener = new TabClickListener(); 129 | 130 | for (int i = 0; i < adapter.getCount(); i++) { 131 | View tabView = null; 132 | //TextView tabTitleView = null; 133 | ImageView tabIconView = null; 134 | 135 | /*if (mTabViewLayoutId != 0) { 136 | // If there is a custom tab view layout id set, try and inflate it 137 | tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, 138 | false); 139 | tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId); 140 | } 141 | 142 | if (tabView == null) { 143 | tabView = createDefaultTabView(getContext()); 144 | } 145 | 146 | if (tabTitleView == null && TextView.class.isInstance(tabView)) { 147 | tabTitleView = (TextView) tabView; 148 | }*/ 149 | 150 | if (tabView == null) { 151 | tabView = createDefaultImageView(getContext()); 152 | } 153 | 154 | if (tabIconView == null && ImageView.class.isInstance(tabView)) { 155 | tabIconView = (ImageView) tabView; 156 | } 157 | 158 | tabIconView.setImageDrawable(getResources().getDrawable(adapter.getDrawableId(i))); 159 | if (mViewPager.getCurrentItem() == i) { 160 | tabIconView.setSelected(true); 161 | } 162 | //tabTitleView.setText(adapter.getPageTitle(i)); 163 | tabView.setOnClickListener(tabClickListener); 164 | 165 | mTabStrip.addView(tabView); 166 | } 167 | } 168 | 169 | public void setContentDescription(int i, String desc) { 170 | mContentDescriptions.put(i, desc); 171 | } 172 | 173 | @Override 174 | protected void onAttachedToWindow() { 175 | super.onAttachedToWindow(); 176 | 177 | if (mViewPager != null) { 178 | scrollToTab(mViewPager.getCurrentItem(), 0); 179 | } 180 | } 181 | 182 | private void scrollToTab(int tabIndex, int positionOffset) { 183 | final int tabStripChildCount = mTabStrip.getChildCount(); 184 | if (tabStripChildCount == 0 || tabIndex < 0 || tabIndex >= tabStripChildCount) { 185 | return; 186 | } 187 | 188 | View selectedChild = mTabStrip.getChildAt(tabIndex); 189 | if (selectedChild != null) { 190 | int targetScrollX = selectedChild.getLeft() + positionOffset; 191 | 192 | if (tabIndex > 0 || positionOffset > 0) { 193 | // If we're not at the first child and are mid-scroll, make sure we obey the offset 194 | targetScrollX -= mTitleOffset; 195 | } 196 | 197 | scrollTo(targetScrollX, 0); 198 | } 199 | } 200 | 201 | public interface TabColorizer { 202 | 203 | int getIndicatorColor(int position); 204 | 205 | } 206 | 207 | private class InternalViewPagerListener implements ViewPager.OnPageChangeListener { 208 | private int mScrollState; 209 | 210 | @Override 211 | public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 212 | int tabStripChildCount = mTabStrip.getChildCount(); 213 | if ((tabStripChildCount == 0) || (position < 0) || (position >= tabStripChildCount)) { 214 | return; 215 | } 216 | 217 | mTabStrip.onViewPagerPageChanged(position, positionOffset); 218 | 219 | View selectedTitle = mTabStrip.getChildAt(position); 220 | int extraOffset = (selectedTitle != null) 221 | ? (int) (positionOffset * selectedTitle.getWidth()) 222 | : 0; 223 | scrollToTab(position, extraOffset); 224 | 225 | if (mViewPagerPageChangeListener != null) { 226 | mViewPagerPageChangeListener.onPageScrolled(position, positionOffset, 227 | positionOffsetPixels); 228 | } 229 | } 230 | 231 | @Override 232 | public void onPageScrollStateChanged(int state) { 233 | mScrollState = state; 234 | 235 | if (mViewPagerPageChangeListener != null) { 236 | mViewPagerPageChangeListener.onPageScrollStateChanged(state); 237 | } 238 | } 239 | 240 | @Override 241 | public void onPageSelected(int position) { 242 | for (int i = 0; i < mTabStrip.getChildCount(); i++) { 243 | mTabStrip.getChildAt(i).setSelected(false); 244 | } 245 | mTabStrip.getChildAt(position).setSelected(true); 246 | 247 | if (mScrollState == ViewPager.SCROLL_STATE_IDLE) { 248 | mTabStrip.onViewPagerPageChanged(position, 0f); 249 | scrollToTab(position, 0); 250 | } 251 | 252 | if (mViewPagerPageChangeListener != null) { 253 | mViewPagerPageChangeListener.onPageSelected(position); 254 | } 255 | } 256 | 257 | } 258 | 259 | private class TabClickListener implements OnClickListener { 260 | @Override 261 | public void onClick(View v) { 262 | for (int i = 0; i < mTabStrip.getChildCount(); i++) { 263 | if (v == mTabStrip.getChildAt(i)) { 264 | mViewPager.setCurrentItem(i); 265 | return; 266 | } 267 | } 268 | } 269 | } 270 | 271 | } 272 | -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, and 10 | distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by the copyright 13 | owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all other entities 16 | that control, are controlled by, or are under common control with that entity. 17 | For the purposes of this definition, "control" means (i) the power, direct or 18 | indirect, to cause the direction or management of such entity, whether by 19 | contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the 20 | outstanding shares, or (iii) beneficial ownership of such entity. 21 | 22 | "You" (or "Your") shall mean an individual or Legal Entity exercising 23 | permissions granted by this License. 24 | 25 | "Source" form shall mean the preferred form for making modifications, including 26 | but not limited to software source code, documentation source, and configuration 27 | files. 28 | 29 | "Object" form shall mean any form resulting from mechanical transformation or 30 | translation of a Source form, including but not limited to compiled object code, 31 | generated documentation, and conversions to other media types. 32 | 33 | "Work" shall mean the work of authorship, whether in Source or Object form, made 34 | available under the License, as indicated by a copyright notice that is included 35 | in or attached to the work (an example is provided in the Appendix below). 36 | 37 | "Derivative Works" shall mean any work, whether in Source or Object form, that 38 | is based on (or derived from) the Work and for which the editorial revisions, 39 | annotations, elaborations, or other modifications represent, as a whole, an 40 | original work of authorship. For the purposes of this License, Derivative Works 41 | shall not include works that remain separable from, or merely link (or bind by 42 | name) to the interfaces of, the Work and Derivative Works thereof. 43 | 44 | "Contribution" shall mean any work of authorship, including the original version 45 | of the Work and any modifications or additions to that Work or Derivative Works 46 | thereof, that is intentionally submitted to Licensor for inclusion in the Work 47 | by the copyright owner or by an individual or Legal Entity authorized to submit 48 | on behalf of the copyright owner. For the purposes of this definition, 49 | "submitted" means any form of electronic, verbal, or written communication sent 50 | to the Licensor or its representatives, including but not limited to 51 | communication on electronic mailing lists, source code control systems, and 52 | issue tracking systems that are managed by, or on behalf of, the Licensor for 53 | the purpose of discussing and improving the Work, but excluding communication 54 | that is conspicuously marked or otherwise designated in writing by the copyright 55 | owner as "Not a Contribution." 56 | 57 | "Contributor" shall mean Licensor and any individual or Legal Entity on behalf 58 | of whom a Contribution has been received by Licensor and subsequently 59 | incorporated within the Work. 60 | 61 | 2. Grant of Copyright License. 62 | 63 | Subject to the terms and conditions of this License, each Contributor hereby 64 | grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, 65 | irrevocable copyright license to reproduce, prepare Derivative Works of, 66 | publicly display, publicly perform, sublicense, and distribute the Work and such 67 | Derivative Works in Source or Object form. 68 | 69 | 3. Grant of Patent License. 70 | 71 | Subject to the terms and conditions of this License, each Contributor hereby 72 | grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, 73 | irrevocable (except as stated in this section) patent license to make, have 74 | made, use, offer to sell, sell, import, and otherwise transfer the Work, where 75 | such license applies only to those patent claims licensable by such Contributor 76 | that are necessarily infringed by their Contribution(s) alone or by combination 77 | of their Contribution(s) with the Work to which such Contribution(s) was 78 | submitted. If You institute patent litigation against any entity (including a 79 | cross-claim or counterclaim in a lawsuit) alleging that the Work or a 80 | Contribution incorporated within the Work constitutes direct or contributory 81 | patent infringement, then any patent licenses granted to You under this License 82 | for that Work shall terminate as of the date such litigation is filed. 83 | 84 | 4. Redistribution. 85 | 86 | You may reproduce and distribute copies of the Work or Derivative Works thereof 87 | in any medium, with or without modifications, and in Source or Object form, 88 | provided that You meet the following conditions: 89 | 90 | You must give any other recipients of the Work or Derivative Works a copy of 91 | this License; and 92 | You must cause any modified files to carry prominent notices stating that You 93 | changed the files; and 94 | You must retain, in the Source form of any Derivative Works that You distribute, 95 | all copyright, patent, trademark, and attribution notices from the Source form 96 | of the Work, excluding those notices that do not pertain to any part of the 97 | Derivative Works; and 98 | If the Work includes a "NOTICE" text file as part of its distribution, then any 99 | Derivative Works that You distribute must include a readable copy of the 100 | attribution notices contained within such NOTICE file, excluding those notices 101 | that do not pertain to any part of the Derivative Works, in at least one of the 102 | following places: within a NOTICE text file distributed as part of the 103 | Derivative Works; within the Source form or documentation, if provided along 104 | with the Derivative Works; or, within a display generated by the Derivative 105 | Works, if and wherever such third-party notices normally appear. The contents of 106 | the NOTICE file are for informational purposes only and do not modify the 107 | License. You may add Your own attribution notices within Derivative Works that 108 | You distribute, alongside or as an addendum to the NOTICE text from the Work, 109 | provided that such additional attribution notices cannot be construed as 110 | modifying the License. 111 | You may add Your own copyright statement to Your modifications and may provide 112 | additional or different license terms and conditions for use, reproduction, or 113 | distribution of Your modifications, or for any such Derivative Works as a whole, 114 | provided Your use, reproduction, and distribution of the Work otherwise complies 115 | with the conditions stated in this License. 116 | 117 | 5. Submission of Contributions. 118 | 119 | Unless You explicitly state otherwise, any Contribution intentionally submitted 120 | for inclusion in the Work by You to the Licensor shall be under the terms and 121 | conditions of this License, without any additional terms or conditions. 122 | Notwithstanding the above, nothing herein shall supersede or modify the terms of 123 | any separate license agreement you may have executed with Licensor regarding 124 | such Contributions. 125 | 126 | 6. Trademarks. 127 | 128 | This License does not grant permission to use the trade names, trademarks, 129 | service marks, or product names of the Licensor, except as required for 130 | reasonable and customary use in describing the origin of the Work and 131 | reproducing the content of the NOTICE file. 132 | 133 | 7. Disclaimer of Warranty. 134 | 135 | Unless required by applicable law or agreed to in writing, Licensor provides the 136 | Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, 137 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, 138 | including, without limitation, any warranties or conditions of TITLE, 139 | NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are 140 | solely responsible for determining the appropriateness of using or 141 | redistributing the Work and assume any risks associated with Your exercise of 142 | permissions under this License. 143 | 144 | 8. Limitation of Liability. 145 | 146 | In no event and under no legal theory, whether in tort (including negligence), 147 | contract, or otherwise, unless required by applicable law (such as deliberate 148 | and grossly negligent acts) or agreed to in writing, shall any Contributor be 149 | liable to You for damages, including any direct, indirect, special, incidental, 150 | or consequential damages of any character arising as a result of this License or 151 | out of the use or inability to use the Work (including but not limited to 152 | damages for loss of goodwill, work stoppage, computer failure or malfunction, or 153 | any and all other commercial damages or losses), even if such Contributor has 154 | been advised of the possibility of such damages. 155 | 156 | 9. Accepting Warranty or Additional Liability. 157 | 158 | While redistributing the Work or Derivative Works thereof, You may choose to 159 | offer, and charge a fee for, acceptance of support, warranty, indemnity, or 160 | other liability obligations and/or rights consistent with this License. However, 161 | in accepting such obligations, You may act only on Your own behalf and on Your 162 | sole responsibility, not on behalf of any other Contributor, and only if You 163 | agree to indemnify, defend, and hold each Contributor harmless for any liability 164 | incurred by, or claims asserted against, such Contributor by reason of your 165 | accepting any such warranty or additional liability. 166 | 167 | END OF TERMS AND CONDITIONS 168 | 169 | APPENDIX: How to apply the Apache License to your work 170 | 171 | To apply the Apache License to your work, attach the following boilerplate 172 | notice, with the fields enclosed by brackets "[]" replaced with your own 173 | identifying information. (Don't include the brackets!) The text should be 174 | enclosed in the appropriate comment syntax for the file format. We also 175 | recommend that a file or class name and description of purpose be included on 176 | the same "printed page" as the copyright notice for easier identification within 177 | third-party archives. 178 | 179 | Copyright 2016 Turkcell İletişim Hizmetleri A.Ş 180 | 181 | Licensed under the Apache License, Version 2.0 (the "License"); 182 | you may not use this file except in compliance with the License. 183 | You may obtain a copy of the License at 184 | 185 | http://www.apache.org/licenses/LICENSE-2.0 186 | 187 | Unless required by applicable law or agreed to in writing, software 188 | distributed under the License is distributed on an "AS IS" BASIS, 189 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 190 | See the License for the specific language governing permissions and 191 | limitations under the License. 192 | -------------------------------------------------------------------------------- /src/main/java/com/turkcell/gelecegiyazanlar/designs/SlidingTabLayout.java: -------------------------------------------------------------------------------- 1 | package com.turkcell.gelecegiyazanlar.designs; 2 | 3 | import android.content.Context; 4 | import android.graphics.Typeface; 5 | import android.support.v4.view.PagerAdapter; 6 | import android.support.v4.view.ViewPager; 7 | import android.util.AttributeSet; 8 | import android.util.SparseArray; 9 | import android.util.TypedValue; 10 | import android.view.Gravity; 11 | import android.view.LayoutInflater; 12 | import android.view.View; 13 | import android.view.ViewGroup; 14 | import android.widget.HorizontalScrollView; 15 | import android.widget.LinearLayout; 16 | import android.widget.TextView; 17 | 18 | import com.turkcell.gelecegiyazanlar.R; 19 | 20 | 21 | public class SlidingTabLayout extends HorizontalScrollView { 22 | 23 | 24 | private static final int TITLE_OFFSET_DIPS = 24; 25 | private static final int TAB_VIEW_PADDING_DIPS = 10; 26 | private static final int TAB_VIEW_TEXT_SIZE_SP = 10; 27 | private final SlidingTabStrip mTabStrip; 28 | private int mTitleOffset; 29 | 30 | private int mTabViewLayoutId; 31 | private int mTabViewTextViewId; 32 | private boolean mDistributeEvenly; 33 | 34 | private ViewPager mViewPager; 35 | private SparseArray mContentDescriptions = new SparseArray(); 36 | private ViewPager.OnPageChangeListener mViewPagerPageChangeListener; 37 | 38 | public SlidingTabLayout(Context context) { 39 | this(context, null); 40 | } 41 | 42 | public SlidingTabLayout(Context context, AttributeSet attrs) { 43 | this(context, attrs, 0); 44 | } 45 | 46 | public SlidingTabLayout(Context context, AttributeSet attrs, int defStyle) { 47 | super(context, attrs, defStyle); 48 | 49 | 50 | setHorizontalScrollBarEnabled(false); 51 | 52 | setFillViewport(true); 53 | 54 | mTitleOffset = (int) (TITLE_OFFSET_DIPS * getResources().getDisplayMetrics().density); 55 | 56 | mTabStrip = new SlidingTabStrip(context); 57 | addView(mTabStrip, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 58 | } 59 | 60 | /** 61 | * Set the custom {@link TabColorizer} to be used. 62 | *

63 | * If you only require simple custmisation then you can use 64 | * {@link #setSelectedIndicatorColors(int...)} to achieve 65 | * similar effects. 66 | */ 67 | public void setCustomTabColorizer(TabColorizer tabColorizer) { 68 | mTabStrip.setCustomTabColorizer(tabColorizer); 69 | } 70 | 71 | public void setDistributeEvenly(boolean distributeEvenly) { 72 | mDistributeEvenly = distributeEvenly; 73 | } 74 | 75 | /** 76 | * Sets the colors to be used for indicating the selected tab. These colors are treated as a 77 | * circular array. Providing one color will mean that all tabs are indicated with the same color. 78 | */ 79 | public void setSelectedIndicatorColors(int... colors) { 80 | mTabStrip.setSelectedIndicatorColors(colors); 81 | } 82 | 83 | /** 84 | * Set the {@link ViewPager.OnPageChangeListener}. When using {@link SlidingTabLayout} you are 85 | * required to set any {@link ViewPager.OnPageChangeListener} through this method. This is so 86 | * that the layout can update it's scroll position correctly. 87 | * 88 | * @see ViewPager#setOnPageChangeListener(ViewPager.OnPageChangeListener) 89 | */ 90 | public void setOnPageChangeListener(ViewPager.OnPageChangeListener listener) { 91 | mViewPagerPageChangeListener = listener; 92 | } 93 | 94 | /** 95 | * Set the custom layout to be inflated for the tab views. 96 | * 97 | * @param layoutResId Layout id to be inflated 98 | * @param textViewId id of the {@link TextView} in the inflated view 99 | */ 100 | public void setCustomTabView(int layoutResId, int textViewId) { 101 | mTabViewLayoutId = layoutResId; 102 | mTabViewTextViewId = textViewId; 103 | } 104 | 105 | public void setViewPager(ViewPager viewPager) { 106 | mTabStrip.removeAllViews(); 107 | 108 | mViewPager = viewPager; 109 | if (viewPager != null) { 110 | viewPager.setOnPageChangeListener(new InternalViewPagerListener()); 111 | populateTabStrip(); 112 | } 113 | } 114 | 115 | /** 116 | * Create a default view to be used for tabs. This is called if a custom tab view is not set via 117 | * {@link #setCustomTabView(int, int)}. 118 | */ 119 | protected TextView createDefaultTabView(Context context) { 120 | TextView textView = new TextView(context); 121 | textView.setGravity(Gravity.CENTER); 122 | textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, TAB_VIEW_TEXT_SIZE_SP); 123 | textView.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL)); 124 | textView.setLayoutParams(new LinearLayout.LayoutParams( 125 | ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 126 | 127 | TypedValue outValue = new TypedValue(); 128 | getContext().getTheme().resolveAttribute(android.R.attr.selectableItemBackground, 129 | outValue, true); 130 | 131 | textView.setBackgroundResource(outValue.resourceId); 132 | textView.setAllCaps(true); 133 | 134 | int padding = (int) (TAB_VIEW_PADDING_DIPS * getResources().getDisplayMetrics().density); 135 | textView.setPadding(padding, padding, padding, padding); 136 | 137 | return textView; 138 | } 139 | 140 | private void populateTabStrip() { 141 | final PagerAdapter adapter = mViewPager.getAdapter(); 142 | final OnClickListener tabClickListener = new TabClickListener(); 143 | 144 | for (int i = 0; i < adapter.getCount(); i++) { 145 | View tabView = null; 146 | TextView tabTitleView = null; 147 | 148 | if (mTabViewLayoutId != 0) { 149 | 150 | tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, 151 | false); 152 | tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId); 153 | } 154 | 155 | if (tabView == null) { 156 | tabView = createDefaultTabView(getContext()); 157 | } 158 | 159 | if (tabTitleView == null && TextView.class.isInstance(tabView)) { 160 | tabTitleView = (TextView) tabView; 161 | } 162 | 163 | if (mDistributeEvenly) { 164 | LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) tabView.getLayoutParams(); 165 | lp.width = 0; 166 | lp.weight = 1; 167 | } 168 | 169 | tabTitleView.setText(adapter.getPageTitle(i)); 170 | tabView.setOnClickListener(tabClickListener); 171 | String desc = mContentDescriptions.get(i, null); 172 | if (desc != null) { 173 | tabView.setContentDescription(desc); 174 | } 175 | 176 | mTabStrip.addView(tabView); 177 | if (i == mViewPager.getCurrentItem()) { 178 | tabView.setSelected(true); 179 | } 180 | 181 | tabTitleView.setTextColor(getResources().getColorStateList(R.color.selector)); 182 | tabTitleView.setTextSize(12); 183 | tabTitleView.getContext().setTheme(R.style.mobilIcerikBaslik); 184 | } 185 | } 186 | 187 | public void setContentDescription(int i, String desc) { 188 | mContentDescriptions.put(i, desc); 189 | } 190 | 191 | @Override 192 | protected void onAttachedToWindow() { 193 | super.onAttachedToWindow(); 194 | 195 | if (mViewPager != null) { 196 | scrollToTab(mViewPager.getCurrentItem(), 0); 197 | } 198 | } 199 | 200 | private void scrollToTab(int tabIndex, int positionOffset) { 201 | final int tabStripChildCount = mTabStrip.getChildCount(); 202 | if (tabStripChildCount == 0 || tabIndex < 0 || tabIndex >= tabStripChildCount) { 203 | return; 204 | } 205 | 206 | View selectedChild = mTabStrip.getChildAt(tabIndex); 207 | if (selectedChild != null) { 208 | int targetScrollX = selectedChild.getLeft() + positionOffset; 209 | 210 | if (tabIndex > 0 || positionOffset > 0) { 211 | // If we're not at the first child and are mid-scroll, make sure we obey the offset 212 | targetScrollX -= mTitleOffset; 213 | } 214 | 215 | scrollTo(targetScrollX, 0); 216 | } 217 | } 218 | 219 | public interface TabColorizer { 220 | 221 | int getIndicatorColor(int position); 222 | 223 | } 224 | 225 | private class InternalViewPagerListener implements ViewPager.OnPageChangeListener { 226 | private int mScrollState; 227 | 228 | @Override 229 | public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 230 | int tabStripChildCount = mTabStrip.getChildCount(); 231 | if ((tabStripChildCount == 0) || (position < 0) || (position >= tabStripChildCount)) { 232 | return; 233 | } 234 | 235 | mTabStrip.onViewPagerPageChanged(position, positionOffset); 236 | 237 | View selectedTitle = mTabStrip.getChildAt(position); 238 | int extraOffset = (selectedTitle != null) 239 | ? (int) (positionOffset * selectedTitle.getWidth()) 240 | : 0; 241 | scrollToTab(position, extraOffset); 242 | 243 | if (mViewPagerPageChangeListener != null) { 244 | mViewPagerPageChangeListener.onPageScrolled(position, positionOffset, 245 | positionOffsetPixels); 246 | } 247 | } 248 | 249 | @Override 250 | public void onPageScrollStateChanged(int state) { 251 | mScrollState = state; 252 | 253 | if (mViewPagerPageChangeListener != null) { 254 | mViewPagerPageChangeListener.onPageScrollStateChanged(state); 255 | } 256 | } 257 | 258 | @Override 259 | public void onPageSelected(int position) { 260 | if (mScrollState == ViewPager.SCROLL_STATE_IDLE) { 261 | mTabStrip.onViewPagerPageChanged(position, 0f); 262 | scrollToTab(position, 0); 263 | } 264 | for (int i = 0; i < mTabStrip.getChildCount(); i++) { 265 | mTabStrip.getChildAt(i).setSelected(position == i); 266 | } 267 | if (mViewPagerPageChangeListener != null) { 268 | mViewPagerPageChangeListener.onPageSelected(position); 269 | } 270 | } 271 | 272 | } 273 | 274 | private class TabClickListener implements OnClickListener { 275 | @Override 276 | public void onClick(View v) { 277 | for (int i = 0; i < mTabStrip.getChildCount(); i++) { 278 | if (v == mTabStrip.getChildAt(i)) { 279 | mViewPager.setCurrentItem(i); 280 | return; 281 | } 282 | } 283 | } 284 | } 285 | 286 | } 287 | -------------------------------------------------------------------------------- /src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Geleceği Yazanlar 3 | 4 | Hello world! 5 | Settings 6 | Açıldı. 7 | Kapandı. 8 | Ne öğrenebilirim? 9 | Android Dünyası 10 | IOS Dünyası 11 | Windows Phone Dünyası 12 | Scratch Dünyası 13 | App Inventor Dünyası 14 | Arduino Dünyası 15 | Web 16 | Oyun 17 | 18 | id 19 | Lütfen Internet Bağlantınızı Kontrol Ediniz. 20 | Tamam 21 | 22 | 23 | 81 24 | 30314 25 | 82 26 | 92 27 | 93 28 | 94 29 | 95 30 | 96 31 | 97 32 | 98 33 | 99 34 | 21062 35 | 21063 36 | 23339 37 | 28510 38 | 30052 39 | 23841 40 | 12690 41 | 12710 42 | 23976 43 | 24319 44 | 24730 45 | 27170 46 | 24418 47 | 24669 48 | 24101 49 | 25543 50 | 25547 51 | 25542 52 | 53 | 54 | 55 | 56 | Hello blank fragment 57 | EgitimBaslikActivity 58 | EgitimIcerikActivity 59 | ProfilAcitivity 60 | ProfilActivity 61 | Arama Sayfası 62 | YorumActivity 63 | EtkinlikIcerikActivity 64 | BlogIcerikAcitivity 65 | Yorumlar 66 | Henüz Yorum Yapılmamış 67 | İsim: 68 | Kullanıcı Adı: 69 | Tasarım 70 | gün 71 | kaldı 72 | Eşleşen Sonuç Bulunamadı 73 | 74 | 75 | Başlangıç seviyesi derslerde Android uygulama geliştirme ortamını inceliyoruz. 76 | Bu bölümde basit projelerle Android uygulamaları geliştirmenin temellerini veriyoruz. 77 | Bu bölümden itibaren Android için mobil uygulama geliştirmenin ilk adımlarını atıyoruz. 78 | Artık ileri seviye Android geliştirme sürecine giriyor, uygulamalarımızı hayata geçiriyoruz. 79 | Başlangıç seviyesi derslerde iOS uygulama geliştirme ortamını detaylı olarak inceliyoruz. 80 | Başlangıç seviyesi derslerde iOS(Swift) uygulama geliştirme ortamını detaylı olarak inceliyoruz. 81 | Bu bölümde basit projelerle iOS uygulamaları geliştirmenin temellerini veriyoruz. 82 | Bu bölümden itibaren iOS geliştirme adımlarına giriş yapıyoruz. 83 | Artık ileri seviye iOS geliştirme sürecine giriyor, uygulamalarımızı hayata geçiriyoruz. 84 | Bu bölümde Windows Phone 8 için uygulama geliştirmeyi anlatacağız. İlk derslerde geliştirme ortamını detaylı olarak inceliyoruz. 85 | Bu bölümde basit projelerle Windows Phone 8 uygulamaları geliştirmenin temellerini öğreniyor, ufak alıştırmalar yapıyoruz. 86 | Scratch\'e giriş yapacağız ve basit uygulamaların nasıl yapıldığını öğreneceğiz. 87 | Scratch öğrenmeye örnek projelerle devam edeceğiz. 88 | App Inventor\'a giriş yapacağız ve basit uygulamaların nasıl yapıldığını öğreneceğiz. 89 | App Inventor ile oyunlar yapmaya başlıyoruz. 90 | App Inventor ile uygulama geliştirmeye başlıyoruz. 91 | App Inventor ve Arduino ile uygulamalar geliştiriyoruz. 92 | Başlangıç seviyesi derslerde Arduino\'ya giriş yapıyoruz. 93 | Arduino ile yapabileceklerimizi öğreniyoruz. 94 | Arduino bilgimizi örnek uygulamalarla pekiştiriyoruz. 95 | Arduino bilgimizi örnek uygulamalarla pekiştiriyoruz. 96 | Bir ürün olarak oyunun hazırlık süreci, tasarım ve oyunda sanat konularını işleyeceğiz. 97 | Bu eğitimde oyun geliştirmedeki teknolojiye, gelir modeline ve medya ilişkilerine değineceğiz. 98 | Web programlama eğitimimizin ileri seviyesinde, Node.js öğreniyoruz. 99 | Web programlama eğitimimizin ileri seviyesinde,MongoDB öğreniyoruz. 100 | Web programlama eğitimimizin orta seviyesinde, JQuery öğreniyoruz. 101 | Web programlama eğitimimizin orta seviyesinde, JavaScript öğreniyoruz. 102 | Bu başlangıç seviyesi derslerimizde HTML5 ve CSS ile bilgimizi bir adım öteye taşıyoruz. 103 | Başlangıç seviyesi derslerde Web programlamanın temeli olan HTML\'i öğreniyoruz. 104 | 105 | 106 | 101:Android\nSeviye:Başlangıç 107 | 201:Android\nSeviye:Başlangıç 108 | 301:Android\nSeviye:Orta 109 | 401:Android\nSeviye:İleri 110 | 101:IOS\nSeviye:Başlangıç 111 | 102:IOS\nSeviye:Başlangıç 112 | 201:IOS\nSeviye:Başlangıç 113 | 301:IOS\nSeviye:Orta 114 | 401:IOS\nSeviye:İleri 115 | 101:Windows Phone\nSeviye:Başlangıç 116 | 201:Windows Phone\nSeviye:Orta 117 | 101:Scratch\nSeviye:Başlangıç 118 | 201:Scratch\nSeviye:Orta 119 | 101:App Inventor\nSeviye:Başlangıç 120 | 201:App Inventor\nSeviye:Orta 121 | 301:App Invetor\nSeviye:İleri 122 | 401:App Invetor\nSeviye:İleri 123 | 101:Arduino\nSeviye:Başlangıç 124 | 201:Arduino\nSeviye:Başlangıç 125 | 301:Arduino\nSeviye:Orta 126 | 401:Arduino\nSeviye:İleri 127 | Oyun Geliştirme 101\nSeviye:Başlangıç 128 | Oyun Geliştirme 201\nSeviye:Orta 129 | 101:HTML\nSeviye:Başlangıç 130 | 201:HTML5-CSS\nSeviye:Başlangıç 131 | 301:JavaScript\nSeviye:Orta 132 | 302:JQuery\nSeviye:Orta 133 | 401:Node.js\nSeviye:İleri 134 | 402:MongoDB\nSeviye:İleri 135 | 136 | 137 | 138 | Android 139 | iOS 140 | Windows Phone 141 | Mobil Oyun 142 | Web Programlama 143 | Scratch 144 | App Inventor 145 | Arduino 146 | 147 | 148 | Başlık: 149 | İçerik: 150 | Bir Hata Oluştu 151 | İÇERİKLER 152 | KULLANICILAR 153 | Tamam 154 | Yükleniyor... 155 | Eğitimler 156 | Blog 157 | Etkinlik 158 | Geliştiriciler 159 | Eğitim 160 | Blog 161 | Etkinlik 162 | Geliştiriciler 163 | Geleceği Yazanlar 164 | Hakkında 165 | Başarı Belgeleri 166 | GELECEĞİ YAZANLAR 167 | MOBİL 168 | ANDROID 169 | IOS 170 | WINDOWS PHONE 171 | Mobil 172 | Web 173 | Oyun 174 | 175 | --------------------------------------------------------------------------------