diff --git a/.idea/libraries/Gradle__com_android_volley_volley_1_0_0.xml b/.idea/libraries/Gradle__com_android_volley_volley_1_0_0.xml
new file mode 100644
index 0000000..da73c4d
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_volley_volley_1_0_0.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/app.iml b/app/app.iml
index 5b1caba..62cba90 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -92,6 +92,7 @@
+
@@ -139,6 +140,7 @@
+
diff --git a/app/build.gradle b/app/build.gradle
index bb6dc44..84a7cca 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,6 +23,7 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
api 'com.android.support:design:28.0.0-alpha3'
implementation 'com.google.code.gson:gson:2.8.5'
+ implementation 'com.android.volley:volley:1.0.0'
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ae2bd5e..e031b9f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,6 +5,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/etashguha/etude/Dictionary.java b/app/src/main/java/com/example/etashguha/etude/Dictionary.java
new file mode 100644
index 0000000..47a0cec
--- /dev/null
+++ b/app/src/main/java/com/example/etashguha/etude/Dictionary.java
@@ -0,0 +1,65 @@
+package com.example.etashguha.etude;
+
+import android.app.Activity;
+import android.net.Uri;
+import android.os.Message;
+import android.util.Log;
+
+import com.android.volley.AuthFailureError;
+import com.android.volley.Request;
+import com.android.volley.RequestQueue;
+import com.android.volley.Response;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.StringRequest;
+import com.android.volley.toolbox.Volley;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Dictionary extends Thread {
+
+ Activity currentActivity;
+ Reader.DictionaryHandler handler;
+ String word;
+ public Dictionary(Activity activity, Reader.DictionaryHandler dictionaryHandler, String word){
+ currentActivity = activity;
+ handler = dictionaryHandler;
+ this.word = word;
+ }
+
+ public void run(){
+ RequestQueue requestQueue = Volley.newRequestQueue(currentActivity);
+ String toParse = "https://wordsapiv1.p.mashape.com/words/" + word + "/definitions";
+ String uri = Uri.parse(toParse)
+ .buildUpon()
+ .build().toString();
+
+ StringRequest stringRequest = new StringRequest(
+ Request.Method.GET, uri, new Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+ Message message = new Message();
+ message.obj = response;
+ handler.handleMessage(message);
+ }
+
+ }, new Response.ErrorListener() {
+
+ @Override
+ public void onErrorResponse(VolleyError error) {
+ Log.e("VolleyError", error.toString());
+ }
+
+ }) {
+
+ @Override
+ public Map getHeaders() throws AuthFailureError {
+ Map params = new HashMap<>();
+ params.put("X-Mashape-Key", "BNrk40KgrTmshu76EmLWGokuzqvXp1JgmKbjsnrYxFk7id8pWk");
+ params.put("Accept", "text/plain");
+ return params;
+ }
+ };
+ requestQueue.add(stringRequest);
+ }
+}
diff --git a/app/src/main/java/com/example/etashguha/etude/MainActivity.java b/app/src/main/java/com/example/etashguha/etude/MainActivity.java
index b66b931..7049177 100644
--- a/app/src/main/java/com/example/etashguha/etude/MainActivity.java
+++ b/app/src/main/java/com/example/etashguha/etude/MainActivity.java
@@ -9,12 +9,20 @@
public class MainActivity extends AppCompatActivity {
MaterialButton button;
+ MaterialButton cancel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.next_button);
+ cancel = findViewById(R.id.cancel_button);
+ cancel.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ }
+ });
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -23,4 +31,6 @@ public void onClick(View v) {
}
});
}
+
+
}
diff --git a/app/src/main/java/com/example/etashguha/etude/Reader.java b/app/src/main/java/com/example/etashguha/etude/Reader.java
index 9456a03..fac3e85 100644
--- a/app/src/main/java/com/example/etashguha/etude/Reader.java
+++ b/app/src/main/java/com/example/etashguha/etude/Reader.java
@@ -7,11 +7,18 @@
import android.os.Message;
import android.os.StrictMode;
import android.support.annotation.NonNull;
+import android.support.constraint.ConstraintLayout;
import android.support.design.widget.BottomNavigationView;
+import android.support.design.widget.BottomSheetBehavior;
+import android.support.design.widget.CoordinatorLayout;
import android.support.v7.app.AppCompatActivity;
+import android.util.Log;
import android.view.MenuItem;
+import android.view.MotionEvent;
import android.view.View;
import android.widget.ProgressBar;
+import android.widget.ScrollView;
+import android.widget.TextView;
import com.github.barteksc.pdfviewer.PDFView;
@@ -19,32 +26,71 @@
public class Reader extends AppCompatActivity {
PDFView pdfView;
- PausePlay pausePlayState = PausePlay.PAUSED;
+ PausePlay pausePlayState;
int pageNumber = 0;
Screenshot screenshot;
boolean firstTimePlaying;
- Reader.SSHandler ssHandler;
+ SSHandler ssHandler;
+ DictionaryHandler dictionaryHandler;
Player player;
BottomNavigationView bottomNavigationView;
ProgressBar progBar;
Activity baseActivity;
+ TextView definition;
+ ConstraintLayout baseLayout;
+ BottomSheetBehavior behavior;
+ CoordinatorLayout coordinatorLayout;
+ View bottomSheet;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.reader);
- baseActivity = this;
- player = new Player("");
- final Uri uri = getIntent().getData();
pdfView = findViewById(R.id.pdfView);
progBar = findViewById(R.id.progressBar);
+ definition = findViewById(R.id.definition);
progBar.setVisibility(View.INVISIBLE);
+ coordinatorLayout = findViewById(R.id.main_content);
+ bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet);
+ baseLayout = findViewById(R.id.container);
+
+ baseActivity = this;
+ player = new Player("");
+ final Uri uri = getIntent().getData();
firstTimePlaying = true;
+ dictionaryHandler = new DictionaryHandler();
+ pausePlayState = PausePlay.PAUSED;
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
+ behavior = BottomSheetBehavior.from(bottomSheet);
+ behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
+ @Override
+ public void onStateChanged(@NonNull View bottomSheet, int newState) {
+ // React to state change
+ Log.e("onStateChanged", "onStateChanged:" + newState);
+ }
+ @Override
+ public void onSlide(@NonNull View bottomSheet, float slideOffset) {
+ // React to dragging events
+ Log.e("onSlide", "onSlide");
+ }
+ });
+
+ baseLayout.setOnTouchListener(new View.OnTouchListener() {
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ Log.d("coordinates", event.getX() + " " + event.getY());
+ return false;
+ }
+ });
+
+ behavior.setPeekHeight(0);
+ behavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
+
pdfView.fromUri(uri).pages(pageNumber).load();
+ dictionaryHandler = new DictionaryHandler();
bottomNavigationView = findViewById(R.id.bottomNavigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
@@ -159,4 +205,19 @@ public void handleMessage(Message msg){
}
}
}
+
+ public class DictionaryHandler extends Handler{
+
+ public DictionaryHandler(){
+ super();
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ String response = (String)msg.obj;
+ definition.setText(response.substring(response.indexOf("\"definition\":\"") + 14, response.indexOf("\",\"partOfSpeech")));
+
+ behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
+ }
+ }
}
diff --git a/app/src/main/res/layout/reader.xml b/app/src/main/res/layout/reader.xml
index 138a966..c612786 100644
--- a/app/src/main/res/layout/reader.xml
+++ b/app/src/main/res/layout/reader.xml
@@ -4,10 +4,12 @@
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
+ android:clickable="true"
+ android:focusable="true"
+ android:focusableInTouchMode="true"
android:layout_height="match_parent"
tools:context=".Reader">
-
-
-
-
+ tools:layout_editor_absoluteX="0dp">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 43c0708..96dccc7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,11 +8,11 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
-
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
+
}
allprojects {