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.example.aped.MainActivity;
import com.example.aped.R;
import com.example.aped.ui.visualization.MainListViewAdapter;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.List;
@ -48,7 +50,7 @@ public class AllIOsFragment extends Fragment {
View view = inflater.inflate(R.layout.fragment_all_ios, container,
false);
ListView lv = (ListView) view.findViewById(R.id.idListView);
MainListViewAdapter mainListViewAdapter = new MainListViewAdapter(mainActivity);
MainListViewAdapter mainListViewAdapter = new MainListViewAdapter(mainActivity,0);
lv.setAdapter(mainListViewAdapter);
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 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.ViewGroup;
import android.widget.BaseAdapter;
@ -9,6 +10,8 @@ import android.widget.TextView;
import com.android.volley.Response;
import com.example.aped.MainActivity;
import com.example.aped.R;
import com.example.aped.ui.visualization.PinView;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
@ -19,18 +22,34 @@ public class MainListViewAdapter extends BaseAdapter {
private MainActivity mainActivity;
private int favoriteMode;
private String deviceName;
private int image;
private int favoriteImage;
public MainListViewAdapter(MainActivity pMainActivity){
public MainListViewAdapter(MainActivity pMainActivity,int pFavoriteMode){
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
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
@ -56,9 +75,14 @@ public class MainListViewAdapter extends BaseAdapter {
R.id.idLinearLayoutPins);
ImageView buttonViewFavoriten = (ImageView) view.findViewById(
R.id.imageButtonFavoriten);
if (favoriteMode == 0){
deviceName = mainActivity.xml.getDeviceNames().get(i);
}else{
deviceName = mainActivity.favorite.getFavorites().get(i);
}
if (mainActivity.favorite.getFavorites().contains(
mainActivity.xml.getDeviceNames().get(i))) {
deviceName)) {
favoriteImage = android.R.drawable.btn_star_big_on;
} else {
favoriteImage = android.R.drawable.btn_star_big_off;
@ -68,20 +92,28 @@ public class MainListViewAdapter extends BaseAdapter {
new View.OnClickListener() {
@Override
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(
mainActivity.xml.getDeviceNames().get(i))) {
deviceName)) {
mainActivity.favorite.removeFavorite(
mainActivity.xml.getDeviceNames().get(i));
deviceName);
favoriteImage = android.R.drawable.btn_star_big_off;
buttonViewFavoriten.setImageResource(
favoriteImage);
} else {
mainActivity.favorite.addFavorite(
mainActivity.xml.getDeviceNames().get(i));
deviceName);
favoriteImage = android.R.drawable.btn_star_big_on;
buttonViewFavoriten.setImageResource(
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));
@ -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>() {
@Override
public void onResponse(final JSONObject response) {
if (favoriteMode == 0){
deviceName = mainActivity.xml.getDeviceNames().get(i);
}else{
deviceName = mainActivity.favorite.getFavorites().get(i);
}
try {
JSONObject state = response.getJSONObject("state");
List<String> pinValues = new ArrayList<>();
for(String pinName: ((List<String>)mainActivity.xml.
getPort(mainActivity.xml.getDeviceNames().get(i)).
getPort(deviceName).
get("pins"))){
pinValues.add(state.getString(pinName));
}
PinView pinView = new PinView(mainActivity,mainActivity.xml.
getDeviceNames().get(i), pinValues);
PinView pinView = new PinView(mainActivity,deviceName, pinValues);
for(int j = 0; j < ((List<String>)mainActivity.xml.
getPort(mainActivity.xml.getDeviceNames().get(i)).
getPort(deviceName).
get("pins")).size(); 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);
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.view.View;
@ -99,7 +99,7 @@ public class PinView {
+ " is not a output " ,
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.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"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.favorite_IOs.YourIOsFragment">
tools:context=".ui.favorite_IOs.FavoriteIOsFragment">
<TextView
android:id="@+id/text_your_IOs"

View File

@ -13,7 +13,7 @@
<fragment
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"
tools:layout="@layout/fragment_your_ios" />