×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Java
Posted by: Jithin Pariyarath
Added: Sep 3, 2016 5:14 PM
Views: 2
Tags: no tags
Cards With List Java Template
  1. package devzstudio.com.maxlooter.Adapters;
  2.  
  3. import android.app.Activity;
  4. import android.content.ClipData;
  5. import android.content.ClipboardManager;
  6. import android.content.Context;
  7. import android.content.Intent;
  8. import android.os.AsyncTask;
  9. import android.os.Build;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.ImageView;
  13. import android.widget.TextView;
  14. import android.widget.Toast;
  15.  
  16. import com.goebl.david.Webb;
  17. import com.squareup.picasso.Picasso;
  18.  
  19. import org.json.JSONArray;
  20. import org.json.JSONException;
  21. import org.json.JSONObject;
  22.  
  23. import java.util.ArrayList;
  24. import java.util.List;
  25.  
  26. import devzstudio.com.maxlooter.API.APIClass;
  27. import devzstudio.com.maxlooter.Data.MainDataHolder;
  28. import devzstudio.com.maxlooter.NetworkError;
  29. import devzstudio.com.maxlooter.R;
  30. import it.gmariotti.cardslib.library.internal.Card;
  31. import it.gmariotti.cardslib.library.internal.CardHeader;
  32. import it.gmariotti.cardslib.library.prototypes.CardWithList;
  33. import it.gmariotti.cardslib.library.prototypes.LinearListView;
  34.  
  35. /**
  36.  * Created by LostRider on 6/4/2016.
  37.  */
  38. public class CouponsList extends CardWithList{
  39.     List<CardWithList.ListObject> mObjects;
  40.     Activity ac;
  41.     CouponGateway gatewayo;
  42.     Card parentcard;
  43.     boolean flag=true;
  44.  
  45.     public CouponsList(Activity context)
  46.     {
  47.         super(context);
  48.         ac = context;
  49.  
  50.     }
  51.     @Override
  52.     protected CardHeader initCardHeader() {
  53.         return null;
  54.     }
  55.  
  56.     @Override
  57.     protected void initCard() {
  58.         setEmptyViewViewStubLayoutId(R.layout.loading);
  59.  
  60.     }
  61.  
  62.     @Override
  63.     protected List<ListObject> initChildren() {
  64.         mObjects = new ArrayList<ListObject>();
  65.         gatewayo = new CouponGateway(this);
  66.         parentcard = this;
  67.         new getItems().execute();
  68.         return mObjects;
  69.     }
  70.  
  71.     @Override
  72.     public View setupChildView(int childPosition, ListObject object, View convertView, ViewGroup parent) {
  73.         TextView siteText = (TextView) convertView.findViewById(R.id.siteTitle);
  74.         ImageView siteImage = (ImageView) convertView.findViewById(R.id.siteImage);
  75.         TextView couponDescription = (TextView) convertView.findViewById(R.id.couponDescription);
  76.         TextView couponCode = (TextView) convertView.findViewById(R.id.couponCode);
  77.  
  78.         ImageView imageView=(ImageView)convertView.findViewById(R.id.fab);
  79.         final CouponGateway gatewayobject = (CouponGateway) object;
  80.  
  81.         if (!flag)
  82.         {
  83.             couponCode.setVisibility(View.INVISIBLE);
  84.             siteImage.setVisibility(View.INVISIBLE);
  85.         }
  86.         Picasso.with(ac).load(MainDataHolder.SITE_IMAGE).into(siteImage);
  87.         siteText.setText(MainDataHolder.SITE_NAME);
  88.  
  89.         couponCode.setText(gatewayobject.code);
  90.         couponDescription.setText(gatewayobject.details);
  91.  
  92.         imageView.setOnClickListener(new View.OnClickListener() {
  93.             @Override
  94.             public void onClick(View v) {
  95.  
  96.                 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
  97.  
  98.                 {
  99.                     final ClipboardManager clipboardManager = (ClipboardManager)
  100.                             ac.getSystemService(Context.CLIPBOARD_SERVICE);
  101.                     final ClipData clipData = ClipData
  102.                             .newPlainText(gatewayobject.code,gatewayobject.code);
  103.                     clipboardManager.setPrimaryClip(clipData);
  104.                 } else
  105.  
  106.                 {
  107.                     final android.text.ClipboardManager clipboardManager = (android.text.ClipboardManager)
  108.                             ac.getSystemService(Context.CLIPBOARD_SERVICE);
  109.                     clipboardManager.setText(gatewayobject.code);
  110.                 }
  111.  
  112.                 Toast.makeText(ac, "Coupon Code Copied to Clipboard", Toast.LENGTH_SHORT).show();
  113.             }
  114.         });
  115.         return convertView;
  116.  
  117.     }
  118.  
  119.     @Override
  120.     public int getChildLayoutId() {
  121.         return R.layout.couponcards;
  122.     }
  123.  
  124.  
  125.     public class getItems extends AsyncTask<Void, Void, String> {
  126.  
  127.  
  128.         @Override
  129.         protected void onPostExecute(String s) {
  130.  
  131.             super.onPostExecute(s);
  132.             try {
  133.                 JSONArray jsonArray = new JSONArray(s);
  134.                 int len = jsonArray.length();
  135.  
  136.                 if(len==0)
  137.                 {
  138.                     CouponGateway gatewayo = new CouponGateway(parentcard);
  139.                     gatewayo.details="Sorry No Coupons Are Available for this Site...";
  140.  
  141.  
  142.                     flag=false;
  143.                     mObjects.add(gatewayo);
  144.  
  145.                     notifyDataSetChanged();
  146.                 }
  147.  
  148.  
  149.                 for (int i = 0; i < len; i++) {
  150.  
  151.                     CouponGateway gatewayo = new CouponGateway(parentcard);
  152.                     JSONObject jsonObject = jsonArray.getJSONObject(i);
  153.                     int id = jsonObject.getInt("id");
  154.                     String code = jsonObject.getString("code");
  155.                     String details = jsonObject.getString("details");
  156.  
  157.                     gatewayo.code = code;
  158.                     gatewayo.details = details;
  159.                     gatewayo.id = id;
  160.  
  161.                     mObjects.add(gatewayo);
  162.  
  163.                     notifyDataSetChanged();
  164.  
  165.                 }
  166.             } catch (JSONException e) {
  167.                 Intent intent = new Intent(ac, NetworkError.class);
  168.                 ac.startActivity(intent);
  169.             }
  170.             catch(Exception e)
  171.             {
  172.                 Intent intent = new Intent(ac, NetworkError.class);
  173.                 ac.startActivity(intent);
  174.             }
  175.         }
  176.  
  177.         @Override
  178.         protected String doInBackground(Void... params) {
  179.  
  180.             try{
  181.                 Webb webb = Webb.create();
  182.  
  183.             String response = webb.get(APIClass.COUPONS_LIST + MainDataHolder.SITE_ID)
  184.                     .ensureSuccess()
  185.                     .asString().getBody();
  186.             return response;
  187.         }
  188.         catch(Exception e)
  189.         {
  190.             Intent intent = new Intent(ac, NetworkError.class);
  191.             ac.startActivity(intent);
  192.         }
  193.         return "";
  194.  
  195.         }
  196.     }
  197.     public class CouponGateway extends DefaultListObject {
  198.  
  199.         int id;
  200.         String code;
  201.         String details;
  202.  
  203.  
  204.  
  205.         public CouponGateway(Card parentCard) {
  206.             super(parentCard);
  207.             init();
  208.  
  209.         }
  210.  
  211.         private void init() {
  212.             setOnItemClickListener(new OnItemClickListener() {
  213.                 @Override
  214.                 public void onItemClick(LinearListView parent, View view, int position, ListObject object) {
  215.                    /* Intent i = new Intent(ac, ContentActivity.class);
  216.                     i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  217.                     ContentBean contentBean=new ContentBean();
  218.                     contentBean.setId(id);
  219.                     contentBean.setImage(img);
  220.                     contentBean.setTitle(title);
  221.                     i.putExtra("content",contentBean);
  222.                     ac.startActivity(i);*/
  223.                 }
  224.             });
  225.         }
  226.  
  227.     }
  228. }
  229.