Android Open Source - visiting-card-android Create V C Activity






From Project

Back to project page visiting-card-android.

License

The source code is released under:

GNU General Public License

If you think the Android project visiting-card-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.matrix.visitingcard;
//from w  w w .j  a  va2s  .  c o m
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;

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

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.flurry.android.FlurryAgent;
import com.loopj.android.http.RequestParams;
import com.matrix.asynchttplibrary.model.CallProperties;
import com.matrix.asynchttplibrary.util.AsyncUtil;
import com.matrix.visitingcard.constant.Constants;
import com.matrix.visitingcard.http.AsyncHttp;
import com.matrix.visitingcard.http.ProgressJSONResponseCallBack;
import com.matrix.visitingcard.http.ProgressJsonHttpResponseHandler;
import com.matrix.visitingcard.http.response.VCTResponse;
import com.matrix.visitingcard.http.response.VCTResponse.KeysAndTypes;
import com.matrix.visitingcard.logger.VLogger;
import com.matrix.visitingcard.util.FileUtil;
import com.matrix.visitingcard.util.SharedPrefs;

public class CreateVCActivity extends Activity implements
    ProgressJSONResponseCallBack {
  private int vctId;
  private VCTResponse vct;
  private AsyncHttp mAsyncHttp;

  @Override
  public void onStart() {
    super.onStart();
    FlurryAgent.onStartSession(this, "C8ZJZ5PWCFZ9WFQ5QKHM");
  }

  @Override
  public void onStop() {
    super.onStop();
    FlurryAgent.onEndSession(this);
  }

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_create_vc);

    vctId = (int) getIntent().getLongExtra(Constants.Intent.HOME_TO_VC, 0);
    vct = VCTResponse.getAllVCT().get(vctId);

    initialize();
    initializeViews();
    constructInputFields();
  }

  private void initializeViews() {
    ((TextView) findViewById(R.id.tvNameVCT)).setText(vct.getName());
  }

  // private final int SELECT_PHOTO = 1;
  private View type[];

  private void constructInputFields() {

    LayoutInflater inflater = (LayoutInflater) this
        .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

    // ViewGroup rootView = (ViewGroup) getWindow().getDecorView()
    // .findViewById(android.R.id.content);

    LinearLayout rootView = (LinearLayout) findViewById(R.id.llCreateVC);
    if (rootView == null) {
      VLogger.e("rootview is null");
      return;
    }
    final ArrayList<KeysAndTypes> keysAndTypes = vct.getKeysAndTypes();
    if (keysAndTypes == null) {
      VLogger.e("no values to be filled :-( ");
      return;
    }

    int size = keysAndTypes.size();
    type = new View[size];

    for (Integer i = 0; i < size; i++) {

      KeysAndTypes kt = keysAndTypes.get(i);
      switch (kt.getType()) {
      case TEXT:
        type[i] = inflater.inflate(R.layout.item_type_text, null);
        ((EditText) type[i]).setHint(kt.getKey());
        break;
      case TEXTAREA:
        type[i] = inflater.inflate(R.layout.item_type_text, null);
        ((EditText) type[i]).setHint(kt.getKey());
        break;
      case IMAGE:
        type[i] = inflater.inflate(R.layout.item_type_button, null);

        Button b = ((Button) type[i].findViewById(R.id.bSelectImage));
        b.setTag(i);
        b.setOnClickListener(new OnClickListener() {

          @Override
          public void onClick(View v) {
            Intent i = new Intent(
                Intent.ACTION_PICK,
                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(i, (Integer) v.getTag());

          }
        });
        break;
      default:
        break;
      }
      if (type[i] == null) {
        VLogger.e("type " + i + " is null");
        continue;
      }

      rootView.addView(type[i]);

    }

    Button submit = new Button(this);
    submit.setText(R.string.create_vc);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
        ViewGroup.LayoutParams.WRAP_CONTENT,
        ViewGroup.LayoutParams.WRAP_CONTENT);
    params.gravity = Gravity.CENTER;

    submit.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        sendCollectedInfo(keysAndTypes, type);
      }
    });
    rootView.addView(submit, params);
  }

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

  //  switch (requestCode) {
  //  case SELECT_PHOTO:
      if (resultCode == RESULT_OK) {
        Uri uri = imageReturnedIntent.getData();

        ImageView iv = (ImageView) type[requestCode]
            .findViewById(R.id.ivImageSelected);
        iv.setImageURI(uri);

        String filePath = getRealPathFromURI(uri);
        type[requestCode].setTag(filePath);

      //}
    }
  }

  private String getRealPathFromURI(Uri contentUri) {
    String[] filePathColumn = { MediaStore.Images.Media.DATA };
    Cursor cursor = getContentResolver().query(contentUri, filePathColumn,
        null, null, null);
    cursor.moveToFirst();

    int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
    String filePath = cursor.getString(columnIndex);
    cursor.close();
    return filePath;

  }

  protected void sendCollectedInfo(ArrayList<KeysAndTypes> keysAndTypes,
      View[] views) {
    VLogger.e("send collection");
    String PARAM_KEY = "visiting_card[visiting_card_datas_attributes[%d][key]]";
    String PARAM_VALUE = "visiting_card[visiting_card_datas_attributes[%d][value]]";
    String PARAM_IMAGE = "visiting_card[visiting_card_datas_attributes[%d][image]]";

    CallProperties connectionProperties = AsyncUtil.getCallProperites(this,
        "create_vc", "url.properties");

    mAsyncHttp.addHeader("Cookie", SharedPrefs.getInstance(this)
        .getSharedPrefsValueString(Constants.SP.SESSION_ID, null));

    ProgressJsonHttpResponseHandler handler = new ProgressJsonHttpResponseHandler(
        this, this);

    RequestParams params = new RequestParams();

    params.put("visiting_card[visiting_card_template_id]", vct.getId());

    int size = keysAndTypes.size();

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

      KeysAndTypes kt = keysAndTypes.get(i);
      switch (kt.getType()) {
      case TEXT:
      case TEXTAREA:
        String value = ((EditText) views[i]).getText().toString();
        if (value != null && value.length() > 0) {
          params.put(String.format(PARAM_KEY, i), kt.getKey());
          params.put(String.format(PARAM_VALUE, i), value);
        }
        // VLogger.e("\nkey " + kt.getKey() + "\nval " + value);
        break;
      case IMAGE:
        File image;
        String mimeType;
        String filePath = null;
        Object o = views[i].getTag();
        if (o != null) {
          filePath = (String) o;
        }else{
          continue;
        }
        try {
          image = new File(filePath);
          VLogger.e("path " + filePath);
          mimeType = FileUtil.getMimeType(image.getAbsolutePath());

          params.put(String.format(PARAM_KEY, i), kt.getKey());
          params.put(String.format(PARAM_VALUE, i), "vcimagevc");
          params.put(String.format(PARAM_IMAGE, i), image, mimeType);

        } catch (FileNotFoundException e) {
          e.printStackTrace();
        }

        break;

      }
    }
    VLogger.e(params.toString());
    mAsyncHttp.generatePostRequestTemperoryMethod(
        connectionProperties.baseURL, null, params, handler);
  }

  private void initialize() {
    mAsyncHttp = AsyncHttp.getNewInstance();
  }

  @Override
  protected void onDestroy() {
    mAsyncHttp.cancelAllRequests(true);
    super.onDestroy();
  }

  @Override
  public void onAsyncStart() {
  }

  @Override
  public void onAsyncFinish() {
  }

  @Override
  public void onAsyncSuccess(JSONArray jsonArray) {
  }

  @Override
  public void onAsyncSuccess(JSONObject jsonObject) {
    Toast.makeText(getApplicationContext(), "VC Created",
        Toast.LENGTH_SHORT).show();
    CreateVCActivity.this.finish();
  }

  @Override
  public void onAsyncFailure(int status, String string) {
    Toast.makeText(getApplicationContext(), "Unable To create VC",
        Toast.LENGTH_SHORT).show();
    VLogger.e("Connection Failed, status code " + status + " response "
        + (string == null ? "null" : new String(string)));
  }

  @Override
  public void onAsyncFailure(int status, JSONObject jsonObject) {
    Toast.makeText(getApplicationContext(), "Unable To create VC",
        Toast.LENGTH_SHORT).show();
    VLogger.e("Connection Failed, status code " + status + " response "
        + jsonObject.toString());
  }

}




