diff --git a/app/src/main/java/de/jg_cody/Teraplex/ActivityCricketers.java b/app/src/main/java/de/jg_cody/Teraplex/ActivityCricketers.java new file mode 100644 index 0000000..27de3b4 --- /dev/null +++ b/app/src/main/java/de/jg_cody/Teraplex/ActivityCricketers.java @@ -0,0 +1,32 @@ +package de.jg_cody.Teraplex; + + +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.ArrayList; + +public class ActivityCricketers extends AppCompatActivity { + + RecyclerView recyclerCricketers; + ArrayList cricketersList = new ArrayList<>(); + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_cricketers); + + recyclerCricketers = findViewById(R.id.recycler_cricketers); + + LinearLayoutManager layoutManager = new LinearLayoutManager(this,RecyclerView.VERTICAL,false); + recyclerCricketers.setLayoutManager(layoutManager); + + cricketersList = (ArrayList) getIntent().getExtras().getSerializable("list"); + + recyclerCricketers.setAdapter(new CricketerAdapter(cricketersList)); + + } +} \ No newline at end of file diff --git a/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialog.java b/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialog.java index 0d286bc..1e659f9 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialog.java +++ b/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialog.java @@ -26,7 +26,7 @@ public class AddButtonDialog extends DialogFragment { View view = inflater.inflate(R.layout.addbuttondialog, null); builder.setView(view) - .setTitle("BUTTON") + .setTitle("SINGLE BUTTON") .setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { diff --git a/app/src/main/java/de/jg_cody/Teraplex/AddButtonsDialog.java b/app/src/main/java/de/jg_cody/Teraplex/AddButtonsDialog.java new file mode 100644 index 0000000..26f55ad --- /dev/null +++ b/app/src/main/java/de/jg_cody/Teraplex/AddButtonsDialog.java @@ -0,0 +1,64 @@ +package de.jg_cody.Teraplex; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.EditText; + +import androidx.fragment.app.DialogFragment; + + +public class AddButtonsDialog extends DialogFragment { + private EditText editTextUsername; + private EditText editTextPassword; + private AddButtonsDialogListener listener; + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + + LayoutInflater inflater = getActivity().getLayoutInflater(); + View view = inflater.inflate(R.layout.addbuttonsdialog, null); + + builder.setView(view) + .setTitle("ON/OFF BUTTON") + .setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + + } + }) + .setPositiveButton("ADD", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + String username = editTextUsername.getText().toString(); + String password = editTextPassword.getText().toString(); + listener.applyTexts(username, password); + } + }); + + editTextUsername = view.findViewById(R.id.button_name); + editTextPassword = view.findViewById(R.id.button_command); + + return builder.create(); + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + + try { + listener = (AddButtonsDialogListener) context; + } catch (ClassCastException e) { + + } + } + + public interface AddButtonsDialogListener { + void applyTexts(String username, String password); + } +} \ No newline at end of file diff --git a/app/src/main/java/de/jg_cody/Teraplex/Cricketer.java b/app/src/main/java/de/jg_cody/Teraplex/Cricketer.java new file mode 100644 index 0000000..048086f --- /dev/null +++ b/app/src/main/java/de/jg_cody/Teraplex/Cricketer.java @@ -0,0 +1,34 @@ +package de.jg_cody.Teraplex; + +import java.io.Serializable; + +public class Cricketer implements Serializable { + + public String cricketerName; + public String teamName; + + public Cricketer() { + + } + + public Cricketer(String cricketerName, String teamName) { + this.cricketerName = cricketerName; + this.teamName = teamName; + } + + public String getCricketerName() { + return cricketerName; + } + + public void setCricketerName(String cricketerName) { + this.cricketerName = cricketerName; + } + + public String getTeamName() { + return teamName; + } + + public void setTeamName(String teamName) { + this.teamName = teamName; + } +} \ No newline at end of file diff --git a/app/src/main/java/de/jg_cody/Teraplex/CricketerAdapter.java b/app/src/main/java/de/jg_cody/Teraplex/CricketerAdapter.java new file mode 100644 index 0000000..040fa2b --- /dev/null +++ b/app/src/main/java/de/jg_cody/Teraplex/CricketerAdapter.java @@ -0,0 +1,57 @@ +package de.jg_cody.Teraplex; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.ArrayList; + +public class CricketerAdapter extends RecyclerView.Adapter { + + ArrayList cricketersList = new ArrayList<>(); + + public CricketerAdapter(ArrayList cricketersList) { + this.cricketersList = cricketersList; + } + + @NonNull + @Override + public CricketerView onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_cricketer,parent,false); + + return new CricketerView(view); + } + + @Override + public void onBindViewHolder(@NonNull CricketerView holder, int position) { + + Cricketer cricketer = cricketersList.get(position); + holder.textCricketerName.setText(cricketer.getCricketerName()); + holder.textTeamName.setText(cricketer.getTeamName()); + + + } + + @Override + public int getItemCount() { + return cricketersList.size(); + } + + public class CricketerView extends RecyclerView.ViewHolder{ + + TextView textCricketerName,textTeamName; + public CricketerView(@NonNull View itemView) { + super(itemView); + + textCricketerName = (TextView)itemView.findViewById(R.id.text_cricketer_name); + textTeamName = (TextView)itemView.findViewById(R.id.text_team_name); + + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java index c99d956..e432065 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java +++ b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java @@ -15,7 +15,11 @@ import android.util.TypedValue; import android.view.MenuItem; import android.view.View; import android.view.Menu; +import android.widget.ArrayAdapter; import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; @@ -23,6 +27,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.navigation.NavigationView; import com.google.android.material.snackbar.Snackbar; +import androidx.appcompat.widget.AppCompatSpinner; import androidx.fragment.app.FragmentTransaction; import androidx.navigation.NavController; import androidx.navigation.Navigation; @@ -32,6 +37,9 @@ import androidx.drawerlayout.widget.DrawerLayout; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; +import java.util.ArrayList; +import java.util.List; + import de.jg_cody.Teraplex.ui.Credits.CreditsFragment; import de.jg_cody.Teraplex.ui.Einstellungen.EinstellungenFragment; import de.jg_cody.Teraplex.ui.Konsole.KonsoleFragment; @@ -55,7 +63,14 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A addfab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - openDialog(); + openDialog1(); + } + }); + FloatingActionButton removefab = findViewById(R.id.removebutton_fab); + removefab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + openDialog2(); } }); @@ -121,7 +136,11 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A startActivity(startMain); } - public void openDialog() { + public void openDialog1() { + AddButtonsDialog AddButtonsDialog = new AddButtonsDialog(); + AddButtonsDialog.show(getSupportFragmentManager(), "example dialog"); + } + public void openDialog2() { AddButtonDialog AddButtonDialog = new AddButtonDialog(); AddButtonDialog.show(getSupportFragmentManager(), "example dialog"); } diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java index 0977978..cd599a8 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java @@ -4,32 +4,161 @@ 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 de.jg_cody.Teraplex.ActivityCricketers; +import de.jg_cody.Teraplex.Cricketer; import de.jg_cody.Teraplex.R; -public class FlurFragment extends Fragment { + +import androidx.appcompat.widget.AppCompatSpinner; + +import android.content.Intent; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.List; + + +public class FlurFragment extends Fragment implements View.OnClickListener { private FlurViewModel flurViewModel; + LinearLayout layoutList; + Button buttonAdd; + Button buttonSubmitList; + + List teamList = new ArrayList<>(); + ArrayList cricketersList = new ArrayList<>(); + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { flurViewModel = new ViewModelProvider(this).get(FlurViewModel.class); View root = inflater.inflate(R.layout.fragment_flur, container, false); - final TextView textView = root.findViewById(R.id.text_flur); - flurViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { - @Override - public void onChanged(@Nullable String s) { - textView.setText(s); - } - }); + + layoutList = root.findViewById(R.id.layout_list); + buttonAdd = root.findViewById(R.id.button_add); + buttonSubmitList = root.findViewById(R.id.button_submit_list); + + buttonAdd.setOnClickListener(this); + buttonSubmitList.setOnClickListener(this); + + + teamList.add("Team"); + teamList.add("India"); + teamList.add("Australia"); + teamList.add("England"); + + return root; } + @Override + public void onClick(View v) { + + switch (v.getId()){ + + case R.id.button_add: + + addView(); + + break; + + case R.id.button_submit_list: + + if(checkIfValidAndRead()){ + + Intent intent = new Intent( getContext(), ActivityCricketers.class); + Bundle bundle = new Bundle(); + bundle.putSerializable("list",cricketersList); + intent.putExtras(bundle); + startActivity(intent); + + } + + break; + + } + + + } + + private boolean checkIfValidAndRead() { + cricketersList.clear(); + boolean result = true; + + for(int i=0;i + + diff --git a/app/src/main/res/layout-v23/app_bar_main.xml b/app/src/main/res/layout-v23/app_bar_main.xml index 9cdb77c..34f9d78 100644 --- a/app/src/main/res/layout-v23/app_bar_main.xml +++ b/app/src/main/res/layout-v23/app_bar_main.xml @@ -37,14 +37,15 @@ android:src="@drawable/add_black_24dp" /> + android:src="@drawable/add_black_24dp"/> + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/addbuttondialog.xml b/app/src/main/res/layout/addbuttondialog.xml index b5f6864..32d41ee 100644 --- a/app/src/main/res/layout/addbuttondialog.xml +++ b/app/src/main/res/layout/addbuttondialog.xml @@ -4,6 +4,15 @@ android:layout_height="match_parent" android:padding="16dp"> + + \ No newline at end of file diff --git a/app/src/main/res/layout/addbuttonsdialog.xml b/app/src/main/res/layout/addbuttonsdialog.xml new file mode 100644 index 0000000..1de9c02 --- /dev/null +++ b/app/src/main/res/layout/addbuttonsdialog.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_flur.xml b/app/src/main/res/layout/fragment_flur.xml index 43f92dd..b0da252 100644 --- a/app/src/main/res/layout/fragment_flur.xml +++ b/app/src/main/res/layout/fragment_flur.xml @@ -1,252 +1,58 @@ - + android:background="@drawable/background" + android:orientation="vertical" + tools:context=".MainActivity"> - - - - + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/row_cricketer.xml b/app/src/main/res/layout/row_cricketer.xml new file mode 100644 index 0000000..bf845ee --- /dev/null +++ b/app/src/main/res/layout/row_cricketer.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/singlebutton.xml b/app/src/main/res/layout/singlebutton.xml new file mode 100644 index 0000000..4f46c13 --- /dev/null +++ b/app/src/main/res/layout/singlebutton.xml @@ -0,0 +1,39 @@ + + + + +