diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 97e4a87d..3bd29c37 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -63,15 +63,19 @@
+ android:label="@string/third_party_licences"
+ android:parentActivityName=".activities.AboutActivity"/>
+ android:label="@string/about"
+ android:parentActivityName=".activities.MainActivity"/>
+ android:allowTaskReparenting="true"
+ android:label="@string/settings"
+ android:parentActivityName=".activities.AboutActivity"/>
diff --git a/app/src/main/java/com/simplemobiletools/camera/Config.java b/app/src/main/java/com/simplemobiletools/camera/Config.java
index 4035b44c..a72bbfa6 100644
--- a/app/src/main/java/com/simplemobiletools/camera/Config.java
+++ b/app/src/main/java/com/simplemobiletools/camera/Config.java
@@ -22,6 +22,14 @@ public class Config {
mPrefs.edit().putBoolean(Constants.IS_FIRST_RUN, firstRun).apply();
}
+ public boolean getIsDarkTheme() {
+ return mPrefs.getBoolean(Constants.IS_DARK_THEME, false);
+ }
+
+ public void setIsDarkTheme(boolean isDarkTheme) {
+ mPrefs.edit().putBoolean(Constants.IS_DARK_THEME, isDarkTheme).apply();
+ }
+
public boolean getLongTapEnabled() {
return mPrefs.getBoolean(Constants.LONG_TAP, true);
}
diff --git a/app/src/main/java/com/simplemobiletools/camera/Constants.java b/app/src/main/java/com/simplemobiletools/camera/Constants.java
index 5b0f5eda..8bbe8992 100644
--- a/app/src/main/java/com/simplemobiletools/camera/Constants.java
+++ b/app/src/main/java/com/simplemobiletools/camera/Constants.java
@@ -8,6 +8,7 @@ public class Constants {
// shared preferences
public static final String PREFS_KEY = "Camera";
public static final String IS_FIRST_RUN = "is_first_run";
+ public static final String IS_DARK_THEME = "is_dark_theme";
public static final String LONG_TAP = "long_tap";
public static final String FOCUS_BEFORE_CAPTURE = "focus_before_capture";
public static final String SOUND = "sound";
diff --git a/app/src/main/java/com/simplemobiletools/camera/activities/AboutActivity.java b/app/src/main/java/com/simplemobiletools/camera/activities/AboutActivity.java
index 724d2301..78fbe0d2 100644
--- a/app/src/main/java/com/simplemobiletools/camera/activities/AboutActivity.java
+++ b/app/src/main/java/com/simplemobiletools/camera/activities/AboutActivity.java
@@ -5,7 +5,6 @@ import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.view.Menu;
@@ -23,7 +22,7 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
-public class AboutActivity extends AppCompatActivity {
+public class AboutActivity extends SimpleActivity {
@BindView(R.id.about_copyright) TextView mCopyright;
@BindView(R.id.about_email) TextView mEmailTV;
@BindView(R.id.about_rate_us) View mRateUs;
diff --git a/app/src/main/java/com/simplemobiletools/camera/activities/LicenseActivity.java b/app/src/main/java/com/simplemobiletools/camera/activities/LicenseActivity.java
index 21f97dea..a40a3ea0 100644
--- a/app/src/main/java/com/simplemobiletools/camera/activities/LicenseActivity.java
+++ b/app/src/main/java/com/simplemobiletools/camera/activities/LicenseActivity.java
@@ -3,14 +3,13 @@ package com.simplemobiletools.camera.activities;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
import com.simplemobiletools.camera.R;
import butterknife.ButterKnife;
import butterknife.OnClick;
-public class LicenseActivity extends AppCompatActivity {
+public class LicenseActivity extends SimpleActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
diff --git a/app/src/main/java/com/simplemobiletools/camera/activities/MainActivity.java b/app/src/main/java/com/simplemobiletools/camera/activities/MainActivity.java
index 55712286..f6cde596 100644
--- a/app/src/main/java/com/simplemobiletools/camera/activities/MainActivity.java
+++ b/app/src/main/java/com/simplemobiletools/camera/activities/MainActivity.java
@@ -21,7 +21,6 @@ import android.os.Handler;
import android.provider.MediaStore;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.ActionBar;
-import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.SurfaceView;
import android.view.View;
@@ -48,7 +47,7 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
-public class MainActivity extends AppCompatActivity
+public class MainActivity extends SimpleActivity
implements SensorEventListener, PreviewListener, PhotoProcessor.MediaSavedListener, MediaScannerConnection.OnScanCompletedListener {
@BindView(R.id.view_holder) RelativeLayout mViewHolder;
@BindView(R.id.toggle_camera) ImageView mToggleCameraBtn;
diff --git a/app/src/main/java/com/simplemobiletools/camera/activities/SettingsActivity.java b/app/src/main/java/com/simplemobiletools/camera/activities/SettingsActivity.java
index b682dcd4..5119eda8 100644
--- a/app/src/main/java/com/simplemobiletools/camera/activities/SettingsActivity.java
+++ b/app/src/main/java/com/simplemobiletools/camera/activities/SettingsActivity.java
@@ -1,7 +1,7 @@
package com.simplemobiletools.camera.activities;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import android.support.v4.app.TaskStackBuilder;
import android.support.v7.widget.AppCompatSpinner;
import android.support.v7.widget.SwitchCompat;
@@ -13,7 +13,8 @@ import butterknife.ButterKnife;
import butterknife.OnClick;
import butterknife.OnItemSelected;
-public class SettingsActivity extends AppCompatActivity {
+public class SettingsActivity extends SimpleActivity {
+ @BindView(R.id.settings_dark_theme) SwitchCompat mDarkThemeSwitch;
@BindView(R.id.settings_long_tap) SwitchCompat mLongTapSwitch;
@BindView(R.id.settings_focus_before_capture) SwitchCompat mFocusBeforeCaptureSwitch;
@BindView(R.id.settings_sound) SwitchCompat mSoundSwitch;
@@ -29,6 +30,7 @@ public class SettingsActivity extends AppCompatActivity {
mConfig = Config.newInstance(getApplicationContext());
ButterKnife.bind(this);
+ setupDarkTheme();
setupLongTap();
setupFocusBeforeCapture();
setupSound();
@@ -36,6 +38,10 @@ public class SettingsActivity extends AppCompatActivity {
setupMaxResolution();
}
+ private void setupDarkTheme() {
+ mDarkThemeSwitch.setChecked(mConfig.getIsDarkTheme());
+ }
+
private void setupLongTap() {
mLongTapSwitch.setChecked(mConfig.getLongTapEnabled());
}
@@ -56,6 +62,13 @@ public class SettingsActivity extends AppCompatActivity {
mMaxResolutionSpinner.setSelection(mConfig.getMaxResolution());
}
+ @OnClick(R.id.settings_dark_theme_holder)
+ public void handleDarkTheme() {
+ mDarkThemeSwitch.setChecked(!mDarkThemeSwitch.isChecked());
+ mConfig.setIsDarkTheme(mDarkThemeSwitch.isChecked());
+ restartActivity();
+ }
+
@OnClick(R.id.settings_long_tap_holder)
public void handleLongTapToTrigger() {
mLongTapSwitch.setChecked(!mLongTapSwitch.isChecked());
@@ -84,4 +97,8 @@ public class SettingsActivity extends AppCompatActivity {
public void handleMaxResolution() {
mConfig.setMaxResolution(mMaxResolutionSpinner.getSelectedItemPosition());
}
+
+ private void restartActivity() {
+ TaskStackBuilder.create(getApplicationContext()).addNextIntentWithParentStack(getIntent()).startActivities();
+ }
}
diff --git a/app/src/main/java/com/simplemobiletools/camera/activities/SimpleActivity.java b/app/src/main/java/com/simplemobiletools/camera/activities/SimpleActivity.java
new file mode 100644
index 00000000..7e48007e
--- /dev/null
+++ b/app/src/main/java/com/simplemobiletools/camera/activities/SimpleActivity.java
@@ -0,0 +1,35 @@
+package com.simplemobiletools.camera.activities;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v7.app.AppCompatActivity;
+import android.view.MenuItem;
+
+import com.simplemobiletools.camera.Config;
+import com.simplemobiletools.camera.R;
+
+public class SimpleActivity extends AppCompatActivity {
+ protected Config mConfig;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ mConfig = Config.newInstance(getApplicationContext());
+ int theme = mConfig.getIsDarkTheme() ? R.style.AppTheme_Base_Dark : R.style.AppTheme_Base;
+ if (this instanceof MainActivity) {
+ theme = mConfig.getIsDarkTheme() ? R.style.FullScreenTheme_Dark : R.style.FullScreenTheme;
+ }
+ setTheme(theme);
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ finish();
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+}
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 6931d689..e4470604 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -12,6 +12,32 @@
android:layout_height="wrap_content"
android:orientation="vertical">
+
+
+
+
+
+
+
+
Impostazioni
+ Tema scuro
Tocco prolungato per la cattura
Messa a fuoco prima della cattura
Forza proporzione 16:9
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index bd3677ae..4cadf74c 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -15,6 +15,7 @@
設定
+ ダークテーマ
長押ししてキャプチャする
キャプチャ前に再度焦点を合わせる
強制的に 16:9 レシオにする
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index bb72d46c..d9651e64 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -15,6 +15,7 @@
Inställningar
+ Mörkt tema
Långtryck för bildtagning
Fokusera om innan bildtagning
Tvinga 16:9-förhållande
diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml
index 7f1ac50b..a32f3d1b 100644
--- a/app/src/main/res/values-v21/styles.xml
+++ b/app/src/main/res/values-v21/styles.xml
@@ -4,4 +4,8 @@
- true
+
+
diff --git a/app/src/main/res/values-v23/styles.xml b/app/src/main/res/values-v23/styles.xml
index f33b17a2..29283000 100644
--- a/app/src/main/res/values-v23/styles.xml
+++ b/app/src/main/res/values-v23/styles.xml
@@ -4,5 +4,9 @@
- true
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 394e5309..09d210d4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -15,6 +15,7 @@
Settings
+ Dark theme
Long tap to capture
Refocus before capture
Force 16:9 ratio
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 61f9cab6..4a859c26 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -13,7 +13,19 @@
- @dimen/normal_text_size
+
+
+