Skip to content
Snippets Groups Projects
Commit d6961cb4 authored by Julian Catoni's avatar Julian Catoni
Browse files

Updated recognitions icon, added ChangedItemsAdapter

parent ee05cc1d
No related branches found
No related tags found
No related merge requests found
...@@ -15,6 +15,13 @@ public class ChangedItem { ...@@ -15,6 +15,13 @@ public class ChangedItem {
@Expose @Expose
private String state; private String state;
private ChangedItemType type;
public enum ChangedItemType {
ColorLamp,
DimmableLamp,
}
public String getName() { public String getName() {
return name; return name;
} }
...@@ -38,4 +45,14 @@ public class ChangedItem { ...@@ -38,4 +45,14 @@ public class ChangedItem {
public void setState(String state) { public void setState(String state) {
this.state = state; this.state = state;
} }
public void setType(ChangedItemType type) {
this.type = type;
}
public ChangedItemType getType() {
if (type == null)
return ChangedItemType.ColorLamp;
return type;
}
} }
package org.openhab.habdroid.ui;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import org.openhab.habdroid.R;
import org.openhab.habdroid.model.ChangedItem;
import org.openhab.habdroid.model.Item;
import org.openhab.habdroid.model.Recognition;
import org.openhab.habdroid.model.Widget;
import java.text.DateFormat;
import java.util.List;
public class ChangedItemsAdapter extends RecyclerView.Adapter<ChangedItemsAdapter.CustomViewHolder> {
private List<ChangedItem> mChangedItems;
private Context mContext;
private static final int TYPE_GENERICITEM = 0;
private static final int TYPE_FRAME = 1;
private static final int TYPE_GROUP = 2;
private static final int TYPE_SWITCH = 3;
private static final int TYPE_TEXT = 4;
private static final int TYPE_SLIDER = 5;
private static final int TYPE_IMAGE = 6;
private static final int TYPE_SELECTION = 7;
private static final int TYPE_SECTIONSWITCH = 8;
private static final int TYPE_ROLLERSHUTTER = 9;
private static final int TYPE_SETPOINT = 10;
private static final int TYPE_CHART = 11;
private static final int TYPE_VIDEO = 12;
private static final int TYPE_WEB = 13;
private static final int TYPE_COLOR = 14;
private static final int TYPE_VIDEO_MJPEG = 15;
private static final int TYPE_LOCATION = 16;
public ChangedItemsAdapter(Context context, List<ChangedItem> changedItems){
mContext = context;
mChangedItems = changedItems;
}
class CustomViewHolder extends RecyclerView.ViewHolder {
public final View mView;
TextView recDescription;
TextView recType;
TextView recActivity;
TextView recTimestamp;
TextView recChangedState;
CustomViewHolder(View itemView) {
super(itemView);
mView = itemView;
recDescription = mView.findViewById(R.id.recognitionDescription);
recType = mView.findViewById(R.id.recognitionType);
recActivity = mView.findViewById(R.id.recognitionActivity);
recTimestamp = mView.findViewById(R.id.recognitionTimestamp);
recChangedState = mView.findViewById(R.id.recognitionChangedState);
}
}
@Override
public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
View view = layoutInflater.inflate(R.layout.custom_row, parent, false);
return new CustomViewHolder(view);
}
@Override
public void onBindViewHolder(CustomViewHolder holder, int position) {
ChangedItem item = mChangedItems.get(position);
}
@Override
public int getItemCount() {
return mChangedItems == null ? 0 : mChangedItems.size();
}
@Override
public int getItemViewType(int position) {
return getItemViewType(mChangedItems.get(position));
}
private int getItemViewType(ChangedItem changedItem) {
switch (changedItem.getType()) {
case ColorLamp:
return TYPE_COLOR;
case DimmableLamp:
return TYPE_SLIDER;
default:
throw new IllegalArgumentException("ChangedItem type " + changedItem.getType() + " is not known");
}
}
}
...@@ -24,6 +24,7 @@ import androidx.annotation.StringRes; ...@@ -24,6 +24,7 @@ import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import android.widget.TextView; import android.widget.TextView;
...@@ -41,6 +42,8 @@ public class RecognitionsActivity extends AppCompatActivity{ ...@@ -41,6 +42,8 @@ public class RecognitionsActivity extends AppCompatActivity{
private TextView mCurrentActivityTitle; private TextView mCurrentActivityTitle;
private TextView mCurrentActivityTime; private TextView mCurrentActivityTime;
private RecyclerView mCurrentActivityChangedItems; private RecyclerView mCurrentActivityChangedItems;
private ChangedItemsAdapter mChangedItemsAdapter;
ProgressDialog progressDialog; ProgressDialog progressDialog;
...@@ -99,6 +102,9 @@ public class RecognitionsActivity extends AppCompatActivity{ ...@@ -99,6 +102,9 @@ public class RecognitionsActivity extends AppCompatActivity{
mCurrentActivityTitle.setText(recognition.getDescription().toString()); mCurrentActivityTitle.setText(recognition.getDescription().toString());
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT, Locale.US); DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT, Locale.US);
mCurrentActivityTime.setText(dateFormat.format(new Date(recognition.getTimestamp()))); mCurrentActivityTime.setText(dateFormat.format(new Date(recognition.getTimestamp())));
mChangedItemsAdapter = new ChangedItemsAdapter(this.getApplicationContext(), recognition.getChangedItems());
mCurrentActivityChangedItems.setLayoutManager(new LinearLayoutManager(this));
mCurrentActivityChangedItems.setAdapter(mChangedItemsAdapter);
} }
/* /*
......
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M23,12l-2.44,-2.78 0.34,-3.68 -3.61,-0.82 -1.89,-3.18L12,3 8.6,1.54 6.71,4.72l-3.61,0.81 0.34,3.68L1,12l2.44,2.78 -0.34,3.69 3.61,0.82 1.89,3.18L12,21l3.4,1.46 1.89,-3.18 3.61,-0.82 -0.34,-3.68L23,12zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z"/>
</vector>
...@@ -73,15 +73,13 @@ ...@@ -73,15 +73,13 @@
android:id="@+id/text_recognition_current_title" android:id="@+id/text_recognition_current_title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="This is an activity"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="24sp" /> android:textSize="24sp" />
<TextView <TextView
android:id="@+id/text_recognition_current_time" android:id="@+id/text_recognition_current_time"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content" />
android:text="This is an activity time" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_recognition_current_items" android:id="@+id/rv_recognition_current_items"
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<item <item
android:id="@+id/recognitions" android:id="@+id/recognitions"
android:icon="@drawable/ic_info_outline" android:icon="@drawable/ic_new_releases_black_24dp"
android:title="@string/mainmenu_openhab_recognitions" /> android:title="@string/mainmenu_openhab_recognitions" />
<item <item
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment