From fe0b8f807661ff672a73d6b91ddf2823bf54d8a4 Mon Sep 17 00:00:00 2001 From: kaller01 <martin@kallers.se> Date: Tue, 16 Nov 2021 16:50:33 +0100 Subject: [PATCH] lab3 done --- .../com/example/lab3/InteractiveSearch.java | 84 +++++------ .../example/lab3/InteractiveSearchOld.java | 135 ------------------ .../main/java/com/example/lab3/Overlay.java | 25 ---- .../app/src/main/res/layout/activity_main.xml | 1 + 4 files changed, 45 insertions(+), 200 deletions(-) delete mode 100644 lab3/app/src/main/java/com/example/lab3/InteractiveSearchOld.java delete mode 100644 lab3/app/src/main/java/com/example/lab3/Overlay.java diff --git a/lab3/app/src/main/java/com/example/lab3/InteractiveSearch.java b/lab3/app/src/main/java/com/example/lab3/InteractiveSearch.java index 7b46509..a387165 100644 --- a/lab3/app/src/main/java/com/example/lab3/InteractiveSearch.java +++ b/lab3/app/src/main/java/com/example/lab3/InteractiveSearch.java @@ -10,6 +10,7 @@ import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.BaseAdapter; import android.widget.EditText; @@ -29,6 +30,7 @@ import com.google.gson.Gson; import java.lang.reflect.Array; import java.util.ArrayList; +import java.util.Arrays; public class InteractiveSearch extends androidx.appcompat.widget.AppCompatEditText { Context context; @@ -53,6 +55,12 @@ public class InteractiveSearch extends androidx.appcompat.widget.AppCompatEditTe init(context); } + + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + //super.onMeasure(widthMeasureSpec, heightMeasureSpec); + setMeasuredDimension(1000, 200); + } + private void init(Context context) { adapter = new myAdapter(context); // System.out.println("ADAPTER " + adapter.getCount()); @@ -79,6 +87,13 @@ public class InteractiveSearch extends androidx.appcompat.widget.AppCompatEditTe } }); + listPopupWindow.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView<?> parent, View view, int position, long id) { + setText((String) adapter.getItem(position)); + } + }); + } private int getID() { @@ -87,7 +102,7 @@ public class InteractiveSearch extends androidx.appcompat.widget.AppCompatEditTe private void search(String s) { String url = "https://andla.pythonanywhere.com/getnames/" + getID() + "/" + s; - System.out.println(url); + //System.out.println(url); doVolleyStuff(url); } @@ -106,7 +121,6 @@ public class InteractiveSearch extends androidx.appcompat.widget.AppCompatEditTe listPopupWindow.show(); } - } }, new Response.ErrorListener() { @Override @@ -121,6 +135,7 @@ public class InteractiveSearch extends androidx.appcompat.widget.AppCompatEditTe public class myAdapter extends BaseAdapter { ArrayList<String> list = new ArrayList<String>(); Context context; + private int n=5; public myAdapter(Context c) { this.context = c; @@ -142,7 +157,12 @@ public class InteractiveSearch extends androidx.appcompat.widget.AppCompatEditTe } public void changeList(ArrayList<String> list) { - this.list = list; + //System.out.println(n); + if (list.size() < n) + this.list = list; + else + this.list = new ArrayList<String>(list.subList(0, n)); + notifyDataSetChanged(); } @@ -150,31 +170,13 @@ public class InteractiveSearch extends androidx.appcompat.widget.AppCompatEditTe public View getView(int position, View convertView, ViewGroup parent) { String name = (String) getItem(position); -// -// System.out.println(name); -// -// if (convertView == null) { -// convertView = new TextView(context); -// } -// -// TextView tmp = (TextView) convertView; -// tmp.setText(name); -// -// return convertView; -// System.out.println(); -// TextView tmp = new TextView(context); -// tmp.setText(name); Text tmp = new Text(context); tmp.setText(name); return tmp; -// return new Text(context, name); -// return tmp; - - } } - private static class Resonse { + private static class Resonse { //ska vara response private int id; private ArrayList<String> result; @@ -187,7 +189,7 @@ public class InteractiveSearch extends androidx.appcompat.widget.AppCompatEditTe } public void setResult(ArrayList<String> result) { - this.result = result; + this.result = result; } public ArrayList<String> getResult() { @@ -195,53 +197,55 @@ public class InteractiveSearch extends androidx.appcompat.widget.AppCompatEditTe } } - - public class Text extends View { + Context c; Paint myPaint; String text; - public void setText(String text){ - this.text = text; - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(40, 40); - } - public Text(Context context) { super(context); + this.c = context; + init(); } public Text(Context context, @Nullable AttributeSet attrs) { super(context, attrs); + this.c = context; init(); - } public Text(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); + this.c = context; init(); } public Text(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); + this.c = context; init(); } - public void init() { -// System.out.println(text); + private void init() { myPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - myPaint.setColor(Color.RED); + myPaint.setColor(Color.BLACK); + myPaint.setTextSize(60f); + } + + public void setText(String text) { this.text = text; } + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + //super.onMeasure(widthMeasureSpec, heightMeasureSpec); + setMeasuredDimension(800, 100); + } + @Override protected void onDraw(Canvas canvas) { - System.out.println(text); super.onDraw(canvas); - canvas.drawText(text, 0, 0, myPaint); + canvas.drawText(text, 10, 60, myPaint); } } diff --git a/lab3/app/src/main/java/com/example/lab3/InteractiveSearchOld.java b/lab3/app/src/main/java/com/example/lab3/InteractiveSearchOld.java deleted file mode 100644 index 625e65f..0000000 --- a/lab3/app/src/main/java/com/example/lab3/InteractiveSearchOld.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.example.lab3; - -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Paint; -import android.text.Editable; -import android.text.TextWatcher; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ArrayAdapter; -import android.widget.EditText; -import android.widget.FrameLayout; -import android.widget.ListPopupWindow; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -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.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.lang.reflect.Array; -import java.net.URL; - -public class InteractiveSearchOld extends FrameLayout { - private Context context; - private int currentID = 0; - private String result = ""; - private Paint myPaint; - - public InteractiveSearchOld(@NonNull Context context) { - super(context); - init(context); - } - - public InteractiveSearchOld(@NonNull Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - init(context); - } - - public InteractiveSearchOld(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(context); - } - - public InteractiveSearchOld(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - init(context); - } - - private void init(Context context){ - LayoutInflater infaltor = (LayoutInflater) context. - getSystemService(Context.LAYOUT_INFLATER_SERVICE); - View v = infaltor.inflate(R.layout.interactivesearch,null); - EditText input = v.findViewById(R.id.field); - final ListPopupWindow listPopupWindow = new ListPopupWindow(context); - listPopupWindow.setAnchorView(input); -// listPopupWindow.setAdapter(new ArrayAdapter<String>()); - listPopupWindow.setHeight(300); - listPopupWindow.setWidth(300); - listPopupWindow.show(); -// this.addView(ListPopupWindow); - - - - input.addTextChangedListener(new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - search(s+""); - } - - @Override - public void afterTextChanged(Editable s) { - - } - }); - -// System.out.println(ourInput.getText()); - - addView(v); - this.context = context; - myPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - myPaint.setColor(Color.RED); - - } - - private int getID(){ - return currentID++; - } - - private void search(String s){ - String url = "https://andla.pythonanywhere.com/getnames/"+getID()+"/"+s; - System.out.println(url); - - doVolleyStuff(url); - } - - - private void doVolleyStuff(String url){ - RequestQueue queue = Volley.newRequestQueue(this.context); - StringRequest stringRequest = new StringRequest(Request.Method.GET, url, - new Response.Listener<String>() { - @Override - public void onResponse(String response) { - System.out.println(response); - result = response; - } - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - error.printStackTrace(); - } - }); - queue.add(stringRequest); - } - - protected void onDraw(Canvas canvas) { - System.out.println("hejj!!!"); - super.onDraw(canvas); - canvas.drawText(result,10,30,myPaint); - } -} diff --git a/lab3/app/src/main/java/com/example/lab3/Overlay.java b/lab3/app/src/main/java/com/example/lab3/Overlay.java deleted file mode 100644 index 5eb3540..0000000 --- a/lab3/app/src/main/java/com/example/lab3/Overlay.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.example.lab3; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.View; - -import androidx.annotation.Nullable; - -public class Overlay extends View { - public Overlay(Context context) { - super(context); - } - - public Overlay(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - } - - public Overlay(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - public Overlay(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } -} diff --git a/lab3/app/src/main/res/layout/activity_main.xml b/lab3/app/src/main/res/layout/activity_main.xml index d0efacc..eaa284e 100644 --- a/lab3/app/src/main/res/layout/activity_main.xml +++ b/lab3/app/src/main/res/layout/activity_main.xml @@ -9,6 +9,7 @@ <com.example.lab3.InteractiveSearch android:layout_width="409dp" android:layout_height="354dp" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> -- GitLab