diff --git a/.gitignore b/.gitignore
index 649affc..bf86209 100644
--- a/.gitignore
+++ b/.gitignore
@@ -48,3 +48,5 @@ google-services.json
### Android Patch ###
gen-external-apklibs
+
+.idea
diff --git a/Assignment1&2/.gitignore b/Assignment1&2/.gitignore
new file mode 100644
index 0000000..649affc
--- /dev/null
+++ b/Assignment1&2/.gitignore
@@ -0,0 +1,50 @@
+### Android ###
+# Built application files
+*.apk
+*.ap_
+
+# Files for the ART/Dalvik VM
+*.dex
+
+# Java class files
+*.class
+
+# Generated files
+bin/
+gen/
+out/
+
+# Gradle files
+.gradle/
+build/
+
+# Local configuration file (sdk path, etc)
+local.properties
+
+# Proguard folder generated by Eclipse
+proguard/
+
+# Log Files
+*.log
+
+# Android Studio Navigation editor temp files
+.navigation/
+
+# Android Studio captures folder
+captures/
+
+# Intellij
+*.iml
+.idea/
+
+# Keystore files
+*.jks
+
+# External native build folder generated in Android Studio 2.2 and later
+.externalNativeBuild
+
+# Google Services (e.g. APIs or Firebase)
+google-services.json
+
+### Android Patch ###
+gen-external-apklibs
diff --git a/README.md b/Assignment1&2/README.md
similarity index 100%
rename from README.md
rename to Assignment1&2/README.md
diff --git a/app/.gitignore b/Assignment1&2/app/.gitignore
similarity index 100%
rename from app/.gitignore
rename to Assignment1&2/app/.gitignore
diff --git a/Assignment1&2/app/build.gradle b/Assignment1&2/app/build.gradle
new file mode 100644
index 0000000..5b26551
--- /dev/null
+++ b/Assignment1&2/app/build.gradle
@@ -0,0 +1,34 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 25
+ buildToolsVersion "25.0.2"
+ defaultConfig {
+ applicationId "com.sdsmdg.hareshkh.lectureassignment"
+ minSdkVersion 19
+ targetSdkVersion 25
+ versionCode 1
+ versionName "1.0"
+ testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ compile fileTree(dir: 'libs', include: ['*.jar'])
+ androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
+ exclude group: 'com.android.support', module: 'support-annotations'
+ })
+ compile 'com.android.support:appcompat-v7:24.2.1'
+ compile 'com.android.support:support-v4:24.2.1'
+ compile 'com.android.support:design:24.2.1'
+ compile 'com.android.support:cardview-v7:24.2.1'
+ compile 'com.android.support:recyclerview-v7:24.2.1'
+ compile 'com.sdsmdg.tastytoast:tastytoast:0.1.0'
+ testCompile 'junit:junit:4.12'
+}
diff --git a/app/proguard-rules.pro b/Assignment1&2/app/proguard-rules.pro
similarity index 100%
rename from app/proguard-rules.pro
rename to Assignment1&2/app/proguard-rules.pro
diff --git a/app/src/androidTest/java/com/sdsmdg/hareshkh/lectureassignment/ExampleInstrumentedTest.java b/Assignment1&2/app/src/androidTest/java/com/sdsmdg/hareshkh/lectureassignment/ExampleInstrumentedTest.java
similarity index 100%
rename from app/src/androidTest/java/com/sdsmdg/hareshkh/lectureassignment/ExampleInstrumentedTest.java
rename to Assignment1&2/app/src/androidTest/java/com/sdsmdg/hareshkh/lectureassignment/ExampleInstrumentedTest.java
diff --git a/Assignment1&2/app/src/main/AndroidManifest.xml b/Assignment1&2/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..0f67494
--- /dev/null
+++ b/Assignment1&2/app/src/main/AndroidManifest.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignment1&2/app/src/main/assets/OCRAEXT.TTF b/Assignment1&2/app/src/main/assets/OCRAEXT.TTF
new file mode 100644
index 0000000..0e77e20
Binary files /dev/null and b/Assignment1&2/app/src/main/assets/OCRAEXT.TTF differ
diff --git a/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/ArrayAdapter.java b/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/ArrayAdapter.java
new file mode 100644
index 0000000..dbbfcac
--- /dev/null
+++ b/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/ArrayAdapter.java
@@ -0,0 +1,82 @@
+package com.sdsmdg.hareshkh.lectureassignment.aniket;
+
+import android.content.Context;
+import android.support.v7.widget.CardView;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.sdsmdg.hareshkh.lectureassignment.R;
+import com.sdsmdg.tastytoast.TastyToast;
+
+import java.util.ArrayList;
+
+/**
+ * Created by DELL on 01-02-2017.
+ */
+
+public class ArrayAdapter extends RecyclerView.Adapter {
+ public Context context;
+
+ public ArrayList movies;
+
+ public ArrayAdapter(ArrayList movies) {
+ this.movies = movies;
+ }
+
+ @Override
+ public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(parent.getContext())
+ .inflate(R.layout.movie_item, parent, false);
+
+ return new MyViewHolder(itemView);
+ }
+
+ @Override
+ public void onBindViewHolder(MyViewHolder holder, final int position) {
+
+ holder.movie.setText(movies.get(position).getMoviename());
+ holder.year.setText(movies.get(position).getMovieyear());
+ holder.img.setImageResource(movies.get(position).getImageid());
+ holder.cd.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ TastyToast.makeText(context, movies.get(position).getMoviename(),
+ Toast.LENGTH_SHORT, TastyToast.SUCCESS);
+
+ }
+ });
+
+
+ }
+
+ @Override
+ public int getItemCount() {
+ return movies.size();
+ }
+
+ public class MyViewHolder extends RecyclerView.ViewHolder
+
+ {
+ public TextView movie;
+ public TextView year;
+ public ImageView img;
+ public CardView cd;
+
+ public MyViewHolder(View view) {
+ super(view);
+ context = view.getContext();
+ img = (ImageView) view.findViewById(R.id.im);
+ movie = (TextView) view.findViewById(R.id.t1);
+ year = (TextView) view.findViewById(R.id.t2);
+ cd = (CardView) view.findViewById(R.id.c1);
+
+ }
+
+
+ }
+}
diff --git a/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/CustomProgressBar.java b/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/CustomProgressBar.java
new file mode 100644
index 0000000..30c7b84
--- /dev/null
+++ b/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/CustomProgressBar.java
@@ -0,0 +1,35 @@
+package com.sdsmdg.hareshkh.lectureassignment.aniket;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.util.AttributeSet;
+import android.widget.ProgressBar;
+
+/**
+ * Created by DELL on 01-03-2017.
+ */
+
+public class CustomProgressBar extends ProgressBar {
+
+
+ public CustomProgressBar(Context context) {
+ super(context);
+ }
+
+ public CustomProgressBar(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public CustomProgressBar(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ public CustomProgressBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ @Override
+ protected synchronized void onDraw(Canvas canvas) {
+
+ }
+}
diff --git a/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/LayoutBehaviour.java b/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/LayoutBehaviour.java
new file mode 100644
index 0000000..941525f
--- /dev/null
+++ b/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/LayoutBehaviour.java
@@ -0,0 +1,42 @@
+package com.sdsmdg.hareshkh.lectureassignment.aniket;
+
+import android.content.Context;
+import android.support.design.widget.CoordinatorLayout;
+import android.support.design.widget.Snackbar;
+import android.support.v4.view.ViewCompat;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.SeekBar;
+
+/**
+ * Created by DELL on 25-02-2017.
+ */
+
+public class LayoutBehaviour extends CoordinatorLayout.Behavior {
+ public LayoutBehaviour() {
+ super();
+ }
+
+ public LayoutBehaviour(Context context, AttributeSet attributeSet) {
+ super(context, attributeSet);
+ }
+
+ @Override
+ public boolean onDependentViewChanged(CoordinatorLayout parent, RelativeLayout child, View dependency) {
+ float translationY = Math.min(0, ViewCompat.getTranslationY(dependency) - dependency.getHeight());
+ ViewCompat.setTranslationY(child, translationY);
+ return true;
+ }
+
+ @Override
+ public void onDependentViewRemoved(CoordinatorLayout parent, RelativeLayout child, View dependency) {
+ ViewCompat.animate(child).translationY(0).start();
+ }
+
+ @Override
+ public boolean layoutDependsOn(CoordinatorLayout parent, RelativeLayout child, View dependency) {
+ return dependency instanceof Snackbar.SnackbarLayout;
+ }
+}
diff --git a/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/MainActivity.java b/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/MainActivity.java
new file mode 100644
index 0000000..b2afcf8
--- /dev/null
+++ b/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/MainActivity.java
@@ -0,0 +1,47 @@
+package com.sdsmdg.hareshkh.lectureassignment.aniket;
+
+import android.content.Intent;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.Button;
+
+import com.sdsmdg.hareshkh.lectureassignment.R;
+
+import java.util.ArrayList;
+
+public class MainActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ ArrayList mov = new ArrayList<>();
+ mov.add(new MovieItems("Resident Evil Final Chapter", "Feb 3 2017", R.drawable.m1));
+ mov.add(new MovieItems("Assassin's Creed", "Dec 30 2016", R.drawable.asscreed));
+ mov.add(new MovieItems("Bye Bye Man", "Jan 20 2017", R.drawable.byebyeman));
+ mov.add(new MovieItems("Moana", "Dec 2 2016", R.drawable.moana));
+ mov.add(new MovieItems("Passengers", "Jan 6 2017", R.drawable.passengers));
+ mov.add(new MovieItems("The Great Wall", "Feb 3 2017", R.drawable.thegreatwall));
+ mov.add(new MovieItems("XXX : The Return of Xander Cage", "Jan 14 2017", R.drawable.xxxretofxandercage));
+ mov.add(new MovieItems("Arrival", "Feb 3 2017", R.drawable.arrival));
+ ArrayAdapter adapter = new ArrayAdapter(mov);
+ RecyclerView recylView = (RecyclerView) findViewById(R.id.recyl);
+ LinearLayoutManager horizontalLayoutManagaer
+ = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
+ recylView.setLayoutManager(horizontalLayoutManagaer);
+ recylView.setAdapter(adapter);
+ Button asgn = (Button) findViewById(R.id.asgn2);
+ asgn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent i = new Intent(MainActivity.this, SeekBarActivity.class);
+ startActivity(i);
+
+ }
+ });
+ }
+}
diff --git a/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/MovieItems.java b/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/MovieItems.java
new file mode 100644
index 0000000..4f261bc
--- /dev/null
+++ b/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/MovieItems.java
@@ -0,0 +1,43 @@
+package com.sdsmdg.hareshkh.lectureassignment.aniket;
+
+/**
+ * Created by DELL on 01-02-2017.
+ */
+
+public class MovieItems {
+ public String moviename;
+ public String movieyear;
+ public int imageid;
+
+ public MovieItems(String moviename, String movieyear, int imageid) {
+ this.moviename = moviename;
+ this.movieyear = movieyear;
+ this.imageid = imageid;
+
+
+ }
+
+ public String getMoviename() {
+ return moviename;
+ }
+
+ public void setMoviename(String moviename) {
+ this.moviename = moviename;
+ }
+
+ public String getMovieyear() {
+ return movieyear;
+ }
+
+ public void setMovieyear(String movieyear) {
+ this.movieyear = movieyear;
+ }
+
+ public int getImageid() {
+ return imageid;
+ }
+
+ public void setImageid(int imageid) {
+ this.imageid = imageid;
+ }
+}
diff --git a/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/SeekBarActivity.java b/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/SeekBarActivity.java
new file mode 100644
index 0000000..d179622
--- /dev/null
+++ b/Assignment1&2/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/aniket/SeekBarActivity.java
@@ -0,0 +1,46 @@
+package com.sdsmdg.hareshkh.lectureassignment.aniket;
+
+import android.graphics.Canvas;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.design.widget.CoordinatorLayout;
+import android.support.design.widget.Snackbar;
+import android.support.v7.app.AppCompatActivity;
+import android.widget.ProgressBar;
+import android.widget.SeekBar;
+
+import com.sdsmdg.hareshkh.lectureassignment.R;
+
+/**
+ * Created by DELL on 25-02-2017.
+ */
+
+public class SeekBarActivity extends AppCompatActivity {
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.seek_bar);
+ final ProgressBar progress = (ProgressBar) findViewById(R.id.progressBar);
+ progress.setProgress(0);
+ final CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorLayout);
+ SeekBar seek = (SeekBar) findViewById(R.id.seekBar);
+ seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
+ progress.setProgress(i);
+ }
+
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {
+
+ }
+
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {
+ Snackbar snackbar = Snackbar
+ .make(coordinatorLayout, "Hello!!", Snackbar.LENGTH_SHORT);
+ snackbar.show();
+ }
+ });
+ }
+}
diff --git a/Assignment1&2/app/src/main/res/drawable/arrival.jpg b/Assignment1&2/app/src/main/res/drawable/arrival.jpg
new file mode 100644
index 0000000..57f591f
Binary files /dev/null and b/Assignment1&2/app/src/main/res/drawable/arrival.jpg differ
diff --git a/Assignment1&2/app/src/main/res/drawable/asscreed.jpg b/Assignment1&2/app/src/main/res/drawable/asscreed.jpg
new file mode 100644
index 0000000..1bc53be
Binary files /dev/null and b/Assignment1&2/app/src/main/res/drawable/asscreed.jpg differ
diff --git a/Assignment1&2/app/src/main/res/drawable/byebyeman.jpg b/Assignment1&2/app/src/main/res/drawable/byebyeman.jpg
new file mode 100644
index 0000000..76c5d10
Binary files /dev/null and b/Assignment1&2/app/src/main/res/drawable/byebyeman.jpg differ
diff --git a/Assignment1&2/app/src/main/res/drawable/custom_progress_bar_horizontal.xml b/Assignment1&2/app/src/main/res/drawable/custom_progress_bar_horizontal.xml
new file mode 100644
index 0000000..c8a24d1
--- /dev/null
+++ b/Assignment1&2/app/src/main/res/drawable/custom_progress_bar_horizontal.xml
@@ -0,0 +1,28 @@
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignment1&2/app/src/main/res/drawable/m1.jpg b/Assignment1&2/app/src/main/res/drawable/m1.jpg
new file mode 100644
index 0000000..3bed406
Binary files /dev/null and b/Assignment1&2/app/src/main/res/drawable/m1.jpg differ
diff --git a/Assignment1&2/app/src/main/res/drawable/moana.jpg b/Assignment1&2/app/src/main/res/drawable/moana.jpg
new file mode 100644
index 0000000..8f7ff92
Binary files /dev/null and b/Assignment1&2/app/src/main/res/drawable/moana.jpg differ
diff --git a/Assignment1&2/app/src/main/res/drawable/passengers.jpg b/Assignment1&2/app/src/main/res/drawable/passengers.jpg
new file mode 100644
index 0000000..8c3fd0b
Binary files /dev/null and b/Assignment1&2/app/src/main/res/drawable/passengers.jpg differ
diff --git a/Assignment1&2/app/src/main/res/drawable/thegreatwall.jpg b/Assignment1&2/app/src/main/res/drawable/thegreatwall.jpg
new file mode 100644
index 0000000..700a81e
Binary files /dev/null and b/Assignment1&2/app/src/main/res/drawable/thegreatwall.jpg differ
diff --git a/Assignment1&2/app/src/main/res/drawable/xxxretofxandercage.jpg b/Assignment1&2/app/src/main/res/drawable/xxxretofxandercage.jpg
new file mode 100644
index 0000000..34a1b37
Binary files /dev/null and b/Assignment1&2/app/src/main/res/drawable/xxxretofxandercage.jpg differ
diff --git a/Assignment1&2/app/src/main/res/layout/activity_main.xml b/Assignment1&2/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..830080d
--- /dev/null
+++ b/Assignment1&2/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assignment1&2/app/src/main/res/layout/movie_item.xml b/Assignment1&2/app/src/main/res/layout/movie_item.xml
new file mode 100644
index 0000000..7355182
--- /dev/null
+++ b/Assignment1&2/app/src/main/res/layout/movie_item.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assignment1&2/app/src/main/res/layout/seek_bar.xml b/Assignment1&2/app/src/main/res/layout/seek_bar.xml
new file mode 100644
index 0000000..9893c81
--- /dev/null
+++ b/Assignment1&2/app/src/main/res/layout/seek_bar.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/Assignment1&2/app/src/main/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-hdpi/ic_launcher.png
rename to Assignment1&2/app/src/main/res/mipmap-hdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/Assignment1&2/app/src/main/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-mdpi/ic_launcher.png
rename to Assignment1&2/app/src/main/res/mipmap-mdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/Assignment1&2/app/src/main/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-xhdpi/ic_launcher.png
rename to Assignment1&2/app/src/main/res/mipmap-xhdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/Assignment1&2/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-xxhdpi/ic_launcher.png
rename to Assignment1&2/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/Assignment1&2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
rename to Assignment1&2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/app/src/main/res/values-w820dp/dimens.xml b/Assignment1&2/app/src/main/res/values-w820dp/dimens.xml
similarity index 100%
rename from app/src/main/res/values-w820dp/dimens.xml
rename to Assignment1&2/app/src/main/res/values-w820dp/dimens.xml
diff --git a/Assignment1&2/app/src/main/res/values/colors.xml b/Assignment1&2/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..7bf64fc
--- /dev/null
+++ b/Assignment1&2/app/src/main/res/values/colors.xml
@@ -0,0 +1,7 @@
+
+
+ #3F51B5
+ #303F9F
+ #FFAB00
+ #FFFFFF
+
diff --git a/app/src/main/res/values/dimens.xml b/Assignment1&2/app/src/main/res/values/dimens.xml
similarity index 100%
rename from app/src/main/res/values/dimens.xml
rename to Assignment1&2/app/src/main/res/values/dimens.xml
diff --git a/app/src/main/res/values/strings.xml b/Assignment1&2/app/src/main/res/values/strings.xml
similarity index 100%
rename from app/src/main/res/values/strings.xml
rename to Assignment1&2/app/src/main/res/values/strings.xml
diff --git a/Assignment1&2/app/src/main/res/values/styles.xml b/Assignment1&2/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..cb6a888
--- /dev/null
+++ b/Assignment1&2/app/src/main/res/values/styles.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/test/java/com/sdsmdg/hareshkh/lectureassignment/ExampleUnitTest.java b/Assignment1&2/app/src/test/java/com/sdsmdg/hareshkh/lectureassignment/ExampleUnitTest.java
similarity index 100%
rename from app/src/test/java/com/sdsmdg/hareshkh/lectureassignment/ExampleUnitTest.java
rename to Assignment1&2/app/src/test/java/com/sdsmdg/hareshkh/lectureassignment/ExampleUnitTest.java
diff --git a/build.gradle b/Assignment1&2/build.gradle
similarity index 100%
rename from build.gradle
rename to Assignment1&2/build.gradle
diff --git a/gradle.properties b/Assignment1&2/gradle.properties
similarity index 100%
rename from gradle.properties
rename to Assignment1&2/gradle.properties
diff --git a/gradle/wrapper/gradle-wrapper.jar b/Assignment1&2/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from gradle/wrapper/gradle-wrapper.jar
rename to Assignment1&2/gradle/wrapper/gradle-wrapper.jar
diff --git a/gradle/wrapper/gradle-wrapper.properties b/Assignment1&2/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from gradle/wrapper/gradle-wrapper.properties
rename to Assignment1&2/gradle/wrapper/gradle-wrapper.properties
diff --git a/gradlew b/Assignment1&2/gradlew
old mode 100755
new mode 100644
similarity index 100%
rename from gradlew
rename to Assignment1&2/gradlew
diff --git a/Assignment1&2/gradlew.bat b/Assignment1&2/gradlew.bat
new file mode 100644
index 0000000..8a0b282
--- /dev/null
+++ b/Assignment1&2/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/settings.gradle b/Assignment1&2/settings.gradle
similarity index 100%
rename from settings.gradle
rename to Assignment1&2/settings.gradle
diff --git a/NDKAssignment/.gitignore b/NDKAssignment/.gitignore
new file mode 100644
index 0000000..39fb081
--- /dev/null
+++ b/NDKAssignment/.gitignore
@@ -0,0 +1,9 @@
+*.iml
+.gradle
+/local.properties
+/.idea/workspace.xml
+/.idea/libraries
+.DS_Store
+/build
+/captures
+.externalNativeBuild
diff --git a/NDKAssignment/.idea/compiler.xml b/NDKAssignment/.idea/compiler.xml
new file mode 100644
index 0000000..96cc43e
--- /dev/null
+++ b/NDKAssignment/.idea/compiler.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NDKAssignment/.idea/copyright/profiles_settings.xml b/NDKAssignment/.idea/copyright/profiles_settings.xml
new file mode 100644
index 0000000..e7bedf3
--- /dev/null
+++ b/NDKAssignment/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/NDKAssignment/.idea/gradle.xml b/NDKAssignment/.idea/gradle.xml
new file mode 100644
index 0000000..7ac24c7
--- /dev/null
+++ b/NDKAssignment/.idea/gradle.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NDKAssignment/.idea/misc.xml b/NDKAssignment/.idea/misc.xml
new file mode 100644
index 0000000..7158618
--- /dev/null
+++ b/NDKAssignment/.idea/misc.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NDKAssignment/.idea/modules.xml b/NDKAssignment/.idea/modules.xml
new file mode 100644
index 0000000..d254d02
--- /dev/null
+++ b/NDKAssignment/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NDKAssignment/.idea/runConfigurations.xml b/NDKAssignment/.idea/runConfigurations.xml
new file mode 100644
index 0000000..7f68460
--- /dev/null
+++ b/NDKAssignment/.idea/runConfigurations.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NDKAssignment/app/.gitignore b/NDKAssignment/app/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/NDKAssignment/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/NDKAssignment/app/CMakeLists.txt b/NDKAssignment/app/CMakeLists.txt
new file mode 100644
index 0000000..b907c36
--- /dev/null
+++ b/NDKAssignment/app/CMakeLists.txt
@@ -0,0 +1,35 @@
+# For more information about using CMake with Android Studio, read the
+# documentation: https://d.android.com/studio/projects/add-native-code.html
+
+# Sets the minimum version of CMake required to build the native library.
+
+cmake_minimum_required(VERSION 3.4.1)
+
+# Creates and names a library, sets it as either STATIC
+# or SHARED, and provides the relative paths to its source code.
+# You can define multiple libraries, and CMake builds them for you.
+# Gradle automatically packages shared libraries with your APK.
+
+add_library( # Sets the name of the library.
+ MidPoint
+
+ # Sets the library as a shared library.
+ SHARED
+
+ # Provides a relative path to your source file(s).
+ src/main/cpp/MidPoint.cpp )
+
+# Searches for a specified prebuilt library and stores the path as a
+# variable. Because CMake includes system libraries in the search path by
+# default, you only need to specify the name of the public NDK library
+# you want to add. CMake verifies that the library exists before
+# completing its build.
+
+find_library( # Sets the name of the path variable.
+ log-lib
+
+ # Specifies the name of the NDK library that
+ # you want CMake to locate.
+ log )
+
+include_directories(src/main/cpp/)
diff --git a/NDKAssignment/app/build.gradle b/NDKAssignment/app/build.gradle
new file mode 100644
index 0000000..d5e060e
--- /dev/null
+++ b/NDKAssignment/app/build.gradle
@@ -0,0 +1,40 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 26
+ buildToolsVersion "26.0.1"
+ defaultConfig {
+ applicationId "com.example.whocares.ndkassignment"
+ minSdkVersion 16
+ targetSdkVersion 26
+ versionCode 1
+ versionName "1.0"
+ testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ externalNativeBuild {
+ cmake {
+ cppFlags ""
+ }
+ }
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+ externalNativeBuild {
+ cmake {
+ path "CMakeLists.txt"
+ }
+ }
+}
+
+dependencies {
+ compile fileTree(dir: 'libs', include: ['*.jar'])
+ androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
+ exclude group: 'com.android.support', module: 'support-annotations'
+ })
+ compile 'com.android.support:appcompat-v7:26.+'
+ compile 'com.android.support.constraint:constraint-layout:1.0.2'
+ testCompile 'junit:junit:4.12'
+}
diff --git a/NDKAssignment/app/proguard-rules.pro b/NDKAssignment/app/proguard-rules.pro
new file mode 100644
index 0000000..2a0e9a5
--- /dev/null
+++ b/NDKAssignment/app/proguard-rules.pro
@@ -0,0 +1,25 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /home/whocares/Android/Sdk/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 *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/NDKAssignment/app/src/androidTest/java/com/example/whocares/ndkassignment/ExampleInstrumentedTest.java b/NDKAssignment/app/src/androidTest/java/com/example/whocares/ndkassignment/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..5111e3b
--- /dev/null
+++ b/NDKAssignment/app/src/androidTest/java/com/example/whocares/ndkassignment/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.example.whocares.ndkassignment;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumentation test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() throws Exception {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getTargetContext();
+
+ assertEquals("com.example.whocares.ndkassignment", appContext.getPackageName());
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/NDKAssignment/app/src/main/AndroidManifest.xml
similarity index 85%
rename from app/src/main/AndroidManifest.xml
rename to NDKAssignment/app/src/main/AndroidManifest.xml
index 4bb1fd6..ebfd914 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/NDKAssignment/app/src/main/AndroidManifest.xml
@@ -1,11 +1,12 @@
+ package="com.example.whocares.ndkassignment">
diff --git a/NDKAssignment/app/src/main/cpp/MidPoint.cpp b/NDKAssignment/app/src/main/cpp/MidPoint.cpp
new file mode 100644
index 0000000..eb0b02f
--- /dev/null
+++ b/NDKAssignment/app/src/main/cpp/MidPoint.cpp
@@ -0,0 +1,34 @@
+//
+// Created by whocares on 25/9/17.
+//
+#include
+#include
+
+int getMidPoint(int a, int b) {
+ return (a + b) / 2;
+}
+
+extern "C"
+JNIEXPORT jobject JNICALL
+
+Java_com_example_whocares_ndkassignment_MainActivity_getMidPoint(
+ JNIEnv *env,
+ jobject callingMethod,
+ jobject p1,
+ jobject p2
+) {
+ jclass objectClass = env->GetObjectClass(p1);
+ jmethodID xmethodId = env->GetMethodID(objectClass, "getX", "()I");
+ jfieldID yfieldId = env->GetFieldID(objectClass, "y", "I");
+ int x1 = env->CallIntMethod(p1, xmethodId);
+ int x2 = env->CallIntMethod(p2, xmethodId);
+
+ int y1 = env->GetIntField(p1, yfieldId);
+ int y2 = env->GetIntField(p2, yfieldId);
+
+ jmethodID constructorMethodId = env->GetMethodID(objectClass, "", "(II)V");
+
+ return env->NewObject(objectClass, constructorMethodId, getMidPoint(x1, x2),
+ getMidPoint(y1, y2));
+}
+
diff --git a/NDKAssignment/app/src/main/cpp/MidPoint.h b/NDKAssignment/app/src/main/cpp/MidPoint.h
new file mode 100644
index 0000000..3ff83ff
--- /dev/null
+++ b/NDKAssignment/app/src/main/cpp/MidPoint.h
@@ -0,0 +1,8 @@
+//
+// Created by whocares on 25/9/17.
+//
+
+#ifndef NDKASSIGNMENT_MIDPOINT_H
+#define NDKASSIGNMENT_MIDPOINT_H
+
+#endif //NDKASSIGNMENT_MIDPOINT_H
diff --git a/NDKAssignment/app/src/main/cpp/native-lib.cpp b/NDKAssignment/app/src/main/cpp/native-lib.cpp
new file mode 100644
index 0000000..6a96710
--- /dev/null
+++ b/NDKAssignment/app/src/main/cpp/native-lib.cpp
@@ -0,0 +1,11 @@
+#include
+#include
+
+extern "C"
+JNIEXPORT jstring JNICALL
+Java_com_example_whocares_ndkassignment_MainActivity_stringFromJNI(
+ JNIEnv *env,
+ jobject /* this */) {
+ std::string hello = "Hello from C++";
+ return env->NewStringUTF(hello.c_str());
+}
diff --git a/NDKAssignment/app/src/main/java/com/example/whocares/ndkassignment/MainActivity.java b/NDKAssignment/app/src/main/java/com/example/whocares/ndkassignment/MainActivity.java
new file mode 100644
index 0000000..064e7d6
--- /dev/null
+++ b/NDKAssignment/app/src/main/java/com/example/whocares/ndkassignment/MainActivity.java
@@ -0,0 +1,33 @@
+package com.example.whocares.ndkassignment;
+
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.util.Log;
+import android.widget.TextView;
+
+public class MainActivity extends AppCompatActivity {
+
+ // Used to load the 'native-lib' library on application startup.
+ static {
+ System.loadLibrary("MidPoint");
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ Point p1 = new Point(100, 200);
+ Point p2 = new Point(50, 100);
+ Point midPoint = getMidPoint(p1, p2);
+
+ Log.v("Midpoint", "The x coordinate of midpoint is" + midPoint.getX());
+ Log.v("Midpoint", "The y coordinate of midpoint is" + midPoint.y);
+
+ }
+
+ /**
+ * A native method that is implemented by the 'native-lib' native library,
+ * which is packaged with this application.
+ */
+ public native Point getMidPoint(Point p1, Point p2);
+}
diff --git a/NDKAssignment/app/src/main/java/com/example/whocares/ndkassignment/Point.java b/NDKAssignment/app/src/main/java/com/example/whocares/ndkassignment/Point.java
new file mode 100644
index 0000000..e784944
--- /dev/null
+++ b/NDKAssignment/app/src/main/java/com/example/whocares/ndkassignment/Point.java
@@ -0,0 +1,23 @@
+package com.example.whocares.ndkassignment;
+
+/**
+ * Created by whocares on 25/9/17.
+ */
+
+public class Point {
+ private int x;
+ public int y;
+
+ public int getX() {
+ return x;
+ }
+
+ public void setX(int x) {
+ this.x = x;
+ }
+
+ public Point(int x, int y) {
+ this.x = x;
+ this.y = y;
+ }
+}
diff --git a/NDKAssignment/app/src/main/res/layout/activity_main.xml b/NDKAssignment/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..faa2559
--- /dev/null
+++ b/NDKAssignment/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git a/NDKAssignment/app/src/main/res/mipmap-hdpi/ic_launcher.png b/NDKAssignment/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..cde69bc
Binary files /dev/null and b/NDKAssignment/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/NDKAssignment/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/NDKAssignment/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..9a078e3
Binary files /dev/null and b/NDKAssignment/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/NDKAssignment/app/src/main/res/mipmap-mdpi/ic_launcher.png b/NDKAssignment/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..c133a0c
Binary files /dev/null and b/NDKAssignment/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/NDKAssignment/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/NDKAssignment/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..efc028a
Binary files /dev/null and b/NDKAssignment/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/NDKAssignment/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/NDKAssignment/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..bfa42f0
Binary files /dev/null and b/NDKAssignment/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/NDKAssignment/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/NDKAssignment/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..3af2608
Binary files /dev/null and b/NDKAssignment/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/NDKAssignment/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/NDKAssignment/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..324e72c
Binary files /dev/null and b/NDKAssignment/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/NDKAssignment/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/NDKAssignment/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..9bec2e6
Binary files /dev/null and b/NDKAssignment/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/NDKAssignment/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/NDKAssignment/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..aee44e1
Binary files /dev/null and b/NDKAssignment/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/NDKAssignment/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/NDKAssignment/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..34947cd
Binary files /dev/null and b/NDKAssignment/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/values/colors.xml b/NDKAssignment/app/src/main/res/values/colors.xml
similarity index 100%
rename from app/src/main/res/values/colors.xml
rename to NDKAssignment/app/src/main/res/values/colors.xml
diff --git a/NDKAssignment/app/src/main/res/values/strings.xml b/NDKAssignment/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..edbbf7e
--- /dev/null
+++ b/NDKAssignment/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ NDKAssignment
+
diff --git a/app/src/main/res/values/styles.xml b/NDKAssignment/app/src/main/res/values/styles.xml
similarity index 100%
rename from app/src/main/res/values/styles.xml
rename to NDKAssignment/app/src/main/res/values/styles.xml
diff --git a/NDKAssignment/app/src/test/java/com/example/whocares/ndkassignment/ExampleUnitTest.java b/NDKAssignment/app/src/test/java/com/example/whocares/ndkassignment/ExampleUnitTest.java
new file mode 100644
index 0000000..9c52056
--- /dev/null
+++ b/NDKAssignment/app/src/test/java/com/example/whocares/ndkassignment/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.example.whocares.ndkassignment;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() throws Exception {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/NDKAssignment/build.gradle b/NDKAssignment/build.gradle
new file mode 100644
index 0000000..c2eea8e
--- /dev/null
+++ b/NDKAssignment/build.gradle
@@ -0,0 +1,23 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ jcenter()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:2.3.3'
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ jcenter()
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/NDKAssignment/gradle.properties b/NDKAssignment/gradle.properties
new file mode 100644
index 0000000..aac7c9b
--- /dev/null
+++ b/NDKAssignment/gradle.properties
@@ -0,0 +1,17 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx1536m
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
diff --git a/NDKAssignment/gradle/wrapper/gradle-wrapper.jar b/NDKAssignment/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..13372ae
Binary files /dev/null and b/NDKAssignment/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/NDKAssignment/gradle/wrapper/gradle-wrapper.properties b/NDKAssignment/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..7251bd3
--- /dev/null
+++ b/NDKAssignment/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Sep 25 00:20:01 IST 2017
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
diff --git a/NDKAssignment/gradlew b/NDKAssignment/gradlew
new file mode 100755
index 0000000..9d82f78
--- /dev/null
+++ b/NDKAssignment/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/NDKAssignment/gradlew.bat
similarity index 100%
rename from gradlew.bat
rename to NDKAssignment/gradlew.bat
diff --git a/NDKAssignment/settings.gradle b/NDKAssignment/settings.gradle
new file mode 100644
index 0000000..e7b4def
--- /dev/null
+++ b/NDKAssignment/settings.gradle
@@ -0,0 +1 @@
+include ':app'
diff --git a/RXJavaAssignment/.gitignore b/RXJavaAssignment/.gitignore
new file mode 100644
index 0000000..39fb081
--- /dev/null
+++ b/RXJavaAssignment/.gitignore
@@ -0,0 +1,9 @@
+*.iml
+.gradle
+/local.properties
+/.idea/workspace.xml
+/.idea/libraries
+.DS_Store
+/build
+/captures
+.externalNativeBuild
diff --git a/RXJavaAssignment/app/.gitignore b/RXJavaAssignment/app/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/RXJavaAssignment/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/RXJavaAssignment/app/build.gradle b/RXJavaAssignment/app/build.gradle
new file mode 100644
index 0000000..c352724
--- /dev/null
+++ b/RXJavaAssignment/app/build.gradle
@@ -0,0 +1,38 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 26
+ buildToolsVersion "26.0.1"
+ defaultConfig {
+ applicationId "com.example.whocares.rxjavaassignment"
+ minSdkVersion 19
+ targetSdkVersion 26
+ versionCode 1
+ versionName "1.0"
+ testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ compile fileTree(dir: 'libs', include: ['*.jar'])
+ androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
+ exclude group: 'com.android.support', module: 'support-annotations'
+ })
+ compile 'com.android.support:appcompat-v7:26.+'
+ compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
+ compile 'io.reactivex.rxjava2:rxjava:2.1.5'
+ compile 'com.google.code.gson:gson:2.7'
+ compile 'com.squareup.retrofit2:retrofit:2.3.0'
+ compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
+ compile 'com.squareup.retrofit2:converter-gson:2.0.0'
+ compile 'com.android.support.constraint:constraint-layout:1.0.2'
+ compile 'com.squareup.picasso:picasso:2.5.2'
+
+ testCompile 'junit:junit:4.12'
+}
diff --git a/RXJavaAssignment/app/proguard-rules.pro b/RXJavaAssignment/app/proguard-rules.pro
new file mode 100644
index 0000000..2a0e9a5
--- /dev/null
+++ b/RXJavaAssignment/app/proguard-rules.pro
@@ -0,0 +1,25 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /home/whocares/Android/Sdk/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 *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/RXJavaAssignment/app/src/androidTest/java/com/example/whocares/rxjavaassignment/ExampleInstrumentedTest.java b/RXJavaAssignment/app/src/androidTest/java/com/example/whocares/rxjavaassignment/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..4b058d4
--- /dev/null
+++ b/RXJavaAssignment/app/src/androidTest/java/com/example/whocares/rxjavaassignment/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.example.whocares.rxjavaassignment;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumentation test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() throws Exception {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getTargetContext();
+
+ assertEquals("com.example.whocares.rxjavaassignment", appContext.getPackageName());
+ }
+}
diff --git a/RXJavaAssignment/app/src/main/AndroidManifest.xml b/RXJavaAssignment/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..b677098
--- /dev/null
+++ b/RXJavaAssignment/app/src/main/AndroidManifest.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RXJavaAssignment/app/src/main/java/com/example/whocares/rxjavaassignment/Interfaces/GithubAPI.java b/RXJavaAssignment/app/src/main/java/com/example/whocares/rxjavaassignment/Interfaces/GithubAPI.java
new file mode 100644
index 0000000..bd5240b
--- /dev/null
+++ b/RXJavaAssignment/app/src/main/java/com/example/whocares/rxjavaassignment/Interfaces/GithubAPI.java
@@ -0,0 +1,16 @@
+package com.example.whocares.rxjavaassignment.Interfaces;
+
+import com.example.whocares.rxjavaassignment.Models.UserModel;
+
+import io.reactivex.Observable;
+import retrofit2.http.GET;
+import retrofit2.http.Path;
+
+/**
+ * Created by whocares on 17/10/17.
+ */
+
+public interface GithubAPI {
+@GET("users/{username}")
+Observable getUser(@Path("username") String username);
+}
diff --git a/RXJavaAssignment/app/src/main/java/com/example/whocares/rxjavaassignment/MainActivity.java b/RXJavaAssignment/app/src/main/java/com/example/whocares/rxjavaassignment/MainActivity.java
new file mode 100644
index 0000000..69e646a
--- /dev/null
+++ b/RXJavaAssignment/app/src/main/java/com/example/whocares/rxjavaassignment/MainActivity.java
@@ -0,0 +1,151 @@
+package com.example.whocares.rxjavaassignment;
+
+import android.support.constraint.ConstraintLayout;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+import com.example.whocares.rxjavaassignment.Interfaces.GithubAPI;
+import com.example.whocares.rxjavaassignment.Models.UserModel;
+import com.jakewharton.retrofit2.adapter.rxjava2.HttpException;
+import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
+import com.squareup.picasso.Callback;
+import com.squareup.picasso.Picasso;
+import java.io.IOException;
+import io.reactivex.Observable;
+import io.reactivex.ObservableEmitter;
+import io.reactivex.ObservableOnSubscribe;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.annotations.NonNull;
+import io.reactivex.functions.Consumer;
+import io.reactivex.functions.Function;
+import io.reactivex.schedulers.Schedulers;
+import retrofit2.Retrofit;
+import retrofit2.converter.gson.GsonConverterFactory;
+
+public class MainActivity extends AppCompatActivity {
+ private EditText githubUsername;
+ private ImageView searchForUser, profilePic;
+ private TextView mName, mLocation, mEmail, mBio, publicRepos, publicGists, mFollowers, mFollowing, errorText;
+ private ConstraintLayout userInfo;
+ private ProgressBar mProgress;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ initViews();
+
+ Observable observableForUsername = Observable.create(new ObservableOnSubscribe() {
+ @Override
+ public void subscribe(@NonNull final ObservableEmitter e) throws Exception {
+ searchForUser.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ e.onNext(githubUsername.getText().toString());
+ errorText.setText("");
+ }
+ });
+ }
+ });
+
+ observableForUsername
+ .observeOn(AndroidSchedulers.mainThread())
+ .doOnNext(new Consumer() {
+ @Override
+ public void accept(String s) throws Exception {
+ mProgress.setVisibility(View.VISIBLE);
+ userInfo.setVisibility(View.GONE);
+ }
+ })
+ .observeOn(Schedulers.io())
+ .map(new Function>() {
+
+ @Override
+ public Observable apply(@NonNull String s) throws Exception {
+ Retrofit retrofitInstance = new Retrofit.Builder()
+ .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
+ .addConverterFactory(GsonConverterFactory.create())
+ .baseUrl("https://api.github.com/")
+ .build();
+
+ final GithubAPI apiInstance = retrofitInstance.create(GithubAPI.class);
+ return apiInstance.getUser(s);
+ }
+ })
+ .observeOn(Schedulers.io())
+ .subscribe(new Consumer>() {
+ @Override
+ public void accept(Observable userModelObservable) throws Exception {
+ displayResults(userModelObservable);
+ }
+ });
+ }
+
+ private void displayResults(Observable userModelObservable) {
+ userModelObservable.observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Consumer() {
+ @Override
+ public void accept(UserModel userModel) throws Exception {
+ mName.setText(userModel.getName());
+ mLocation.setText(userModel.getLocation());
+ mEmail.setText(userModel.getEmail());
+ mBio.setText(userModel.getBio());
+ publicRepos.setText(userModel.getPublic_repos());
+ publicGists.setText(userModel.getPublic_gists());
+ mFollowers.setText(userModel.getFollowers());
+ mFollowing.setText(userModel.getFollowing());
+ Picasso.with(MainActivity.this)
+ .load(userModel.getAvatar_url())
+ .placeholder(getResources().getDrawable(R.drawable.thug))
+ .into(profilePic, new Callback() {
+ @Override
+ public void onSuccess() {
+ mProgress.setVisibility(View.GONE);
+ userInfo.setVisibility(View.VISIBLE);
+ }
+
+ @Override
+ public void onError() {
+
+ }
+ });
+
+ }
+ }, new Consumer() {
+ @Override
+ public void accept(Throwable throwable) throws Exception {
+ mProgress.setVisibility(View.GONE);
+ userInfo.setVisibility(View.GONE);
+
+ if (throwable instanceof HttpException) {
+ errorText.setText("No such user exists on github");
+ }
+ if (throwable instanceof IOException) {
+ errorText.setText("Please check your network connection");
+ }
+ }
+ });
+ }
+
+ private void initViews() {
+ userInfo = (ConstraintLayout) findViewById(R.id.user_info);
+ mProgress = (ProgressBar) findViewById(R.id.progress);
+ githubUsername = (EditText) findViewById(R.id.username);
+ searchForUser = (ImageView) findViewById(R.id.search);
+ profilePic = (ImageView) findViewById(R.id.profile_pic);
+ errorText = (TextView) findViewById(R.id.error_text);
+ mName = (TextView) findViewById(R.id.name_value);
+ mLocation = (TextView) findViewById(R.id.location_value);
+ mEmail = (TextView) findViewById(R.id.email_value);
+ mBio = (TextView) findViewById(R.id.bio_value);
+ publicRepos = (TextView) findViewById(R.id.public_repos_value);
+ publicGists = (TextView) findViewById(R.id.public_gists_value);
+ mFollowers = (TextView) findViewById(R.id.followers_value);
+ mFollowing = (TextView) findViewById(R.id.following_value);
+ }
+}
diff --git a/RXJavaAssignment/app/src/main/java/com/example/whocares/rxjavaassignment/Models/UserModel.java b/RXJavaAssignment/app/src/main/java/com/example/whocares/rxjavaassignment/Models/UserModel.java
new file mode 100644
index 0000000..abe7fe2
--- /dev/null
+++ b/RXJavaAssignment/app/src/main/java/com/example/whocares/rxjavaassignment/Models/UserModel.java
@@ -0,0 +1,107 @@
+package com.example.whocares.rxjavaassignment.Models;
+
+import com.google.gson.annotations.Expose;
+import com.google.gson.annotations.SerializedName;
+
+/**
+ * Created by whocares on 17/10/17.
+ */
+
+public class UserModel {
+
+ @SerializedName("name")
+ private String name;
+ @SerializedName("location")
+ private String location;
+ @SerializedName("email")
+ private String email;
+ @SerializedName("bio")
+ private String bio;
+ @SerializedName("public_repos")
+ private String public_repos;
+ @SerializedName("public_gists")
+ private String public_gists;
+ @SerializedName("followers")
+ private String followers;
+ @SerializedName("following")
+ private String following;
+ @SerializedName("avatar_url")
+ private String avatar_url;
+
+ public String getAvatar_url() {
+ return avatar_url;
+ }
+
+ public void setAvatar_url(String avatar_url) {
+ this.avatar_url = avatar_url;
+ }
+
+ //setters
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setLocation(String location) {
+ this.location = location;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public void setBio(String bio) {
+ this.bio = bio;
+ }
+
+ public void setPublic_repos(String public_repos) {
+ this.public_repos = public_repos;
+ }
+
+ public void setPublic_gists(String public_gists) {
+ this.public_gists = public_gists;
+ }
+
+ public void setFollowers(String followers) {
+ this.followers = followers;
+ }
+
+ public void setFollowing(String following) {
+ this.following = following;
+ }
+
+
+ //getters
+
+ public String getName() {
+ return name;
+ }
+
+ public String getLocation() {
+ return location;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public String getBio() {
+ return bio;
+ }
+
+ public String getPublic_repos() {
+ return public_repos;
+ }
+
+ public String getPublic_gists() {
+ return public_gists;
+ }
+
+ public String getFollowers() {
+ return followers;
+ }
+
+ public String getFollowing() {
+ return following;
+ }
+}
diff --git a/RXJavaAssignment/app/src/main/res/drawable/ic_search_black_24dp.xml b/RXJavaAssignment/app/src/main/res/drawable/ic_search_black_24dp.xml
new file mode 100644
index 0000000..affc7ba
--- /dev/null
+++ b/RXJavaAssignment/app/src/main/res/drawable/ic_search_black_24dp.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/RXJavaAssignment/app/src/main/res/drawable/thug.jpg b/RXJavaAssignment/app/src/main/res/drawable/thug.jpg
new file mode 100644
index 0000000..6cc134c
Binary files /dev/null and b/RXJavaAssignment/app/src/main/res/drawable/thug.jpg differ
diff --git a/RXJavaAssignment/app/src/main/res/layout/activity_main.xml b/RXJavaAssignment/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..0cf77ea
--- /dev/null
+++ b/RXJavaAssignment/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/RXJavaAssignment/app/src/main/res/mipmap-hdpi/ic_launcher.png b/RXJavaAssignment/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..cde69bc
Binary files /dev/null and b/RXJavaAssignment/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/RXJavaAssignment/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/RXJavaAssignment/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..9a078e3
Binary files /dev/null and b/RXJavaAssignment/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/RXJavaAssignment/app/src/main/res/mipmap-mdpi/ic_launcher.png b/RXJavaAssignment/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..c133a0c
Binary files /dev/null and b/RXJavaAssignment/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/RXJavaAssignment/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/RXJavaAssignment/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..efc028a
Binary files /dev/null and b/RXJavaAssignment/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/RXJavaAssignment/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/RXJavaAssignment/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..bfa42f0
Binary files /dev/null and b/RXJavaAssignment/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/RXJavaAssignment/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/RXJavaAssignment/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..3af2608
Binary files /dev/null and b/RXJavaAssignment/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/RXJavaAssignment/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/RXJavaAssignment/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..324e72c
Binary files /dev/null and b/RXJavaAssignment/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/RXJavaAssignment/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/RXJavaAssignment/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..9bec2e6
Binary files /dev/null and b/RXJavaAssignment/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/RXJavaAssignment/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/RXJavaAssignment/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..aee44e1
Binary files /dev/null and b/RXJavaAssignment/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/RXJavaAssignment/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/RXJavaAssignment/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..34947cd
Binary files /dev/null and b/RXJavaAssignment/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/RXJavaAssignment/app/src/main/res/values/colors.xml b/RXJavaAssignment/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..3ab3e9c
--- /dev/null
+++ b/RXJavaAssignment/app/src/main/res/values/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #3F51B5
+ #303F9F
+ #FF4081
+
diff --git a/RXJavaAssignment/app/src/main/res/values/strings.xml b/RXJavaAssignment/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..5e97058
--- /dev/null
+++ b/RXJavaAssignment/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ RXJavaAssignment
+
diff --git a/RXJavaAssignment/app/src/main/res/values/styles.xml b/RXJavaAssignment/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..5885930
--- /dev/null
+++ b/RXJavaAssignment/app/src/main/res/values/styles.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/RXJavaAssignment/app/src/test/java/com/example/whocares/rxjavaassignment/ExampleUnitTest.java b/RXJavaAssignment/app/src/test/java/com/example/whocares/rxjavaassignment/ExampleUnitTest.java
new file mode 100644
index 0000000..d556b94
--- /dev/null
+++ b/RXJavaAssignment/app/src/test/java/com/example/whocares/rxjavaassignment/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.example.whocares.rxjavaassignment;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() throws Exception {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/RXJavaAssignment/build.gradle b/RXJavaAssignment/build.gradle
new file mode 100644
index 0000000..c2eea8e
--- /dev/null
+++ b/RXJavaAssignment/build.gradle
@@ -0,0 +1,23 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ jcenter()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:2.3.3'
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ jcenter()
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/RXJavaAssignment/gradle.properties b/RXJavaAssignment/gradle.properties
new file mode 100644
index 0000000..aac7c9b
--- /dev/null
+++ b/RXJavaAssignment/gradle.properties
@@ -0,0 +1,17 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx1536m
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
diff --git a/RXJavaAssignment/gradle/wrapper/gradle-wrapper.jar b/RXJavaAssignment/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..13372ae
Binary files /dev/null and b/RXJavaAssignment/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/RXJavaAssignment/gradle/wrapper/gradle-wrapper.properties b/RXJavaAssignment/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..551cf01
--- /dev/null
+++ b/RXJavaAssignment/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Tue Oct 17 01:57:42 IST 2017
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
diff --git a/RXJavaAssignment/gradlew b/RXJavaAssignment/gradlew
new file mode 100755
index 0000000..9d82f78
--- /dev/null
+++ b/RXJavaAssignment/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/RXJavaAssignment/gradlew.bat b/RXJavaAssignment/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/RXJavaAssignment/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/RXJavaAssignment/settings.gradle b/RXJavaAssignment/settings.gradle
new file mode 100644
index 0000000..e7b4def
--- /dev/null
+++ b/RXJavaAssignment/settings.gradle
@@ -0,0 +1 @@
+include ':app'
diff --git a/Services/.gitignore b/Services/.gitignore
new file mode 100644
index 0000000..39fb081
--- /dev/null
+++ b/Services/.gitignore
@@ -0,0 +1,9 @@
+*.iml
+.gradle
+/local.properties
+/.idea/workspace.xml
+/.idea/libraries
+.DS_Store
+/build
+/captures
+.externalNativeBuild
diff --git a/Services/.idea/compiler.xml b/Services/.idea/compiler.xml
new file mode 100644
index 0000000..96cc43e
--- /dev/null
+++ b/Services/.idea/compiler.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Services/.idea/copyright/profiles_settings.xml b/Services/.idea/copyright/profiles_settings.xml
new file mode 100644
index 0000000..e7bedf3
--- /dev/null
+++ b/Services/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/Services/.idea/gradle.xml b/Services/.idea/gradle.xml
new file mode 100644
index 0000000..7ac24c7
--- /dev/null
+++ b/Services/.idea/gradle.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Services/.idea/misc.xml b/Services/.idea/misc.xml
new file mode 100644
index 0000000..7158618
--- /dev/null
+++ b/Services/.idea/misc.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Services/.idea/modules.xml b/Services/.idea/modules.xml
new file mode 100644
index 0000000..4f772fa
--- /dev/null
+++ b/Services/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Services/.idea/runConfigurations.xml b/Services/.idea/runConfigurations.xml
new file mode 100644
index 0000000..7f68460
--- /dev/null
+++ b/Services/.idea/runConfigurations.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Services/app/.gitignore b/Services/app/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/Services/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/app/build.gradle b/Services/app/build.gradle
similarity index 84%
rename from app/build.gradle
rename to Services/app/build.gradle
index fe0a5c9..4c46419 100644
--- a/app/build.gradle
+++ b/Services/app/build.gradle
@@ -4,8 +4,8 @@ android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
- applicationId "com.sdsmdg.hareshkh.lectureassignment"
- minSdkVersion 19
+ applicationId "com.example.dell.services"
+ minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
@@ -24,6 +24,6 @@ dependencies {
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
- compile 'com.android.support:appcompat-v7:25.1.0'
+ compile 'com.android.support:appcompat-v7:25.2.0'
testCompile 'junit:junit:4.12'
}
diff --git a/Services/app/proguard-rules.pro b/Services/app/proguard-rules.pro
new file mode 100644
index 0000000..dac7d83
--- /dev/null
+++ b/Services/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 C:\Users\DELL\AppData\Local\Android\Sdk/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/Services/app/src/androidTest/java/com/example/dell/services/ExampleInstrumentedTest.java b/Services/app/src/androidTest/java/com/example/dell/services/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..1ca2eab
--- /dev/null
+++ b/Services/app/src/androidTest/java/com/example/dell/services/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.example.dell.services;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumentation test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() throws Exception {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getTargetContext();
+
+ assertEquals("com.example.dell.services", appContext.getPackageName());
+ }
+}
diff --git a/Services/app/src/main/AndroidManifest.xml b/Services/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..57600da
--- /dev/null
+++ b/Services/app/src/main/AndroidManifest.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Services/app/src/main/java/com/example/dell/services/MainActivity.java b/Services/app/src/main/java/com/example/dell/services/MainActivity.java
new file mode 100644
index 0000000..6a20748
--- /dev/null
+++ b/Services/app/src/main/java/com/example/dell/services/MainActivity.java
@@ -0,0 +1,81 @@
+package com.example.dell.services;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.os.IBinder;
+import android.service.media.MediaBrowserService;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+
+import static com.example.dell.services.PlayService.mediaPlayer;
+
+public class MainActivity extends AppCompatActivity {
+ // public static int currentPos=0;
+ private boolean musicBound=false;
+ private PlayService musicSrv;
+ private static boolean paused=false;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ Button play=(Button)findViewById(R.id.play);
+ final Button pause=(Button)findViewById(R.id.pause);
+ Button stop=(Button)findViewById(R.id.stop);
+ play.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent i=new Intent(MainActivity.this,PlayService.class);
+ bindService(i, musicConnection, Context.BIND_AUTO_CREATE);
+ startService(i);
+ }
+});
+ pause.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if(!paused) {
+ pause.setText("resume");
+ musicSrv.pauseMusic();
+ paused=true;
+ }
+ else
+ {
+ pause.setText("pause");
+ musicSrv.resumeMusic();
+ paused=false;
+ }
+
+ }
+ });
+
+ stop.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent i = new Intent(MainActivity.this, PlayService.class);
+ unbindService(musicConnection);
+ stopService(i);
+
+ }
+ });
+ }
+
+ private ServiceConnection musicConnection = new ServiceConnection() {
+
+
+ @Override
+ public void onServiceConnected(ComponentName componentName, IBinder service) {
+ PlayService.MusicBinder binder = (PlayService.MusicBinder)service;
+ musicSrv = binder.getService();
+ musicBound = true;
+ }
+
+ @Override
+ public void onServiceDisconnected(ComponentName componentName) {
+ musicBound=false;
+ }
+ };
+}
diff --git a/Services/app/src/main/java/com/example/dell/services/PlayService.java b/Services/app/src/main/java/com/example/dell/services/PlayService.java
new file mode 100644
index 0000000..cdfe31b
--- /dev/null
+++ b/Services/app/src/main/java/com/example/dell/services/PlayService.java
@@ -0,0 +1,108 @@
+package com.example.dell.services;
+
+
+import android.app.Service;
+import android.content.Intent;
+
+import android.media.AudioManager;
+import android.media.MediaPlayer;
+import android.net.Uri;
+import android.os.Binder;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.support.annotation.Nullable;
+import android.util.Log;
+import android.widget.Toast;
+
+import java.io.IOException;
+import java.security.Provider;
+
+
+/**
+ * Created by DELL on 01-03-2017.
+ */
+
+public class PlayService extends Service implements MediaPlayer.OnCompletionListener,MediaPlayer.OnPreparedListener{
+
+ public static MediaPlayer mediaPlayer;
+ private static int length;
+ private final IBinder musicBind = new MusicBinder();
+ String url = "http://dot.890m.com/shapeofyou.mp3";
+
+ @Override
+ public void onCreate() {
+ mediaPlayer=new MediaPlayer();
+ Toast.makeText(this,"in onCreate",Toast.LENGTH_LONG).show();
+ mediaPlayer =MediaPlayer.create(this,R.raw.aka);
+ mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
+
+
+ }
+ @Override
+ public int onStartCommand (Intent intent, int flags, int startId)
+ { Toast.makeText(this,"in onStartCommand",Toast.LENGTH_LONG).show();
+ mediaPlayer.start();
+ return START_NOT_STICKY;
+ }
+
+
+ @Override
+ public void onDestroy() {
+ Toast.makeText(this,"in onDestroy",Toast.LENGTH_LONG).show();
+ mediaPlayer.stop();
+
+ }
+
+
+ @Override
+ public boolean onUnbind(Intent intent) {
+ mediaPlayer.pause();
+ Toast.makeText(this,"in onUnbind",Toast.LENGTH_LONG).show();
+ return false;
+ }
+
+ @Override
+ public void onRebind(Intent intent) {
+ Toast.makeText(this,"in onRebind ",Toast.LENGTH_LONG).show();
+ mediaPlayer.start();
+
+ }
+
+ public void pauseMusic()
+ {
+ mediaPlayer.pause();
+ length=mediaPlayer.getCurrentPosition();
+ Toast.makeText(this,"in pauseMusic and length is "+length,Toast.LENGTH_LONG).show();
+ }
+
+ public void resumeMusic()
+ {
+ mediaPlayer.seekTo(length);
+ Toast.makeText(this,"in resumeMusic and resumed at "+length,Toast.LENGTH_LONG).show();
+
+ mediaPlayer.start();
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ Toast.makeText(this,"in onBind",Toast.LENGTH_LONG).show();
+ mediaPlayer.start();
+ return musicBind;
+ }
+
+ @Override
+ public void onCompletion(MediaPlayer mediaPlayer) {
+
+ }
+
+ @Override
+ public void onPrepared(MediaPlayer mediaPlayer) {
+
+
+ }
+ public class MusicBinder extends Binder {
+ PlayService getService() {
+ return PlayService.this;
+ }
+ }
+}
diff --git a/Services/app/src/main/res/layout/activity_main.xml b/Services/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..537df57
--- /dev/null
+++ b/Services/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
diff --git a/Services/app/src/main/res/mipmap-hdpi/ic_launcher.png b/Services/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..cde69bc
Binary files /dev/null and b/Services/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/Services/app/src/main/res/mipmap-mdpi/ic_launcher.png b/Services/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..c133a0c
Binary files /dev/null and b/Services/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/Services/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/Services/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..bfa42f0
Binary files /dev/null and b/Services/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/Services/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/Services/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..324e72c
Binary files /dev/null and b/Services/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/Services/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/Services/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..aee44e1
Binary files /dev/null and b/Services/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/Services/app/src/main/res/raw/aka.m4a b/Services/app/src/main/res/raw/aka.m4a
new file mode 100644
index 0000000..4c67814
Binary files /dev/null and b/Services/app/src/main/res/raw/aka.m4a differ
diff --git a/Services/app/src/main/res/values-w820dp/dimens.xml b/Services/app/src/main/res/values-w820dp/dimens.xml
new file mode 100644
index 0000000..63fc816
--- /dev/null
+++ b/Services/app/src/main/res/values-w820dp/dimens.xml
@@ -0,0 +1,6 @@
+
+
+ 64dp
+
diff --git a/Services/app/src/main/res/values/colors.xml b/Services/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..3ab3e9c
--- /dev/null
+++ b/Services/app/src/main/res/values/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #3F51B5
+ #303F9F
+ #FF4081
+
diff --git a/Services/app/src/main/res/values/dimens.xml b/Services/app/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..47c8224
--- /dev/null
+++ b/Services/app/src/main/res/values/dimens.xml
@@ -0,0 +1,5 @@
+
+
+ 16dp
+ 16dp
+
diff --git a/Services/app/src/main/res/values/strings.xml b/Services/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..802c84a
--- /dev/null
+++ b/Services/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ Services
+
diff --git a/Services/app/src/main/res/values/styles.xml b/Services/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..5885930
--- /dev/null
+++ b/Services/app/src/main/res/values/styles.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/Services/app/src/test/java/com/example/dell/services/ExampleUnitTest.java b/Services/app/src/test/java/com/example/dell/services/ExampleUnitTest.java
new file mode 100644
index 0000000..ea3dbf6
--- /dev/null
+++ b/Services/app/src/test/java/com/example/dell/services/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.example.dell.services;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() throws Exception {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Services/build.gradle b/Services/build.gradle
new file mode 100644
index 0000000..74b2ab0
--- /dev/null
+++ b/Services/build.gradle
@@ -0,0 +1,23 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ jcenter()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:2.2.3'
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ jcenter()
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/Services/gradle.properties b/Services/gradle.properties
new file mode 100644
index 0000000..aac7c9b
--- /dev/null
+++ b/Services/gradle.properties
@@ -0,0 +1,17 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx1536m
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
diff --git a/Services/gradle/wrapper/gradle-wrapper.jar b/Services/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..13372ae
Binary files /dev/null and b/Services/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Services/gradle/wrapper/gradle-wrapper.properties b/Services/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..04e285f
--- /dev/null
+++ b/Services/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Dec 28 10:00:20 PST 2015
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
diff --git a/Services/gradlew b/Services/gradlew
new file mode 100644
index 0000000..9d82f78
--- /dev/null
+++ b/Services/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/Services/gradlew.bat b/Services/gradlew.bat
new file mode 100644
index 0000000..8a0b282
--- /dev/null
+++ b/Services/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Services/settings.gradle b/Services/settings.gradle
new file mode 100644
index 0000000..e7b4def
--- /dev/null
+++ b/Services/settings.gradle
@@ -0,0 +1 @@
+include ':app'
diff --git a/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/MainActivity.java b/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/MainActivity.java
deleted file mode 100644
index a42b22d..0000000
--- a/app/src/main/java/com/sdsmdg/hareshkh/lectureassignment/MainActivity.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.sdsmdg.hareshkh.lectureassignment;
-
-import android.support.v7.app.AppCompatActivity;
-import android.os.Bundle;
-
-public class MainActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
-}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
deleted file mode 100644
index 809dd02..0000000
--- a/app/src/main/res/layout/activity_main.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-