Search code examples
androidandroid-layoutandroid-listviewandroid-custom-viewandroid-scrollview

custom listview scrolling is stuttering


    import java.io.BufferedInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;

    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.entity.BufferedHttpEntity;
    import org.apache.http.impl.client.DefaultHttpClient;

    import android.app.Activity;
    import android.content.Context;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.drawable.Drawable;
    import android.net.Uri;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.view.ViewGroup.LayoutParams;
    import android.view.ViewParent;
    import android.webkit.WebView;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.ImageView.ScaleType;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.ViewAnimator;

    public class NewsScreenAdapter extends BaseAdapter {

        LayoutInflater inflater;
        public GifDecoderView webview1;
        public static  viewholder holder;
        View view = null;
        public static Context context;
        public ImageLoader IL;
        public String imgUrl;
        public static String addurl;    
        public NewsScreenActivity activity;
        String image;
        public static String str;
        public static Date parsed;
        public static String ac, cat_id;
        int storyLenght;

        public NewsScreenAdapter(NewsScreenActivity a) {
            // TODO Auto-generated constructor stub

            context = a.getApplicationContext();
            this.activity = a;       
            inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            IL = new ImageLoader(activity.getApplicationContext());   
         }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            // return NewsScreenActivity.arrayList_header.size();

            return NewsScreenActivity.TotalDataArray.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        @Override
        public int getItemViewType(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        @Override
        public int getViewTypeCount() {
            // TODO Auto-generated method stub
            return NewsScreenActivity.TotalDataArray.size();
        }
        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub

            View vi = convertView;

                holder = new viewholder();

                vi = inflater.inflate(R.layout.newsscren_row, null);
                holder.news_header_title = (TextView) vi.findViewById(R.id.header_title);
                holder.ll_data = (LinearLayout) vi.findViewById(R.id.data);

                vi.setTag(holder);

            holder.news_header_title.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    cat_id = NewsScreenActivity.arrayList_header.get(position);
                    ac = ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray.get(position)).catId;

                    activity.startActivity(new Intent(activity,CategoryActivity.class).putExtra("id", ac));

                }
            });

            holder.ll_data.removeAllViews();
            try {


             storyLenght = ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray.get(position)).storyArr.size();
            } catch (Exception e) {
                // TODO: handle exception
            }
            Log.d("Adapter ", " story Lenght " + storyLenght); 

            for (int i = 0; i < storyLenght; i++) {

                view = LayoutInflater.from(activity).inflate(R.layout.sub_row, null);

                holder.short_text = (TextView) view.findViewById(R.id.short_text);
                holder.image = (ImageView) view.findViewById(R.id.image);
                holder.des = (TextView) view.findViewById(R.id.des);
                holder.date_time = (TextView) view.findViewById(R.id.date_time);
                holder.llAdd = (LinearLayout) view.findViewById(R.id.sub_llAdd);
                holder.imgAdd = (ImageView) view.findViewById(R.id.imgAdd);

            try{
                    holder.image.setTag(NewsScreenActivity.arrayList_image.get(i));

                    IL.DisplayImage(
                            ((NewsScreenActivity.ImagesData) ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
                                    .get(position)).storyArr.get(i)).imageArr.get(0)).smallurl, activity, holder.image);

                    notifyDataSetChanged();

                } catch (Exception e) {
                    // TODO: handle exception
                }
     try {
         holder.short_text.setText(((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray.get(position)).storyArr.get(i)).title);
           holder.des.setText(((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray.get(position)).storyArr.get(i)).description);


                String st = ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
                        .get(position)).storyArr.get(i)).date;
                parsed = new Date(Long.parseLong(st.substring(6, st.length() - 2)));

                SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy hh:mmaa");
                System.out.println(sdf.format(parsed));
                String concat = sdf.format(parsed);
                String data = concat;
                String half1 = data.substring(0, 11);
                Log.e("1st date", "" + half1);

                SimpleDateFormat display_date = new SimpleDateFormat("dd.MM.yyyy");
                Date d_date = new Date();
                String dis_date = display_date.format(parsed);

                String half2 = data.substring(11, 19);
                Log.e("2st time", "" + half2);      

                SimpleDateFormat currentdate = new SimpleDateFormat("MMM dd,yyyy");
                Date currunt = new Date();
                String day = currentdate.format(currunt);
                if (half1.equalsIgnoreCase(day) == true) {
                    holder.date_time.setText(half2);
                    Log.v("if condition", "" + half2);
                } else {
                    half1 = dis_date;
                    holder.date_time.setText(half1);
                    Log.v("else condition", "" + half1);
                }
                Log.e("currunt time", "" + day); 

                holder.news_header_title.setText(((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
                                .get(position)).catDisplay);


                if (!((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
                        .get(position)).storyArr.get(i)).advertising
                        .equalsIgnoreCase("null")) {

                     holder.short_text.setVisibility(view.GONE);
                     holder.date_time.setVisibility(view.GONE);
                     holder.des.setVisibility(view.GONE);

                    imgUrl = ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
                            .get(position)).storyArr.get(i)).adData.imageurl;

                    // TODO Auto-generated method stub
                    addurl = ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray
                            .get(position)).storyArr.get(i)).adData.targeturl;


                    //-----------------GIF Image view ------------


                    //holder.imgAdd.setImageBitmap(IL.getBitmap(imgUrl));
                    holder.imgAdd.setImageBitmap(loadImageFromUrl(imgUrl));
                    /* InputStream is = null;
                        try {
                            is = (InputStream) new URL(imgUrl).getContent();

                      webview1 = new GifDecoderView(context, is);           
                      activity.setContentView(webview1);                                            

                        } catch (Exception e) {
                            return null;
                        }*/

                    try {
                        InputStream is = (InputStream) new URL(imgUrl).getContent();

                        GifDecoderView webview1 = new GifDecoderView(activity, is);
                    //  GifMovieView webview1 = new GifMovieView(activity, is);

                //      holder.llAdd.addView(webview1, holder.imgAdd.getLayoutParams());


                    } catch (Exception e) {
                        // TODO: handle exception
                    }


                    holder.imgAdd.setOnClickListener(new OnClickListener() {                    
                        @Override
                        public void onClick(View v) {                       

                            activity.startActivity(new Intent(activity, AdvertismentActivity.class));

                        }
                    });             
                    Log.i("---", "---------" + imgUrl);
                    holder.llAdd.setVisibility(View.VISIBLE);
                  }

                holder.ll_data.addView(view);      

                Log.i("Set Tag", position+"OK"+i);
                view.setTag(position+"OK"+i);

                view.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {

                        String tag = (String) v.getTag();
                        String[] arr = tag.split("OK");
                        int p = Integer.parseInt(arr[0]);
                        int i = Integer.parseInt(arr[1]);
                        Log.i("Pos and I", p + "   " + i );

                        str = ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray .get(p)).storyArr.get(i)).storyid;

                        Log.i("Pos and I and STR", p + "   " + i + "   "  + str);
                        Intent intent = new Intent(context,ShowFullDescriprion.class);
                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        intent.putExtra("id", str);
                        intent.putExtra("cat", p);
                        intent.putExtra("pos",i);
                        context.startActivity(intent);
                    }
                });
     } catch (Exception e) {
            // TODO: handle exception
        }
            }
            return vi;

        }

        public static String getDate(long milliSeconds, String dateFormat) {
            // Create a DateFormatter object for displaying date in specified
            // format.
            DateFormat formatter = new SimpleDateFormat(dateFormat);

            // Create a calendar object that will convert the date and time value in
            // milliseconds to date.
            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(milliSeconds);
            return formatter.format(calendar.getTime());         
        }    
        public static class viewholder {

            TextView news_header_title, short_text, des, date_time;
            LinearLayout ll_data, llAdd;
            public ImageView image, imgAdd;

        }
        public static Bitmap loadImageFromUrl(String url) {
            URL m;
            InputStream i = null;
            BufferedInputStream bis = null;
            ByteArrayOutputStream out =null;
            try {
                m = new URL(url);
                i = (InputStream) m.getContent();
                bis = new BufferedInputStream(i,1024 * 8);
                out = new ByteArrayOutputStream();
                int len=0;
                byte[] buffer = new byte[1024];
                while((len = bis.read(buffer)) != -1){
                    out.write(buffer, 0, len);
                }
                out.close();
                bis.close();
            } catch (MalformedURLException e1) {
                e1.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            byte[] data = out.toByteArray();
            Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
            //Drawable d = Drawable.createFromStream(i, "src");
            return bitmap;
        }

    } 

