Monday, 13 June 2016

custome Adapter

package com.tdi.rk;

import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.androidquery.AQuery;
import com.androidquery.callback.AjaxCallback;
import com.androidquery.callback.AjaxStatus;
import com.squareup.picasso.Picasso;

import org.json.JSONObject;

import java.util.List;

/**
 * Created by vips on 13-04-2016.
 */
public class StarAdapter extends BaseAdapter {

    Context context;
    List<SinglePriceListBean> bean;
    boolean isPressed = false;
    AQuery aQuery;
    ProgressDialog pd;
    ViewHolder holder = new ViewHolder();

    public StarAdapter(Context context) {
        this.context = context;

    }

    public StarAdapter(List<SinglePriceListBean> bean, Context context) {
        this.bean = bean;
        this.context = context;
    }

    @Override
    public int getCount() {
        return bean.size();
    }

    @Override
    public Object getItem(int position) {
        return bean.get(position);
    }

    @Override
    public long getItemId(int position) {
        return bean.indexOf(getItem(position));
    }

    @Override
    public void notifyDataSetChanged() {
        super.notifyDataSetChanged();
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        //final ViewHolder holder;
        aQuery = new AQuery(context);
        pd = new ProgressDialog(context);
        pd.setMessage("removing from Star List");
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {

            convertView = inflater.inflate(R.layout.single_price, null);
            //          holder = new ViewHolder();

            holder.tv_p_nm = (TextView) convertView.findViewById(R.id.price_product_nm);
            holder.tv_p_price = (TextView) convertView.findViewById(R.id.price_product_price);
            holder.img = (ImageView) convertView.findViewById(R.id.iv_price_img);
            holder.code = (TextView) convertView.findViewById(R.id.price_product_id);
            holder.DistRate = (TextView) convertView.findViewById(R.id.price_product_DistRate);
            holder.InnerCase = (TextView) convertView.findViewById(R.id.price_product_InnerCase);
            //   holder.icUnit = (TextView) convertView.findViewById(R.id.price_product_icUnit);
            holder.MasterCase = (TextView) convertView.findViewById(R.id.price_product_MasterCase);
            //   holder.mcUnit = (TextView) convertView.findViewById(R.id.price_product_mcUnit);
            //  holder.name = (TextView) convertView.findViewById(R.id.price_product_name);
            holder.ib_star = (ImageView) convertView.findViewById(R.id.ib_star);
            holder.ib_star.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {


                    AlertDialog.Builder al = new AlertDialog.Builder(context);
                    al.setTitle("Are You sure want to remove from Star product");
                    al.setIcon(R.drawable.ic_delete);
                    al.setPositiveButton("Remove", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {

                            removeData(bean.get(position).getCode());
                            removePos(position);
                            notifyDataSetChanged();
                            //bean.remove(position);
                            context.startActivity(new Intent(context, MainActivity.class));
                            // Toast.makeText(context,"product removed successfully..!",Toast.LENGTH_LONG).show();
                        }
                    });
                    al.setNegativeButton("Cancle", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    });
                    al.show();


                }
            });

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        final SinglePriceListBean bean = (SinglePriceListBean) getItem(position);

        holder.tv_p_nm.setText(bean.getProductName());
        holder.tv_p_price.setText(bean.getPrice());
        Picasso.with(context).load(bean.getImages()).into(holder.img);
        holder.code.setText(bean.getCode());
        holder.DistRate.setText(bean.getDistRate());
        holder.InnerCase.setText(bean.getInnerCase());
        holder.MasterCase.setText(bean.getMasterCase());

        holder.ib_star.setBackgroundResource(R.drawable.ic_delete);

/*
        holder.ib_star.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                */
