III-sonic

Untitled

Dec 4th, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.64 KB | None | 0 0
  1. adapter
  2. package com.skmobile.cataloguemovieuiux;
  3.  
  4. import android.content.Context;
  5. import android.icu.text.DateFormat;
  6. import android.icu.text.SimpleDateFormat;
  7. import android.support.v7.widget.RecyclerView;
  8. import android.view.LayoutInflater;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import android.widget.ImageView;
  12. import android.widget.RelativeLayout;
  13. import android.widget.TextView;
  14.  
  15. import com.bumptech.glide.Glide;
  16.  
  17. import java.text.ParseException;
  18. import java.util.ArrayList;
  19. import java.util.Date;
  20.  
  21. import butterknife.BindView;
  22. import butterknife.ButterKnife;
  23.  
  24. /**
  25. * Created by ADMIN on 03/12/2017.
  26. */
  27.  
  28. public class MovieAdapter extends RecyclerView.Adapter<MovieAdapter.ViewHolder> {
  29.  
  30. ArrayList<MovieItems> movieItemses;
  31. Context context;
  32.  
  33. public MovieAdapter(Context context) {
  34. this.context = context;
  35.  
  36. }
  37.  
  38. private ArrayList<MovieItems> getMovieItemses() {
  39. return movieItemses;
  40. }
  41.  
  42. void setMovieItemses(ArrayList<MovieItems> movieItemses) {
  43. this.movieItemses = movieItemses;
  44. }
  45.  
  46. public void setData(ArrayList<MovieItems> items) {
  47. movieItemses = items;
  48. notifyDataSetChanged();
  49. }
  50. public void addItem(final MovieItems item){
  51. movieItemses.add(item);
  52. notifyDataSetChanged();
  53. }
  54. public void clearData(){
  55.  
  56. movieItemses.clear();
  57. }
  58. @Override
  59. public int getItemViewType(int position) {
  60. return 1;
  61. }
  62.  
  63. @Override
  64. public long getItemId(int position) {
  65. return position;
  66. }
  67.  
  68.  
  69. @Override
  70. public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  71. View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_list, parent, false);
  72. return new ViewHolder(view);
  73. }
  74.  
  75. @Override
  76. public void onBindViewHolder(ViewHolder holder, int position) {
  77.  
  78. MovieItems mv = getMovieItemses().get(position);
  79.  
  80. Glide.with(context).load
  81. ("http://image.tmdb.org/t/p/w185"+mv
  82. .getImage())
  83. .into(holder.ViewImage);
  84. holder.textViewTitle.setText(mv.getTitle());
  85. holder.textViewDescription.setText(mv.getDiscripsi());
  86. holder.textViewDate.setText(mv.getDate());
  87. DateFormat inputFormat = new SimpleDateFormat("yyyy-M-dd");
  88. DateFormat outputFormat = new SimpleDateFormat("EEEE, MMM dd, yyyy");
  89. Date date = null;
  90. try {
  91. date = inputFormat.parse(mv.getDate());
  92. holder.textViewDate.setText(outputFormat.format(date));
  93. } catch (ParseException e) {
  94. holder.textViewDate.setText(mv.getDate());
  95. }
  96.  
  97.  
  98. }
  99.  
  100. @Override
  101. public int getItemCount() {
  102. return getMovieItemses().size();
  103. }
  104.  
  105. class ViewHolder extends RecyclerView.ViewHolder {
  106. @BindView(R.id.tv_title)
  107. TextView textViewTitle;
  108.  
  109. @BindView(R.id.img_item_photo)
  110. ImageView ViewImage;
  111.  
  112. @BindView(R.id.tv_description)
  113. TextView textViewDescription;
  114.  
  115. @BindView(R.id.tv_date)
  116. TextView textViewDate;
  117.  
  118. @BindView(R.id.nowplaying)
  119. RelativeLayout relativeLayout;
  120. ViewHolder(View view){
  121. super(view);
  122.  
  123. ButterKnife.bind(this, view);
  124. }
  125.  
  126.  
  127.  
  128. }
  129. }
  130. ==============================================
  131. items
  132.  
  133. package com.skmobile.cataloguemovieuiux;
  134.  
  135. import android.os.Build;
  136. import android.support.annotation.RequiresApi;
  137.  
  138. import org.json.JSONException;
  139. import org.json.JSONObject;
  140.  
  141. /**
  142. * Created by ADMIN on 03/12/2017.
  143. */
  144.  
  145. public class MovieItems {
  146. private String title;
  147. private String image;
  148. private String discripsi;
  149. private String date;
  150. private String backdor;
  151.  
  152. @RequiresApi(api = Build.VERSION_CODES.N)
  153. public MovieItems(JSONObject object) {
  154. try {
  155.  
  156. String title = object.getString("original_title");
  157. String image = object.getString("poster_path");
  158. String description = object.getString("overview");
  159. String date = object.getString("release_date");
  160. String backdor = object.getString("backdrop_path");
  161.  
  162.  
  163. this.title = title;
  164. this.backdor = backdor;
  165. this.discripsi = description;
  166. this.image = image;
  167. this.date = date;
  168. } catch (JSONException e) {
  169. e.printStackTrace();
  170. }
  171. }
  172.  
  173. public String getTitle() {
  174. return title;
  175. }
  176.  
  177. public void setTitle(String title) {
  178. this.title = title;
  179. }
  180.  
  181. public String getImage() {
  182. return image;
  183. }
  184.  
  185. public void setImage(String image) {
  186. this.image = image;
  187. }
  188.  
  189. public String getDiscripsi() {
  190. return discripsi;
  191. }
  192.  
  193. public void setDiscripsi(String discripsi) {
  194. this.discripsi = discripsi;
  195. }
  196.  
  197. public String getDate() {
  198. return date;
  199. }
  200.  
  201. public void setDate(String date) {
  202. this.date = date;
  203. }
  204.  
  205. public String getBackdor() {
  206. return backdor;
  207. }
  208.  
  209. public void setBackdor(String backdor) {
  210. this.backdor = backdor;
  211. }
  212.  
  213.  
  214. }
  215. ===========================================
  216. taskloder
  217.  
  218. package com.skmobile.cataloguemovieuiux;
  219.  
  220. import android.support.v4.content.AsyncTaskLoader;
  221. import android.content.Context;
  222. import android.os.Build;
  223. import android.support.annotation.RequiresApi;
  224.  
  225. import com.loopj.android.http.AsyncHttpResponseHandler;
  226. import com.loopj.android.http.SyncHttpClient;
  227.  
  228. import org.json.JSONArray;
  229. import org.json.JSONObject;
  230.  
  231. import java.util.ArrayList;
  232. import cz.msebera.android.httpclient.Header;
  233.  
  234. import static com.skmobile.cataloguemovieuiux.BuildConfig.NOW_PLAYING_URL;
  235. import static com.skmobile.cataloguemovieuiux.BuildConfig.PHOTO_PROFILE_URL;
  236. import static com.skmobile.cataloguemovieuiux.BuildConfig.UPCOMING_URL;
  237. import static com.skmobile.cataloguemovieuiux.BuildConfig.PEOPLE_URL;
  238. import static com.skmobile.cataloguemovieuiux.BuildConfig.TVMOVIE_URL;
  239. import static com.skmobile.cataloguemovieuiux.BuildConfig.TOPRATE_URL;
  240. import static com.skmobile.cataloguemovieuiux.BuildConfig.SEARCH_URL;
  241.  
  242.  
  243.  
  244. /**
  245. * Created by ADMIN on 03/12/2017.
  246. */
  247.  
  248. public class MyTaskMovie extends AsyncTaskLoader<ArrayList<MovieItems>> {
  249.  
  250. private ArrayList<MovieItems> mMovieData;
  251. private boolean mResult;
  252. private String category;
  253. private String keyword;
  254.  
  255. public MyTaskMovie(final Context context, String category, String keyword) {
  256. super(context);
  257. this.category = category;
  258. this.keyword = keyword;
  259. onContentChanged();
  260.  
  261. }
  262.  
  263. @Override
  264. protected void onStartLoading() {
  265. if (takeContentChanged())
  266. forceLoad();
  267. else if (mResult)
  268. deliverResult(mMovieData);
  269. }
  270.  
  271. @Override
  272. public void deliverResult(final ArrayList<MovieItems> data) {
  273. mMovieData = data;
  274. mResult = true;
  275. super.deliverResult(data);
  276. }
  277.  
  278. @Override
  279. protected void onReset() {
  280. super.onReset();
  281. onStopLoading();
  282. if (mResult) {
  283. onReleaseResources(mMovieData);
  284. mMovieData = null;
  285. mResult = false;
  286. }
  287. }
  288.  
  289.  
  290.  
  291.  
  292. @Override
  293. public ArrayList<MovieItems> loadInBackground() {
  294. SyncHttpClient client = new SyncHttpClient();
  295.  
  296. final ArrayList<MovieItems> movieItemses = new ArrayList<>();
  297.  
  298. String url = null;
  299. switch (category){
  300. case "now_playing":
  301. url = NOW_PLAYING_URL;
  302. break;
  303. case "upcoming":
  304. url = UPCOMING_URL;
  305. break;
  306. case "search":
  307. url = SEARCH_URL+"&language=en-US&query="+keyword;
  308. break;
  309. case "toprate":
  310. url = TOPRATE_URL;
  311. break;
  312. case "people":
  313. url = PEOPLE_URL;
  314. break;
  315. case "tvmovie":
  316. url = TVMOVIE_URL;
  317. break;
  318. }
  319.  
  320. client.get(url, new AsyncHttpResponseHandler() {
  321. @Override
  322. public void onStart() {
  323. super.onStart();
  324. setUseSynchronousMode(true);
  325. }
  326.  
  327.  
  328. @RequiresApi(api = Build.VERSION_CODES.N)
  329. @Override
  330. public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
  331. try {
  332. String result = new String(responseBody);
  333. JSONObject responeseObject = new JSONObject(result);
  334. JSONArray list = responeseObject.getJSONArray("results");
  335.  
  336. for (int i = 0; i < list.length(); i++) {
  337. JSONObject movie = list.getJSONObject(i);
  338. MovieItems movieItems = new MovieItems(movie);
  339. movieItemses.add(movieItems);
  340. }
  341. } catch (Exception e) {
  342. e.printStackTrace();
  343. }
  344. }
  345.  
  346. @Override
  347. public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
  348.  
  349. }
  350.  
  351. });
  352. return movieItemses;
  353.  
  354. }
  355. protected void onReleaseResources(ArrayList<MovieItems> data) {
  356.  
  357. }
  358. }
  359.  
  360. =====================================
  361. nowplaying
  362.  
  363. package com.skmobile.cataloguemovieuiux;
  364.  
  365.  
  366. import android.os.Build;
  367. import android.support.annotation.RequiresApi;
  368. import android.support.v4.app.LoaderManager;
  369. import android.support.v4.content.Loader;
  370. import android.os.Bundle;
  371. import android.support.v4.app.Fragment;
  372. import android.support.v7.widget.LinearLayoutManager;
  373. import android.support.v7.widget.RecyclerView;
  374. import android.view.LayoutInflater;
  375. import android.view.View;
  376. import android.view.ViewGroup;
  377.  
  378. import java.util.ArrayList;
  379.  
  380. import butterknife.BindView;
  381.  
  382.  
  383. /**
  384. * A simple {@link Fragment} subclass.
  385. */
  386. public class NowPlaying extends Fragment implements LoaderManager.LoaderCallbacks<ArrayList<MovieItems>>{
  387.  
  388. RecyclerView recyclerView;
  389.  
  390. ArrayList<MovieItems> list = new ArrayList<>();
  391. MovieAdapter adapter;
  392.  
  393. public NowPlaying() {
  394. // Required empty public constructor
  395. }
  396.  
  397.  
  398. @Override
  399. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  400. Bundle savedInstanceState) {
  401. // Inflate the layout for this fragment
  402. View view = inflater.inflate(R.layout.content, container, false);
  403. recyclerView = (RecyclerView)view.findViewById(R.id.rv_category);
  404. recyclerView.setHasFixedSize(true);
  405. adapter = new MovieAdapter(getActivity());
  406.  
  407. adapter.notifyDataSetChanged();
  408. recyclerView.setAdapter(adapter);
  409. showRecyclerCardView();
  410.  
  411. return view;
  412. }
  413.  
  414. @Override
  415. public void onActivityCreated(Bundle savedInstanceState){
  416. super.onActivityCreated(savedInstanceState);
  417. Bundle bundle = new Bundle();
  418. getLoaderManager().initLoader(0, bundle, this);
  419.  
  420. }
  421.  
  422. @RequiresApi(api = Build.VERSION_CODES.KITKAT)
  423. @Override
  424. public Loader<ArrayList<MovieItems>> onCreateLoader(int id, Bundle args) {
  425. return new MyTaskMovie(getActivity(), "now_playing", null);
  426. }
  427.  
  428. @Override
  429. public void onLoadFinished(Loader<ArrayList<MovieItems>> loader, ArrayList<MovieItems> data) {
  430. adapter.setData(data);
  431. list = data;
  432.  
  433.  
  434. }
  435.  
  436. @Override
  437. public void onLoaderReset(Loader<ArrayList<MovieItems>> loader) {
  438. adapter.setData(null);
  439.  
  440. }
  441. private void showRecyclerCardView(){
  442. recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
  443. MovieAdapter Adapter = new MovieAdapter(getActivity());
  444. Adapter.setMovieItemses(list);
  445. recyclerView.setAdapter(Adapter);
  446. }
  447.  
  448.  
  449. }
  450.  
  451.  
  452. ================================================
  453.  
  454. ipcoming
  455.  
  456. package com.skmobile.cataloguemovieuiux;
  457.  
  458.  
  459. import android.os.Build;
  460. import android.os.Bundle;
  461. import android.support.annotation.RequiresApi;
  462. import android.support.v4.app.Fragment;
  463. import android.support.v4.app.LoaderManager;
  464. import android.support.v4.content.Loader;
  465. import android.support.v7.widget.LinearLayoutManager;
  466. import android.support.v7.widget.RecyclerView;
  467. import android.view.LayoutInflater;
  468. import android.view.View;
  469. import android.view.ViewGroup;
  470.  
  471. import java.util.ArrayList;
  472.  
  473. import butterknife.BindView;
  474.  
  475.  
  476. /**
  477. * A simple {@link Fragment} subclass.
  478. */
  479. public class UpComing extends Fragment implements LoaderManager.LoaderCallbacks<ArrayList<MovieItems>>{
  480.  
  481. RecyclerView recyclerView;
  482. ArrayList<MovieItems> list = new ArrayList<>();
  483. MovieAdapter adapter;
  484.  
  485. public UpComing() {
  486. // Required empty public constructor
  487. }
  488.  
  489.  
  490. @Override
  491. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  492. Bundle savedInstanceState) {
  493. // Inflate the layout for this fragment
  494. View view = inflater.inflate(R.layout.content, container, false);
  495. recyclerView = (RecyclerView)view.findViewById(R.id.rv_category);
  496. recyclerView.setHasFixedSize(true);
  497. adapter = new MovieAdapter(getActivity());
  498.  
  499. adapter.notifyDataSetChanged();
  500. recyclerView.setAdapter(adapter);
  501.  
  502. showRecyclerCardView();
  503. return view;
  504. }
  505. @Override
  506. public void onActivityCreated(Bundle savedInstanceState){
  507. super.onActivityCreated(savedInstanceState);
  508. Bundle bundle = new Bundle();
  509. getLoaderManager().initLoader(0, bundle, this);
  510.  
  511. }
  512.  
  513. @RequiresApi(api = Build.VERSION_CODES.KITKAT)
  514. @Override
  515. public Loader<ArrayList<MovieItems>> onCreateLoader(int id, Bundle args) {
  516. return new MyTaskMovie(getActivity(), "upcoming", null);
  517. }
  518.  
  519. @Override
  520. public void onLoadFinished(Loader<ArrayList<MovieItems>> loader, ArrayList<MovieItems> data) {
  521. adapter.setData(data);
  522. list = data;
  523.  
  524.  
  525. }
  526.  
  527. @Override
  528. public void onLoaderReset(Loader<ArrayList<MovieItems>> loader) {
  529. adapter.setData(null);
  530.  
  531. }
  532. private void showRecyclerCardView(){
  533. recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
  534. MovieAdapter Adapter = new MovieAdapter(getActivity());
  535. Adapter.setMovieItemses(list);
  536. recyclerView.setAdapter(Adapter);
  537. }
  538.  
  539.  
  540. }
  541. =======================================================
  542. package com.skmobile.cataloguemovieuiux;
  543.  
  544. import android.support.v4.app.Fragment;
  545. import android.support.v4.app.FragmentManager;
  546. import android.support.v4.app.FragmentPagerAdapter;
  547.  
  548. /**
  549. * Created by ADMIN on 02/12/2017.
  550. */
  551.  
  552. public class ViewPagerAdapter extends FragmentPagerAdapter {
  553.  
  554. public ViewPagerAdapter(FragmentManager fragmentManager) {
  555. super(fragmentManager);
  556. }
  557.  
  558. @Override
  559. public Fragment getItem(int position) {
  560. Fragment fragment = null;
  561. if (position == 0)
  562. {
  563. fragment = new NowPlaying();
  564. }
  565. else if (position == 1)
  566. {
  567. fragment = new UpComing();
  568. }
  569.  
  570. return fragment;
  571. }
  572.  
  573.  
  574. @Override
  575. public int getCount() {
  576. return 2;
  577. }
  578. @Override
  579. public CharSequence getPageTitle(int position) {
  580. String title = null;
  581. if (position == 0)
  582. {
  583. title = "Now Playing";
  584. }
  585. else if (position == 1)
  586. {
  587. title = "UpComing";
  588. }
  589.  
  590. return title;
  591. }
  592. }
  593. viewpager
Add Comment
Please, Sign In to add comment