Browse Source

Added option to enable/disable Color Mode

master
Anthony Restaino 10 years ago
parent
commit
8314676918
  1. 35
      res/layout/settings.xml
  2. 1
      res/values/strings.xml
  3. 37
      src/acr/browser/lightning/BrowserActivity.java
  4. 1
      src/acr/browser/lightning/PreferenceConstants.java
  5. 31
      src/acr/browser/lightning/SettingsActivity.java

35
res/layout/settings.xml

@ -186,6 +186,41 @@
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_centerVertical="true" /> android:layout_centerVertical="true" />
</RelativeLayout> </RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="#cdcdcd" />
<RelativeLayout
android:id="@+id/layoutColorMode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/listChoiceBackgroundIndicator"
android:minHeight="60dp"
android:paddingBottom="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:paddingLeft="16dp"
android:paddingRight="60dp"
android:text="@string/color_mode"
android:textAppearance="?android:attr/textAppearanceMedium" />
<CheckBox
android:id="@+id/cbColorMode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true" />
</RelativeLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"

1
res/values/strings.xml

@ -197,4 +197,5 @@
<string name="close_all_tabs">Close all tabs</string> <string name="close_all_tabs">Close all tabs</string>
<string name="third_party">Block 3rd Party Cookies</string> <string name="third_party">Block 3rd Party Cookies</string>
<string name="available_lollipop">This feature is only available on Android 5.0+</string> <string name="available_lollipop">This feature is only available on Android 5.0+</string>
<string name="color_mode">Enable Color Mode</string>
</resources> </resources>

37
src/acr/browser/lightning/BrowserActivity.java

