diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 95aa5f7..e1d6f7b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -15,10 +15,12 @@ 200){ - Toast.makeText(getApplicationContext(), "Number must be between 5 and 200 inclusive", Toast.LENGTH_SHORT).show(); - return false; - } - } catch (NumberFormatException e){ + if (countInput < 5 || countInput > 200) { + Toast.makeText(getApplicationContext(), "Number must be between 5 and 200 inclusive", Toast.LENGTH_SHORT).show(); + return false; + } + } catch (NumberFormatException e) { Toast.makeText(getApplicationContext(), "Number must be between 5 and 200 inclusive", Toast.LENGTH_SHORT).show(); return false; } diff --git a/app/src/main/java/com/example/assignment1/dataActivity.java b/app/src/main/java/com/example/assignment1/dataActivity.java index 5af9ef0..1a3452e 100644 --- a/app/src/main/java/com/example/assignment1/dataActivity.java +++ b/app/src/main/java/com/example/assignment1/dataActivity.java @@ -1,16 +1,28 @@ package com.example.assignment1; +import android.os.Bundle; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.ArrayAdapter; +import android.widget.ListView; +import android.widget.TextView; + import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; -import android.os.Bundle; -import android.view.Menu; -import android.widget.TextView; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; public class dataActivity extends AppCompatActivity { protected Toolbar myToolbar; + protected TextView firstCounterButtonName; + protected TextView secondCounterButtonName; + protected TextView thirdCounterButtonName; + protected TextView firstCounter; protected TextView secondCounter; protected TextView thirdCounter; @@ -20,17 +32,23 @@ public class dataActivity extends AppCompatActivity { protected CountSharedPreferenceHelper countSharedPrefHelper; + protected boolean showingNames; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_data); myToolbar = (Toolbar) findViewById(R.id.data_toolbar); - firstCounter = findViewById(R.id.counter_1_data_name); - secondCounter = findViewById(R.id.counter_2_data_name); - thirdCounter = findViewById(R.id.counter_3_data_name); + firstCounterButtonName = findViewById(R.id.counter_1_data_name); + secondCounterButtonName = findViewById(R.id.counter_2_data_name); + thirdCounterButtonName = findViewById(R.id.counter_3_data_name); currentCounter = findViewById(R.id.allCounter); + firstCounter = findViewById(R.id.firstEventCounter); + secondCounter = findViewById(R.id.secondEventCounter); + thirdCounter = findViewById(R.id.thirdEventCounter); + counterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(dataActivity.this); countSharedPrefHelper = new CountSharedPreferenceHelper(dataActivity.this); @@ -41,17 +59,76 @@ public class dataActivity extends AppCompatActivity { } @Override - protected void onStart(){ + protected void onStart() { super.onStart(); - firstCounter.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST)); - secondCounter.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND)); - thirdCounter.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD)); + firstCounterButtonName.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST)); + secondCounterButtonName.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND)); + thirdCounterButtonName.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD)); currentCounter.setText(String.format(Integer.toString(countSharedPrefHelper.getCurrentCount()))); + + firstCounter.setText(countSharedPrefHelper.getNumberOfEventInEventsList('1')); + secondCounter.setText(countSharedPrefHelper.getNumberOfEventInEventsList('2')); + thirdCounter.setText(countSharedPrefHelper.getNumberOfEventInEventsList('3')); + + ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, constructListViewWithNames()); + + ListView listView = findViewById(R.id.eventsListView); + listView.setAdapter(adapter); + + // to toggle the events name + showingNames = false; } public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.data_activity_menu, menu); return true; } + + + // handles when no event names are toggled + public boolean onOptionsItemSelected(MenuItem item) { + Log.d("DATA_ACTIVITY", "CLICKED THE TOGGLE"); + int id = item.getItemId(); + + if (id == R.id.toggle_event_names) { + + ArrayAdapter adapter; + ListView listView; + + if (showingNames) { + adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, constructListViewWithNames()); + + listView = findViewById(R.id.eventsListView); + + } else { + adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, constructListViewWithoutNames()); + + listView = findViewById(R.id.eventsListView); + } + + listView.setAdapter(adapter); + + showingNames = !showingNames; + + return true; + } + + return super.onOptionsItemSelected(item); + } + + private String[] constructListViewWithNames() { + + Map replacements = new HashMap<>(); + replacements.put("1", counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST)); + replacements.put("2", counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND)); + replacements.put("3", counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD)); + + + return Arrays.stream(constructListViewWithoutNames()).map(value -> replacements.getOrDefault(value, value)).toArray(String[]::new); + } + + private String[] constructListViewWithoutNames() { + return countSharedPrefHelper.getEventsList().chars().mapToObj(c -> String.valueOf((char) c)).toArray(String[]::new); + } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_data.xml b/app/src/main/res/layout/activity_data.xml index c6764c7..a3e0c8a 100644 --- a/app/src/main/res/layout/activity_data.xml +++ b/app/src/main/res/layout/activity_data.xml @@ -34,21 +34,25 @@ tools:context=".SettingsActivity"> android:id="@+id/counter_1_data_name" android:layout_width="wrap_content" android:layout_height="match_parent" + android:textSize="24sp" /> @@ -62,22 +66,26 @@ tools:context=".SettingsActivity"> @@ -92,21 +100,25 @@ tools:context=".SettingsActivity"> android:id="@+id/counter_3_data_name" android:layout_width="wrap_content" android:layout_height="match_parent" + android:textSize="24sp" /> @@ -121,21 +133,24 @@ tools:context=".SettingsActivity"> - + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4ebdc32..d72c490 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -15,7 +15,7 @@ Maximum Counts Toggle Event Names - : + ": " " events" "Total events: " \ No newline at end of file