/*AlertDialog.Builder al = new AlertDialog.Builder(context);
                al.setTitle("Are You sure want to remove from Star product");
                al.setIcon(R.drawable.ic_delete);
                al.setPositiveButton("Remove", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {


                        removeData();
                        context.startActivity(new Intent(context, MainActivity.class));
                        // Toast.makeText(context,"product removed successfully..!",Toast.LENGTH_LONG).show();
                    }
                });
                al.setNegativeButton("Cancle", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
                al.show();
*//*

            }

        });
*/


        holder.img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Bitmap bitmap = null;
                Intent i = new Intent(context, ZoomImage.class);
                i.putExtra("image", bean.getImages());
                context.startActivity(i);

            }
        });
        return convertView;
    }


    private void removePos(int position){
            bean.remove(position);
    }
    protected void removeData(String priceid) {

        final String id = (String) SP.get(context, AppConstants.PRE_LOGIN_USER_ID, "");
        // String priceid = holder.code.getText().toString();

        String urls = "http://www.rajkotkitchenware.com/rkapp/removeStar.php?userID=" + id + "&priceID=" + priceid + "&key=5a14ec5b310164f2dfe49e86b06124a";
        Log.d("price id ", "url " + urls);
        aQuery = new AQuery(context);

        aQuery.progress(pd).ajax(urls, JSONObject.class, new AjaxCallback<JSONObject>() {

            @Override
            public void callback(String url, JSONObject object, AjaxStatus status) {
                if (object != null) {

                    Toast.makeText(context.getApplicationContext(), object.optString("msg"), Toast.LENGTH_LONG).show();
                }
            }

        });
    }

    public class ViewHolder {
        TextView tv_p_nm, tv_p_price, code, DistRate, InnerCase, icUnit, MasterCase, mcUnit, name;
        ImageView img;
        ImageView ib_star;
    }
}

json parsing

package com.tdi.rk;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.androidquery.AQuery;
import com.androidquery.callback.AjaxCallback;
import com.androidquery.callback.AjaxStatus;
import com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayout;
import com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayoutDirection;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Product extends AppCompatActivity implements AdapterView.OnItemClickListener {

    AQuery aQuery;
    ProgressDialog pd;
    String userid, user_name, u_id;
    JSONObject jsonObject;
    List<RowItem> rowItems;
    ArrayList<RowItem> row_Items = new ArrayList<RowItem>();
    ArrayList<String> arrayList = new ArrayList<>();
    ProductCustomAdapter adapter;
    ListView listView;
    int limit=0;
    String productName, price, image;
    String p_name, p_code, p_DistRate, p_brandID;
    int start=0,end=10;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_product);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        rowItems = new ArrayList<RowItem>();
        aQuery = new AQuery(this);
        pd = new ProgressDialog(this);
        pd.setMessage("loading data");
        listView = (ListView) findViewById(R.id.lv_product);
        listView.setOnItemClickListener(this);

        listView.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {


                if ((listView.getLastVisiblePosition() >= (listView.getCount()-1)) && scrollState==SCROLL_STATE_IDLE) {
                    start = start + 10;
                    loadingdata();
                }
            }

            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

            }
        });
      loadingdata();

    }
    private void loadingdata()
    {

        Map<String,Object> map = new HashMap<>();
        String url = "http://www.rajkotkitchenware.com/rkapp/Pricelist.php?start="+start+"&end="+end+"&key=5a14ec5b310164f2dfe49e86b06124a";
        Log.d("url",url);
       // String url = "http://programmingly.com/bvn/rk/Pricelist.php?limit=5&key=5a14ec5b310164f2dfe49e86b06124a";
        aQuery.progress(pd).ajax(url, JSONObject.class, new AjaxCallback<JSONObject>() {

            @Override
            public void callback(String url, JSONObject object, AjaxStatus status) {

                if (object != null) {
                    String quotos = object.optString("vehicle_data");
                    String msg = object.optString("msg");
                    try {
                        JSONArray jsonArray = new JSONArray(quotos);

                        for (int i = 0; i < jsonArray.length(); i++) {
                            jsonObject = jsonArray.getJSONObject(i);
                            u_id = jsonObject.getString("brandID");
                            String str = jsonObject.getString("name");
                            String bitmap = (jsonObject.getString("image"));


                        //add items in array list
                            arrayList.add(u_id);
                            arrayList.add(str);
                            arrayList.add(bitmap);
                            int barandid = Integer.parseInt(u_id);

                            //getter settr
                            RowItem rowItem = new RowItem(str,u_id,bitmap);
                            rowItems.add(rowItem);

                        }
                        int pos=listView.getLastVisiblePosition();
                        ProductCustomAdapter adapter = new ProductCustomAdapter(getApplicationContext(), rowItems);
                        adapter.notifyDataSetChanged();
                        listView.setAdapter(adapter);
                        listView.setSelection(pos);
                    } catch (JSONException e) {
                    }
                }
                else {
                    Toast.makeText(getApplicationContext(),"Data is not available",Toast.LENGTH_LONG).show();
                }
            }
        });
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        startActivity(new Intent(Product.this,MainActivity.class));
        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, final long id) {

        Object ide = (listView.getItemAtPosition(position));
        TextView textView = (TextView) view.findViewById(R.id.tv_product_detail);
        final String s = textView.getText().toString();

        Intent data_header = new Intent(getApplicationContext(), SinglePriceList.class);
        data_header.putExtra("id",s);
        startActivity(data_header);

       // Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
    }
}