Solution

  • import java.io.BufferedInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.params.HttpConnectionParams;
    import org.apache.http.util.EntityUtils;
    import org.json.JSONArray;
    import org.json.JSONObject;
    
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.ProgressDialog;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Color;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.os.StrictMode;
    
    import android.text.Html;
    import android.util.Log;
    import android.view.GestureDetector;
    import android.view.GestureDetector.SimpleOnGestureListener;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.Window;
    import android.view.animation.Animation;
    import android.view.animation.TranslateAnimation;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class ShowFullDescriprion extends Activity implements OnClickListener {
    
        ImageView show_image, adv_image, refresh,show_home;
        TextView title_text, des_text, date_time_txt;
        Button back_btn;
        LinearLayout ll, llAdv;
        public static String url, full_des, advertising, adurl = "",img,
                targeturl;
        ProgressDialog progressDialog;
        TextView mDisplay;
        AsyncTask<Void, Void, Void> mRegisterTask;
        String TAG = "ShowFullDescriprion";
    
    
        public static ArrayList<String> catId = new ArrayList<String>();
        public static ArrayList<String> catDisp = new ArrayList<String>();
        public static ArrayList<String> next_arraylist = new ArrayList<String>();
        public static ArrayList<String> privious_arraylist = new ArrayList<String>();
        //public static ArrayList<String> arrayList_advertising = new ArrayList<String>();
    
        SimpleGestureFilter simpleGestureFilter;
        LinearLayout llCat;
        TextView tvCatDisp;
    
        private static final int SWIPE_MIN_DISTANCE = 200;
        private static final int SWIPE_MAX_OFF_PATH = 250;
        private static final int SWIPE_THRESHOLD_VELOCITY = 200;
        int swpCnt = 0;
        int SWIPE_MAX_VALUE = 1;
        int PIC_WIDTH = 0;
    
        private GestureDetector gestureDetector;
        View.OnTouchListener gestureListener;
    
        @SuppressWarnings("unused")
        private Animation animleftin = null, animleftout = null,
                animrightin = null, animrightout = null;
    
        public static String idS, titleS, dateS, descS, next, privious, adv;
        public static String bigimageS=null;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.showfull_description);
    
    
            back_btn = (Button) findViewById(R.id.button1);
            llCat = (LinearLayout) findViewById(R.id.llCategory);
    //      llCat.setOnClickListener(this);
            adv_image = (ImageView) findViewById(R.id.imgAdd);
            refresh = (ImageView) findViewById(R.id.refresh_btn);
            show_home=(ImageView)findViewById(R.id.showfull_des_home);
    
            llAdv = (LinearLayout) findViewById(R.id.llAdd);
            // simpleGestureFilter = new SimpleGestureFilter(this, this);
        //  int SWIPE_MAX_VALUE_new = ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.size();
    
            //swpCnt = ((CategoryActivity.MainData) CategoryActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.indexOf(getIntent().getExtras().getString("id"));
            //((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray .get(p)).storyArr.get(i)).storyid;
            //String temp = ((CategoryActivity.StoryData) ((CategoryActivity.MainData) CategoryActivity.TotalDataArray .get(getIntent().getExtras().getInt("cat"))).storyArr.get(getIntent().getExtras().getString("pos"))).storyid;
    
        //  Log.i("Show full Description .....", "**********************  cat "+getIntent().getExtras().getInt("cat")+" **** id *** "+getIntent().getExtras().getString("id"));
            //Log.i("Show full Description .....", "**********************  SWIPE_MAX_VALUE_new "+ SWIPE_MAX_VALUE_new+" *** swpCnt **** "+temp +"**** Array *** "+((CategoryActivity.MainData) CategoryActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.get(5));
            try {
            //  SWIPE_MAX_VALUE = ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.size();
                SWIPE_MAX_VALUE = ((CategoryActivity.MainData) CategoryActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.size();
                swpCnt = getIntent().getExtras().getInt("pos");
    
            } catch (Exception e) {
                // TODO: handle exception
            }
    
            url = "http://maritimeglobalnews.com/json/story/"+ getIntent().getExtras().getString("id");
    
            new StoryDataAsyn().execute();
    
            title_text = (TextView) findViewById(R.id.show_full_des_title_txt);
            show_image = (ImageView) findViewById(R.id.show_full_des_image);
            des_text = (TextView) findViewById(R.id.show_full_des_txt);
            date_time_txt = (TextView) findViewById(R.id.show_full_des_datetime_txt);
    
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    
            StrictMode.setThreadPolicy(policy); 
    
            show_home.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                startActivity(new Intent(getBaseContext(), NewsScreenActivity.class));
                finish();
                }
            });
    
        /*  Log.i(TAG,
                    "================Inside OnCreate Method==============================");
            checkNotNull(SERVER_URL, "SERVER_URL");
            checkNotNull(SENDER_ID, "SENDER_ID");
            // Make sure the device has the proper dependencies.
            GCMRegistrar.checkDevice(getBaseContext());
            // Make sure the manifest was properly set - comment out this line
            // while developing the app, then uncomment it when it's ready.
            GCMRegistrar.checkManifest(getBaseContext());
    
            registerReceiver(mHandleMessageReceiver, new IntentFilter(
                    DISPLAY_MESSAGE_ACTION));
            final String regId = GCMRegistrar.getRegistrationId(this);
            if (regId.equals("")) {
                Log.i(TAG,
                        "================Inside if in regId=null ==============================");
                // Automatically registers application on startup.
                GCMRegistrar.register(this, SENDER_ID);
            } else {
                Log.i(TAG,
                        "================Inside else in regId=null ==============================");
                // Device is already registered on GCM, needs to check if it is
                // registered on our server as well.
                if (GCMRegistrar.isRegisteredOnServer(this)) {
                    // Skips registration.
                    Log.i(TAG,
                            "================Inside else in regId=null Already register on Server =============================");
                    mDisplay.append(getString(R.string.already_registered) + "\n");
                } else {
                    Log.i(TAG,
                            "================Inside else in regId=null trying to  register on Server =============================");
                    // Try to register again, but not in the UI thread.
                    // It's also necessary to cancel the thread onDestroy(),
                    // hence the use of AsyncTask instead of a raw thread.
                    final Context context = this;
                    mRegisterTask = new AsyncTask<Void, Void, Void>() {
    
                        @Override
                        protected Void doInBackground(Void... params) {
                            Log.i(TAG,
                                    "================Inside doInBackground Method==============================");
                            boolean registered = ServerUtilities.register(context,
                                    regId);
                            // At this point all attempts to register with the app
                            // server failed, so we need to unregister the device
                            // from GCM - the app will try to register again when
                            // it is restarted. Note that GCM will send an
                            // unregistered callback upon completion, but
                            // GCMIntentService.onUnregistered() will ignore it.
                            if (!registered) {
                                GCMRegistrar.unregister(context);
                            }
                            return null;
                        }
    
                        @Override
                        protected void onPostExecute(Void result) {
                            Log.i(TAG,
                                    "================Inside onPostExecute Method==============================");
                            mRegisterTask = null;
                        }
    
                    };
                    mRegisterTask.execute(null, null, null);
                }
            }       */
    
            back_btn.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
    
                    ShowFullDescriprion.this.finish();
                }
            });
            refresh.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
    
                    new StoryDataAsyn().execute();      
    
                }
            });
    
            gestureDetector = new GestureDetector(new MyGestureDetector());
            gestureListener = new View.OnTouchListener() {
                public boolean onTouch(View v, MotionEvent event) {
                    return gestureDetector.onTouchEvent(event);
                }
            };
            prepareAnimations();
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            // TODO Auto-generated method stub
            return super.onTouchEvent(event);
        }
    
        /*boolean net;
    
        //onCreate
        net = void isOnline() {
        }
        if (net == true)
        {
        //perform internet related tasks in the app
        }
    
        //function
        public boolean isOnline1() {
                ConnectivityManager cm = (ConnectivityManager) this
                        .getSystemService(Context.CONNECTIVITY_SERVICE);
    
                NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
                return activeNetworkInfo != null;
    
                // return cm.getActiveNetworkInfo().isConnected();
    
            }*/
    
    
        public class StoryDataAsyn extends AsyncTask<Void, Void, Void> {
        //  NewsScreenActivity obj = new NewsScreenActivity();
    
            @Override
            protected void onPreExecute() {
                // TODO Auto-generated method stub
                super.onPreExecute();
    
        //      if (isNetworkConnected() == true) 
        //      {
                    progressDialog = new ProgressDialog(ShowFullDescriprion.this);
                    progressDialog.setMessage("Loding ...");
                    progressDialog.setCancelable(false);
                    progressDialog.show();
    /*          } else  {
                    AlertDialog connection = new AlertDialog.Builder(
                            ShowFullDescriprion.this)
                            .setTitle("No Network Found")
                            .setMessage(
                                    "Internet Connection Reqired To Use this Application")
                            .setPositiveButton("Ok",
                                    new DialogInterface.OnClickListener() {
    
                                        public void onClick(DialogInterface dialog,
                                                int whichButton) 
                                        {
    
                                        }
                                    }).create();
    
                    connection.show();
                }
    */      }
    
            @Override
            protected Void doInBackground(Void... params) {
                // TODO Auto-generated method stub
    
                catId.clear();
                catDisp.clear();            
                getData(url);
    
                return null;
            }
    
            @Override
            protected void onPostExecute(Void result) {
                // TODO Auto-generated method stub
                super.onPostExecute(result);
                if (isNetworkConnected() == true) {
    
                progressDialog.dismiss();
                title_text.setText(titleS);         
    
                /*if(bigimageS!= null && !bigimageS.equals(""))
                {
                show_image.setImageBitmap(decodeImage(bigimageS));
                Log.v("if", ""+bigimageS);
                }else
                {
                    show_image.setImageBitmap(decodeImage(null));
    
                    Log.v("else", ""+bigimageS);
                }   
    */
    
                if(isBlank(bigimageS)==true)
    
                {
                    show_image.setVisibility(View.GONE);
                    show_image.setImageBitmap(decodeImage(null));
                }
                else if(isBlank(bigimageS)==false)
                {
                    show_image.setImageBitmap(decodeImage(bigimageS));
                }
        //      show_image.setImageBitmap(loadImageFromUrl(bigimageS));         
    
                //show_image.setImageBitmap(decodeImage(bigimageS));
                des_text.setText(Html.fromHtml(descS));         
    
                Date parsed = new Date(Long.parseLong(dateS.substring(6,
                        dateS.length() - 2)));
    
                SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy hh:mmaa");
                System.out.println(sdf.format(parsed));
    
                date_time_txt.setText(sdf.format(parsed));
    
                llCat.removeAllViews();
                for (int i = 0; i < catId.size(); i++) {
    
                    tvCatDisp = new TextView(ShowFullDescriprion.this);
    
                    tvCatDisp.setText("");      
    
                    tvCatDisp.setText(catDisp.get(i));
                    tvCatDisp.setBackgroundResource(R.drawable.box);
                    tvCatDisp.setTextColor(Color.BLACK);
                    tvCatDisp.setTextSize(18);
                    tvCatDisp.setTag(i);
                    Log.e("tvCatDisp............", ""+catDisp.get(i));
                    tvCatDisp.setOnClickListener(ShowFullDescriprion.this);
    
                    tvCatDisp.setOnClickListener(new OnClickListener() {
    
                     @Override
                     public void onClick(View v) {
                     // TODO Auto-generated method stub
                     int pos = Integer.parseInt(v.getTag().toString());
                     startActivity(new Intent(ShowFullDescriprion.this,
                     CategoryActivity.class).putExtra("id",catId.get(pos)));
                     }
                     });
    
                    llCat.addView(tvCatDisp);
                }
                llAdv.removeAllViews();
                if ((!adurl.equalsIgnoreCase("")) && adurl != null) {
                    llAdv.setVisibility(View.VISIBLE);
                    ImageLoader il = new ImageLoader(ShowFullDescriprion.this);
    
                //  adv_image.setImageBitmap(il.getBitmap(adurl));
            //      adv_image.setImageBitmap(loadImageFromUrl(adurl));
                      try {
                            InputStream is = (InputStream) new URL(adurl).getContent();
    
                            GifDecoderView webview1 = new GifDecoderView(ShowFullDescriprion.this, is);
    
    
    
    
                        //    activity.setContentView(webview1);
    
                        llAdv.addView(webview1,adv_image.getLayoutParams());
    
                       // holder.imgAdd.setImageBitmap(IL.getBitmap(imgUrl));
    
    
                        } catch (Exception e) {
    
                        }
    
                      llAdv.setOnClickListener(new OnClickListener() {
    
                        @Override
                        public void onClick(View v) {
                            // TODO Auto-generated method stub
                        //    Intent showAdvIntent =new Intent(ShowFullDescriprion.this,AdvertismentActivity.class);
                        //    showAdvIntent.putExtra("id",targeturl);
                            startActivity(new Intent(getBaseContext(),AdvertismentActivity.class));
                            Log.e("show add url...", ""+targeturl);
                        }
                    });
                } 
                }else 
    
                {
                    llAdv.setVisibility(View.GONE);
                    AlertDialog connection = new AlertDialog.Builder(
                            ShowFullDescriprion.this)
                            .setTitle("No Network Found")
                            .setMessage(
                                    "Internet Connection Reqired To Use this Application")
                            .setPositiveButton("Ok",
                                    new DialogInterface.OnClickListener() {
    
                                        public void onClick(DialogInterface dialog,
                                                int whichButton) 
                                        {
                                        //  new StoryDataAsyn().execute();
                                            progressDialog.dismiss();
                                        }
                                    }).create();
    
                    connection.show();              
    
                }       
    
            }
        }
        public boolean isNetworkConnected() {
            ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo ni = cm.getActiveNetworkInfo();
            if (ni == null) {
                return false;
            } else
    
            return true;
        }
    
        public void getData(String url) {
    
            HttpClient client = new DefaultHttpClient();
            HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); // Timeout        
    
            try {
    
                HttpPost request = new HttpPost(url);
    
                DefaultHttpClient httpClient = new DefaultHttpClient();
    
                HttpResponse res = httpClient.execute(request);
                Log.i("Request", request.toString());
    
                String JsonResponseData = EntityUtils.toString(res.getEntity());
                Log.i("JSON", JsonResponseData);
    
                JSONObject mainJsonObj = new JSONObject(JsonResponseData);
    
                titleS = mainJsonObj.getString("Title");
                dateS = mainJsonObj.getString("Date");
                descS = mainJsonObj.getString("ContentHTML");
                next = mainJsonObj.getString("NextStoryEID");
                next_arraylist.add(next);
                Log.e("next id", "" + next_arraylist);
                Log.e("nextstring id", "" + next);
    
                privious = mainJsonObj.getString("PrevStoryEID");
                privious_arraylist.add(privious);
                Log.e("privious id", "" + privious_arraylist);
                Log.e("privious string id", "" + privious);
    
                try {
                    JSONArray tmpAd = mainJsonObj.optJSONArray("advertising");              
                    adurl = tmpAd.getJSONObject(0).getString("ImageUrl");
                    targeturl = tmpAd.getJSONObject(0).getString("TargetUrl");
                    Log.v("target url is", "" + targeturl);
    
                } catch (Exception e) {
                    // TODO: handle exception
                }
    
    
    
                try {
                    JSONArray tmpimg = mainJsonObj.optJSONArray("images");          
                    bigimageS = tmpimg.getJSONObject(0).getString("iPhoneBigImageURL");             
                    Log.v("bigimageS is", "" + bigimageS);
                } catch (Exception e) {
                    // TODO: handle exception
                }       
    
                JSONArray categJsonArr = mainJsonObj.getJSONArray("categories");    
    
                for (int i = 0; i < categJsonArr.length(); i++) {
    
                    catId.add(categJsonArr.getJSONObject(i) .getString("CategoryEID"));
                    catDisp.add(categJsonArr.getJSONObject(i).getString("CategoryDisplay"));
                }
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    
        public static Bitmap loadImageFromUrl(String url) {
            URL m;
            InputStream i = null;
            BufferedInputStream bis = null;
            ByteArrayOutputStream out =null;
            try {
                m = new URL(url);
                i = (InputStream) m.getContent();
                bis = new BufferedInputStream(i,1024 * 8);
                out = new ByteArrayOutputStream();
                int len=0;
                byte[] buffer = new byte[1024];
                while((len = bis.read(buffer)) != -1){
                    out.write(buffer, 0, len);
                }
                out.close();
                bis.close();
            } catch (MalformedURLException e1) {
                e1.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            byte[] data = out.toByteArray();
            Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
            //Drawable d = Drawable.createFromStream(i, "src");
            return bitmap;
        }
    
    
        public static Bitmap decodeImage(String arrayList_image) {
    
            URL aURL;
    
            try {
    
                aURL = new URL(arrayList_image);
    
                URLConnection conn = aURL.openConnection();
    
                conn.connect();
    
                InputStream is = conn.getInputStream();
    
                BufferedInputStream bis = new BufferedInputStream(is);
    
                Bitmap bm = BitmapFactory.decodeStream(bis);
    
                bis.close();
    
                is.close();
    
                return bm;
    
            } catch (MalformedURLException e) {
    
                e.printStackTrace();
    
            } catch (IOException e) {
    
                e.printStackTrace();
            }
            return null;
        }
    
        @Override
        public boolean dispatchTouchEvent(MotionEvent me) {
            this.gestureDetector.onTouchEvent(me);
            return super.dispatchTouchEvent(me);
        }
    
        class MyGestureDetector extends SimpleOnGestureListener {
            @Override
            public boolean onDown(MotionEvent e) {
                // TODO Auto-generated method stub
    
                return super.onDown(e);
            }
    
            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
                    float velocityY) {
    
                Log.e("Inside onfling", "Call");
    
                if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
                    return false;
                // right to left swipe
                if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
    
                    url = "http://maritimeglobalnews.com/json/story/"+next;
                    new StoryDataAsyn().execute();
    
                    Log.d("url next mate", ""+url);
                    Log.d("right to left privious.....", ""+next_arraylist);        
    
                try {
                    Log.i("","swip count " + swpCnt+" ***** "+((CategoryActivity.MainData) CategoryActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.size());    
                } catch (Exception e) {
                    // TODO: handle exception
                }               
                    if (swpCnt >= 0 && swpCnt < SWIPE_MAX_VALUE - 1) 
                    {
                        swpCnt++;
    
                    /*  url = "http://maritimeglobalnews.com/json/story/"+next;
                        new StoryDataAsyn().execute();
    
                        Log.d("url next mate", ""+url);
                        Log.d("right to left privious.....", ""+next_arraylist);        */      
                    }               
                } 
                else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY ){ 
    
    
    
                    url = "http://maritimeglobalnews.com/json/story/"+privious;
                    Log.v("previousid first if", ""+privious);
                    Log.i("right to left privious first if.....", ""+privious_arraylist);
    
                    new StoryDataAsyn().execute();  
    
                    if (swpCnt > 0 && swpCnt <= SWIPE_MAX_VALUE - 1) {
    
    
                        swpCnt--;
    
                        /*url = "http://maritimeglobalnews.com/json/story/"+privious;
                        Log.v("url",""+url);
                        Log.v("previousid 2 if", ""+privious);                  
                        new StoryDataAsyn().execute();      */              
                    }
                    try {
                        Log.i("","swip count " + swpCnt+" ***** "+((CategoryActivity.MainData) CategoryActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.size());                    
                    } catch (Exception e) {
                        // TODO: handle exception
                    }
    
                    /*if (swpCnt > 0 && swpCnt <= SWIPE_MAX_VALUE - 1) 
                    {
                        swpCnt--;   
    
                        url = "http://maritimeglobalnews.com/json/story/"+privious;
                        Log.v("previousid 3 if", ""+privious);
                        Log.i("right to left privious. 3 if", ""+privious_arraylist);                   
    
                        new StoryDataAsyn().execute();              
                    }   */                      
                }
                return false;
            }
        }
    
        private void prepareAnimations() {
            animleftin = new TranslateAnimation(Animation.RELATIVE_TO_PARENT,
                    +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f,
                    Animation.RELATIVE_TO_PARENT, 0.0f,
                    Animation.RELATIVE_TO_PARENT, 0.0f);
    
            animleftout = new TranslateAnimation(Animation.RELATIVE_TO_PARENT,
                    0.0f, Animation.RELATIVE_TO_PARENT, -1.0f,
                    Animation.RELATIVE_TO_PARENT, 0.0f,
                    Animation.RELATIVE_TO_PARENT, 0.0f);
    
            animrightin = new TranslateAnimation(Animation.RELATIVE_TO_PARENT,
                    -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f,
                    Animation.RELATIVE_TO_PARENT, 0.0f,
                    Animation.RELATIVE_TO_PARENT, 0.0f);
    
            animrightout = new TranslateAnimation(Animation.RELATIVE_TO_PARENT,
                    0.0f, Animation.RELATIVE_TO_PARENT, +1.0f,
                    Animation.RELATIVE_TO_PARENT, 0.0f,
                    Animation.RELATIVE_TO_PARENT, 0.0f);
                }
    
        /*@Override
        protected void onDestroy() {
            Log.i(TAG,
                    "================Inside  OnDestroy  Method==============================");
            if (mRegisterTask != null) {
                mRegisterTask.cancel(true);
            }
            unregisterReceiver(mHandleMessageReceiver);
            GCMRegistrar.onDestroy(this);
            super.onDestroy();
        }
    
        private void checkNotNull(Object reference, String name) {
            Log.i(TAG,
                    "================Inside checkNotNull  Method==============================");
            if (reference == null) {
                throw new NullPointerException(getString(R.string.error_config,
                        name));
            }
        }
    
        private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver() {
    
            @Override
            public void onReceive(Context context, Intent intent) {
                Log.i(TAG,
                        "================Inside OnReceive in BroadcastReceiver Method==============================");
                String newMessage = intent.getExtras().getString(EXTRA_MESSAGE);
                mDisplay.append(newMessage + "\n");
            }
        };*/
    
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if (v == tvCatDisp) {
    
                // TODO Auto-generated method stub
    
                startActivity(new Intent(ShowFullDescriprion.this,
                        CategoryActivity.class).putExtra("id", catId.get((Integer)v.getTag())));
            }
    
        }
        public static boolean isBlank(String string) {
            if (bigimageS == null || bigimageS.length() == 0)
                return true;
    
            int l = bigimageS.length();
            for (int i = 0; i < l; i++) {
                if (!Character.isWhitespace(bigimageS.codePointAt(i)))
                    return false;
            }
            return true;
        }
    
    }