Advertisement
Guest User

Untitled

a guest
Feb 25th, 2013
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.32 KB | None | 0 0
  1.  
  2.  
  3. public class NewsScreenAdapter extends BaseAdapter implements OnTouchListener,
  4. Handler.Callback {
  5.  
  6. LayoutInflater inflater;
  7. // public GifDecoderView webview1;
  8. public static viewholder holder;
  9. View view = null;
  10. public Context context;
  11. public ImageLoader IL;
  12. public String imgUrl;
  13. public static String addurl;
  14. public Activity activity;
  15. String image;
  16. public static String str;
  17. public static Date parsed;
  18. public static String ac, cat_id;
  19. boolean loadingFinished = true;
  20. boolean redirect = false;
  21. Typeface typefont;
  22. private WebViewClient client;
  23. SimpleDateFormat display_date;
  24. SimpleDateFormat currentdate;
  25. SimpleDateFormat sdf;
  26.  
  27. public NewsScreenAdapter(NewsScreenActivity a) {
  28. // TODO Auto-generated constructor stub
  29.  
  30. this.context = a.getApplicationContext();
  31. this.activity = a;
  32. inflater = (LayoutInflater) activity
  33. .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  34. IL = new ImageLoader(activity.getApplicationContext());
  35. typefont = Typeface.createFromAsset(context.getAssets(),
  36. "Times New Roman.ttf");
  37. display_date = new SimpleDateFormat("dd.MM.yyyy");
  38. currentdate = new SimpleDateFormat("MMM dd,yyyy");
  39. sdf = new SimpleDateFormat(
  40. "MMM dd,yyyy hh:mmaa");
  41.  
  42. }
  43.  
  44. @Override
  45. public int getCount() {
  46. // TODO Auto-generated method stub
  47. // return NewsScreenActivity.arrayList_header.size();
  48.  
  49. return NewsScreenActivity.TotalDataArray.size();
  50. }
  51.  
  52. @Override
  53. public Object getItem(int position) {
  54. // TODO Auto-generated method stub
  55. return position;
  56. }
  57.  
  58. @Override
  59. public int getItemViewType(int position) {
  60. // TODO Auto-generated method stub
  61. return position;
  62. }
  63.  
  64. @Override
  65. public int getViewTypeCount() {
  66. // TODO Auto-generated method stub
  67. return NewsScreenActivity.TotalDataArray.size();
  68. }
  69.  
  70. @Override
  71. public long getItemId(int position) {
  72. // TODO Auto-generated method stub
  73. return position;
  74. }
  75.  
  76. public View getView(final int position, View convertView, ViewGroup parent) {
  77. // TODO Auto-generated method stub
  78.  
  79. // View vi = convertView;
  80. if (convertView == null) {
  81. // viewholder holder;
  82. // convertView =
  83. // mInflater.inflate(R.layout.list_item_icon_text,parent, false);
  84. convertView = inflater.inflate(R.layout.newsscren_row, null);
  85. holder = new viewholder();
  86. holder.news_header_title = (TextView) convertView
  87. .findViewById(R.id.header_title);
  88. holder.ll_data = (LinearLayout) convertView.findViewById(R.id.data);
  89.  
  90. convertView.setTag(holder);
  91. } else {
  92. holder = (viewholder) convertView.getTag();
  93. }
  94. // ------- set custom Font-----
  95.  
  96. holder.news_header_title.setOnClickListener(new OnClickListener() {
  97.  
  98. @Override
  99. public void onClick(View v) {
  100. // TODO Auto-generated method stub
  101.  
  102. cat_id = NewsScreenActivity.arrayList_header.get(position);
  103. ac = ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
  104. .get(position)).catId;
  105.  
  106. activity.startActivity(new Intent(activity,
  107. CategoryActivity.class).putExtra("id", ac));
  108.  
  109. }
  110. });
  111.  
  112. //
  113. if(holder.ll_data.getChildCount()>1)
  114. {
  115. return convertView;
  116. }
  117. else
  118. {
  119. holder.ll_data.removeAllViews();
  120. }
  121. // try {
  122.  
  123. int storyLenght = ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
  124. .get(position)).storyArr.size();
  125.  
  126. /*
  127. * } catch (Exception e) { // TODO: handle exception }
  128. */
  129.  
  130. for (int i = 0; i < storyLenght; i++) {
  131.  
  132. view = LayoutInflater.from(activity)
  133. .inflate(R.layout.sub_row, null);
  134.  
  135. holder.short_text = (TextView) view.findViewById(R.id.short_text);
  136. holder.image = (ImageView) view.findViewById(R.id.image);
  137. holder.des = (TextView) view.findViewById(R.id.des);
  138. holder.date_time = (TextView) view.findViewById(R.id.date_time);
  139. holder.llAdd = (LinearLayout) view.findViewById(R.id.sub_llAdd);
  140. holder.imgAdd = (WebView) view.findViewById(R.id.imgAdd);
  141. holder.imgAdd.setVerticalScrollBarEnabled(false);
  142.  
  143. holder.short_text.setTypeface(typefont);
  144. holder.des.setTypeface(typefont);
  145. holder.date_time.setTypeface(typefont);
  146. holder.news_header_title.setTypeface(typefont);
  147.  
  148. try {
  149. holder.image.setTag(NewsScreenActivity.arrayList_image.get(i));
  150.  
  151. IL.DisplayImage(
  152. ((NewsScreenActivity.ImagesData) ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
  153. .get(position)).storyArr.get(i)).imageArr
  154. .get(0)).smallurl, holder.image);
  155.  
  156. } catch (Exception e) {
  157. // TODO: handle exception
  158. }
  159.  
  160. try {
  161.  
  162. holder.short_text
  163. .setText(((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
  164. .get(position)).storyArr.get(i)).title);
  165. holder.des
  166. .setText(((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
  167. .get(position)).storyArr.get(i)).description);
  168.  
  169. String st = ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
  170. .get(position)).storyArr.get(i)).date;
  171. parsed = new Date(Long.parseLong(st.substring(6,
  172. st.length() - 2)));
  173.  
  174.  
  175. String concat = sdf.format(parsed);
  176. String data = concat;
  177. String half1 = data.substring(0, 11);
  178.  
  179. String dis_date = display_date.format(parsed);
  180.  
  181. String half2 = data.substring(11, 19);
  182.  
  183. Date currunt = new Date();
  184. String day = currentdate.format(currunt);
  185.  
  186. if (half1.equalsIgnoreCase(day) == true) {
  187. holder.date_time.setText(half2);
  188.  
  189. } else {
  190. half1 = dis_date;
  191. holder.date_time.setText(half1);
  192.  
  193. }
  194.  
  195. holder.news_header_title
  196. .setText(((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
  197. .get(position)).catDisplay);
  198.  
  199. if (!((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
  200. .get(position)).storyArr.get(i)).advertising
  201. .equalsIgnoreCase("null")) {
  202. if (holder.imgAdd.getTag() != null) {
  203. if ((Boolean) holder.imgAdd.getTag() == true) {
  204. break;
  205. }
  206. }
  207. holder.short_text.setVisibility(view.GONE);
  208. holder.date_time.setVisibility(view.GONE);
  209. holder.des.setVisibility(view.GONE);
  210.  
  211. imgUrl = ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
  212. .get(position)).storyArr.get(i)).adData.imageurl;
  213.  
  214. // TODO Auto-generated method stub
  215. addurl = ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
  216. .get(position)).storyArr.get(i)).adData.targeturl;
  217.  
  218. // -----------------GIF Image view ------------
  219.  
  220. holder.imgAdd.setOnTouchListener(NewsScreenAdapter.this);
  221.  
  222. client = new WebViewClient() {
  223. @Override
  224. public boolean shouldOverrideUrlLoading(WebView view,
  225. String url) {
  226. handler.sendEmptyMessage(CLICK_ON_URL);
  227.  
  228. return false;
  229. }
  230. };
  231.  
  232. holder.imgAdd.setWebViewClient(client);
  233. holder.imgAdd.setVerticalScrollBarEnabled(false);
  234.  
  235. // view.setVerticalScrollBarEnabled(false);
  236.  
  237. holder.imgAdd.getSettings().setJavaScriptEnabled(true);
  238.  
  239. holder.imgAdd.setWebChromeClient(new WebChromeClient() {
  240. public void onProgressChanged(WebView view, int progress) {
  241.  
  242. activity.setProgress(progress * 100);
  243.  
  244. if (progress == 100) {
  245. }
  246.  
  247. }
  248. });
  249.  
  250. holder.imgAdd.setWebViewClient(new WebViewClient() {
  251. public void onReceivedError(WebView view,
  252. int errorCode, String description,
  253. String failingUrl) {
  254. // Handle the error
  255. }
  256.  
  257. public boolean shouldOverrideUrlLoading(WebView view,
  258. String url) {
  259. view.loadUrl(url);
  260. return true;
  261. }
  262.  
  263. });
  264.  
  265. holder.imgAdd.loadUrl(imgUrl);
  266. holder.imgAdd.setTag(true);
  267. holder.llAdd.setVisibility(View.VISIBLE);
  268.  
  269. // holder.imgAdd.setPadding(30, 20, 0, 20);
  270. }
  271.  
  272. holder.ll_data.addView(view);
  273.  
  274. view.setTag(position + "OK" + i);
  275.  
  276. view.setOnClickListener(new OnClickListener() {
  277.  
  278. @Override
  279. public void onClick(View v) {
  280.  
  281. String tag = (String) v.getTag();
  282. String[] arr = tag.split("OK");
  283. int p = Integer.parseInt(arr[0]);
  284. int i = Integer.parseInt(arr[1]);
  285.  
  286. str = ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
  287. .get(p)).storyArr.get(i)).storyid;
  288.  
  289. Intent intent = new Intent(context,
  290. ShowFullDescriprion.class);
  291. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  292.  
  293. intent.putExtra("id", str);
  294. intent.putExtra("cat", p);
  295. intent.putExtra("pos", i);
  296. activity.startActivity(intent);
  297. }
  298. });
  299. } catch (Exception e) {
  300. // TODO: handle exception
  301. }
  302. }
  303. return convertView;
  304.  
  305. }
  306.  
  307. public static String getDate(long milliSeconds, String dateFormat) {
  308. // Create a DateFormatter object for displaying date in specified
  309. // format.
  310. DateFormat formatter = new SimpleDateFormat(dateFormat);
  311.  
  312. // Create a calendar object that will convert the date and time value in
  313. // milliseconds to date.
  314. Calendar calendar = Calendar.getInstance();
  315. calendar.setTimeInMillis(milliSeconds);
  316. return formatter.format(calendar.getTime());
  317. }
  318.  
  319. public static class viewholder {
  320.  
  321. TextView news_header_title, short_text, des, date_time;
  322. LinearLayout ll_data, llAdd;
  323. public ImageView image;
  324. WebView imgAdd;
  325.  
  326. }
  327.  
  328. private static final int CLICK_ON_WEBVIEW = 1;
  329. private static final int CLICK_ON_URL = 2;
  330.  
  331. private Handler handler = new Handler(NewsScreenAdapter.this);
  332.  
  333. @Override
  334. public boolean onTouch(View v, MotionEvent event) {
  335. // TODO Auto-generated method stub
  336. if (v.getId() == R.id.imgAdd
  337. && event.getAction() == MotionEvent.ACTION_DOWN) {
  338. handler.sendEmptyMessageDelayed(CLICK_ON_WEBVIEW, 500);
  339. }
  340. return false;
  341. }
  342.  
  343. public boolean handleMessage(Message msg) {
  344. if (msg.what == CLICK_ON_URL) {
  345. handler.removeMessages(CLICK_ON_WEBVIEW);
  346.  
  347. return true;
  348. }
  349. if (msg.what == CLICK_ON_WEBVIEW) {
  350.  
  351. activity.startActivity(new Intent(activity,
  352. AdvertismentActivity.class).putExtra("id", addurl));
  353.  
  354. return true;
  355. }
  356. return false;
  357. }
  358.  
  359. /*
  360. * public void clearAllResources() {
  361. *
  362. * // Set related variables null
  363. *
  364. * System.gc(); Runtime.getRuntime().gc(); }
  365. */
  366. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement