mirror of
https://github.com/SimpleMobileTools/Simple-Camera.git
synced 2025-05-31 22:29:16 +02:00
add Dark Theme
This commit is contained in:
parent
37871e9bdc
commit
c28308b1e3
@ -63,15 +63,19 @@
|
|||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".activities.LicenseActivity"
|
android:name=".activities.LicenseActivity"
|
||||||
android:label="@string/third_party_licences"/>
|
android:label="@string/third_party_licences"
|
||||||
|
android:parentActivityName=".activities.AboutActivity"/>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".activities.AboutActivity"
|
android:name=".activities.AboutActivity"
|
||||||
android:label="@string/about"/>
|
android:label="@string/about"
|
||||||
|
android:parentActivityName=".activities.MainActivity"/>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".activities.SettingsActivity"
|
android:name=".activities.SettingsActivity"
|
||||||
android:label="@string/settings"/>
|
android:allowTaskReparenting="true"
|
||||||
|
android:label="@string/settings"
|
||||||
|
android:parentActivityName=".activities.AboutActivity"/>
|
||||||
|
|
||||||
<receiver
|
<receiver
|
||||||
android:name=".HardwareShutterReceiver">
|
android:name=".HardwareShutterReceiver">
|
||||||
|
@ -22,6 +22,14 @@ public class Config {
|
|||||||
mPrefs.edit().putBoolean(Constants.IS_FIRST_RUN, firstRun).apply();
|
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() {
|
public boolean getLongTapEnabled() {
|
||||||
return mPrefs.getBoolean(Constants.LONG_TAP, true);
|
return mPrefs.getBoolean(Constants.LONG_TAP, true);
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ public class Constants {
|
|||||||
// shared preferences
|
// shared preferences
|
||||||
public static final String PREFS_KEY = "Camera";
|
public static final String PREFS_KEY = "Camera";
|
||||||
public static final String IS_FIRST_RUN = "is_first_run";
|
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 LONG_TAP = "long_tap";
|
||||||
public static final String FOCUS_BEFORE_CAPTURE = "focus_before_capture";
|
public static final String FOCUS_BEFORE_CAPTURE = "focus_before_capture";
|
||||||
public static final String SOUND = "sound";
|
public static final String SOUND = "sound";
|
||||||
|
@ -5,7 +5,6 @@ import android.content.Intent;
|
|||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.method.LinkMovementMethod;
|
import android.text.method.LinkMovementMethod;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
@ -23,7 +22,7 @@ import butterknife.BindView;
|
|||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import butterknife.OnClick;
|
import butterknife.OnClick;
|
||||||
|
|
||||||
public class AboutActivity extends AppCompatActivity {
|
public class AboutActivity extends SimpleActivity {
|
||||||
@BindView(R.id.about_copyright) TextView mCopyright;
|
@BindView(R.id.about_copyright) TextView mCopyright;
|
||||||
@BindView(R.id.about_email) TextView mEmailTV;
|
@BindView(R.id.about_email) TextView mEmailTV;
|
||||||
@BindView(R.id.about_rate_us) View mRateUs;
|
@BindView(R.id.about_rate_us) View mRateUs;
|
||||||
|
@ -3,14 +3,13 @@ package com.simplemobiletools.camera.activities;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
|
||||||
|
|
||||||
import com.simplemobiletools.camera.R;
|
import com.simplemobiletools.camera.R;
|
||||||
|
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import butterknife.OnClick;
|
import butterknife.OnClick;
|
||||||
|
|
||||||
public class LicenseActivity extends AppCompatActivity {
|
public class LicenseActivity extends SimpleActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -21,7 +21,6 @@ import android.os.Handler;
|
|||||||
import android.provider.MediaStore;
|
import android.provider.MediaStore;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
import android.support.v7.app.ActionBar;
|
import android.support.v7.app.ActionBar;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.SurfaceView;
|
import android.view.SurfaceView;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -48,7 +47,7 @@ import butterknife.BindView;
|
|||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import butterknife.OnClick;
|
import butterknife.OnClick;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity
|
public class MainActivity extends SimpleActivity
|
||||||
implements SensorEventListener, PreviewListener, PhotoProcessor.MediaSavedListener, MediaScannerConnection.OnScanCompletedListener {
|
implements SensorEventListener, PreviewListener, PhotoProcessor.MediaSavedListener, MediaScannerConnection.OnScanCompletedListener {
|
||||||
@BindView(R.id.view_holder) RelativeLayout mViewHolder;
|
@BindView(R.id.view_holder) RelativeLayout mViewHolder;
|
||||||
@BindView(R.id.toggle_camera) ImageView mToggleCameraBtn;
|
@BindView(R.id.toggle_camera) ImageView mToggleCameraBtn;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.simplemobiletools.camera.activities;
|
package com.simplemobiletools.camera.activities;
|
||||||
|
|
||||||
import android.os.Bundle;
|
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.AppCompatSpinner;
|
||||||
import android.support.v7.widget.SwitchCompat;
|
import android.support.v7.widget.SwitchCompat;
|
||||||
|
|
||||||
@ -13,7 +13,8 @@ import butterknife.ButterKnife;
|
|||||||
import butterknife.OnClick;
|
import butterknife.OnClick;
|
||||||
import butterknife.OnItemSelected;
|
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_long_tap) SwitchCompat mLongTapSwitch;
|
||||||
@BindView(R.id.settings_focus_before_capture) SwitchCompat mFocusBeforeCaptureSwitch;
|
@BindView(R.id.settings_focus_before_capture) SwitchCompat mFocusBeforeCaptureSwitch;
|
||||||
@BindView(R.id.settings_sound) SwitchCompat mSoundSwitch;
|
@BindView(R.id.settings_sound) SwitchCompat mSoundSwitch;
|
||||||
@ -29,6 +30,7 @@ public class SettingsActivity extends AppCompatActivity {
|
|||||||
mConfig = Config.newInstance(getApplicationContext());
|
mConfig = Config.newInstance(getApplicationContext());
|
||||||
ButterKnife.bind(this);
|
ButterKnife.bind(this);
|
||||||
|
|
||||||
|
setupDarkTheme();
|
||||||
setupLongTap();
|
setupLongTap();
|
||||||
setupFocusBeforeCapture();
|
setupFocusBeforeCapture();
|
||||||
setupSound();
|
setupSound();
|
||||||
@ -36,6 +38,10 @@ public class SettingsActivity extends AppCompatActivity {
|
|||||||
setupMaxResolution();
|
setupMaxResolution();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setupDarkTheme() {
|
||||||
|
mDarkThemeSwitch.setChecked(mConfig.getIsDarkTheme());
|
||||||
|
}
|
||||||
|
|
||||||
private void setupLongTap() {
|
private void setupLongTap() {
|
||||||
mLongTapSwitch.setChecked(mConfig.getLongTapEnabled());
|
mLongTapSwitch.setChecked(mConfig.getLongTapEnabled());
|
||||||
}
|
}
|
||||||
@ -56,6 +62,13 @@ public class SettingsActivity extends AppCompatActivity {
|
|||||||
mMaxResolutionSpinner.setSelection(mConfig.getMaxResolution());
|
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)
|
@OnClick(R.id.settings_long_tap_holder)
|
||||||
public void handleLongTapToTrigger() {
|
public void handleLongTapToTrigger() {
|
||||||
mLongTapSwitch.setChecked(!mLongTapSwitch.isChecked());
|
mLongTapSwitch.setChecked(!mLongTapSwitch.isChecked());
|
||||||
@ -84,4 +97,8 @@ public class SettingsActivity extends AppCompatActivity {
|
|||||||
public void handleMaxResolution() {
|
public void handleMaxResolution() {
|
||||||
mConfig.setMaxResolution(mMaxResolutionSpinner.getSelectedItemPosition());
|
mConfig.setMaxResolution(mMaxResolutionSpinner.getSelectedItemPosition());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void restartActivity() {
|
||||||
|
TaskStackBuilder.create(getApplicationContext()).addNextIntentWithParentStack(getIntent()).startActivities();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -12,6 +12,32 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/settings_dark_theme_holder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/settings_padding"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
android:padding="@dimen/activity_margin">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/settings_dark_theme_label"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:paddingLeft="@dimen/settings_padding"
|
||||||
|
android:text="@string/dark_theme"/>
|
||||||
|
|
||||||
|
<android.support.v7.widget.SwitchCompat
|
||||||
|
android:id="@+id/settings_dark_theme"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentRight="true"
|
||||||
|
android:background="@null"
|
||||||
|
android:clickable="false"/>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/settings_long_tap_holder"
|
android:id="@+id/settings_long_tap_holder"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings">Impostazioni</string>
|
<string name="settings">Impostazioni</string>
|
||||||
|
<string name="dark_theme">Tema scuro</string>
|
||||||
<string name="long_tap_capture">Tocco prolungato per la cattura</string>
|
<string name="long_tap_capture">Tocco prolungato per la cattura</string>
|
||||||
<string name="focus_before_capture">Messa a fuoco prima della cattura</string>
|
<string name="focus_before_capture">Messa a fuoco prima della cattura</string>
|
||||||
<string name="force_ratio">Forza proporzione 16:9</string>
|
<string name="force_ratio">Forza proporzione 16:9</string>
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings">設定</string>
|
<string name="settings">設定</string>
|
||||||
|
<string name="dark_theme">ダークテーマ</string>
|
||||||
<string name="long_tap_capture">長押ししてキャプチャする</string>
|
<string name="long_tap_capture">長押ししてキャプチャする</string>
|
||||||
<string name="focus_before_capture">キャプチャ前に再度焦点を合わせる</string>
|
<string name="focus_before_capture">キャプチャ前に再度焦点を合わせる</string>
|
||||||
<string name="force_ratio">強制的に 16:9 レシオにする</string>
|
<string name="force_ratio">強制的に 16:9 レシオにする</string>
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings">Inställningar</string>
|
<string name="settings">Inställningar</string>
|
||||||
|
<string name="dark_theme">Mörkt tema</string>
|
||||||
<string name="long_tap_capture">Långtryck för bildtagning</string>
|
<string name="long_tap_capture">Långtryck för bildtagning</string>
|
||||||
<string name="focus_before_capture">Fokusera om innan bildtagning</string>
|
<string name="focus_before_capture">Fokusera om innan bildtagning</string>
|
||||||
<string name="force_ratio">Tvinga 16:9-förhållande</string>
|
<string name="force_ratio">Tvinga 16:9-förhållande</string>
|
||||||
|
@ -4,4 +4,8 @@
|
|||||||
<item name="android:windowTranslucentNavigation">true</item>
|
<item name="android:windowTranslucentNavigation">true</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="FullScreenTheme.Dark" parent="AppTheme.Base.Dark">
|
||||||
|
<item name="android:windowTranslucentNavigation">true</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -4,5 +4,9 @@
|
|||||||
<item name="android:windowTranslucentNavigation">true</item>
|
<item name="android:windowTranslucentNavigation">true</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="FullScreenTheme.Dark" parent="AppTheme.Base.Dark">
|
||||||
|
<item name="android:windowTranslucentNavigation">true</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="SpinnerItem" parent="@android:style/Widget.TextView"/>
|
<style name="SpinnerItem" parent="@android:style/Widget.TextView"/>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="settings">Settings</string>
|
<string name="settings">Settings</string>
|
||||||
|
<string name="dark_theme">Dark theme</string>
|
||||||
<string name="long_tap_capture">Long tap to capture</string>
|
<string name="long_tap_capture">Long tap to capture</string>
|
||||||
<string name="focus_before_capture">Refocus before capture</string>
|
<string name="focus_before_capture">Refocus before capture</string>
|
||||||
<string name="force_ratio">Force 16:9 ratio</string>
|
<string name="force_ratio">Force 16:9 ratio</string>
|
||||||
|
@ -13,7 +13,19 @@
|
|||||||
<item name="android:textSize">@dimen/normal_text_size</item>
|
<item name="android:textSize">@dimen/normal_text_size</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="AppTheme.Base.Dark" parent="Theme.AppCompat">
|
||||||
|
<item name="colorPrimary">@color/colorPrimary</item>
|
||||||
|
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||||
|
<item name="colorAccent">@color/colorAccent</item>
|
||||||
|
<item name="actionBarStyle">@style/AppTheme.ActionBarStyle</item>
|
||||||
|
<item name="android:spinnerItemStyle">@style/SpinnerItem</item>
|
||||||
|
<item name="spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item>
|
||||||
|
<item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item>
|
||||||
|
<item name="android:textSize">@dimen/normal_text_size</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="FullScreenTheme" parent="AppTheme.Base"/>
|
<style name="FullScreenTheme" parent="AppTheme.Base"/>
|
||||||
|
<style name="FullScreenTheme.Dark" parent="AppTheme.Base.Dark"/>
|
||||||
|
|
||||||
<style name="AppTheme.ActionBarStyle" parent="@style/Base.Widget.AppCompat.ActionBar">
|
<style name="AppTheme.ActionBarStyle" parent="@style/Base.Widget.AppCompat.ActionBar">
|
||||||
<item name="background">@color/colorPrimary</item>
|
<item name="background">@color/colorPrimary</item>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user