Umstruckturierung und hinzufügung der Favoriten Ansicht

This commit is contained in:
m_broelemann 2021-01-03 23:43:39 +01:00
parent 0b6749e225
commit fcca066969
8 changed files with 97 additions and 64 deletions

View File

@ -14,6 +14,8 @@ import androidx.fragment.app.Fragment;
import com.android.volley.Response; import com.android.volley.Response;
import com.example.aped.MainActivity; import com.example.aped.MainActivity;
import com.example.aped.R; import com.example.aped.R;
import com.example.aped.ui.visualization.MainListViewAdapter;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.List; import java.util.List;
@ -48,7 +50,7 @@ public class AllIOsFragment extends Fragment {
View view = inflater.inflate(R.layout.fragment_all_ios, container, View view = inflater.inflate(R.layout.fragment_all_ios, container,
false); false);
ListView lv = (ListView) view.findViewById(R.id.idListView); ListView lv = (ListView) view.findViewById(R.id.idListView);
MainListViewAdapter mainListViewAdapter = new MainListViewAdapter(mainActivity); MainListViewAdapter mainListViewAdapter = new MainListViewAdapter(mainActivity,0);
lv.setAdapter(mainListViewAdapter); lv.setAdapter(mainListViewAdapter);
return view; return view;
} }

View File

@ -0,0 +1,40 @@
package com.example.aped.ui.favorite_IOs;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import com.example.aped.MainActivity;
import com.example.aped.R;
import com.example.aped.ui.visualization.MainListViewAdapter;
public class FavoriteIOsFragment extends Fragment {
/**
* Einbinden der MainActivity.
*/
private MainActivity mainActivity;
/**
*
* @param inflater
* @param container
* @param savedInstanceState
* @return root
*/
public View onCreateView(final @NonNull LayoutInflater inflater,
final ViewGroup container,
final Bundle savedInstanceState) {
this.mainActivity = (MainActivity) getActivity();
View view = inflater.inflate(R.layout.fragment_all_ios, container,
false);
ListView lv = (ListView) view.findViewById(R.id.idListView);
MainListViewAdapter mainListViewAdapter = new MainListViewAdapter(mainActivity,1);
lv.setAdapter(mainListViewAdapter);
return view;
}
}

View File

@ -1,5 +1,5 @@
/** /**
* Package for the IO user interface. * Package for the IO user interface.
* */ * */
package com.example.aped.ui.your_IOs; package com.example.aped.ui.favorite_IOs;

View File

