From def1f28c749bb4c057d99191cf08f1669023fe4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=B4=D0=BE=D0=BD=D0=B0=D0=B9=20=D0=AD=D0=BB=D0=BE?= =?UTF-8?q?=D1=85=D0=B8=D0=BC?= Date: Sun, 17 Jul 2016 21:07:11 +0300 Subject: [PATCH] Add theming the preferences activity. Fixes #5 - update android studio gradle dependencies - also get rid of headers in preferences - we're too small to categorize preferences for now --- app/build.gradle | 2 +- .../com/adonai/manman/MainPagerActivity.java | 13 +------- .../main/java/com/adonai/manman/Utils.java | 10 ++++++ .../preferences/PreferencesActivity.java | 32 ++++++++++++------- .../main/res/layout/activity_main_pager.xml | 6 +++- .../main/res/layout/activity_preferences.xml | 23 +++++++++++++ app/src/main/res/xml/global_prefs_headers.xml | 9 ------ build.gradle | 2 +- 8 files changed, 61 insertions(+), 36 deletions(-) create mode 100644 app/src/main/res/layout/activity_preferences.xml delete mode 100644 app/src/main/res/xml/global_prefs_headers.xml diff --git a/app/build.gradle b/app/build.gradle index e116283..4458ad0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 23 - buildToolsVersion "23.0.1" + buildToolsVersion "23.0.3" defaultConfig { applicationId "com.adonai.manman" diff --git a/app/src/main/java/com/adonai/manman/MainPagerActivity.java b/app/src/main/java/com/adonai/manman/MainPagerActivity.java index b5470b9..2f93681 100644 --- a/app/src/main/java/com/adonai/manman/MainPagerActivity.java +++ b/app/src/main/java/com/adonai/manman/MainPagerActivity.java @@ -3,18 +3,13 @@ import android.annotation.SuppressLint; import android.app.AlertDialog; import android.content.Intent; -import android.content.SharedPreferences; -import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.content.LocalBroadcastManager; -import android.support.v4.graphics.drawable.DrawableCompat; import android.support.v4.view.ViewPager; -import android.support.v7.app.ActionBarActivity; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; @@ -54,13 +49,7 @@ public class MainPagerActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { // should set theme prior to instantiating compat actionbar etc. - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); - final String theme = prefs.getString("app.theme", "light"); - switch (theme) { - case "light": setTheme(R.style.Light); break; - case "dark": setTheme(R.style.Dark); break; - case "green": setTheme(R.style.Green); break; - } + Utils.setupTheme(this); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_pager); diff --git a/app/src/main/java/com/adonai/manman/Utils.java b/app/src/main/java/com/adonai/manman/Utils.java index f57c84f..0df6839 100644 --- a/app/src/main/java/com/adonai/manman/Utils.java +++ b/app/src/main/java/com/adonai/manman/Utils.java @@ -142,4 +142,14 @@ public static String detectEncodingOfArchive(File gzipped) throws IOException { return detector.getDetectedCharset(); } + + public static void setupTheme(Activity activity) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity); + final String theme = prefs.getString("app.theme", "light"); + switch (theme) { + case "light": activity.setTheme(R.style.Light); break; + case "dark": activity.setTheme(R.style.Dark); break; + case "green": activity.setTheme(R.style.Green); break; + } + } } diff --git a/app/src/main/java/com/adonai/manman/preferences/PreferencesActivity.java b/app/src/main/java/com/adonai/manman/preferences/PreferencesActivity.java index 4079c69..15df3b6 100644 --- a/app/src/main/java/com/adonai/manman/preferences/PreferencesActivity.java +++ b/app/src/main/java/com/adonai/manman/preferences/PreferencesActivity.java @@ -2,8 +2,12 @@ import android.os.Bundle; import android.preference.PreferenceActivity; +import android.preference.PreferenceFragment; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; import com.adonai.manman.R; +import com.adonai.manman.Utils; import java.util.List; @@ -12,25 +16,29 @@ * * @author Oleg Chernovskiy */ -public class PreferencesActivity extends PreferenceActivity { +public class PreferencesActivity extends AppCompatActivity { + + private Toolbar mActionBar; @Override protected void onCreate(Bundle savedInstanceState) { - setTheme(android.R.style.Theme_Holo); + // should set theme prior to instantiating compat actionbar etc. + Utils.setupTheme(this); super.onCreate(savedInstanceState); - } + setContentView(R.layout.activity_preferences); - @Override - protected boolean isValidFragment(String fragmentName) { - return true; + mActionBar = (Toolbar) findViewById(R.id.app_toolbar); + setSupportActionBar(mActionBar); + + getFragmentManager().beginTransaction().replace(R.id.content_frame, new MainPreferences()).commit(); } - /** - * Populate the activity with the top-level headers. - */ - @Override - public void onBuildHeaders(List
target) { - loadHeadersFromResource(R.xml.global_prefs_headers, target); + public static class MainPreferences extends PreferenceFragment { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.global_prefs); + } } } diff --git a/app/src/main/res/layout/activity_main_pager.xml b/app/src/main/res/layout/activity_main_pager.xml index 12cf219..289add6 100644 --- a/app/src/main/res/layout/activity_main_pager.xml +++ b/app/src/main/res/layout/activity_main_pager.xml @@ -1,6 +1,7 @@ @@ -14,6 +15,8 @@ custom:elevation="4dp" custom:popupTheme="?attr/this_theme"/> + + + android:layout_height="match_parent" + tools:ignore="UselessParent"> + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/global_prefs_headers.xml b/app/src/main/res/xml/global_prefs_headers.xml deleted file mode 100644 index 9dfc7c8..0000000 --- a/app/src/main/res/xml/global_prefs_headers.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - -
- - \ No newline at end of file diff --git a/build.gradle b/build.gradle index f6e9073..e220f0b 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.0' + classpath 'com.android.tools.build:gradle:2.1.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files