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 {
|
public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
protected CounterButtonSharedPreferenceHelper firstEventButton;
|
protected CounterButtonSharedPreferenceHelper firstCounterButtonSharedPrefHelper;
|
||||||
protected CounterButtonSharedPreferenceHelper secondEventButton;
|
protected CounterButtonSharedPreferenceHelper secondCounterButtonSharedPrefHelper;
|
||||||
protected CounterButtonSharedPreferenceHelper thirdEventButton;
|
protected CounterButtonSharedPreferenceHelper thirdCounterButtonSharedPrefHelper;
|
||||||
|
|
||||||
protected Button settingsButton = null;
|
protected Button settingsButton = null;
|
||||||
|
|
||||||
|
protected Button firstCounterButton;
|
||||||
|
protected Button secondCounterButton;
|
||||||
|
protected Button thirdCounterButton;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
|
|
||||||
settingsButton = findViewById(R.id.settings_button);
|
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);
|
firstCounterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.FIRST);
|
||||||
secondEventButton = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.SECOND);
|
secondCounterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.SECOND);
|
||||||
thirdEventButton = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.THIRD);
|
thirdCounterButtonSharedPrefHelper = new CounterButtonSharedPreferenceHelper(MainActivity.this, CounterButton.THIRD);
|
||||||
|
|
||||||
settingsButton.setOnClickListener(new View.OnClickListener() {
|
settingsButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
@ -41,12 +48,18 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
super.onStart();
|
super.onStart();
|
||||||
|
|
||||||
if(
|
if(
|
||||||
firstEventButton.getCounterButtonName(CounterButton.FIRST) == null ||
|
firstCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST) == null ||
|
||||||
secondEventButton.getCounterButtonName(CounterButton.SECOND) == null ||
|
secondCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND) == null ||
|
||||||
thirdEventButton.getCounterButtonName(CounterButton.THIRD) == null) {
|
thirdCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD) == null) {
|
||||||
|
|
||||||
goToSettingsActivity();
|
goToSettingsActivity();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
firstCounterButton.setText(firstCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.FIRST));
|
||||||
|
secondCounterButton.setText(secondCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.SECOND));
|
||||||
|
thirdCounterButton.setText(thirdCounterButtonSharedPrefHelper.getCounterButtonName(CounterButton.THIRD));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void goToSettingsActivity() {
|
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;
|
package com.example.assignment1;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.text.InputFilter;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
@ -14,9 +17,14 @@ public class SettingsActivity extends AppCompatActivity {
|
|||||||
protected Button saveButton;
|
protected Button saveButton;
|
||||||
protected Toolbar myToolbar;
|
protected Toolbar myToolbar;
|
||||||
|
|
||||||
protected CounterButtonSharedPreferenceHelper firstEventButton;
|
protected int maxLength = 16;
|
||||||
protected CounterButtonSharedPreferenceHelper secondEventButton;
|
|
||||||
protected CounterButtonSharedPreferenceHelper thirdEventButton;
|
protected CounterButtonSharedPreferenceHelper firstCounterButtonSharedPrefHelper;
|
||||||
|
protected CounterButtonSharedPreferenceHelper secondCounterButtonSharedPrefHelper;
|
||||||
|
protected CounterButtonSharedPreferenceHelper thirdCounterButtonSharedPrefHelper;
|
||||||
|
|
||||||
|
protected MaxCountSharedPreferenceHelper maxCountSharedPrefHelper;
|
||||||
|
|
||||||
protected EditText counter_1_name_edit_text;
|
protected EditText counter_1_name_edit_text;
|
||||||
protected EditText counter_2_name_edit_text;
|
protected EditText counter_2_name_edit_text;
|
||||||
protected EditText counter_3_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);
|
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);
|
maximum_counts_edit_text = (EditText) findViewById(R.id.maximum_counts_edit_text);
|
||||||
|
|
||||||
firstEventButton = new CounterButtonSharedPreferenceHelper(SettingsActivity.this, CounterButton.FIRST);
|
counter_1_name_edit_text.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxLength)});
|
||||||
secondEventButton = new CounterButtonSharedPreferenceHelper(SettingsActivity.this, CounterButton.SECOND);
|
counter_2_name_edit_text.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxLength)});
|
||||||
thirdEventButton = new CounterButtonSharedPreferenceHelper(SettingsActivity.this, CounterButton.THIRD);
|
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
|
// enable toolbar/actionbar
|
||||||
setSupportActionBar(myToolbar);
|
setSupportActionBar(myToolbar);
|
||||||
@ -46,6 +59,51 @@ public class SettingsActivity extends AppCompatActivity {
|
|||||||
assert getSupportActionBar() != null;
|
assert getSupportActionBar() != null;
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true); //show back button
|
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
|
// no save button in Display Mode
|
||||||
saveButton.setVisibility(View.INVISIBLE);
|
saveButton.setVisibility(View.INVISIBLE);
|
||||||
|
|
||||||
@ -56,15 +114,49 @@ public class SettingsActivity extends AppCompatActivity {
|
|||||||
maximum_counts_edit_text.setEnabled(false);
|
maximum_counts_edit_text.setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
@Override
|
||||||
protected void onStart()
|
public void onClick(View v) {
|
||||||
{
|
// counter button strings are checked statically in the activity XML file
|
||||||
super.onStart();
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
|
||||||
getMenuInflater().inflate(R.menu.settings_activity_menu, menu);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -46,6 +46,7 @@
|
|||||||
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
|
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
|
||||||
android:hint="@string/counter_1_name"
|
android:hint="@string/counter_1_name"
|
||||||
android:inputType="text"
|
android:inputType="text"
|
||||||
|
android:maxLines="1"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@ -71,6 +72,7 @@
|
|||||||
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
|
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
|
||||||
android:hint="@string/counter_2_name"
|
android:hint="@string/counter_2_name"
|
||||||
android:inputType="text"
|
android:inputType="text"
|
||||||
|
android:maxLines="1"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@ -96,6 +98,7 @@
|
|||||||
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
|
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
|
||||||
android:hint="@string/counter_3_name"
|
android:hint="@string/counter_3_name"
|
||||||
android:inputType="text"
|
android:inputType="text"
|
||||||
|
android:maxLines="1"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@ -121,6 +124,7 @@
|
|||||||
android:digits="0123456789"
|
android:digits="0123456789"
|
||||||
android:hint="@string/maximum_counts"
|
android:hint="@string/maximum_counts"
|
||||||
android:inputType="number"
|
android:inputType="number"
|
||||||
|
android:maxLines="1"
|
||||||
/>
|
/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user