diff --git a/mobile/src/main/java/org/openhab/habdroid/model/Recognitions.java b/mobile/src/main/java/org/openhab/habdroid/model/Recognition.java similarity index 98% rename from mobile/src/main/java/org/openhab/habdroid/model/Recognitions.java rename to mobile/src/main/java/org/openhab/habdroid/model/Recognition.java index f2c0c7d5852f3f3b2b1af14f70eacea9407ed09e..615318f405b2d9d07bbbb9d7f3fffaced40c3fe7 100644 --- a/mobile/src/main/java/org/openhab/habdroid/model/Recognitions.java +++ b/mobile/src/main/java/org/openhab/habdroid/model/Recognition.java @@ -10,7 +10,7 @@ import com.google.gson.annotations.SerializedName; * By Muhammad Ibrahim Rahman */ -public class Recognitions { +public class Recognition { @SerializedName("identifier") @Expose diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsActivity.java b/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsActivity.java index cd222572c8d91f289bcf4a3270e4ce16384f9a3d..6ecb899c7043edf76d3f86451156208ba1d5447d 100644 --- a/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsActivity.java +++ b/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsActivity.java @@ -5,15 +5,17 @@ import android.os.Bundle; import android.view.MenuItem; import org.openhab.habdroid.R; -import org.openhab.habdroid.model.ChangedItem; +import org.openhab.habdroid.model.Recognition; import org.openhab.habdroid.util.Util; -import org.openhab.habdroid.model.Recognitions; import org.openhab.habdroid.util.GetDataService; import org.openhab.habdroid.util.RetrofitClientInstance; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.Locale; -import androidx.cardview.widget.CardView; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -23,11 +25,12 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.FragmentManager; import androidx.recyclerview.widget.RecyclerView; -import androidx.recyclerview.widget.LinearLayoutManager; + +import android.widget.TextView; import android.widget.Toast; /* - * Activity for OpenLicht Recognitions + * Activity for OpenLicht Recognition * By Muhammad Ibrahim Rahman */ @@ -35,6 +38,10 @@ public class RecognitionsActivity extends AppCompatActivity{ private RecognitionsAdapter adapter; private RecyclerView recyclerView; + private TextView mCurrentActivityTitle; + private TextView mCurrentActivityTime; + private RecyclerView mCurrentActivityChangedItems; + ProgressDialog progressDialog; @Override @@ -64,34 +71,45 @@ public class RecognitionsActivity extends AppCompatActivity{ // Interface for the RetrofitInstance GetDataService service = RetrofitClientInstance.getRetrofitInstance().create(GetDataService.class); - Call<List<Recognitions>> call = service.getAllRecognitions(); - call.enqueue(new Callback<List<Recognitions>>() { + Call<List<Recognition>> call = service.getAllRecognitions(); + call.enqueue(new Callback<List<Recognition>>() { @Override - public void onResponse(Call<List<Recognitions>> call, Response<List<Recognitions>> response) { + public void onResponse(Call<List<Recognition>> call, Response<List<Recognition>> response) { progressDialog.dismiss(); - generateDataList(response.body()); + //generateDataList(response.body()); + generateCurrentActivity(response.body().get(0)); } @Override - public void onFailure(Call<List<Recognitions>> call, Throwable t) { + public void onFailure(Call<List<Recognition>> call, Throwable t) { progressDialog.dismiss(); - Toast.makeText(RecognitionsActivity.this, "Error loading Recognitions. Please check your network connection.", Toast.LENGTH_SHORT).show(); + Toast.makeText(RecognitionsActivity.this, "Error loading Recognition. Please check your network connection.", Toast.LENGTH_SHORT).show(); } }); } + private void generateCurrentActivity(Recognition recognition) { + mCurrentActivityTitle = findViewById(R.id.text_recognition_current_title); + mCurrentActivityTime = findViewById(R.id.text_recognition_current_time); + mCurrentActivityChangedItems = findViewById(R.id.rv_recognition_current_items); + mCurrentActivityTitle.setText(recognition.getDescription().toString()); + DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT, Locale.US); + mCurrentActivityTime.setText(dateFormat.format(new Date(recognition.getTimestamp()))); + } + + /* // Generates a List using RecyclerView with the RecognitionsAdapter - private void generateDataList(List<Recognitions> recognitionsList) { + private void generateDataList(List<Recognition> recognitionsList) { recyclerView = findViewById(R.id.customRecyclerView); adapter = new RecognitionsAdapter(this,recognitionsList); RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(RecognitionsActivity.this); recyclerView.setLayoutManager(layoutManager); recyclerView.setAdapter(adapter); - } + }*/ @Override public boolean onOptionsItemSelected(MenuItem item) { diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsAdapter.java b/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsAdapter.java index a07cae6cb55670bc7acdae87ef7f95798e093bb4..5ab38250f59d35446cc7fbd9bd211c98d62b5add 100644 --- a/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsAdapter.java +++ b/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsAdapter.java @@ -4,19 +4,12 @@ import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.LinearLayout; import android.widget.TextView; -import android.widget.Toast; -import org.json.JSONArray; import org.openhab.habdroid.R; -import org.openhab.habdroid.model.ChangedItem; -import org.openhab.habdroid.model.Recognitions; +import org.openhab.habdroid.model.Recognition; import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; import java.util.List; import androidx.recyclerview.widget.RecyclerView; @@ -29,11 +22,10 @@ import androidx.recyclerview.widget.RecyclerView; public class RecognitionsAdapter extends RecyclerView.Adapter<RecognitionsAdapter.CustomViewHolder> { - private List<Recognitions> dataList; + private List<Recognition> dataList; private Context context; -// private ArrayList<String> changedStates = new ArrayList<>(); - public RecognitionsAdapter(Context context, List<Recognitions> dataList/*, List<ChangedItem> changedItemList*/){ + public RecognitionsAdapter(Context context, List<Recognition> dataList/*, List<ChangedItem> changedItemList*/){ this.context = context; this.dataList = dataList; @@ -49,10 +41,6 @@ public class RecognitionsAdapter extends RecyclerView.Adapter<RecognitionsAdapte TextView recTimestamp; TextView recChangedState; -// ArrayList<String> cS = new ArrayList<>(); - - - CustomViewHolder(View itemView) { super(itemView); mView = itemView; diff --git a/mobile/src/main/java/org/openhab/habdroid/util/GetDataService.java b/mobile/src/main/java/org/openhab/habdroid/util/GetDataService.java index 9f8ae061c8a4769e44fa3da6b34308d1f1a400e8..9db72a0b267f582dcc41a28c74fa8ea901485595 100644 --- a/mobile/src/main/java/org/openhab/habdroid/util/GetDataService.java +++ b/mobile/src/main/java/org/openhab/habdroid/util/GetDataService.java @@ -1,6 +1,6 @@ package org.openhab.habdroid.util; -import org.openhab.habdroid.model.Recognitions; +import org.openhab.habdroid.model.Recognition; import java.util.List; @@ -16,8 +16,9 @@ import retrofit2.http.GET; public interface GetDataService { @GET("/events/long") - Call<List<Recognitions>> getAllRecognitions(); + Call<List<Recognition>> getAllRecognitions(); + // @GET("/recognitions") -// Call<List<Recognitions>> getAllRecognitions(); +// Call<List<Recognition>> getAllRecognitions(); } diff --git a/mobile/src/main/java/org/openhab/habdroid/util/RetrofitClientInstance.java b/mobile/src/main/java/org/openhab/habdroid/util/RetrofitClientInstance.java index 24460184d9fef3ea56eeb648cca8e84743535dae..6793289571f447248377b4a6735739ca186d6976 100644 --- a/mobile/src/main/java/org/openhab/habdroid/util/RetrofitClientInstance.java +++ b/mobile/src/main/java/org/openhab/habdroid/util/RetrofitClientInstance.java @@ -12,7 +12,7 @@ import retrofit2.converter.gson.GsonConverterFactory; public class RetrofitClientInstance { private static Retrofit retrofit; - private static final String BASE_URL = "http://10.0.2.2:5000"; + private static final String BASE_URL = "http://141.76.65.46:5000"; //"http://10.0.2.2:5000"; public static Retrofit getRetrofitInstance() { if (retrofit == null) { diff --git a/mobile/src/main/res/layout/activity_recognitions.xml b/mobile/src/main/res/layout/activity_recognitions.xml index 3b3f81b2887b6504b200bcf203b3542b76d18553..8cf585713a7fa6ac2d22a0448c38e23d52102f50 100644 --- a/mobile/src/main/res/layout/activity_recognitions.xml +++ b/mobile/src/main/res/layout/activity_recognitions.xml @@ -1,13 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<!--Layout for OpenLicht Recognitions--> -<!--By Muhammad Ibrahim Rahman--> +<!--Layout for OpenLicht Recognition--><!--By Muhammad Ibrahim Rahman--> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" android:orientation="vertical"> <androidx.appcompat.widget.Toolbar @@ -18,37 +16,84 @@ android:elevation="8dp" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> + <!-- + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?android:activatedBackgroundIndicator" + android:descendantFocusability="blocksDescendants"> + + <include layout="@layout/widgetlist_icontext" /> + + <ImageButton + style="@style/ActionButton" + android:id="@+id/up_button" + android:contentDescription="@string/content_description_color_up" + android:src="?themedArrowUpIcon" /> + + <ImageButton + style="@style/ActionButton" + android:id="@+id/select_color_button" + android:contentDescription="@string/content_description_open_color_wheel" + android:src="?themedColorIcon" /> + + <ImageButton + style="@style/ActionButton" + android:id="@+id/down_button" + android:contentDescription="@string/content_description_color_down" + android:src="?themedArrowDownIcon" /> + + </LinearLayout> + --> - <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + <com.google.android.material.card.MaterialCardView + android:id="@+id/card_recognition_current" + style="@style/Widget.MaterialComponents.CardView" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?android:activatedBackgroundIndicator" - android:descendantFocusability="blocksDescendants"> + android:layout_marginLeft="@dimen/mtrl_card_spacing" + android:layout_marginTop="@dimen/mtrl_card_spacing" + android:layout_marginRight="@dimen/mtrl_card_spacing"> - <include layout="@layout/widgetlist_icontext" /> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:padding="16dp"> - <ImageButton - style="@style/ActionButton" - android:id="@+id/up_button" - android:contentDescription="@string/content_description_color_up" - android:src="?themedArrowUpIcon" /> + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="Current Activity" + android:textAllCaps="true" + android:textColor="@color/black" + android:textSize="10dp" /> - <ImageButton - style="@style/ActionButton" - android:id="@+id/select_color_button" - android:contentDescription="@string/content_description_open_color_wheel" - android:src="?themedColorIcon" /> + <TextView + android:id="@+id/text_recognition_current_title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="This is an activity" + android:textColor="@color/black" + android:textSize="24sp" /> - <ImageButton - style="@style/ActionButton" - android:id="@+id/down_button" - android:contentDescription="@string/content_description_color_down" - android:src="?themedArrowDownIcon" /> + <TextView + android:id="@+id/text_recognition_current_time" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="This is an activity time" /> - </LinearLayout> + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/rv_recognition_current_items" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginTop="16dp" /> + </LinearLayout> + </com.google.android.material.card.MaterialCardView> + <!-- <androidx.recyclerview.widget.RecyclerView android:id="@+id/customRecyclerView" android:layout_width="match_parent" - android:layout_height="match_parent" /> + android:layout_height="match_parent" />--> </LinearLayout> \ No newline at end of file diff --git a/mobile/src/main/res/layout/custom_row.xml b/mobile/src/main/res/layout/custom_row.xml index 6f5d2a24af3ec375ac0a60ce562ca31ad49d0f9f..9639908cd5bfc6bb3032668347e390f73d0b647a 100644 --- a/mobile/src/main/res/layout/custom_row.xml +++ b/mobile/src/main/res/layout/custom_row.xml @@ -1,65 +1,62 @@ <?xml version="1.0" encoding="utf-8"?> -<!--OpenLicht--> -<!--Layout for RecyclerView--> -<!--By Muhammad Ibrahim Rahman--> +<!--OpenLicht--><!--Layout for RecyclerView--><!--By Muhammad Ibrahim Rahman--> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" xmlns:card_view="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="6dp" - > + android:padding="6dp"> <androidx.cardview.widget.CardView - android:layout_width="match_parent" - android:layout_height="wrap_content" android:id="@+id/card_view" - card_view:cardUseCompatPadding="true" - card_view:cardCornerRadius="2dp" - - > - - <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="6dp" - > - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/recognitionDescription" - android:layout_alignParentTop="true" - android:textSize="30sp" - tools:text="Sample Text"/> - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/recognitionType" - android:layout_below="@+id/recognitionDescription" - tools:text="Sample Text"/> - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/recognitionActivity" - android:layout_below="@+id/recognitionType" - tools:text="Sample Text"/> - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/recognitionTimestamp" - android:layout_below="@+id/recognitionActivity" - tools:text="Sample Text"/> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/recognitionChangedState" - android:layout_below="@+id/recognitionTimestamp" - tools:text="Sample Text"/> - - </RelativeLayout> + card_view:cardCornerRadius="2dp" + card_view:cardUseCompatPadding="true"> + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:padding="6dp"> + + <TextView + android:id="@+id/recognitionDescription" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:textSize="30sp" + tools:text="Sample Text" /> + + <TextView + android:id="@+id/recognitionType" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/recognitionDescription" + tools:text="Sample Text" /> + + <TextView + android:id="@+id/recognitionActivity" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/recognitionType" + tools:text="Sample Text" /> + + <TextView + android:id="@+id/recognitionTimestamp" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/recognitionActivity" + tools:text="Sample Text" /> + + <TextView + android:id="@+id/recognitionChangedState" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/recognitionTimestamp" + tools:text="Sample Text" /> + + </RelativeLayout> </androidx.cardview.widget.CardView> </LinearLayout> diff --git a/mobile/src/main/res/menu/left_drawer.xml b/mobile/src/main/res/menu/left_drawer.xml index fa525a2954e00bbfe2d425bc7dca5d2b288c739f..0f916158c419dad9791d4083b2ab964ac60e818c 100644 --- a/mobile/src/main/res/menu/left_drawer.xml +++ b/mobile/src/main/res/menu/left_drawer.xml @@ -9,7 +9,7 @@ <item android:id="@+id/recognitions" android:icon="@drawable/ic_info_outline" - android:title="@string/recognitions" /> + android:title="@string/mainmenu_openhab_recognitions" /> <item android:id="@+id/notifications" diff --git a/mobile/src/main/res/values/strings.xml b/mobile/src/main/res/values/strings.xml index 2ec1e4513ed87754f0859c184b8c8878e5691d53..9b72e736a05a57a8e5fb63ddf7c26e5db22fecb6 100644 --- a/mobile/src/main/res/values/strings.xml +++ b/mobile/src/main/res/values/strings.xml @@ -12,7 +12,7 @@ <!-- Main menu items --> <string name="mainmenu_openhab_sitemaps">Sitemaps</string> <!-- OpenLicht --> - <string name="recognitions">Recognitions</string> + <string name="mainmenu_openhab_recognitions">Recognitions</string> <!-- /OpenLicht--> <string name="mainmenu_openhab_preferences">Settings</string> <string name="mainmenu_openhab_selectsitemap">Select default Sitemap</string>