@ -1,5 +1,6 @@
package com.example.aped.ui.all_IOs; package com.example.aped.ui.visualization;
import android.content.Intent;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
@ -9,6 +10,8 @@ import android.widget.TextView;
import com.android.volley.Response; import com.android.volley.Response;
import com.example.aped.MainActivity; import com.example.aped.MainActivity;
import com.example.aped.R; import com.example.aped.R;
import com.example.aped.ui.visualization.PinView;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.ArrayList; import java.util.ArrayList;
@ -19,18 +22,34 @@ public class MainListViewAdapter extends BaseAdapter {
private MainActivity mainActivity; private MainActivity mainActivity;
private int favoriteMode;
private String deviceName;
private int image; private int image;
private int favoriteImage; private int favoriteImage;
public MainListViewAdapter(MainActivity pMainActivity){ public MainListViewAdapter(MainActivity pMainActivity,int pFavoriteMode){
this.mainActivity = pMainActivity; this.mainActivity = pMainActivity;
this.favoriteMode = pFavoriteMode;
/**
* pFavoriteMode 0 oder 1 möglich
* 1 für wir befinden uns in Anzeige favorite IOs
* 0 für wir befinden uns in Anzeige all IOs
*/
} }
@Override @Override
public int getCount() { public int getCount() {
return mainActivity.xml.getDeviceNames().size(); int devices;
if (favoriteMode == 0){
devices = mainActivity.xml.getDeviceNames().size();
}else{
devices = mainActivity.favorite.getFavorites().size();
}
return devices;
} }
@Override @Override
@ -56,9 +75,14 @@ public class MainListViewAdapter extends BaseAdapter {
R.id.idLinearLayoutPins); R.id.idLinearLayoutPins);
ImageView buttonViewFavoriten = (ImageView) view.findViewById( ImageView buttonViewFavoriten = (ImageView) view.findViewById(
R.id.imageButtonFavoriten); R.id.imageButtonFavoriten);
if (favoriteMode == 0){
deviceName = mainActivity.xml.getDeviceNames().get(i);
}else{
deviceName = mainActivity.favorite.getFavorites().get(i);
}
if (mainActivity.favorite.getFavorites().contains( if (mainActivity.favorite.getFavorites().contains(
mainActivity.xml.getDeviceNames().get(i))) { deviceName)) {
favoriteImage = android.R.drawable.btn_star_big_on; favoriteImage = android.R.drawable.btn_star_big_on;
} else { } else {
favoriteImage = android.R.drawable.btn_star_big_off; favoriteImage = android.R.drawable.btn_star_big_off;
@ -68,20 +92,28 @@ public class MainListViewAdapter extends BaseAdapter {
new View.OnClickListener() { new View.OnClickListener() {
@Override @Override
public void onClick(final View view) { public void onClick(final View view) {
if (favoriteMode == 0){
deviceName = mainActivity.xml.getDeviceNames().get(i);
}else{
deviceName = mainActivity.favorite.getFavorites().get(i);
}
if (mainActivity.favorite.getFavorites().contains( if (mainActivity.favorite.getFavorites().contains(
mainActivity.xml.getDeviceNames().get(i))) { deviceName)) {
mainActivity.favorite.removeFavorite( mainActivity.favorite.removeFavorite(
mainActivity.xml.getDeviceNames().get(i)); deviceName);
favoriteImage = android.R.drawable.btn_star_big_off; favoriteImage = android.R.drawable.btn_star_big_off;
buttonViewFavoriten.setImageResource( buttonViewFavoriten.setImageResource(
favoriteImage); favoriteImage);
} else { } else {
mainActivity.favorite.addFavorite( mainActivity.favorite.addFavorite(
mainActivity.xml.getDeviceNames().get(i)); deviceName);
favoriteImage = android.R.drawable.btn_star_big_on; favoriteImage = android.R.drawable.btn_star_big_on;
buttonViewFavoriten.setImageResource( buttonViewFavoriten.setImageResource(
favoriteImage); favoriteImage);
} }
Intent intentneustart = mainActivity.getIntent();// gegen richtigen Befehl tauschen da nur die visualisierung neu gestartet werden soll
mainActivity.finish();
mainActivity.startActivity(intentneustart);
} }
}); });
//textViewPin.setText(((List<String>) (mainActivity.xml.getPort(mainActivity.xml.getDeviceNames().get(i))).get("pins")).get(0)); //textViewPin.setText(((List<String>) (mainActivity.xml.getPort(mainActivity.xml.getDeviceNames().get(i))).get("pins")).get(0));
@ -89,22 +121,26 @@ public class MainListViewAdapter extends BaseAdapter {
mainActivity.uebergabe.read(mainActivity.xml.getDeviceNames().get(i), mainActivity.uebergabe.read(deviceName,
new Response.Listener<JSONObject>() { new Response.Listener<JSONObject>() {
@Override @Override
public void onResponse(final JSONObject response) { public void onResponse(final JSONObject response) {
if (favoriteMode == 0){
deviceName = mainActivity.xml.getDeviceNames().get(i);
}else{
deviceName = mainActivity.favorite.getFavorites().get(i);
}
try { try {
JSONObject state = response.getJSONObject("state"); JSONObject state = response.getJSONObject("state");
List<String> pinValues = new ArrayList<>(); List<String> pinValues = new ArrayList<>();
for(String pinName: ((List<String>)mainActivity.xml. for(String pinName: ((List<String>)mainActivity.xml.
getPort(mainActivity.xml.getDeviceNames().get(i)). getPort(deviceName).
get("pins"))){ get("pins"))){
pinValues.add(state.getString(pinName)); pinValues.add(state.getString(pinName));
} }
PinView pinView = new PinView(mainActivity,mainActivity.xml. PinView pinView = new PinView(mainActivity,deviceName, pinValues);
getDeviceNames().get(i), pinValues);
for(int j = 0; j < ((List<String>)mainActivity.xml. for(int j = 0; j < ((List<String>)mainActivity.xml.
getPort(mainActivity.xml.getDeviceNames().get(i)). getPort(deviceName).
get("pins")).size(); j++) { get("pins")).size(); j++) {
linearLayoutPin.addView(pinView.getView(j)); linearLayoutPin.addView(pinView.getView(j));
} }
@ -119,7 +155,7 @@ public class MainListViewAdapter extends BaseAdapter {
textViewName.setText(mainActivity.xml.getDeviceNames().get(i)); textViewName.setText(deviceName);
buttonViewFavoriten.setImageResource(favoriteImage); buttonViewFavoriten.setImageResource(favoriteImage);
return view; return view;
} }

View File

@ -1,4 +1,4 @@
package com.example.aped.ui.all_IOs; package com.example.aped.ui.visualization;
import android.content.Intent; import android.content.Intent;
import android.view.View; import android.view.View;
@ -99,7 +99,7 @@ public class PinView {
+ " is not a output " , + " is not a output " ,
Toast.LENGTH_SHORT).show(); Toast.LENGTH_SHORT).show();
} }
Intent intentneustart = mainActivity.getIntent(); Intent intentneustart = mainActivity.getIntent();// gegen richtigen Befehl tauschen da nur die visualisierung neu gestartet werden soll
mainActivity.finish(); mainActivity.finish();
mainActivity.startActivity(intentneustart); mainActivity.startActivity(intentneustart);
} }

View File

@ -1,45 +0,0 @@
package com.example.aped.ui.your_IOs;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.example.aped.R;
public class YourIOsFragment extends Fragment {
/**Azeige Modell.*/
private YourIOsViewModel yourIOsViewModel;
/**
*
* @param inflater
* @param container
* @param savedInstanceState
* @return root
*/
public View onCreateView(final @NonNull LayoutInflater inflater,
final ViewGroup container,
final Bundle savedInstanceState) {
yourIOsViewModel =
new ViewModelProvider(this).get(YourIOsViewModel.class);
View root = inflater.inflate(R.layout.fragment_your_ios, container,
false);
final TextView textView = root.findViewById(R.id.text_your_IOs);
yourIOsViewModel.getText().observe(getViewLifecycleOwner(),
new Observer<String>() {
@Override
public void onChanged(final @Nullable String s) {
textView.setText(s);
}
});
return root;
}
}

View File

@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".ui.favorite_IOs.YourIOsFragment"> tools:context=".ui.favorite_IOs.FavoriteIOsFragment">
<TextView <TextView
android:id="@+id/text_your_IOs" android:id="@+id/text_your_IOs"

View File

@ -13,7 +13,7 @@
<fragment <fragment
android:id="@+id/nav_your_IOs" android:id="@+id/nav_your_IOs"
android:name="com.example.aped.ui.favorite_IOs.YourIOsFragment" android:name="com.example.aped.ui.favorite_IOs.FavoriteIOsFragment"
android:label="@string/menu_favorite_IOs" android:label="@string/menu_favorite_IOs"
tools:layout="@layout/fragment_your_ios" /> tools:layout="@layout/fragment_your_ios" />