Java Source Code List

android.UnusedStub.java
com.loopj.android.http.AsyncHttpClient.java
com.loopj.android.http.AsyncHttpRequest.java
com.loopj.android.http.AsyncHttpResponseHandler.java
com.loopj.android.http.Base64DataException.java
com.loopj.android.http.Base64OutputStream.java
com.loopj.android.http.Base64.java
com.loopj.android.http.BaseJsonHttpResponseHandler.java
com.loopj.android.http.BinaryHttpResponseHandler.java
com.loopj.android.http.DataAsyncHttpResponseHandler.java
com.loopj.android.http.FileAsyncHttpResponseHandler.java
com.loopj.android.http.JsonHttpResponseHandler.java
com.loopj.android.http.JsonStreamerEntity.java
com.loopj.android.http.MyRedirectHandler.java
com.loopj.android.http.MySSLSocketFactory.java
com.loopj.android.http.PersistentCookieStore.java
com.loopj.android.http.PreemtiveAuthorizationHttpRequestInterceptor.java
com.loopj.android.http.RangeFileAsyncHttpResponseHandler.java
com.loopj.android.http.RequestHandle.java
com.loopj.android.http.RequestParams.java
com.loopj.android.http.ResponseHandlerInterface.java
com.loopj.android.http.RetryHandler.java
com.loopj.android.http.SaxAsyncHttpResponseHandler.java
com.loopj.android.http.SerializableCookie.java
com.loopj.android.http.SimpleMultipartEntity.java
com.loopj.android.http.SyncHttpClient.java
com.loopj.android.http.TextHttpResponseHandler.java
com.loopj.android.http.package-info.java
com.matrix.asynchttplibrary.AsyncH.java
com.matrix.asynchttplibrary.annotation.AsyncHAnnotation.java
com.matrix.asynchttplibrary.annotation.AsyncHIgnoreParam.java
com.matrix.asynchttplibrary.logger.ALogger.java
com.matrix.asynchttplibrary.model.CallProperties.java
com.matrix.asynchttplibrary.parser.AsyncParser.java
com.matrix.asynchttplibrary.request.AsyncRequestHeader.java
com.matrix.asynchttplibrary.request.AsyncRequestParam.java
com.matrix.asynchttplibrary.response.AsyncResponseBody.java
com.matrix.asynchttplibrary.security.CustomSSLSocketFactory.java
com.matrix.asynchttplibrary.util.AsyncUtil.java
com.matrix.visitingcard.AllVCFragment.java
com.matrix.visitingcard.CreateVCActivity.java
com.matrix.visitingcard.ListMyVCFragment.java
com.matrix.visitingcard.ListMyVCRActivity.java
com.matrix.visitingcard.ListOfVCTFragment.java
com.matrix.visitingcard.ResideActivity.java
com.matrix.visitingcard.SelectVCActivity.java
com.matrix.visitingcard.ShareVCDialogFragment.java
com.matrix.visitingcard.SignUpFormActivity.java
com.matrix.visitingcard.SplashScreenActivity.java
com.matrix.visitingcard.VCRCreateDialogFragment.java
com.matrix.visitingcard.ViewVC.java
com.matrix.visitingcard.adapter.SupportArrayAdapter.java
com.matrix.visitingcard.adapter.VCAdapter.java
com.matrix.visitingcard.adapter.VCRAdapter.java
com.matrix.visitingcard.adapter.VCTAdapter.java
com.matrix.visitingcard.constant.Constants.java
com.matrix.visitingcard.gcm.GcmBroadcastReceiver.java
com.matrix.visitingcard.gcm.GcmIntentService.java
com.matrix.visitingcard.http.AsyncHttp.java
com.matrix.visitingcard.http.ProgressJSONResponseCallBack.java
com.matrix.visitingcard.http.ProgressJsonHttpResponseHandler.java
com.matrix.visitingcard.http.UIReloadCallBack.java
com.matrix.visitingcard.http.parser.Parser.java
com.matrix.visitingcard.http.request.AcceptVCRResquest.java
com.matrix.visitingcard.http.request.ShareVCResquest.java
com.matrix.visitingcard.http.request.SocialLoginRequest.java
com.matrix.visitingcard.http.response.FriendsVC.java
com.matrix.visitingcard.http.response.MyVC.java
com.matrix.visitingcard.http.response.VCR.java
com.matrix.visitingcard.http.response.VCTResponse.java
com.matrix.visitingcard.http.response.VC.java
com.matrix.visitingcard.logger.VLogger.java
com.matrix.visitingcard.user.User.java
com.matrix.visitingcard.util.CustomImageDownaloder.java
com.matrix.visitingcard.util.FileUtil.java
com.matrix.visitingcard.util.SharedPrefs.java
com.matrix.visitingcard.util.Util.java
com.matrix.visitingcard.util.VisitingCardApp.java
com.special.ResideMenu.ResideMenuItem.java
com.special.ResideMenu.ResideMenu.java
com.special.ResideMenu.TouchDisableView.java