Created
July 11, 2015 12:28
-
-
Save vik-y/04886f4a1ef1ae12b3af to your computer and use it in GitHub Desktop.
hackathon android code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package APIConnect; | |
import android.util.Base64; | |
import android.util.Log; | |
import android.widget.Toast; | |
import org.apache.http.HttpResponse; | |
import org.apache.http.NameValuePair; | |
import org.apache.http.client.HttpClient; | |
import org.apache.http.client.entity.UrlEncodedFormEntity; | |
import org.apache.http.client.methods.HttpPost; | |
import org.apache.http.entity.StringEntity; | |
import org.apache.http.impl.client.DefaultHttpClient; | |
import org.apache.http.message.BasicNameValuePair; | |
import org.apache.http.util.EntityUtils; | |
import org.json.JSONException; | |
import org.json.JSONObject; | |
import java.io.IOException; | |
import java.io.UnsupportedEncodingException; | |
import java.util.ArrayList; | |
import java.util.List; | |
/** | |
* Created by Samyak on 24-04-2015. | |
*/ | |
public class APIConnectPlivo { | |
public static boolean executePostCall(String to) throws UnsupportedEncodingException { | |
HttpClient client = new DefaultHttpClient(); | |
HttpPost post = new HttpPost("http://192.168.150.1/wdigital/rest/buyticket"); | |
Log.v("vikas", "reached here bc"); | |
//post.setHeader("Authorization", "Basic " + Base64.encodeToString("MAZDC5MTCXMMUZYZNLZG:YjY4ZjE5ZDJkOTEwMjY2YzZjMTc2YjcyNDYwN2Fk".getBytes(), Base64.NO_WRAP)); | |
JSONObject request = new JSONObject(); | |
/* | |
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); | |
nameValuePairs.add(new BasicNameValuePair("id", "01")); | |
nameValuePairs.add(new BasicNameValuePair("message", msg)); | |
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); | |
*/ | |
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); | |
nameValuePairs.add(new BasicNameValuePair("id", "1")); | |
nameValuePairs.add(new BasicNameValuePair("serial", "223")); | |
nameValuePairs.add(new BasicNameValuePair("amount", "1")); | |
nameValuePairs.add(new BasicNameValuePair("token", "1234")); | |
/*StringEntity stringEntity = null; | |
try { | |
stringEntity = new StringEntity(request.toString()); | |
stringEntity.setContentType("application/json"); | |
} catch (UnsupportedEncodingException e) { | |
e.printStackTrace(); | |
}*/ | |
post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); | |
HttpResponse response = null; | |
try { | |
response = client.execute(post); | |
Log.v("Vikas", response.toString()); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
try{ | |
String result = EntityUtils.toString(response.getEntity()); | |
Log.v("vikas", result); | |
} | |
catch (Exception e){ | |
e.printStackTrace(); | |
} | |
return true; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.samyakandroid.plivosamyak; | |
import android.os.Bundle; | |
import APIConnect.APIConnectPlivo; | |
import android.os.AsyncTask; | |
import android.app.Activity; | |
import android.util.Log; | |
import android.view.View; | |
import android.widget.Button; | |
import android.widget.EditText; | |
import android.view.View.OnClickListener; | |
import android.widget.Toast; | |
import android.database.Cursor; | |
import android.database.SQLException; | |
import android.database.sqlite.SQLiteDatabase; | |
import android.database.sqlite.SQLiteOpenHelper; | |
import android.util.Log; | |
import java.io.UnsupportedEncodingException; | |
import java.security.MessageDigest; | |
import java.security.NoSuchAlgorithmException; | |
public class MainActivity extends Activity { | |
private Button callButton; | |
private EditText inputNumber; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
inputNumber = (EditText) findViewById(R.id.userPhone); | |
callButton = (Button) findViewById(R.id.makeCall); | |
int count =0; | |
callButton.setOnClickListener(new OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
String from = inputNumber.getText().toString(); | |
SQLiteDatabase mydatabase = openOrCreateDatabase("wdigital", MODE_PRIVATE, null); | |
//mydatabase.execSQL("DROP TABLE IF EXISTS transactions"); | |
mydatabase.execSQL("CREATE TABLE IF NOT EXISTS transactions (" + | |
"id INT PRIMARY KEY NOT NULL, " + | |
"sp INT NOT NULL, " + | |
"ep INT NOT NULL, " + | |
"timestamp TEXT, " + | |
"age INT, " + | |
"gender INT, " + | |
"token TEXT" + | |
");"); | |
//mydatabase.execSQL("INSERT INTO transactions VALUES('1','admin', 'admin', 'tstamp', 20, 0, 'trialanderror');"); | |
//mydatabase.execSQL("INSERT INTO transactions VALUES (2, 1, 2, \"works\", 20, 0, 20"); | |
mydatabase.execSQL("INSERT INTO transactions (id, sp, ep, token) VALUES (1, 2, 5, 'trialanderror')"); | |
Cursor resultSet = mydatabase.rawQuery("SELECT * from transactions", null); | |
resultSet.moveToFirst(); | |
Log.v("vikas", "New Data: "+generateDatatoWrite("age=15&g=10&token=1001")); | |
Log.v("vikas", resultSet.getString(2)); | |
checkToken("trialanderror"); | |
Log.v("vikas", "Generated Token: "+generateToken()); | |
Toast.makeText(getApplicationContext(), "pressed call button", | |
Toast.LENGTH_SHORT).show(); | |
new Call().execute(new String[]{from}); | |
} | |
}); | |
} | |
public boolean checkToken(String token){ | |
/* | |
If token found in db return true else return false | |
for now, just search for the token in the db and if found return 1 | |
*/ | |
SQLiteDatabase mydatabase = openOrCreateDatabase("transactions", MODE_PRIVATE, null); | |
Cursor resultSet = mydatabase.rawQuery("SELECT * FROM transactions WHERE token='"+token+"'", null); | |
resultSet.moveToFirst(); | |
if(resultSet.getString(5)!=null) | |
Log.v("vikas", "Result set: "+resultSet.getString(5)); | |
else{ | |
Log.v("vikas", "No result found"); | |
} | |
return true; | |
} | |
public static final String md5(final String s) { | |
final String MD5 = "MD5"; | |
try { | |
// Create MD5 Hash | |
MessageDigest digest = java.security.MessageDigest.getInstance(MD5); | |
digest.update(s.getBytes()); | |
byte messageDigest[] = digest.digest(); | |
// Create Hex String | |
StringBuilder hexString = new StringBuilder(); | |
for (byte aMessageDigest : messageDigest) { | |
String h = Integer.toHexString(0xFF & aMessageDigest); | |
while (h.length() < 2) | |
h = "0" + h; | |
hexString.append(h); | |
} | |
return hexString.toString(); | |
} catch (NoSuchAlgorithmException e) { | |
e.printStackTrace(); | |
} | |
return ""; | |
} | |
public void makeTable(){ | |
SQLiteDatabase mydatabase = openOrCreateDatabase("wdigital", MODE_PRIVATE, null); | |
mydatabase.execSQL("CREATE TABLE IF NOT EXISTS transactions (" + | |
"id INT PRIMARY KEY NOT NULL, " + | |
"sp INT NOT NULL, " + | |
"ep INT NOT NULL, " + | |
"timestamp TEXT, " + | |
"age INT, " + | |
"gender INT, " + | |
"token TEXT" + | |
");"); | |
mydatabase.close(); | |
} | |
public static final String generateToken(){ | |
//A simple method to generate token based on some serial | |
/* | |
for now generete a random number and put that in db | |
*/ | |
int minimum=30000, maximum=100000; | |
Integer randomNum = minimum + (int)(Math.random()*maximum); | |
return md5(randomNum.toString()); | |
} | |
public static final String generateDatatoWrite(String DatafromCard){ | |
//read contents as it is from card - use Samyak's code here | |
//just change one parameter | |
String string = DatafromCard; | |
String output = ""; | |
String[] parts = string.split("&"); | |
for (int j=0; j<parts.length;j++){ | |
String[] part1 = parts[j].split("="); | |
//part1[0], part1[1] - key , value | |
if(!part1[0].equals("token")){ | |
output+=part1[0]+"="+part1[1]+"&"; | |
} | |
} | |
output+="token="+generateToken(); | |
return output; | |
} | |
class Call extends AsyncTask<String, Void, Boolean> { | |
@Override | |
protected Boolean doInBackground(String... params) { | |
Log.v("vikas", "async here"); | |
try { | |
return APIConnectPlivo.executePostCall(params[0]); | |
} catch (UnsupportedEncodingException e) { | |
e.printStackTrace(); | |
} | |
Toast.makeText(getApplicationContext(),"working", | |
Toast.LENGTH_SHORT).show(); | |
return true; | |
} | |
@Override | |
protected void onPostExecute(Boolean aBoolean) { | |
super.onPostExecute(aBoolean); | |
} | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment