横屏时移除 WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION

This commit is contained in:
seven332 committed 2014-07-26 13:11:10 +08:00
1 parent 6331c3c86d
commit 0ea49f593b
7 files changed
+79 -80

No files matched your search

-36
View File
@@ -1,36 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 Hippo Seven
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<style name="AppTheme.Normal">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
<style name="AppTheme.Main.ListActivity">
<item name="android:windowBackground">@color/list_main_bg</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
<!-- For activity whose main view is list, make background darker to match white list -->
<style name="AppTheme.ListActivity">
<item name="android:windowBackground">@color/list_main_bg</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
</resources>
@@ -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
@@ -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
@@ -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();
}
}
@@ -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);
@@ -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);
+26
View File
@@ -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(