add dark theme

This commit is contained in:
tibbi 2016-07-24 11:13:42 +02:00
parent 4d91c3d252
commit 77d0e9a7d4
15 changed files with 108 additions and 13 deletions

View File

@ -29,15 +29,18 @@
<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.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.SettingsActivity" android:name=".activities.SettingsActivity"
android:label="@string/settings"/> android:label="@string/settings"
android:parentActivityName=".activities.MainActivity"/>
<receiver <receiver
android:name=".MyWidgetProvider" android:name=".MyWidgetProvider"

View File

@ -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 getIsAutosaveEnabled() { public boolean getIsAutosaveEnabled() {
return mPrefs.getBoolean(Constants.AUTOSAVE, false); return mPrefs.getBoolean(Constants.AUTOSAVE, false);
} }

View File

@ -6,6 +6,7 @@ public class Constants {
// shared preferences // shared preferences
public static final String PREFS_KEY = "Notes"; public static final String PREFS_KEY = "Notes";
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 AUTOSAVE = "autosave"; public static final String AUTOSAVE = "autosave";
public static final String WIDGET_BG_COLOR = "widget_bg_color"; public static final String WIDGET_BG_COLOR = "widget_bg_color";
public static final String WIDGET_TEXT_COLOR = "widget_text_color"; public static final String WIDGET_TEXT_COLOR = "widget_text_color";

View File

@ -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.View; import android.view.View;
@ -21,7 +20,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;

View File

@ -3,14 +3,13 @@ package com.simplemobiletools.notes.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.notes.R; import com.simplemobiletools.notes.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) {

View File

@ -7,7 +7,6 @@ import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
@ -22,7 +21,7 @@ import com.simplemobiletools.notes.Utils;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
public class MainActivity extends AppCompatActivity { public class MainActivity extends SimpleActivity {
@BindView(R.id.notes_view) EditText mNotesView; @BindView(R.id.notes_view) EditText mNotesView;
private SharedPreferences mPrefs; private SharedPreferences mPrefs;

View File

@ -1,7 +1,7 @@
package com.simplemobiletools.notes.activities; package com.simplemobiletools.notes.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.SwitchCompat; import android.support.v7.widget.SwitchCompat;
import com.simplemobiletools.notes.Config; import com.simplemobiletools.notes.Config;
@ -11,7 +11,8 @@ import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
public class SettingsActivity extends AppCompatActivity { public class SettingsActivity extends SimpleActivity {
@BindView(R.id.settings_dark_theme) SwitchCompat mDarkThemeSwitch;
@BindView(R.id.settings_autosave) SwitchCompat mAutosaveSwitch; @BindView(R.id.settings_autosave) SwitchCompat mAutosaveSwitch;
private static Config mConfig; private static Config mConfig;
@ -23,16 +24,32 @@ public class SettingsActivity extends AppCompatActivity {
mConfig = Config.newInstance(getApplicationContext()); mConfig = Config.newInstance(getApplicationContext());
ButterKnife.bind(this); ButterKnife.bind(this);
setupDarkTheme();
setupAutosave(); setupAutosave();
} }
private void setupDarkTheme() {
mDarkThemeSwitch.setChecked(mConfig.getIsDarkTheme());
}
private void setupAutosave() { private void setupAutosave() {
mAutosaveSwitch.setChecked(mConfig.getIsAutosaveEnabled()); mAutosaveSwitch.setChecked(mConfig.getIsAutosaveEnabled());
} }
@OnClick(R.id.settings_dark_theme_holder)
public void handleDarkTheme() {
mDarkThemeSwitch.setChecked(!mDarkThemeSwitch.isChecked());
mConfig.setIsDarkTheme(mDarkThemeSwitch.isChecked());
restartActivity();
}
@OnClick(R.id.settings_autosave_holder) @OnClick(R.id.settings_autosave_holder)
public void handleAutosave() { public void handleAutosave() {
mAutosaveSwitch.setChecked(!mAutosaveSwitch.isChecked()); mAutosaveSwitch.setChecked(!mAutosaveSwitch.isChecked());
mConfig.setIsAutosaveEnabled(mAutosaveSwitch.isChecked()); mConfig.setIsAutosaveEnabled(mAutosaveSwitch.isChecked());
} }
private void restartActivity() {
TaskStackBuilder.create(getApplicationContext()).addNextIntentWithParentStack(getIntent()).startActivities();
}
} }

View File

@ -0,0 +1,31 @@
package com.simplemobiletools.notes.activities;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import com.simplemobiletools.notes.Config;
import com.simplemobiletools.notes.R;
public class SimpleActivity extends AppCompatActivity {
protected Config mConfig;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
mConfig = Config.newInstance(getApplicationContext());
setTheme(mConfig.getIsDarkTheme() ? R.style.AppTheme_Dark : R.style.AppTheme);
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);
}
}
}

View File

@ -10,6 +10,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@null" android:background="@null"
android:gravity="top" android:gravity="top"/>
android:textColor="@color/dark_grey"/>
</RelativeLayout> </RelativeLayout>

View File

@ -11,6 +11,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_autosave_holder" android:id="@+id/settings_autosave_holder"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -10,6 +10,7 @@
<!-- Settings --> <!-- Settings -->
<string name="settings">Impostazioni</string> <string name="settings">Impostazioni</string>
<string name="dark_theme">Tema scuro</string>
<string name="autosave">Autosalvataggio</string> <string name="autosave">Autosalvataggio</string>
<!-- About --> <!-- About -->

View File

@ -10,6 +10,7 @@
<!-- Settings --> <!-- Settings -->
<string name="settings">設定</string> <string name="settings">設定</string>
<string name="dark_theme">ダークテーマ</string>
<string name="autosave">自動保存</string> <string name="autosave">自動保存</string>
<!-- About --> <!-- About -->

View File

@ -10,6 +10,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="autosave">Spara automatiskt</string> <string name="autosave">Spara automatiskt</string>
<!-- About --> <!-- About -->

View File

@ -10,6 +10,7 @@
<!-- Settings --> <!-- Settings -->
<string name="settings">Settings</string> <string name="settings">Settings</string>
<string name="dark_theme">Dark theme</string>
<string name="autosave">Autosave</string> <string name="autosave">Autosave</string>
<!-- About --> <!-- About -->

View File

@ -8,6 +8,14 @@
<item name="android:textSize">@dimen/normal_text_size</item> <item name="android:textSize">@dimen/normal_text_size</item>
</style> </style>
<style name="AppTheme.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:textSize">@dimen/normal_text_size</item>
</style>
<style name="MyWidgetConfigTheme" parent="@style/AppTheme"> <style name="MyWidgetConfigTheme" parent="@style/AppTheme">
<item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowShowWallpaper">true</item> <item name="android:windowShowWallpaper">true</item>