Finished SettingsActivity
This commit is contained in:
parent
0a1f202032
commit
d0f5daf83b
@ -9,22 +9,29 @@ import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
protected CounterButtonSharedPreferenceHelper firstEventButton;
|
||||
protected CounterButtonSharedPreferenceHelper secondEventButton;
|
||||
protected CounterButtonSharedPreferenceHelper thirdEventButton;
|
||||
protected CounterButtonSharedPreferenceHelper firstCounterButtonSharedPrefHelper;
|
||||
protected CounterButtonSharedPreferenceHelper secondCounterButtonSharedPrefHelper;
|
||||
protected CounterButtonSharedPreferenceHelper thirdCounterButtonSharedPrefHelper;
|
||||
|
||||
protected Button settingsButton = null;
|
||||
|
||||
protected Button firstCounterButton;
|
||||
protected Button secondCounterButton;
|
||||
protected Button thirdCounterButton;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
|
||||
settingsButton = findViewById(R.id.settings_button);
|
||||
firstCounterButton = findViewById(R.id.FirstEventButton);
|
||||
secondCounterButton = findViewById(R.id.SecondEventButton);
|
||||
thirdCounterButton = findViewById(R.id.ThirdEventButton);
|
||||
|
||||
firstEventButton = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.FIRST);
|
||||
secondEventButton = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.SECOND);
|
||||
thirdEventButton = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.THIRD);
|
||||
firstCounterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.FIRST);
|
||||
secondCounterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.SECOND);
|
||||
thirdCounterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.THIRD);
|
||||
|
||||
settingsButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
@ -41,12 +48,18 @@ public class MainActivity extends AppCompatActivity {
|
||||
super.onStart();
|
||||
|
||||
if(
|
||||
firstEventButton.getCounterButtonName(CounterButton.FIRST) == null ||
|
||||
secondEventButton.getCounterButtonName(CounterButton.SECOND) == null ||
|
||||
thirdEventButton.getCounterButtonName(CounterButton.THIRD) == null) {
|
||||
firstCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST) == null ||
|
||||
secondCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND) == null ||
|
||||
thirdCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD) == null) {
|
||||
|
||||
goToSettingsActivity();
|
||||
|
||||
} else {
|
||||
firstCounterButton.setText(firstCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST));
|
||||
secondCounterButton.setText(secondCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND));
|
||||
thirdCounterButton.setText(thirdCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void goToSettingsActivity() {
|
||||
|
@ -0,0 +1,23 @@
|
||||
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);
|
||||
}
|
||||
}
|
@ -1,10 +1,13 @@
|
||||
package com.example.assignment1;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.text.InputFilter;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
@ -14,9 +17,14 @@ public class SettingsActivity extends AppCompatActivity {
|
||||
protected Button saveButton;
|
||||
protected Toolbar myToolbar;
|
||||
|
||||
protected CounterButtonSharedPreferenceHelper firstEventButton;
|
||||
protected CounterButtonSharedPreferenceHelper secondEventButton;
|
||||
protected CounterButtonSharedPreferenceHelper thirdEventButton;
|
||||
protected int maxLength = 16;
|
||||
|
||||
protected CounterButtonSharedPreferenceHelper firstCounterButtonSharedPrefHelper;
|
||||
protected CounterButtonSharedPreferenceHelper secondCounterButtonSharedPrefHelper;
|
||||
protected CounterButtonSharedPreferenceHelper thirdCounterButtonSharedPrefHelper;
|
||||
|
||||
protected MaxCountSharedPreferenceHelper maxCountSharedPrefHelper;
|
||||
|
||||
protected EditText counter_1_name_edit_text;
|
||||
protected EditText counter_2_name_edit_text;
|
||||
protected EditText counter_3_name_edit_text;
|
||||
@ -36,9 +44,14 @@ public class SettingsActivity extends AppCompatActivity {
|
||||
counter_3_name_edit_text = (EditText) findViewById(R.id.counter_3_edit_text);
|
||||
maximum_counts_edit_text = (EditText) findViewById(R.id.maximum_counts_edit_text);
|
||||
|
||||
firstEventButton = new CounterButtonSharedPreferenceHelper(SettingsActivity.this, CounterButton.FIRST);
|
||||
secondEventButton = new CounterButtonSharedPreferenceHelper(SettingsActivity.this, CounterButton.SECOND);
|
||||
thirdEventButton = new CounterButtonSharedPreferenceHelper(SettingsActivity.this, CounterButton.THIRD);
|
||||
counter_1_name_edit_text.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxLength)});
|
||||
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);
|
||||
|
||||
// enable toolbar/actionbar
|
||||
setSupportActionBar(myToolbar);
|
||||
@ -46,6 +59,51 @@ public class SettingsActivity extends AppCompatActivity {
|
||||
assert getSupportActionBar() != null;
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true); //show back button
|
||||
|
||||
goToSettingsActivityDisplayMode();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart()
|
||||
{
|
||||
super.onStart();
|
||||
|
||||
if(
|
||||
firstCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST) == null ||
|
||||
secondCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND) == null ||
|
||||
thirdCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD) == null) {
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
|
||||
if (id == R.id.edit_settings) {
|
||||
// Handle the settings item click (e.g., open a settings activity).
|
||||
goToSettingsActivityEditMode();
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.settings_activity_menu, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
protected void goToSettingsActivityDisplayMode(){
|
||||
// no save button in Display Mode
|
||||
saveButton.setVisibility(View.INVISIBLE);
|
||||
|
||||
@ -56,15 +114,49 @@ public class SettingsActivity extends AppCompatActivity {
|
||||
maximum_counts_edit_text.setEnabled(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart()
|
||||
{
|
||||
super.onStart();
|
||||
protected void goToSettingsActivityEditMode(){
|
||||
|
||||
counter_1_name_edit_text.setEnabled(true);
|
||||
counter_2_name_edit_text.setEnabled(true);
|
||||
counter_3_name_edit_text.setEnabled(true);
|
||||
maximum_counts_edit_text.setEnabled(true);
|
||||
|
||||
saveButton.setVisibility(View.VISIBLE);
|
||||
|
||||
saveButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// counter button strings are checked statically in the activity XML file
|
||||
if (check_max_count_input()){
|
||||
// Get the text from EditText fields
|
||||
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();
|
||||
|
||||
firstCounterButtonSharedPrefHelper.saveCounterButtonName(CounterButton.FIRST, text1);
|
||||
secondCounterButtonSharedPrefHelper.saveCounterButtonName(CounterButton.SECOND, text2);
|
||||
thirdCounterButtonSharedPrefHelper.saveCounterButtonName(CounterButton.THIRD, text3);
|
||||
maxCountSharedPrefHelper.saveMaxCount(maximum_count);
|
||||
|
||||
goToSettingsActivityDisplayMode();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.settings_activity_menu, menu);
|
||||
protected Boolean check_max_count_input(){
|
||||
try {
|
||||
int countInput = Integer.parseInt(maximum_counts_edit_text.getText().toString());
|
||||
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;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
@ -46,6 +46,7 @@
|
||||
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
|
||||
android:hint="@string/counter_1_name"
|
||||
android:inputType="text"
|
||||
android:maxLines="1"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@ -71,6 +72,7 @@
|
||||
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
|
||||
android:hint="@string/counter_2_name"
|
||||
android:inputType="text"
|
||||
android:maxLines="1"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@ -96,6 +98,7 @@
|
||||
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
|
||||
android:hint="@string/counter_3_name"
|
||||
android:inputType="text"
|
||||
android:maxLines="1"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@ -121,6 +124,7 @@
|
||||
android:digits="0123456789"
|
||||
android:hint="@string/maximum_counts"
|
||||
android:inputType="number"
|
||||
android:maxLines="1"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user