From 0ea49f593b11f8ad24f955ee2e7c976d85acbf18 Mon Sep 17 00:00:00 2001 From: seven332 Date: Sat, 26 Jul 2014 13:11:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=AA=E5=B1=8F=E6=97=B6=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=20WindowManager.LayoutParams.FLAG=5FTRANSLUCENT=5FNAVIGATION?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- res/values-v19/themes.xml | 36 ------------------- .../ehviewer/ui/AbstractFragmentActivity.java | 20 +++++++++-- .../ui/AbstractPreferenceActivity.java | 20 +++++++++-- .../ehviewer/ui/AbstractSlidingActivity.java | 22 +++++++++--- .../ehviewer/ui/GalleryDetailActivity.java | 2 +- .../ehviewer/ui/GalleryListActivity.java | 33 ----------------- src/com/hippo/ehviewer/util/Ui.java | 26 ++++++++++++++ 7 files changed, 79 insertions(+), 80 deletions(-) delete mode 100644 res/values-v19/themes.xml diff --git a/res/values-v19/themes.xml b/res/values-v19/themes.xml deleted file mode 100644 index c48531ab2..000000000 --- a/res/values-v19/themes.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/src/com/hippo/ehviewer/ui/AbstractFragmentActivity.java b/src/com/hippo/ehviewer/ui/AbstractFragmentActivity.java index c840bde79..f0e6fecf7 100644 --- a/src/com/hippo/ehviewer/ui/AbstractFragmentActivity.java +++ b/src/com/hippo/ehviewer/ui/AbstractFragmentActivity.java @@ -16,6 +16,8 @@ package com.hippo.ehviewer.ui; +import android.content.res.Configuration; +import android.os.Bundle; import android.support.v4.app.FragmentActivity; import com.google.analytics.tracking.android.EasyTracker; @@ -25,11 +27,25 @@ import com.hippo.ehviewer.util.Ui; public abstract class AbstractFragmentActivity extends FragmentActivity { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + Ui.adjustOrientation(this, true); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + Ui.updateTranslucent(this); + } + @Override protected void onResume() { super.onResume(); - Ui.adjustOrientation(this); + Ui.adjustOrientation(this, true); } @Override @@ -38,8 +54,6 @@ public abstract class AbstractFragmentActivity extends FragmentActivity { if (Config.getAllowAnalyics()) EasyTracker.getInstance(this).activityStart(this); - - Ui.adjustOrientation(this); } @Override diff --git a/src/com/hippo/ehviewer/ui/AbstractPreferenceActivity.java b/src/com/hippo/ehviewer/ui/AbstractPreferenceActivity.java index 8d07fe737..b38b5d9ed 100644 --- a/src/com/hippo/ehviewer/ui/AbstractPreferenceActivity.java +++ b/src/com/hippo/ehviewer/ui/AbstractPreferenceActivity.java @@ -16,6 +16,8 @@ package com.hippo.ehviewer.ui; +import android.content.res.Configuration; +import android.os.Bundle; import android.preference.PreferenceActivity; import com.google.analytics.tracking.android.EasyTracker; @@ -24,11 +26,25 @@ import com.hippo.ehviewer.util.Ui; public class AbstractPreferenceActivity extends PreferenceActivity { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + Ui.adjustOrientation(this, true); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + Ui.updateTranslucent(this); + } + @Override protected void onResume() { super.onResume(); - Ui.adjustOrientation(this); + Ui.adjustOrientation(this, true); } @Override @@ -37,8 +53,6 @@ public class AbstractPreferenceActivity extends PreferenceActivity { if (Config.getAllowAnalyics()) EasyTracker.getInstance(this).activityStart(this); - - Ui.adjustOrientation(this); } @Override diff --git a/src/com/hippo/ehviewer/ui/AbstractSlidingActivity.java b/src/com/hippo/ehviewer/ui/AbstractSlidingActivity.java index e2d042e67..967ebd3fe 100644 --- a/src/com/hippo/ehviewer/ui/AbstractSlidingActivity.java +++ b/src/com/hippo/ehviewer/ui/AbstractSlidingActivity.java @@ -16,6 +16,9 @@ package com.hippo.ehviewer.ui; +import android.content.res.Configuration; +import android.os.Bundle; + import com.google.analytics.tracking.android.EasyTracker; import com.hippo.ehviewer.cache.ImageCache; import com.hippo.ehviewer.util.Config; @@ -24,11 +27,25 @@ import com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivity; public class AbstractSlidingActivity extends SlidingActivity { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + Ui.adjustOrientation(this, true); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + Ui.updateTranslucent(this); + } + @Override protected void onResume() { super.onResume(); - Ui.adjustOrientation(this); + Ui.adjustOrientation(this, true); } @Override @@ -37,8 +54,6 @@ public class AbstractSlidingActivity extends SlidingActivity { if (Config.getAllowAnalyics()) EasyTracker.getInstance(this).activityStart(this); - - Ui.adjustOrientation(this); } @Override @@ -47,7 +62,6 @@ public class AbstractSlidingActivity extends SlidingActivity { if (Config.getAllowAnalyics()) EasyTracker.getInstance(this).activityStop(this); - ImageCache.getInstance(this).flush(); } } diff --git a/src/com/hippo/ehviewer/ui/GalleryDetailActivity.java b/src/com/hippo/ehviewer/ui/GalleryDetailActivity.java index 655182569..151c22f0f 100644 --- a/src/com/hippo/ehviewer/ui/GalleryDetailActivity.java +++ b/src/com/hippo/ehviewer/ui/GalleryDetailActivity.java @@ -131,7 +131,7 @@ public class GalleryDetailActivity extends AbstractFragmentActivity } @Override - protected void onCreate(Bundle savedInstanceState) { + public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.viewpager); diff --git a/src/com/hippo/ehviewer/ui/GalleryListActivity.java b/src/com/hippo/ehviewer/ui/GalleryListActivity.java index 8d8e17298..24430bc0a 100644 --- a/src/com/hippo/ehviewer/ui/GalleryListActivity.java +++ b/src/com/hippo/ehviewer/ui/GalleryListActivity.java @@ -35,7 +35,6 @@ import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.os.Message; -import android.preference.PreferenceActivity; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.style.ImageSpan; @@ -806,38 +805,6 @@ public class GalleryListActivity extends AbstractGalleryActivity } } - private void showPopularWarningDialog() { - DialogBuilder db = new DialogBuilder(GalleryListActivity.this). - setCancelable(false). - setView(R.layout.popular_warning, false); - db.setTitle(R.string.about_analyics_title); - ViewGroup vg = db.getCustomLayout(); - final CheckBox cb = (CheckBox)vg.findViewById(R.id.set_default); - db.setPositiveButton(android.R.string.ok, new View.OnClickListener() { - @Override - public void onClick(View v) { - ((AlertButton)v).dialog.dismiss(); - if (cb.isChecked()) - Config.setPopularWarning(false); - - Intent intent = new Intent(GalleryListActivity.this, - SettingsActivity.class); - intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT, SettingsActivity.AboutFragment.class.getName()); - intent.putExtra(PreferenceActivity.EXTRA_NO_HEADERS, true); - startActivity(intent); - } - }); - db.setNegativeButton(android.R.string.cancel, new View.OnClickListener() { - @Override - public void onClick(View v) { - ((AlertButton)v).dialog.dismiss(); - if (cb.isChecked()) - Config.setPopularWarning(false); - } - }); - db.create().show(); - } - @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/src/com/hippo/ehviewer/util/Ui.java b/src/com/hippo/ehviewer/util/Ui.java index f75ec2862..f1339b468 100644 --- a/src/com/hippo/ehviewer/util/Ui.java +++ b/src/com/hippo/ehviewer/util/Ui.java @@ -16,6 +16,7 @@ package com.hippo.ehviewer.util; +import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.content.res.Resources; @@ -24,6 +25,7 @@ import android.graphics.BitmapFactory; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; +import android.os.Build; import android.util.DisplayMetrics; import android.view.KeyCharacterMap; import android.view.KeyEvent; @@ -31,6 +33,8 @@ import android.view.View; import android.view.View.MeasureSpec; import android.view.ViewConfiguration; import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; import com.hippo.ehviewer.ListUrls; import com.hippo.ehviewer.R; @@ -265,10 +269,32 @@ public class Ui { } } + @TargetApi(Build.VERSION_CODES.KITKAT) + public static void updateTranslucent(Activity activity) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + int screenOri = getOrientation(activity); + Window w = activity.getWindow(); + + w.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + if (screenOri == ORIENTATION_PORTRAIT) + w.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); + else if (screenOri == ORIENTATION_LANDSCAPE) + w.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); + } + } + public static void adjustOrientation(Activity activity) { + adjustOrientation(activity, false); + } + + public static void adjustOrientation(Activity activity, + boolean updateTranslucent) { int screenOri = Config.getScreenOriMode(); if (screenOri != activity.getRequestedOrientation()) activity.setRequestedOrientation(screenOri); + + if (updateTranslucent) + updateTranslucent(activity); } public static SystemBarConfig translucent(