Login

package com.tdi.rk;

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.Paint;
import android.net.ConnectivityManager;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.androidquery.AQuery;
import com.androidquery.callback.AjaxCallback;
import com.androidquery.callback.AjaxStatus;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Login extends AppCompatActivity implements View.OnTouchListener {

    EditText lo_mail,lo_pass;
    Button signin,btn_signup;
    TextView create;
    AQuery aQuery;
    ProgressDialog pd;
    SessionMgt sessionMgt;
    private static String deviceToken = "Empty";
    private static final int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;
    private BroadcastReceiver mRegistrationBroadcastReceiver;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        sessionMgt = new SessionMgt(getApplicationContext());
        if((Boolean)SP.get(getApplicationContext(), AppConstants.PRE_LOGIN_IS_LOGIN, false)){
            startActivity(new Intent(getApplicationContext(),MainActivity.class));
        }

        Intent intent = getIntent();
        deviceToken = intent.getStringExtra("deviceToken");


            mRegistrationBroadcastReceiver = new BroadcastReceiver() {
                @Override
                public void onReceive(Context context, Intent intent) {

                    // checking for type intent filter
                    if (intent.getAction().equals(Config.REGISTRATION_COMPLETE)) {
                        // gcm successfully registered
                        // now subscribe to `global` topic to receive app wide notifications
                        deviceToken = intent.getStringExtra("token");
                        Log.e("TAG", "gcm successfully registered     "+deviceToken);
                        // subscribeToGlobalTopic();

                    } else if (intent.getAction().equals(Config.SENT_TOKEN_TO_SERVER)) {
                        // gcm registration id is stored in our server's MySQL
                        Log.e("TAG", "GCM registration id is sent to our server");

                    } else if (intent.getAction().equals(Config.PUSH_NOTIFICATION)) {
                        // new push notification is received
                        // handlePushNotification(intent);
                        //Toast.makeText(getApplicationContext(),"hi",Toast.LENGTH_LONG).show();
                    }
                }
            };

            if (checkPlayServices()) {
                registerGCM();
            }







        initStuff();


    }




    private void initStuff()
    {
        lo_mail = (EditText) findViewById(R.id.et_user_mail);
        lo_pass = (EditText) findViewById(R.id.et_user_pass);

        signin = (Button) findViewById(R.id.btn_signin);
        btn_signup = (Button) findViewById(R.id.btn_signup);

        aQuery = new AQuery(this);

        pd=new ProgressDialog(this);
        pd.setMessage("Login...");


        btn_signup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(Login.this, Signup.class));
            }
        });

        TextView tv_forgotpass = (TextView) findViewById(R.id.tv_forgot_password);

        tv_forgotpass.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(Login.this,ForgotPassword.class));

            }
        });


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

                //aQuery.id()
                if (isNetworkConnected()) {
                    String unm = lo_mail.getText().toString().trim();
                    String pwd = lo_pass.getText().toString().trim();

                    if (unm.equals("") && emailValidator(unm)) {

                        lo_mail.setError("Enter E-mail valid Address");
                        return;
                    }
                    if (pwd.equals("")) {
                        lo_pass.setError("Enter Password");
                        return;
                    }
                    islogin(unm, pwd);
                    sessionMgt.createLoginSession(unm, pwd);
                    //finish();

                } else {
                    Toast.makeText(getApplicationContext(), "Please check Internet connection is activate to login", Toast.LENGTH_LONG).show();
                }

            }
        });



    }

        public boolean emailValidator(String email)
        {
            Pattern pattern;
            Matcher matcher;
            final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
            pattern = Pattern.compile(EMAIL_PATTERN);
            matcher = pattern.matcher(email);
            return matcher.matches();
        }
    public void islogin(String usr,String pwd)
    {
           String url=AppConstants.MAIN_URL+"Login.php?email="+usr+"&pass="+pwd+"&deviceToken="+deviceToken+"&key="+AppConstants.KEY;
       // Login.php?email=b@b.com&pass=12345&deviceToken=11&key=5a14ec5b310164f2dfe49e86b06124a
            Log.d("url", "" + url);
            aQuery.progress(pd).ajax(url, JSONObject.class, new AjaxCallback<JSONObject>() {

                @Override
                public void callback(String url, JSONObject object, AjaxStatus status) {

                    if (object != null) {
                       // String data = object.optString("data");
                       // String msg = object.optString("msg");

                        try {

                            JSONObject mainJsonObject = new JSONObject(object.toString());
                            Log.d("JSON RESPONSE",""+mainJsonObject);
                            if(mainJsonObject != null){
                                if (mainJsonObject.getString("data").equals("error")){
                                    Log.d("Key",""+mainJsonObject.getString("data"));
                                    Toast.makeText(getApplicationContext(),mainJsonObject.getString("msg"),Toast.LENGTH_LONG).show();
                                }
                                else {
                                    JSONObject subJsonObject = mainJsonObject.getJSONObject("user_data");
                                    SP.put(getApplicationContext(), AppConstants.PRE_LOGIN_IS_LOGIN, true);
                                    SP.put(getApplicationContext(), AppConstants.PRE_LOGIN_USER_ID, subJsonObject.optString("userID"));
                                    SP.put(getApplicationContext(), AppConstants.PRE_LOGIN_NAME, subJsonObject.optString("name"));
                                    SP.put(getApplicationContext(), AppConstants.PRE_LOGIN_EMAIL, subJsonObject.optString("email"));
                                    SP.put(getApplicationContext(), AppConstants.PRE_LOGIN_MOBILE_NO, subJsonObject.optString("mobile"));
                                    SP.put(getApplicationContext(), AppConstants.PRE_LOGIN_COMPANY, subJsonObject.optString("company"));
                                    SP.put(getApplicationContext(), AppConstants.PRE_LOGIN_USER_PRO_PIC, subJsonObject.optString("proPic"));
                                    Log.d("image pic",subJsonObject.optString("proPic"));
                                    Toast.makeText(getApplicationContext(),mainJsonObject.getString("msg"),Toast.LENGTH_LONG).show();

                                    Intent i = new Intent(Login.this, MainActivity.class);
                                    startActivity(i);
                                }


                            }else {
                                Toast.makeText(getApplicationContext(),
                                        mainJsonObject.get("msg").toString(), Toast.LENGTH_LONG)
                                        .show();

                            }

                          /*  JSONObject userdata = object.getJSONObject("user_data");
                            String userid = userdata.optString("userID");
                            String email = userdata.optString("email");
                            String proPic = userdata.optString("proPic");
                            Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();





                            startActivity(new Intent(Login.this,MainActivity.class));

                            finish();*/
                        } catch (JSONException e) {

                        }

                    } else {
                        Toast.makeText(getApplicationContext(), "Error:" + status.getCode(), Toast.LENGTH_LONG).show();
                    }

                }
            });
    }

    @Override
    public void onBackPressed() {

        AlertDialog.Builder al = new AlertDialog.Builder(this);
        al.setMessage("Are You sure Want to exit Application ?");
        al.setTitle("Exit");
        al.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Intent i = new Intent(Intent.ACTION_MAIN);
                i.addCategory(Intent.CATEGORY_HOME);
                i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(i);
            }
        });
        al.setNegativeButton("Cancle", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });
        al.show();

    }

    private boolean isNetworkConnected() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        return cm.getActiveNetworkInfo() != null;
    }
    @Override
    public boolean onTouch(View v, MotionEvent event) {

        startActivity(new Intent(Login.this,Signup.class));
        return true;
    }

    private void registerGCM() {
        Intent intent = new Intent(this, GcmIntentService.class);
        intent.putExtra("key", "register");
        startService(intent);
    }
    private boolean checkPlayServices() {
        GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance();
        int resultCode = apiAvailability.isGooglePlayServicesAvailable(this);
        if (resultCode != ConnectionResult.SUCCESS) {
            if (apiAvailability.isUserResolvableError(resultCode)) {
                apiAvailability.getErrorDialog(this, resultCode, PLAY_SERVICES_RESOLUTION_REQUEST)
                        .show();
            } else {
                Log.i("TAG", "This device is not supported. Google Play Services not installed!");
                Toast.makeText(getApplicationContext(), "This device is not supported. Google Play Services not installed!", Toast.LENGTH_LONG).show();
                finish();
            }
            return false;
        }
        return true;
    }

    @Override
    protected void onResume() {
        super.onResume();

        // register GCM registration complete receiver
        LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver,
                new IntentFilter(Config.REGISTRATION_COMPLETE));

        // register new push message receiver
        // by doing this, the activity will be notified each time a new message arrives
        LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver,
                new IntentFilter(Config.PUSH_NOTIFICATION));

        // clearing the notification tray

    }

    @Override
    protected void onPause() {
        LocalBroadcastManager.getInstance(this).unregisterReceiver(mRegistrationBroadcastReceiver);
        super.onPause();
    }

}

