diff --git a/app/src/main/java/com/example/assignment1/CountSharedPreferenceHelper.java b/app/src/main/java/com/example/assignment1/CountSharedPreferenceHelper.java new file mode 100644 index 0000000..05e75e6 --- /dev/null +++ b/app/src/main/java/com/example/assignment1/CountSharedPreferenceHelper.java @@ -0,0 +1,33 @@ +package com.example.assignment1; + +import android.content.Context; +import android.content.SharedPreferences; + +public class CountSharedPreferenceHelper { + + private SharedPreferences sharedPreferences; + + public CountSharedPreferenceHelper(Context context) { + sharedPreferences = context.getSharedPreferences("Count", Context.MODE_PRIVATE); + } + + public void saveMaxCount(int max_count) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putInt("MaximumCount", max_count); + editor.apply(); + } + + public int getMaxCount() { + return sharedPreferences.getInt("MaximumCount", 5); + } + + public void saveCurrentCount(int current_count) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putInt("CurrentCount", current_count); + editor.apply(); + } + + public int getCurrentCount() { + return sharedPreferences.getInt("CurrentCount", 0); + } +} diff --git a/app/src/main/java/com/example/assignment1/CounterButtonSharedPreferenceHelper.java b/app/src/main/java/com/example/assignment1/CounterButtonSharedPreferenceHelper.java index 87ca5b8..649ef3e 100644 --- a/app/src/main/java/com/example/assignment1/CounterButtonSharedPreferenceHelper.java +++ b/app/src/main/java/com/example/assignment1/CounterButtonSharedPreferenceHelper.java @@ -9,8 +9,8 @@ public class CounterButtonSharedPreferenceHelper { private SharedPreferences sharedPreferences; - public CounterButtonSharedPreferenceHelper(Context context, CounterButton counterButton) { - sharedPreferences = context.getSharedPreferences(counterButton.getCounterButton(), Context.MODE_PRIVATE); + public CounterButtonSharedPreferenceHelper(Context context) { + sharedPreferences = context.getSharedPreferences("counter_button", Context.MODE_PRIVATE); } public void saveCounterButtonName(CounterButton counterButton, String eventButtonName) { @@ -22,4 +22,15 @@ public class CounterButtonSharedPreferenceHelper { public String getCounterButtonName(CounterButton counterButton) { return sharedPreferences.getString(counterButton.getCounterButton(), null); } + + public void saveCounterButtonCount(CounterButton counterButton, String eventButtonName){ + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putString(counterButton.getCounterButton() + "_count", eventButtonName); + editor.apply(); + } + + public int getCounterButtonCount(CounterButton counterButton) { + return sharedPreferences.getInt(counterButton.getCounterButton() + "_count", -1); + } + } \ No newline at end of file diff --git a/app/src/main/java/com/example/assignment1/MainActivity.java b/app/src/main/java/com/example/assignment1/MainActivity.java index 292ecae..52ca2ca 100644 --- a/app/src/main/java/com/example/assignment1/MainActivity.java +++ b/app/src/main/java/com/example/assignment1/MainActivity.java @@ -11,15 +11,15 @@ import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { - protected CounterButtonSharedPreferenceHelper firstCounterButtonSharedPrefHelper; - protected CounterButtonSharedPreferenceHelper secondCounterButtonSharedPrefHelper; - protected CounterButtonSharedPreferenceHelper thirdCounterButtonSharedPrefHelper; + protected CounterButtonSharedPreferenceHelper counterButtonSharedPrefHelper; protected TextView counter; - protected MaxCountSharedPreferenceHelper maxCountSharedPreferenceHelper; + protected CountSharedPreferenceHelper countSharedPreferenceHelper; - protected Button settingsButton = null; + protected Button settingsButton; + + protected Button showCountsButton; protected Button firstCounterButton; protected Button secondCounterButton; @@ -31,6 +31,7 @@ public class MainActivity extends AppCompatActivity { setContentView(R.layout.activity_main); settingsButton = findViewById(R.id.settings_button); + showCountsButton = findViewById(R.id.show_counts_button); firstCounterButton = findViewById(R.id.FirstEventButton); secondCounterButton = findViewById(R.id.SecondEventButton); @@ -38,10 +39,8 @@ public class MainActivity extends AppCompatActivity { counter = findViewById(R.id.counter); - firstCounterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.FIRST); - secondCounterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.SECOND); - thirdCounterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.THIRD); - maxCountSharedPreferenceHelper = new MaxCountSharedPreferenceHelper(MainActivity.this); + counterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(MainActivity.this); + countSharedPreferenceHelper = new CountSharedPreferenceHelper(MainActivity.this); settingsButton.setOnClickListener(new View.OnClickListener() { @@ -52,6 +51,14 @@ public class MainActivity extends AppCompatActivity { } }); + showCountsButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // Create an Intent to start the SettingsActivity + goToDataActivity(); + } + }); + firstCounterButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -80,16 +87,17 @@ public class MainActivity extends AppCompatActivity { super.onStart(); if( - firstCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST) == null || - secondCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND) == null || - thirdCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD) == null) { + counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST) == null || + counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND) == null || + counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD) == null) { goToSettingsActivity(); } else { - firstCounterButton.setText(firstCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST)); - secondCounterButton.setText(secondCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND)); - thirdCounterButton.setText(thirdCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD)); + firstCounterButton.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST)); + secondCounterButton.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND)); + thirdCounterButton.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD)); + counter.setText(String.format(Integer.toString(countSharedPreferenceHelper.getCurrentCount()))); } } @@ -99,13 +107,20 @@ public class MainActivity extends AppCompatActivity { startActivity(intent); } + private void goToDataActivity() { + Intent intent = new Intent(MainActivity.this, dataActivity.class); + startActivity(intent); + } + private void incrementCounter(){ try{ - if (Integer.parseInt(counter.getText().toString()) < Integer.parseInt(maxCountSharedPreferenceHelper.getMaxCount())){ + if (Integer.parseInt(counter.getText().toString()) < countSharedPreferenceHelper.getMaxCount()){ String currentValue = counter.getText().toString(); int intValue = Integer.parseInt(currentValue); int newValue = intValue + 1; counter.setText(String.valueOf(newValue)); + + countSharedPreferenceHelper.saveCurrentCount(newValue); } else { Toast.makeText(getApplicationContext(), "Maximum count has been reached", Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/java/com/example/assignment1/MaxCountSharedPreferenceHelper.java b/app/src/main/java/com/example/assignment1/MaxCountSharedPreferenceHelper.java deleted file mode 100644 index 8c3cc65..0000000 --- a/app/src/main/java/com/example/assignment1/MaxCountSharedPreferenceHelper.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.assignment1; - -import android.content.Context; -import android.content.SharedPreferences; - -public class MaxCountSharedPreferenceHelper { - - private SharedPreferences sharedPreferences; - - public MaxCountSharedPreferenceHelper(Context context) { - sharedPreferences = context.getSharedPreferences("MaximumCount", Context.MODE_PRIVATE); - } - - public void saveMaxCount(String max_count) { - SharedPreferences.Editor editor = sharedPreferences.edit(); - editor.putString("MaximumCount", max_count); - editor.apply(); - } - - public String getMaxCount() { - return sharedPreferences.getString("MaximumCount", null); - } -} diff --git a/app/src/main/java/com/example/assignment1/SettingsActivity.java b/app/src/main/java/com/example/assignment1/SettingsActivity.java index ecc75b2..6d063e1 100644 --- a/app/src/main/java/com/example/assignment1/SettingsActivity.java +++ b/app/src/main/java/com/example/assignment1/SettingsActivity.java @@ -19,11 +19,9 @@ public class SettingsActivity extends AppCompatActivity { protected int maxLength = 16; - protected CounterButtonSharedPreferenceHelper firstCounterButtonSharedPrefHelper; - protected CounterButtonSharedPreferenceHelper secondCounterButtonSharedPrefHelper; - protected CounterButtonSharedPreferenceHelper thirdCounterButtonSharedPrefHelper; + protected CounterButtonSharedPreferenceHelper counterButtonSharedPrefHelper; - protected MaxCountSharedPreferenceHelper maxCountSharedPrefHelper; + protected CountSharedPreferenceHelper countSharedPrefHelper; protected EditText counter_1_name_edit_text; protected EditText counter_2_name_edit_text; @@ -48,10 +46,8 @@ public class SettingsActivity extends AppCompatActivity { counter_2_name_edit_text.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxLength)}); counter_3_name_edit_text.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxLength)}); - firstCounterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(SettingsActivity.this, CounterButton.FIRST); - secondCounterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(SettingsActivity.this, CounterButton.SECOND); - thirdCounterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(SettingsActivity.this, CounterButton.THIRD); - maxCountSharedPrefHelper = new MaxCountSharedPreferenceHelper(SettingsActivity.this); + counterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(SettingsActivity.this); + countSharedPrefHelper = new CountSharedPreferenceHelper(SettingsActivity.this); // enable toolbar/actionbar setSupportActionBar(myToolbar); @@ -68,18 +64,18 @@ public class SettingsActivity extends AppCompatActivity { super.onStart(); if( - firstCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST) == null || - secondCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND) == null || - thirdCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD) == null || - maxCountSharedPrefHelper.getMaxCount() == null) { + counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST) == null || + counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND) == null || + counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD) == null || + countSharedPrefHelper.getMaxCount() == -1) { goToSettingsActivityEditMode(); } else { - counter_1_name_edit_text.setHint(firstCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST)); - counter_2_name_edit_text.setHint(secondCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND)); - counter_3_name_edit_text.setHint(thirdCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD)); - maximum_counts_edit_text.setHint(maxCountSharedPrefHelper.getMaxCount()); + counter_1_name_edit_text.setHint(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST)); + counter_2_name_edit_text.setHint(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND)); + counter_3_name_edit_text.setHint(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD)); + maximum_counts_edit_text.setHint(String.format(Integer.toString(countSharedPrefHelper.getCurrentCount()))); } } @@ -124,10 +120,10 @@ public class SettingsActivity extends AppCompatActivity { counter_3_name_edit_text.setEnabled(true); maximum_counts_edit_text.setEnabled(true); - counter_1_name_edit_text.setText(firstCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST)); - counter_2_name_edit_text.setText(secondCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND)); - counter_3_name_edit_text.setText(thirdCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD)); - maximum_counts_edit_text.setText(maxCountSharedPrefHelper.getMaxCount()); + counter_1_name_edit_text.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST)); + counter_2_name_edit_text.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND)); + counter_3_name_edit_text.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD)); + maximum_counts_edit_text.setText(String.format(Integer.toString(countSharedPrefHelper.getMaxCount()))); saveButton.setOnClickListener(new View.OnClickListener() { @Override @@ -138,12 +134,12 @@ public class SettingsActivity extends AppCompatActivity { String text1 = counter_1_name_edit_text.getText().toString(); String text2 = counter_2_name_edit_text.getText().toString(); String text3 = counter_3_name_edit_text.getText().toString(); - String maximum_count = maximum_counts_edit_text.getText().toString(); + int maximum_count = Integer.parseInt(maximum_counts_edit_text.getText().toString()); - firstCounterButtonSharedPrefHelper.saveCounterButtonName(CounterButton.FIRST, text1); - secondCounterButtonSharedPrefHelper.saveCounterButtonName(CounterButton.SECOND, text2); - thirdCounterButtonSharedPrefHelper.saveCounterButtonName(CounterButton.THIRD, text3); - maxCountSharedPrefHelper.saveMaxCount(maximum_count); + counterButtonSharedPrefHelper.saveCounterButtonName(CounterButton.FIRST, text1); + counterButtonSharedPrefHelper.saveCounterButtonName(CounterButton.SECOND, text2); + counterButtonSharedPrefHelper.saveCounterButtonName(CounterButton.THIRD, text3); + countSharedPrefHelper.saveMaxCount(maximum_count); goToSettingsActivityDisplayMode(); } diff --git a/app/src/main/java/com/example/assignment1/dataActivity.java b/app/src/main/java/com/example/assignment1/dataActivity.java index cc032b9..5af9ef0 100644 --- a/app/src/main/java/com/example/assignment1/dataActivity.java +++ b/app/src/main/java/com/example/assignment1/dataActivity.java @@ -1,14 +1,57 @@ package com.example.assignment1; import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import android.os.Bundle; +import android.view.Menu; +import android.widget.TextView; public class dataActivity extends AppCompatActivity { + protected Toolbar myToolbar; + + protected TextView firstCounter; + protected TextView secondCounter; + protected TextView thirdCounter; + + protected TextView currentCounter; + protected CounterButtonSharedPreferenceHelper counterButtonSharedPrefHelper; + + protected CountSharedPreferenceHelper countSharedPrefHelper; + @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); + currentCounter = findViewById(R.id.allCounter); + + counterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(dataActivity.this); + countSharedPrefHelper = new CountSharedPreferenceHelper(dataActivity.this); + + setSupportActionBar(myToolbar); + + assert getSupportActionBar() != null; + getSupportActionBar().setDisplayHomeAsUpEnabled(true); //show back button + } + + @Override + protected void onStart(){ + super.onStart(); + + firstCounter.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST)); + secondCounter.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND)); + thirdCounter.setText(counterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD)); + currentCounter.setText(String.format(Integer.toString(countSharedPrefHelper.getCurrentCount()))); + } + + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.data_activity_menu, menu); + return true; } } \ 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 1cfac90..c6764c7 100644 --- a/app/src/main/res/layout/activity_data.xml +++ b/app/src/main/res/layout/activity_data.xml @@ -1,9 +1,141 @@ - + - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index a361bf5..a68d072 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -80,6 +80,7 @@