@ -102,6 +102,7 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
private int mActionBarSize; private int mActionBarSize;
private ActionBar mActionBar; private ActionBar mActionBar;
private boolean mFullScreen; private boolean mFullScreen;
private boolean mColorMode;
private FrameLayout mBrowserFrame; private FrameLayout mBrowserFrame;
private LinearLayout mPageLayout; private LinearLayout mPageLayout;
private LinearLayout mUiLayout; private LinearLayout mUiLayout;
@ -494,7 +495,7 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
initializePreferences(); initializePreferences();
initializeTabs(); initializeTabs();
if (API < 19) { if (API <= Build.VERSION_CODES.JELLY_BEAN_MR2) {
WebIconDatabase.getInstance().open(getDir("icons", MODE_PRIVATE).getPath()); WebIconDatabase.getInstance().open(getDir("icons", MODE_PRIVATE).getPath());
} }
@ -720,17 +721,20 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
mPreferences = getSharedPreferences(PreferenceConstants.PREFERENCES, 0); mPreferences = getSharedPreferences(PreferenceConstants.PREFERENCES, 0);
} }
mFullScreen = mPreferences.getBoolean(PreferenceConstants.FULL_SCREEN, false); mFullScreen = mPreferences.getBoolean(PreferenceConstants.FULL_SCREEN, false);
if (mFullScreen) { mColorMode = mPreferences.getBoolean(PreferenceConstants.ENABLE_COLOR_MODE, true);
if (mBrowserFrame.findViewById(R.id.toolbar_layout) == null) {
mUiLayout.removeView(mToolbarLayout); if (!isIncognito() && !mColorMode && mWebpageBitmap != null)
mBrowserFrame.addView(mToolbarLayout); changeToolbarBackground(mWebpageBitmap);
mToolbarLayout.bringToFront(); else if (!isIncognito() && mCurrentView != null && mCurrentView.getFavicon() != null)
} changeToolbarBackground(mCurrentView.getFavicon());
} else {
if (mBrowserFrame.findViewById(R.id.toolbar_layout) != null) { if (mFullScreen && mBrowserFrame.findViewById(R.id.toolbar_layout) == null) {
mBrowserFrame.removeView(mToolbarLayout); mUiLayout.removeView(mToolbarLayout);
mUiLayout.addView(mToolbarLayout, 0); mBrowserFrame.addView(mToolbarLayout);
} mToolbarLayout.bringToFront();
} else if (mBrowserFrame.findViewById(R.id.toolbar_layout) != null) {
mBrowserFrame.removeView(mToolbarLayout);
mUiLayout.addView(mToolbarLayout, 0);
} }
if (mPreferences.getBoolean(PreferenceConstants.HIDE_STATUS_BAR, false)) { if (mPreferences.getBoolean(PreferenceConstants.HIDE_STATUS_BAR, false)) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
@ -1180,9 +1184,6 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
} }
public void handleNewIntent(Intent intent) { public void handleNewIntent(Intent intent) {
if (mCurrentView == null) {
initialize();
}
String url = null; String url = null;
if (intent != null) { if (intent != null) {
@ -1534,8 +1535,6 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
} }
mBookmarkList = mBookmarkManager.getBookmarks(true); mBookmarkList = mBookmarkManager.getBookmarks(true);
notifyBookmarkDataSetChanged(); notifyBookmarkDataSetChanged();
} else {
initialize();
} }
initializePreferences(); initializePreferences();
if (mWebViews != null) { if (mWebViews != null) {
@ -1546,8 +1545,6 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
mWebViews.remove(n); mWebViews.remove(n);
} }
} }
} else {
initialize();
} }
} }
@ -1696,7 +1693,7 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
if (web.isForegroundTab()) { if (web.isForegroundTab()) {
holder.favicon.setImageBitmap(favicon); holder.favicon.setImageBitmap(favicon);
if (!isIncognito()) if (!isIncognito() && mColorMode)
changeToolbarBackground(favicon); changeToolbarBackground(favicon);
} else { } else {
Bitmap grayscaleBitmap = Bitmap.createBitmap(favicon.getWidth(), Bitmap grayscaleBitmap = Bitmap.createBitmap(favicon.getWidth(),

1
src/acr/browser/lightning/PreferenceConstants.java

@ -41,6 +41,7 @@ public final class PreferenceConstants {
public static final String RENDERING_MODE = "renderMode"; public static final String RENDERING_MODE = "renderMode";
public static final String SYNC_HISTORY = "syncHistory"; public static final String SYNC_HISTORY = "syncHistory";
public static final String BLOCK_THIRD_PARTY = "thirdParty"; public static final String BLOCK_THIRD_PARTY = "thirdParty";
public static final String ENABLE_COLOR_MODE = "colorMode";
public static final String USE_PROXY = "useProxy"; public static final String USE_PROXY = "useProxy";
public static final String USE_PROXY_HOST = "useProxyHost"; public static final String USE_PROXY_HOST = "useProxyHost";

31
src/acr/browser/lightning/SettingsActivity.java

@ -74,6 +74,7 @@ public class SettingsActivity extends ActionBarActivity {
RelativeLayout layoutImages = (RelativeLayout) findViewById(R.id.layoutImages); RelativeLayout layoutImages = (RelativeLayout) findViewById(R.id.layoutImages);
RelativeLayout layoutEnableJS = (RelativeLayout) findViewById(R.id.layoutEnableJS); RelativeLayout layoutEnableJS = (RelativeLayout) findViewById(R.id.layoutEnableJS);
RelativeLayout layoutOrbot = (RelativeLayout) findViewById(R.id.layoutUseOrbot); RelativeLayout layoutOrbot = (RelativeLayout) findViewById(R.id.layoutUseOrbot);
RelativeLayout layoutColor = (RelativeLayout) findViewById(R.id.layoutColorMode);
RelativeLayout layoutBookmarks = (RelativeLayout) findViewById(R.id.layoutBookmarks); RelativeLayout layoutBookmarks = (RelativeLayout) findViewById(R.id.layoutBookmarks);
layoutBookmarks.setOnClickListener(new OnClickListener(){ layoutBookmarks.setOnClickListener(new OnClickListener(){
@ -98,6 +99,7 @@ public class SettingsActivity extends ActionBarActivity {
CheckBox images = (CheckBox) findViewById(R.id.cbImageBlock); CheckBox images = (CheckBox) findViewById(R.id.cbImageBlock);
CheckBox enablejs = (CheckBox) findViewById(R.id.cbJavascript); CheckBox enablejs = (CheckBox) findViewById(R.id.cbJavascript);
CheckBox orbot = (CheckBox) findViewById(R.id.cbOrbot); CheckBox orbot = (CheckBox) findViewById(R.id.cbOrbot);
CheckBox color = (CheckBox) findViewById(R.id.cbColorMode);
images.setChecked(imagesBool); images.setChecked(imagesBool);
enablejs.setChecked(enableJSBool); enablejs.setChecked(enableJSBool);
@ -108,10 +110,11 @@ public class SettingsActivity extends ActionBarActivity {
} }
adblock.setChecked(mPreferences.getBoolean(PreferenceConstants.BLOCK_ADS, false)); adblock.setChecked(mPreferences.getBoolean(PreferenceConstants.BLOCK_ADS, false));
orbot.setChecked(mPreferences.getBoolean(PreferenceConstants.USE_PROXY, false)); orbot.setChecked(mPreferences.getBoolean(PreferenceConstants.USE_PROXY, false));
color.setChecked(mPreferences.getBoolean(PreferenceConstants.ENABLE_COLOR_MODE, true));
initCheckBox(flash, adblock, images, enablejs, orbot); initCheckBox(flash, adblock, images, enablejs, orbot, color);
clickListenerForCheckBoxes(layoutFlash, layoutBlockAds, layoutImages, layoutEnableJS, clickListenerForCheckBoxes(layoutFlash, layoutBlockAds, layoutImages, layoutEnableJS,
layoutOrbot, flash, adblock, images, enablejs, orbot); layoutOrbot, layoutColor, flash, adblock, images, enablejs, orbot, color);
RelativeLayout general = (RelativeLayout) findViewById(R.id.layoutGeneral); RelativeLayout general = (RelativeLayout) findViewById(R.id.layoutGeneral);
RelativeLayout display = (RelativeLayout) findViewById(R.id.layoutDisplay); RelativeLayout display = (RelativeLayout) findViewById(R.id.layoutDisplay);
@ -127,9 +130,9 @@ public class SettingsActivity extends ActionBarActivity {
} }
public void clickListenerForCheckBoxes(RelativeLayout layoutFlash, RelativeLayout layoutBlockAds, public void clickListenerForCheckBoxes(RelativeLayout layoutFlash, RelativeLayout layoutBlockAds,
RelativeLayout layoutImages, RelativeLayout layoutEnableJS, RelativeLayout layoutOrbot, RelativeLayout layoutImages, RelativeLayout layoutEnableJS, RelativeLayout layoutOrbot, RelativeLayout layoutColor,
final CheckBox flash, final CheckBox adblock, final CheckBox images, final CheckBox enablejs, final CheckBox flash, final CheckBox adblock, final CheckBox images, final CheckBox enablejs,
final CheckBox orbot) { final CheckBox orbot, final CheckBox color) {
layoutFlash.setOnClickListener(new OnClickListener() { layoutFlash.setOnClickListener(new OnClickListener() {
@Override @Override
@ -180,10 +183,18 @@ public class SettingsActivity extends ActionBarActivity {
} }
}); });
layoutColor.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
color.setChecked(!color.isChecked());
}
});
} }
public void initCheckBox(CheckBox flash, CheckBox adblock, CheckBox images, CheckBox enablejs, public void initCheckBox(CheckBox flash, CheckBox adblock, CheckBox images, CheckBox enablejs,
CheckBox orbot) { CheckBox orbot, CheckBox color) {
flash.setEnabled(API < 19); flash.setEnabled(API < 19);
flash.setOnCheckedChangeListener(new OnCheckedChangeListener() { flash.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@ -266,6 +277,16 @@ public class SettingsActivity extends ActionBarActivity {
} }
}); });
color.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mEditPrefs.putBoolean(PreferenceConstants.ENABLE_COLOR_MODE, isChecked);
mEditPrefs.commit();
}
});
} }
private void getFlashChoice() { private void getFlashChoice() {

Loading…
Cancel
Save