Android signup

package com.tdi.rk;

import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.Toast;

import com.androidquery.AQuery;
import com.androidquery.callback.AjaxCallback;
import com.androidquery.callback.AjaxStatus;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Signup extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

    EditText et_name, et_email, et_ref, et_city, et_pin, et_storenm, et_mobile;
    Button btn_signup;
    ImageView iv_profile;
    String state_id, state_name;
    String name, mail, password, city, state, store_name;
    Spinner sp_state, sp_city, sp_dist;
    AQuery aQuery;
    ProgressDialog pd;
    ByteArrayOutputStream stream;
    Bitmap bitmap;
    String picturepath, encoadedString;
    Map<String, Object> params;
    ArrayList<StateBean> stateBean;
    ArrayList<String> al_statee;
    ArrayList<String> al_city;
    String city_url;
    String my_state, my_dist, my_city;
    private Uri filePath;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_signup);
        initStuff();
        spinState();
        if (!isNetworkConnected()) {
            Toast.makeText(getApplicationContext(), "please check Your internet connection", Toast.LENGTH_LONG).show();
        } else {


                    onCLickEvent();





        }
    }

    private void spinState() {
        stateBean = new ArrayList<StateBean>();
        al_statee = new ArrayList<String>();
        AQuery aq_state = new AQuery(this);
        String st_url = "http://rajkotkitchenware.com/rkapp/State.php?key=5a14ec5b310164f2dfe49e86b06124a";
        aq_state.ajax(st_url, JSONObject.class, new AjaxCallback<JSONObject>() {

            @Override
            public void callback(String url, JSONObject object, AjaxStatus status) {


                JSONObject jsonObject;
                JSONArray jsonArray = object.optJSONArray("state");
                Log.d("JsonArray", jsonArray.toString());
                StateBean sb = new StateBean();
                if (object.opt("data").equals("success")) {
                    //jsonArray.optString()
                    for (int i = 0; i < jsonArray.length(); i++) {
                        try {
                            jsonObject = jsonArray.getJSONObject(i);
                            state_id = jsonObject.optString("stateID");
                            Log.d("state ID", state_id);
                            sb.setState_id(state_id);
                            state_name = jsonObject.optString("Name");


                            stateBean.add(sb);

                            al_statee.add(state_name);


                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                        sp_state.setAdapter(new ArrayAdapter<String>(Signup.this, android.R.layout.simple_spinner_dropdown_item, al_statee));

                    }


                }

            }

        });

    }


    private boolean isNetworkConnected() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        return cm.getActiveNetworkInfo() != null;
    }

    public void initStuff() {
        et_ref = (EditText) findViewById(R.id.et_ref);
        et_name = (EditText) findViewById(R.id.et_name);
        et_email = (EditText) findViewById(R.id.et_email);
        // et_pass = (EditText) findViewById(R.id.et_pass);
        et_city = (EditText) findViewById(R.id.et_city);
        et_pin = (EditText) findViewById(R.id.et_pincode);

        et_storenm = (EditText) findViewById(R.id.et_store_nm);
        et_mobile = (EditText) findViewById(R.id.et_mobno);

        sp_state = (Spinner) findViewById(R.id.sp_state);
        //  sp_city = (Spinner) findViewById(R.id.sp_city);
        sp_dist = (Spinner) findViewById(R.id.sp_district);
        sp_state.setOnItemSelectedListener(this);


        iv_profile = (ImageView) findViewById(R.id.profile_image);
        btn_signup = (Button) findViewById(R.id.btn_signup);

        aQuery = new AQuery(this);
        pd = new ProgressDialog(this);
        pd.setMessage("loading...");


        try {
            iv_profile.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    final String items[] = {"Camera", "Gallery", "Cancle"};

                    AlertDialog.Builder pickimage = new AlertDialog.Builder(Signup.this);
                    pickimage.setTitle("pick image");
                    pickimage.setItems(items, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {

                            if (items[which].equals("Camera")) {

                                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                                startActivityForResult(intent, 0);

                            } else if (items[which].equals("Gallery")) {

                                Intent i = new Intent(
                                        Intent.ACTION_PICK,
                                        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                                i.setType("image/*");
                                startActivityForResult(Intent.createChooser(i, "Select Image"), 1);

                            } else if (items[which].equals("Cancle")) {
                                dialog.dismiss();
                            }

                        }
                    });
                    pickimage.show();

                   /* Intent i = new Intent(
                            Intent.ACTION_PICK,
                            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                    i.setType("image*//*");
                    startActivityForResult(i, 1);*/
                    //
                }
            });
        } catch (Exception e) {
            Toast.makeText(getApplicationContext(), e + "", Toast.LENGTH_LONG).show();
        }
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (resultCode == RESULT_OK) {
            if (requestCode == 0) {
                Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
                ByteArrayOutputStream bytes = new ByteArrayOutputStream();
                thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
                File destination = new File(Environment.getExternalStorageDirectory(),
                        System.currentTimeMillis() + ".jpg");
                Log.d("Destination", destination.toString());
                FileOutputStream fo;
                try {
                    destination.createNewFile();
                    fo = new FileOutputStream(destination);
                    fo.write(bytes.toByteArray());
                    fo.close();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                iv_profile.setImageBitmap(thumbnail);
                encoadedString = bitmapToBase64(thumbnail);

            } else if (requestCode == 1) {
                Uri selectImage = data.getData();
                String[] filePathColunm = {MediaStore.Images.Media.DATA};

                Cursor cursor = getContentResolver().query(selectImage, filePathColunm, null, null, null);
                cursor.moveToFirst();

                int colunmIndex = cursor.getColumnIndex(filePathColunm[0]);
                picturepath = cursor.getString(colunmIndex);
                cursor.close();

                iv_profile.setImageBitmap(BitmapFactory.decodeFile(picturepath));
                encoadedString = bitmapToBase64(BitmapFactory.decodeFile(picturepath));
               // Log.d("IMage", "Encoaded" + encoadedString);


            }
        }
    }

    private String bitmapToBase64(Bitmap bitmap) {
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
        byte[] byteArray = byteArrayOutputStream.toByteArray();
        return Base64.encodeToString(byteArray, Base64.DEFAULT);
    }

    private void onCLickEvent() {


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

                if (isNetworkConnected()) {

                    if (checkValidation()) {
                        isRegister();
                    } else {
                        Toast.makeText(getApplicationContext(), "Please enter all field", Toast.LENGTH_LONG).show();
                    }
                } else {
                    Toast.makeText(getApplicationContext(), "Please check your Internet Connection", Toast.LENGTH_LONG).show();
                }
            }
        });
    }


    public boolean emailValidator(String email) {
        Pattern pattern;
        Matcher matcher;
        final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
        pattern = Pattern.compile(EMAIL_PATTERN);
        matcher = pattern.matcher(email);
        return matcher.matches();
    }

    private boolean checkValidation() {
        boolean check = true;

        if (et_email.getText().toString().trim().equals("")) {
            et_email.setError("please enter valid  e-mail address");
            check = false;
            return check;

        }
        else if(!emailValidator(et_email.getText().toString().trim())){
                et_email.setError("enter valid email address");
            check=false;
            return check;
        }

         else if (et_pin.getText().toString().length()<6) {
            et_pin.setError("please enter pincode");
            check = false;
            return check;
        }
         else if (et_mobile.getText().toString().trim().length() < 10) {
            et_mobile.setError("enter mobile number");
            check = false;
            return check;
        } else {

        }
        return check;
    }

    private void isRegister() {
        String url = "http://www.rajkotkitchenware.com/rkapp/Registration.php";
        // String url ="http://www.programmingly.com/bvn/rk/Registration.php";
        params = new HashMap<String, Object>();
        if (et_name.getText().toString().equals("")) {
            params.put("name", null);
        } else {
            params.put("name", et_name.getText().toString());
        }
        if(!emailValidator(et_email.getText().toString())){
            et_email.setError("please enter valid email Address");
        }else {
            params.put("email", et_email.getText().toString());
        }

        params.put("mobile", et_mobile.getText().toString());
        if (bitmap == null) {
            params.put("image", encoadedString);
        } else {
            params.put("image", encoadedString);
        }
        if (et_storenm.getText().toString().equals("")) {
            params.put("company", null);
        } else {
            params.put("company", et_storenm.getText().toString());
        }
        // params.put("city", my_city);
        params.put("district", my_dist);
        params.put("pin",et_pin.getText().toString().trim());
        params.put("state", my_state);

        if (et_city.getText().toString().equals("")) {
            params.put("city", null);
        } else {
            params.put("city", et_city.getText().toString());
        }
        /*if (et_state.getText().toString().equals("")) {
            params.put("state", null);
        } else {
            params.put("state", et_state.getText().toString());
        }*/
        if (et_ref.getText().toString().equals("")) {
            params.put("referenceBy", null);
        } else {
            params.put("referenceBy", et_ref.getText().toString());
        }
        params.put("key", "5a14ec5b310164f2dfe49e86b06124a");

        aQuery.progress(pd).ajax(url, params, JSONObject.class, new AjaxCallback<JSONObject>() {
            @Override
            public void callback(String url, JSONObject object, AjaxStatus status) {
                if (object != null) {
                    String msg = object.optString("msg");

                    //successful
                    if (object.optString("data").equals("success")) {
                        startActivity(new Intent(Signup.this, Login.class));
                        Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
                    }
                } else {
                }
            }
        });
    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {


        my_state = sp_state.getSelectedItem().toString();

        //Toast.makeText(getApplicationContext(),sta,Toast.LENGTH_LONG).show();
        //String s = String.valueOf(state_id.length()-1);

        city_url = "http://rajkotkitchenware.com/rkapp/District.php?stateID=" + my_state + "&key=5a14ec5b310164f2dfe49e86b06124a";
        //city_url = "http://rajkotkitchenware.com/rkapp/City.php?stateID="+sta+"&key=5a14ec5b310164f2dfe49e86b06124a";
//        Log.d("stateid recev ",sb.getState_id().toString());
        //  Log.d("al",al.toString());
        Log.d("city url", city_url);
        AQuery aq_city = new AQuery(this);
        ProgressDialog pd = new ProgressDialog(this);
        al_city = new ArrayList<String>();

        aq_city.progress(pd).ajax(city_url, JSONObject.class, new AjaxCallback<JSONObject>() {
            @Override
            public void callback(String url, JSONObject object, AjaxStatus status) {
                JSONArray jsonArray_city = object.optJSONArray("state");
                JSONObject jsonObject_city;
                for (int i = 0; i < jsonArray_city.length(); i++) {

                    try {
                        jsonObject_city = jsonArray_city.getJSONObject(i);

                        String city_id = jsonObject_city.optString("cityID");
                        String city_name = jsonObject_city.optString("Name");

                        al_city.add(city_name);


                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    sp_dist.setAdapter(new ArrayAdapter<String>(Signup.this, android.R.layout.simple_spinner_dropdown_item, al_city));
                    final JSONObject finalJsonObject_city = null;
                    sp_dist.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                        @Override
                        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                            my_dist = sp_dist.getSelectedItem().toString();
                            String mycity_url = "http://rajkotkitchenware.com/rkapp/City.php?stateID=" + my_dist + "&key=5a14ec5b310164f2dfe49e86b06124a";

                            AQuery aq_mycity = new AQuery(Signup.this);
                            aq_mycity.ajax(mycity_url, JSONObject.class, new AjaxCallback<JSONObject>() {

                                @Override
                                public void callback(String url, JSONObject object, AjaxStatus status) {

                                    JSONArray jsonArray_mycity = object.optJSONArray("state");
                                    JSONObject jsonObject_mycityy = null;
                                    for (int i = 0; i < jsonArray_mycity.length(); i++) {

                                        try {
                                            jsonObject_mycityy = jsonArray_mycity.getJSONObject(i);
                                            String city_id = jsonObject_mycityy.optString("cityID");
                                            String city_name = finalJsonObject_city.optString("Name");
                                            al_city.add(city_name);
                                            sp_city.setAdapter(new ArrayAdapter<String>(Signup.this, android.R.layout.simple_spinner_dropdown_item, al_city));
                                        } catch (JSONException e) {
                                            e.printStackTrace();
                                        }
                                    }

                                }
                            });


                        }

                        @Override
                        public void onNothingSelected(AdapterView<?> parent) {


                        }
                    });
                }
            }
        });


    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }
}

Thursday, 6 August 2015

Create your own Galary View in Android


package com.example.tabledemo; import android.R.string; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Gallery; import android.os.Build; public class MainActivity extends ActionBarActivity { Gallery g; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); g = (Gallery) findViewById(R.id.gallery1); String city[] = {"London","Paris","New York","Delhi","Mumbai","Ahmedabad","Gondal"}; ArrayAdapter< String> adpt = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_gallery_item,city); g.setAdapter(adpt); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()) .commit(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); return rootView; } } }

--------------------------------------------------------------------------------
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.tabledemo.MainActivity" tools:ignore="MergeRootFrame" > <Gallery android:id="@+id/gallery1" android:layout_width="match_parent" android:layout_height="wrap_content" android:spacing="300px"> </Gallery>> </FrameLayout>



out put :