[vlc-devel] [PATCH] android: apply theme to preference activty

Tse, Kit Yam me at kytse.com
Fri Mar 6 11:03:43 CET 2015


This patch fix one of the problems mentioned in #12828, the theme won't be
applied on preference activity.


>From 884b95580de9e7080a336b507c2ba3bca978b97b Mon Sep 17 00:00:00 2001
From: Tse Kit Yam <me at kytse.com>
Date: Thu, 5 Mar 2015 10:31:48 +0800
Subject: [PATCH] apply theme to preferences activity (#12828)

---
 .../org/videolan/vlc/gui/PreferencesActivity.java    | 20
++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/vlc-android/src/org/videolan/vlc/gui/PreferencesActivity.java
b/vlc-android/src/org/videolan/vlc/gui/PreferencesActivity.java
index 91d078b..ae713f2 100644
--- a/vlc-android/src/org/videolan/vlc/gui/PreferencesActivity.java
+++ b/vlc-android/src/org/videolan/vlc/gui/PreferencesActivity.java
@@ -34,6 +34,7 @@ import org.videolan.vlc.util.Logcat;
 import org.videolan.vlc.util.Util;
 import org.videolan.vlc.util.VLCInstance;

+import android.annotation.TargetApi;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.content.Context;
@@ -81,6 +82,9 @@ public class PreferencesActivity extends
PreferenceActivity implements OnSharedP

     @Override
     protected void onCreate(Bundle savedInstanceState) {
+        /* Theme must be applied before super.onCreate */
+        applyTheme();
+
         super.onCreate(savedInstanceState);
         addPreferencesFromResource(R.xml.preferences);

@@ -146,6 +150,9 @@ public class PreferencesActivity extends
PreferenceActivity implements OnSharedP
                     @Override
                     public boolean onPreferenceClick(Preference
preference) {
                         setResult(RESULT_RESTART);
+                        Intent intent = getIntent();
+                        finish();
+                        startActivity(intent);
                         return true;
                     }
                 });
@@ -276,6 +283,19 @@ public class PreferencesActivity extends
PreferenceActivity implements OnSharedP
         sharedPrefs.registerOnSharedPreferenceChangeListener(this);
     }

+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    private void applyTheme() {
+        SharedPreferences pref =
PreferenceManager.getDefaultSharedPreferences(this);
+        boolean enableBlackTheme = pref.getBoolean("enable_black_theme",
false);
+        if (enableBlackTheme) {
+            setTheme(R.style.Theme_VLC_Black);
+            //We need to manually change statusbar color, otherwise, it
remains orange.
+            if (LibVlcUtil.isLolliPopOrLater()) {
+                getWindow().setStatusBarColor(Color.DKGRAY);
+            }
+        }
+    }
+
     @Override
     protected void onPostCreate(Bundle savedInstanceState) {
         super.onPostCreate(savedInstanceState);
-- 
2.3.1


-- 
Tse Kit Yam
me at kytse.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20150306/b1a17846/attachment.html>


More information about the vlc-devel mailing list