From 615d48319f1e9b69d212cafdac127421958bbaa1 Mon Sep 17 00:00:00 2001 From: navneet Date: Fri, 8 Jan 2016 18:14:56 +0800 Subject: [PATCH] Task done --- AndroidShowCaseApp/.gitignore | 8 + AndroidShowCaseApp/.idea/.name | 1 + AndroidShowCaseApp/.idea/compiler.xml | 22 +++ .../.idea/copyright/profiles_settings.xml | 3 + AndroidShowCaseApp/.idea/gradle.xml | 19 +++ AndroidShowCaseApp/.idea/misc.xml | 46 +++++ AndroidShowCaseApp/.idea/modules.xml | 9 + .../.idea/runConfigurations.xml | 12 ++ AndroidShowCaseApp/.idea/vcs.xml | 6 + AndroidShowCaseApp/app/.gitignore | 1 + AndroidShowCaseApp/app/build.gradle | 28 +++ AndroidShowCaseApp/app/proguard-rules.pro | 17 ++ .../java/com/navneet/ApplicationTest.java | 13 ++ .../app/src/main/AndroidManifest.xml | 24 +++ .../main/java/com/navneet/AddNewDevices.java | 118 +++++++++++++ .../java/com/navneet/ListingActivity.java | 143 ++++++++++++++++ .../java/com/navneet/MyDatabaseHelper.java | 36 ++++ .../java/com/network/NetworkClassHandler.java | 75 ++++++++ .../java/com/network/NetworkInterface.java | 10 ++ .../src/main/res/drawable-hdpi/add_new.jpg | Bin 0 -> 5125 bytes .../src/main/res/layout/activity_listing.xml | 19 +++ .../app/src/main/res/layout/add_new.xml | 12 ++ .../src/main/res/layout/add_new_layout.xml | 49 ++++++ .../app/src/main/res/layout/row.xml | 11 ++ .../app/src/main/res/menu/menu_listing.xml | 10 ++ .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10486 bytes .../app/src/main/res/values-v21/styles.xml | 9 + .../app/src/main/res/values-w820dp/dimens.xml | 6 + .../app/src/main/res/values/colors.xml | 6 + .../app/src/main/res/values/dimens.xml | 6 + .../app/src/main/res/values/strings.xml | 5 + .../app/src/main/res/values/styles.xml | 20 +++ .../java/com/navneet/ExampleUnitTest.java | 15 ++ AndroidShowCaseApp/build.gradle | 23 +++ AndroidShowCaseApp/gradle.properties | 18 ++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53637 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + AndroidShowCaseApp/gradlew | 160 ++++++++++++++++++ AndroidShowCaseApp/gradlew.bat | 90 ++++++++++ AndroidShowCaseApp/settings.gradle | 1 + 44 files changed, 1057 insertions(+) create mode 100755 AndroidShowCaseApp/.gitignore create mode 100755 AndroidShowCaseApp/.idea/.name create mode 100755 AndroidShowCaseApp/.idea/compiler.xml create mode 100755 AndroidShowCaseApp/.idea/copyright/profiles_settings.xml create mode 100755 AndroidShowCaseApp/.idea/gradle.xml create mode 100755 AndroidShowCaseApp/.idea/misc.xml create mode 100755 AndroidShowCaseApp/.idea/modules.xml create mode 100755 AndroidShowCaseApp/.idea/runConfigurations.xml create mode 100755 AndroidShowCaseApp/.idea/vcs.xml create mode 100755 AndroidShowCaseApp/app/.gitignore create mode 100755 AndroidShowCaseApp/app/build.gradle create mode 100755 AndroidShowCaseApp/app/proguard-rules.pro create mode 100755 AndroidShowCaseApp/app/src/androidTest/java/com/navneet/ApplicationTest.java create mode 100755 AndroidShowCaseApp/app/src/main/AndroidManifest.xml create mode 100644 AndroidShowCaseApp/app/src/main/java/com/navneet/AddNewDevices.java create mode 100755 AndroidShowCaseApp/app/src/main/java/com/navneet/ListingActivity.java create mode 100755 AndroidShowCaseApp/app/src/main/java/com/navneet/MyDatabaseHelper.java create mode 100755 AndroidShowCaseApp/app/src/main/java/com/network/NetworkClassHandler.java create mode 100755 AndroidShowCaseApp/app/src/main/java/com/network/NetworkInterface.java create mode 100644 AndroidShowCaseApp/app/src/main/res/drawable-hdpi/add_new.jpg create mode 100755 AndroidShowCaseApp/app/src/main/res/layout/activity_listing.xml create mode 100644 AndroidShowCaseApp/app/src/main/res/layout/add_new.xml create mode 100644 AndroidShowCaseApp/app/src/main/res/layout/add_new_layout.xml create mode 100644 AndroidShowCaseApp/app/src/main/res/layout/row.xml create mode 100755 AndroidShowCaseApp/app/src/main/res/menu/menu_listing.xml create mode 100755 AndroidShowCaseApp/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100755 AndroidShowCaseApp/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100755 AndroidShowCaseApp/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100755 AndroidShowCaseApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100755 AndroidShowCaseApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100755 AndroidShowCaseApp/app/src/main/res/values-v21/styles.xml create mode 100755 AndroidShowCaseApp/app/src/main/res/values-w820dp/dimens.xml create mode 100755 AndroidShowCaseApp/app/src/main/res/values/colors.xml create mode 100755 AndroidShowCaseApp/app/src/main/res/values/dimens.xml create mode 100755 AndroidShowCaseApp/app/src/main/res/values/strings.xml create mode 100755 AndroidShowCaseApp/app/src/main/res/values/styles.xml create mode 100755 AndroidShowCaseApp/app/src/test/java/com/navneet/ExampleUnitTest.java create mode 100755 AndroidShowCaseApp/build.gradle create mode 100755 AndroidShowCaseApp/gradle.properties create mode 100755 AndroidShowCaseApp/gradle/wrapper/gradle-wrapper.jar create mode 100755 AndroidShowCaseApp/gradle/wrapper/gradle-wrapper.properties create mode 100755 AndroidShowCaseApp/gradlew create mode 100755 AndroidShowCaseApp/gradlew.bat create mode 100755 AndroidShowCaseApp/settings.gradle diff --git a/AndroidShowCaseApp/.gitignore b/AndroidShowCaseApp/.gitignore new file mode 100755 index 0000000..c6cbe56 --- /dev/null +++ b/AndroidShowCaseApp/.gitignore @@ -0,0 +1,8 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures diff --git a/AndroidShowCaseApp/.idea/.name b/AndroidShowCaseApp/.idea/.name new file mode 100755 index 0000000..a1ed788 --- /dev/null +++ b/AndroidShowCaseApp/.idea/.name @@ -0,0 +1 @@ +AndroidShowCaseApp \ No newline at end of file diff --git a/AndroidShowCaseApp/.idea/compiler.xml b/AndroidShowCaseApp/.idea/compiler.xml new file mode 100755 index 0000000..96cc43e --- /dev/null +++ b/AndroidShowCaseApp/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AndroidShowCaseApp/.idea/copyright/profiles_settings.xml b/AndroidShowCaseApp/.idea/copyright/profiles_settings.xml new file mode 100755 index 0000000..e7bedf3 --- /dev/null +++ b/AndroidShowCaseApp/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/AndroidShowCaseApp/.idea/gradle.xml b/AndroidShowCaseApp/.idea/gradle.xml new file mode 100755 index 0000000..39139a6 --- /dev/null +++ b/AndroidShowCaseApp/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/AndroidShowCaseApp/.idea/misc.xml b/AndroidShowCaseApp/.idea/misc.xml new file mode 100755 index 0000000..5d19981 --- /dev/null +++ b/AndroidShowCaseApp/.idea/misc.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AndroidShowCaseApp/.idea/modules.xml b/AndroidShowCaseApp/.idea/modules.xml new file mode 100755 index 0000000..9ee48b7 --- /dev/null +++ b/AndroidShowCaseApp/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/AndroidShowCaseApp/.idea/runConfigurations.xml b/AndroidShowCaseApp/.idea/runConfigurations.xml new file mode 100755 index 0000000..7f68460 --- /dev/null +++ b/AndroidShowCaseApp/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/AndroidShowCaseApp/.idea/vcs.xml b/AndroidShowCaseApp/.idea/vcs.xml new file mode 100755 index 0000000..6564d52 --- /dev/null +++ b/AndroidShowCaseApp/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/AndroidShowCaseApp/app/.gitignore b/AndroidShowCaseApp/app/.gitignore new file mode 100755 index 0000000..796b96d --- /dev/null +++ b/AndroidShowCaseApp/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/AndroidShowCaseApp/app/build.gradle b/AndroidShowCaseApp/app/build.gradle new file mode 100755 index 0000000..5f3d5e8 --- /dev/null +++ b/AndroidShowCaseApp/app/build.gradle @@ -0,0 +1,28 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.2" + + defaultConfig { + applicationId "com.navneet" + minSdkVersion 15 + targetSdkVersion 23 + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + testCompile 'junit:junit:4.12' + compile 'com.android.support:appcompat-v7:23.1.1' + compile 'com.android.support:design:23.1.1' + compile 'com.squareup.okhttp:okhttp:2.5.0' +} diff --git a/AndroidShowCaseApp/app/proguard-rules.pro b/AndroidShowCaseApp/app/proguard-rules.pro new file mode 100755 index 0000000..7b6f462 --- /dev/null +++ b/AndroidShowCaseApp/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /home/navneet/Documents/android-sdk-linux/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/AndroidShowCaseApp/app/src/androidTest/java/com/navneet/ApplicationTest.java b/AndroidShowCaseApp/app/src/androidTest/java/com/navneet/ApplicationTest.java new file mode 100755 index 0000000..a13f50f --- /dev/null +++ b/AndroidShowCaseApp/app/src/androidTest/java/com/navneet/ApplicationTest.java @@ -0,0 +1,13 @@ +package com.navneet; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/AndroidShowCaseApp/app/src/main/AndroidManifest.xml b/AndroidShowCaseApp/app/src/main/AndroidManifest.xml new file mode 100755 index 0000000..5be684f --- /dev/null +++ b/AndroidShowCaseApp/app/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + diff --git a/AndroidShowCaseApp/app/src/main/java/com/navneet/AddNewDevices.java b/AndroidShowCaseApp/app/src/main/java/com/navneet/AddNewDevices.java new file mode 100644 index 0000000..1552009 --- /dev/null +++ b/AndroidShowCaseApp/app/src/main/java/com/navneet/AddNewDevices.java @@ -0,0 +1,118 @@ +package com.navneet; + +import android.app.Activity; +import android.content.ContentValues; +import android.database.sqlite.SQLiteDatabase; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ProgressBar; +import android.widget.Toast; + +import com.network.NetworkClassHandler; +import com.network.NetworkInterface; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.HashMap; + +/** + * Created by root on 1/8/16. + */ +public class AddNewDevices extends Activity implements View.OnClickListener, NetworkInterface{ + private ProgressBar progressBar; + private SQLiteDatabase database; + private Button submit; + private EditText name, version, codename, target, distribution; + private String err = ""; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.add_new_layout); + progressBar = (ProgressBar) findViewById(R.id.progressBar); + submit = (Button) findViewById(R.id.submit); + name = (EditText) findViewById(R.id.name); + version = (EditText) findViewById(R.id.version); + codename = (EditText) findViewById(R.id.codename); + target = (EditText) findViewById(R.id.target); + distribution = (EditText) findViewById(R.id.distribution); + submit.setOnClickListener(this); + } + private boolean Validation(){ + if(TextUtils.isEmpty(name.getText().toString().trim())) { + err = "Enter the Name"; + return false; + } else if(TextUtils.isEmpty(version.getText().toString().trim())) { + err = "Enter the Version"; + return false; + } else if(TextUtils.isEmpty(codename.getText().toString().trim())) { + err = "Enter the Code name"; + return false; + } else if(TextUtils.isEmpty(target.getText().toString().trim())) { + err = "Enter the Target"; + return false; + } else if(TextUtils.isEmpty(distribution.getText().toString().trim())) { + err = "Enter the Distribution"; + return false; + } + return true; + } + @Override + public void onClick(View v) { + if(Validation()){ + progressBar.setVisibility(View.VISIBLE); + HashMap map = new HashMap<>(); + map.put("name", name.getText().toString().trim()); + map.put("version", version.getText().toString().trim()); + map.put("codename", codename.getText().toString().trim()); + map.put("target", target.getText().toString().trim()); + map.put("distribution", distribution.getText().toString().trim()); + new NetworkClassHandler().OnPostRequestWithParams(this, 5, map,"http://mobilesandboxdev.azurewebsites.net/android"); + } else { + Toast.makeText(this, err,Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onResponse(String response, int requestCode) { + try { + JSONObject json = new JSONObject(response); + MyDatabaseHelper mMyDatabaseHelper = new MyDatabaseHelper(AddNewDevices.this); + database = mMyDatabaseHelper.getWritableDatabase(); + ContentValues cv = new ContentValues(); + if (json.has(MyDatabaseHelper.COLUMN_ID)) + cv.put(MyDatabaseHelper.COLUMN_ID, json.getInt(MyDatabaseHelper.COLUMN_ID)); + if (json.has(MyDatabaseHelper.NAME)) + cv.put(MyDatabaseHelper.NAME, json.getString(MyDatabaseHelper.NAME)); + else + cv.put(MyDatabaseHelper.NAME, "Information Not Available"); + if (json.has(MyDatabaseHelper.VERSION)) + cv.put(MyDatabaseHelper.VERSION, json.getString(MyDatabaseHelper.VERSION)); + else + cv.put(MyDatabaseHelper.VERSION, "Information Not Available"); + if (json.has(MyDatabaseHelper.CODE_NAME)) + cv.put(MyDatabaseHelper.CODE_NAME, json.getString(MyDatabaseHelper.CODE_NAME)); + else + cv.put(MyDatabaseHelper.CODE_NAME, "Information Not Available"); + if (json.has(MyDatabaseHelper.TARGET)) + cv.put(MyDatabaseHelper.TARGET, json.getString(MyDatabaseHelper.TARGET)); + else + cv.put(MyDatabaseHelper.TARGET, "Information Not Available"); + if (json.has(MyDatabaseHelper.DISTRIBUTION)) + cv.put(MyDatabaseHelper.DISTRIBUTION, json.getString(MyDatabaseHelper.DISTRIBUTION)); + else + cv.put(MyDatabaseHelper.DISTRIBUTION, "Information Not Available"); + database.insert(MyDatabaseHelper.TABLE_DEVICES, null, cv); + progressBar.setVisibility(View.GONE); + Toast.makeText(this, "Device info added successfully!",Toast.LENGTH_SHORT).show(); + setResult(RESULT_OK); + finish(); + } catch (JSONException e) { + e.printStackTrace(); + } + } +} diff --git a/AndroidShowCaseApp/app/src/main/java/com/navneet/ListingActivity.java b/AndroidShowCaseApp/app/src/main/java/com/navneet/ListingActivity.java new file mode 100755 index 0000000..6f510ae --- /dev/null +++ b/AndroidShowCaseApp/app/src/main/java/com/navneet/ListingActivity.java @@ -0,0 +1,143 @@ +package com.navneet; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.ContentValues; +import android.content.DialogInterface; +import android.content.Intent; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.os.Bundle; +import android.support.v4.widget.SimpleCursorAdapter; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ListView; +import android.widget.ProgressBar; + +import com.network.NetworkClassHandler; +import com.network.NetworkInterface; + +import org.json.JSONArray; +import org.json.JSONException; + +import java.io.File; + + +public class ListingActivity extends Activity implements NetworkInterface, AdapterView.OnItemClickListener, View.OnClickListener{ + private ListView listView; + private ProgressBar progressBar; + private SQLiteDatabase database; + private final int SERVER_SYNC_REQUEST = 1; + private SimpleCursorAdapter mSimpleCursorAdapter; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_listing); + listView = (ListView) findViewById(R.id.listView); + progressBar = (ProgressBar) findViewById(R.id.progressBar); + View footer = View.inflate(this, R.layout.add_new, null); + footer.setOnClickListener(this); + listView.addFooterView(footer); + listView.setOnItemClickListener(this); + File databaseFile = getDatabasePath(MyDatabaseHelper.DATABASE_NAME); + if(!databaseFile.exists()){ + progressBar.setVisibility(View.VISIBLE); + new NetworkClassHandler().OnGetRequest(ListingActivity.this, SERVER_SYNC_REQUEST, "http://mobilesandboxdev.azurewebsites.net/android/"); + } else { + MyDatabaseHelper mMyDatabaseHelper = new MyDatabaseHelper(ListingActivity.this); + database = mMyDatabaseHelper.getWritableDatabase(); + Cursor cursor = database.rawQuery("SELECT _id, " + MyDatabaseHelper.NAME + " FROM " + MyDatabaseHelper.TABLE_DEVICES + "", null); + listView.setAdapter(mSimpleCursorAdapter = new SimpleCursorAdapter(ListingActivity.this, R.layout.row, cursor, new String[]{MyDatabaseHelper.NAME}, new int[]{R.id.textView}, 0)); + } + } + @Override + public void onClick(View v) { + startActivityForResult(new Intent(this, AddNewDevices.class), 10); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if(requestCode==10 && resultCode==RESULT_OK){ + Cursor cursor = database.rawQuery("SELECT _id," + MyDatabaseHelper.NAME + " FROM " + MyDatabaseHelper.TABLE_DEVICES + "", null); + mSimpleCursorAdapter.changeCursor(cursor); + mSimpleCursorAdapter.notifyDataSetChanged(); + } + } + + @Override + public void onResponse(final String response, final int requestCode) { + System.out.print(response); + runOnUiThread(new Runnable() { + @Override + public void run() { + switch (requestCode) { + case SERVER_SYNC_REQUEST: + try { + JSONArray json = new JSONArray(response); + MyDatabaseHelper mMyDatabaseHelper = new MyDatabaseHelper(ListingActivity.this); + database = mMyDatabaseHelper.getWritableDatabase(); + for (int i = 0; i < json.length(); i++) { + ContentValues cv = new ContentValues(); + if (json.getJSONObject(i).has(MyDatabaseHelper.COLUMN_ID)) + cv.put(MyDatabaseHelper.COLUMN_ID, json.getJSONObject(i).getInt(MyDatabaseHelper.COLUMN_ID)); + if (json.getJSONObject(i).has(MyDatabaseHelper.NAME)) + cv.put(MyDatabaseHelper.NAME, json.getJSONObject(i).getString(MyDatabaseHelper.NAME)); + else + cv.put(MyDatabaseHelper.NAME, "Information Not Available"); + if (json.getJSONObject(i).has(MyDatabaseHelper.VERSION)) + cv.put(MyDatabaseHelper.VERSION, json.getJSONObject(i).getString(MyDatabaseHelper.VERSION)); + else + cv.put(MyDatabaseHelper.VERSION, "Information Not Available"); + if (json.getJSONObject(i).has(MyDatabaseHelper.CODE_NAME)) + cv.put(MyDatabaseHelper.CODE_NAME, json.getJSONObject(i).getString(MyDatabaseHelper.CODE_NAME)); + else + cv.put(MyDatabaseHelper.CODE_NAME, "Information Not Available"); + if (json.getJSONObject(i).has(MyDatabaseHelper.TARGET)) + cv.put(MyDatabaseHelper.TARGET, json.getJSONObject(i).getString(MyDatabaseHelper.TARGET)); + else + cv.put(MyDatabaseHelper.TARGET, "Information Not Available"); + if (json.getJSONObject(i).has(MyDatabaseHelper.DISTRIBUTION)) + cv.put(MyDatabaseHelper.DISTRIBUTION, json.getJSONObject(i).getString(MyDatabaseHelper.DISTRIBUTION)); + else + cv.put(MyDatabaseHelper.DISTRIBUTION, "Information Not Available"); + database.insert(MyDatabaseHelper.TABLE_DEVICES, null, cv); + } + Cursor cursor = database.rawQuery("SELECT _id," + MyDatabaseHelper.NAME + " FROM " + MyDatabaseHelper.TABLE_DEVICES + "", null); + listView.setAdapter(mSimpleCursorAdapter = new SimpleCursorAdapter(ListingActivity.this, R.layout.row, cursor, new String[]{MyDatabaseHelper.NAME}, new int[]{R.id.textView}, 0)); + } catch (JSONException e) { + e.printStackTrace(); + } + progressBar.setVisibility(View.GONE); + break; + } + } + }); + } + + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + final Cursor c = database.rawQuery("SELECT * FROM " + MyDatabaseHelper.TABLE_DEVICES + " WHERE _id=" + id, null); + c.moveToFirst(); + new AlertDialog.Builder(ListingActivity.this) + .setTitle("Device Info:") + .setMessage("Serial No: " + c.getInt(c.getColumnIndexOrThrow("_id")) + + "\nDevice Name: " + c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.NAME)) + + "\nDevice Version: " + c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.VERSION)) + + "\nDevice Code: " + c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.CODE_NAME)) + + "\nDevice Target: " + c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.TARGET)) + + "\nDevice Distribution: " + c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.DISTRIBUTION))) + .setCancelable(true) + .setPositiveButton("ok", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + // Whatever... + } + }).create().show(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } +} diff --git a/AndroidShowCaseApp/app/src/main/java/com/navneet/MyDatabaseHelper.java b/AndroidShowCaseApp/app/src/main/java/com/navneet/MyDatabaseHelper.java new file mode 100755 index 0000000..72e4e60 --- /dev/null +++ b/AndroidShowCaseApp/app/src/main/java/com/navneet/MyDatabaseHelper.java @@ -0,0 +1,36 @@ +package com.navneet; + +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; + +/** + * Created by root on 1/8/16. + */ +public class MyDatabaseHelper extends SQLiteOpenHelper{ + private static final int DATABASE_VERSION = 1; + + public static final String DATABASE_NAME = "devicesDB.db"; + + public static final String TABLE_DEVICES = "devices"; + + public static final String COLUMN_ID = "id"; + public static final String NAME = "name"; + public static final String VERSION = "version"; + public static final String CODE_NAME = "codename"; + public static final String TARGET = "target"; + public static final String DISTRIBUTION = "distribution"; + + private static final String DATABASE_CREATE = "create table " + TABLE_DEVICES + "( _id INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_ID + " integer, " + NAME + " text, " + VERSION + " text, " + CODE_NAME + " text, " + TARGET + " text, " + DISTRIBUTION + " text);"; + public MyDatabaseHelper(Context context) { + super(context, DATABASE_NAME, null, DATABASE_VERSION); + } + @Override + public void onCreate(SQLiteDatabase db) { + db.execSQL(DATABASE_CREATE); + } + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + + } +} diff --git a/AndroidShowCaseApp/app/src/main/java/com/network/NetworkClassHandler.java b/AndroidShowCaseApp/app/src/main/java/com/network/NetworkClassHandler.java new file mode 100755 index 0000000..8b43846 --- /dev/null +++ b/AndroidShowCaseApp/app/src/main/java/com/network/NetworkClassHandler.java @@ -0,0 +1,75 @@ +package com.network; + +import android.content.Context; + +import com.squareup.okhttp.Callback; +import com.squareup.okhttp.FormEncodingBuilder; +import com.squareup.okhttp.MediaType; +import com.squareup.okhttp.OkHttpClient; +import com.squareup.okhttp.Request; +import com.squareup.okhttp.RequestBody; +import com.squareup.okhttp.Response; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * Created by user on 14/10/15. + */ +public final class NetworkClassHandler { + public void OnGetRequest(final NetworkInterface mInterface, final int requestCode, String url){ + Request profileRequest = new Request.Builder().url(url).get().build(); + OkHttpClient httpClient = new OkHttpClient(); + httpClient.newCall(profileRequest).enqueue(new Callback() { + @Override + public void onResponse(Response response) throws IOException { + if (!response.isSuccessful()) { + // handle error + } else { + mInterface.onResponse(response.body().string(), requestCode); + } + } + @Override + public void onFailure(Request request, IOException e) { + // handle error + } + }); + } + public void OnPostRequestWithParams(final NetworkInterface mInterface, final int requestCode, HashMap params, String url){ + MediaType JSON = MediaType.parse("application/json; charset=utf-8"); + JSONObject jsonBody = new JSONObject(); + try { + for(Map.Entry entry : params.entrySet()){ + if(entry.getValue() instanceof Integer){ + jsonBody.put(entry.getKey(), Integer.parseInt(entry.getValue().toString())); + } else if(entry.getValue() instanceof String) { + jsonBody.put(entry.getKey(), entry.getValue()); + } + } + } catch (JSONException e) { + e.printStackTrace(); + } + RequestBody body = RequestBody.create(JSON, jsonBody.toString()); + Request profileRequest = new Request.Builder().url(url).post(body).build(); + OkHttpClient httpClient = new OkHttpClient(); + httpClient.newCall(profileRequest).enqueue(new Callback() { + @Override + public void onResponse(Response response) throws IOException { + if (!response.isSuccessful()) { + // handle error + } else { + mInterface.onResponse(response.body().string(), requestCode); + } + } + @Override + public void onFailure(Request request, IOException e) { + // handle error + } + }); + } +} diff --git a/AndroidShowCaseApp/app/src/main/java/com/network/NetworkInterface.java b/AndroidShowCaseApp/app/src/main/java/com/network/NetworkInterface.java new file mode 100755 index 0000000..4bccb88 --- /dev/null +++ b/AndroidShowCaseApp/app/src/main/java/com/network/NetworkInterface.java @@ -0,0 +1,10 @@ +package com.network; + +import org.json.JSONObject; + +/** + * Created by user on 14/10/15. + */ +public interface NetworkInterface { + void onResponse(String response, int requestCode); +} diff --git a/AndroidShowCaseApp/app/src/main/res/drawable-hdpi/add_new.jpg b/AndroidShowCaseApp/app/src/main/res/drawable-hdpi/add_new.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f6ca7b2e9f9f4602f01e9b96eda323567c1150a0 GIT binary patch literal 5125 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 aVB|&jv5IajkM7Y0x + + + + + + diff --git a/AndroidShowCaseApp/app/src/main/res/layout/add_new.xml b/AndroidShowCaseApp/app/src/main/res/layout/add_new.xml new file mode 100644 index 0000000..5a0290e --- /dev/null +++ b/AndroidShowCaseApp/app/src/main/res/layout/add_new.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/AndroidShowCaseApp/app/src/main/res/layout/add_new_layout.xml b/AndroidShowCaseApp/app/src/main/res/layout/add_new_layout.xml new file mode 100644 index 0000000..2070fc9 --- /dev/null +++ b/AndroidShowCaseApp/app/src/main/res/layout/add_new_layout.xml @@ -0,0 +1,49 @@ + + + + + + + + + +