diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c25bdcd1..fd73c8c7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,10 @@
android:name=".activities.LicenseActivity"
android:label="@string/third_party_licences"/>
+
+
diff --git a/app/src/main/java/com/simplemobiletools/notes/Config.java b/app/src/main/java/com/simplemobiletools/notes/Config.java
index 670d7862..3b5d5438 100644
--- a/app/src/main/java/com/simplemobiletools/notes/Config.java
+++ b/app/src/main/java/com/simplemobiletools/notes/Config.java
@@ -21,4 +21,12 @@ public class Config {
public void setIsFirstRun(boolean firstRun) {
mPrefs.edit().putBoolean(Constants.IS_FIRST_RUN, firstRun).apply();
}
+
+ public boolean getIsAutosaveEnabled() {
+ return mPrefs.getBoolean(Constants.AUTOSAVE, false);
+ }
+
+ public void setIsAutosaveEnabled(boolean enabled) {
+ mPrefs.edit().putBoolean(Constants.AUTOSAVE, enabled).apply();
+ }
}
diff --git a/app/src/main/java/com/simplemobiletools/notes/Constants.java b/app/src/main/java/com/simplemobiletools/notes/Constants.java
index dd95c340..e9e7d59a 100644
--- a/app/src/main/java/com/simplemobiletools/notes/Constants.java
+++ b/app/src/main/java/com/simplemobiletools/notes/Constants.java
@@ -6,6 +6,7 @@ public class Constants {
// shared preferences
public static final String PREFS_KEY = "Notes";
public static final String IS_FIRST_RUN = "is_first_run";
+ public static final String AUTOSAVE = "autosave";
public static final String WIDGET_BG_COLOR = "widget_bg_color";
public static final String WIDGET_TEXT_COLOR = "widget_text_color";
}
diff --git a/app/src/main/java/com/simplemobiletools/notes/activities/AboutActivity.java b/app/src/main/java/com/simplemobiletools/notes/activities/AboutActivity.java
index 86811289..d28c9145 100644
--- a/app/src/main/java/com/simplemobiletools/notes/activities/AboutActivity.java
+++ b/app/src/main/java/com/simplemobiletools/notes/activities/AboutActivity.java
@@ -8,6 +8,8 @@ import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Html;
import android.text.method.LinkMovementMethod;
+import android.view.Menu;
+import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
@@ -40,6 +42,24 @@ public class AboutActivity extends AppCompatActivity {
setupRateUs();
}
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.menu_about, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.settings:
+ final Intent intent = new Intent(getApplicationContext(), SettingsActivity.class);
+ startActivity(intent);
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+
private void setupEmail() {
final String email = mRes.getString(R.string.email);
final String appName = mRes.getString(R.string.app_name);
diff --git a/app/src/main/java/com/simplemobiletools/notes/activities/MainActivity.java b/app/src/main/java/com/simplemobiletools/notes/activities/MainActivity.java
index 22436114..c98fbc10 100644
--- a/app/src/main/java/com/simplemobiletools/notes/activities/MainActivity.java
+++ b/app/src/main/java/com/simplemobiletools/notes/activities/MainActivity.java
@@ -12,7 +12,6 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
-import android.widget.Toast;
import com.simplemobiletools.notes.Config;
import com.simplemobiletools.notes.Constants;
@@ -39,6 +38,20 @@ public class MainActivity extends AppCompatActivity {
mNotesView.setText(text);
}
+ @Override
+ protected void onResume() {
+ super.onResume();
+ invalidateOptionsMenu();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ if (Config.newInstance(getApplicationContext()).getIsAutosaveEnabled()) {
+ saveText(false);
+ }
+ }
+
@Override
protected void onDestroy() {
super.onDestroy();
@@ -48,6 +61,9 @@ public class MainActivity extends AppCompatActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
+ if (Config.newInstance(getApplicationContext()).getIsAutosaveEnabled())
+ menu.findItem(R.id.save).setVisible(false);
+
return true;
}
@@ -55,7 +71,7 @@ public class MainActivity extends AppCompatActivity {
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.save:
- saveText();
+ saveText(true);
return true;
case R.id.share:
shareText();
@@ -69,11 +85,14 @@ public class MainActivity extends AppCompatActivity {
}
}
- private void saveText() {
+ private void saveText(boolean showToast) {
final String text = mNotesView.getText().toString().trim();
mPrefs.edit().putString(Constants.TEXT, text).apply();
- Toast.makeText(this, getResources().getString(R.string.text_saved), Toast.LENGTH_SHORT).show();
+ if (showToast) {
+ Utils.showToast(getApplicationContext(), R.string.text_saved);
+ }
+
hideKeyboard();
updateWidget();
}
@@ -81,7 +100,7 @@ public class MainActivity extends AppCompatActivity {
private void shareText() {
final String text = mNotesView.getText().toString().trim();
if (text.isEmpty()) {
- Utils.showToast(this, R.string.cannot_share_empty_text);
+ Utils.showToast(getApplicationContext(), R.string.cannot_share_empty_text);
return;
}
diff --git a/app/src/main/java/com/simplemobiletools/notes/activities/SettingsActivity.java b/app/src/main/java/com/simplemobiletools/notes/activities/SettingsActivity.java
new file mode 100644
index 00000000..b5f35c9b
--- /dev/null
+++ b/app/src/main/java/com/simplemobiletools/notes/activities/SettingsActivity.java
@@ -0,0 +1,38 @@
+package com.simplemobiletools.notes.activities;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.SwitchCompat;
+
+import com.simplemobiletools.notes.Config;
+import com.simplemobiletools.notes.R;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+
+public class SettingsActivity extends AppCompatActivity {
+ @BindView(R.id.settings_autosave) SwitchCompat mAutosaveSwitch;
+
+ private static Config mConfig;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_settings);
+ mConfig = Config.newInstance(getApplicationContext());
+ ButterKnife.bind(this);
+
+ setupAutosave();
+ }
+
+ private void setupAutosave() {
+ mAutosaveSwitch.setChecked(mConfig.getIsAutosaveEnabled());
+ }
+
+ @OnClick(R.id.settings_autosave_holder)
+ public void handleAutosave() {
+ mAutosaveSwitch.setChecked(!mAutosaveSwitch.isChecked());
+ mConfig.setIsAutosaveEnabled(mAutosaveSwitch.isChecked());
+ }
+}
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
new file mode 100644
index 00000000..cfab5a05
--- /dev/null
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/menu/menu_about.xml b/app/src/main/res/menu/menu_about.xml
new file mode 100644
index 00000000..f408693c
--- /dev/null
+++ b/app/src/main/res/menu/menu_about.xml
@@ -0,0 +1,8 @@
+
+
diff --git a/app/src/main/res/values-sw600dp/dimens.xml b/app/src/main/res/values-sw600dp/dimens.xml
index b5cec34d..3b8b3161 100644
--- a/app/src/main/res/values-sw600dp/dimens.xml
+++ b/app/src/main/res/values-sw600dp/dimens.xml
@@ -1,6 +1,7 @@
12dp
50dp
+ 12dp
18sp
22sp
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 10395801..fcf7d56d 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -2,6 +2,7 @@
16dp
8dp
40dp
+ 8dp
14sp
18sp
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7f305a18..dc1c375f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -8,6 +8,10 @@
Text Saved
Simple Note
+
+ Settings
+ Autosave
+
About
More simple apps and source code at:\nhttp://simplemobiletools.com