Browse Source

Fixed bug where multiple processes caused incognito to nor respond to preference changes.

Possibly in the future I should explore gong back to multiprocess for
incognito mode but right now it causes bugs. Also tweaked UI color in
color mode
master
Anthony Restaino 8 years ago
parent
commit
bd8c439161
  1. 1
      app/src/main/AndroidManifest.xml
  2. 13
      app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java
  3. 7
      app/src/main/java/acr/browser/lightning/activity/TabsManager.java
  4. 3
      app/src/main/java/acr/browser/lightning/app/AppComponent.java
  5. 4
      app/src/main/java/acr/browser/lightning/browser/BrowserPresenter.java
  6. 3
      app/src/main/java/acr/browser/lightning/controller/UIController.java
  7. 4
      app/src/main/java/acr/browser/lightning/fragment/BookmarksFragment.java
  8. 13
      app/src/main/java/acr/browser/lightning/fragment/TabsFragment.java

1
app/src/main/AndroidManifest.xml

@ -129,7 +129,6 @@ @@ -129,7 +129,6 @@
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
android:label="@string/app_name"
android:launchMode="singleTask"
android:process=":incognito"
android:theme="@style/Theme.DarkTheme"
android:windowSoftInputMode="stateHidden">
<intent-filter>

13
app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java

@ -4,9 +4,6 @@ @@ -4,9 +4,6 @@
package acr.browser.lightning.activity;
import android.animation.ArgbEvaluator;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.ClipData;
@ -191,7 +188,7 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements @@ -191,7 +188,7 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
@Inject LightningDialogBuilder mBookmarksDialogBuilder;
@Inject TabsManager mTabsManager;
private TabsManager mTabsManager;
@Inject HistoryDatabase mHistoryDatabase;
@ -244,6 +241,7 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements @@ -244,6 +241,7 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
mTabsManager = new TabsManager();
mPresenter = new BrowserPresenter(this, isIncognito());
initialize();
@ -815,6 +813,11 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements @@ -815,6 +813,11 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
quit.setOnClickListener(this);
}
@Override
public TabsManager getTabModel() {
return mTabsManager;
}
@Override
public void showCloseDialog(final int position) {
if (position < 0) {
@ -1284,7 +1287,7 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements @@ -1284,7 +1287,7 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
if (requestedColor == defaultColor) {
return mDarkTheme ? DrawableUtils.mixColor(0.25f, defaultColor, Color.WHITE): Color.WHITE;
} else {
return DrawableUtils.mixColor(0.5f, requestedColor, Color.WHITE);
return DrawableUtils.mixColor(0.25f, requestedColor, Color.WHITE);
}
}

7
app/src/main/java/acr/browser/lightning/activity/TabsManager.java

@ -21,6 +21,7 @@ import javax.inject.Inject; @@ -21,6 +21,7 @@ import javax.inject.Inject;
import javax.inject.Singleton;
import acr.browser.lightning.R;
import acr.browser.lightning.app.BrowserApp;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.react.Action;
@ -36,7 +37,6 @@ import acr.browser.lightning.view.LightningView; @@ -36,7 +37,6 @@ import acr.browser.lightning.view.LightningView;
* and tracks the current tab. It handles creation, deletion,
* restoration, state saving, and switching of tabs.
*/
@Singleton
public class TabsManager {
private static final String TAG = TabsManager.class.getSimpleName();
@ -54,8 +54,9 @@ public class TabsManager { @@ -54,8 +54,9 @@ public class TabsManager {
@Inject Bus mEventBus;
@Inject Application mApp;
@Inject
public TabsManager() {}
public TabsManager() {
BrowserApp.getAppComponent().inject(this);
}
// TODO remove and make presenter call new tab methods so it always knows
@Deprecated

3
app/src/main/java/acr/browser/lightning/app/AppComponent.java

@ -4,6 +4,7 @@ import javax.inject.Singleton; @@ -4,6 +4,7 @@ import javax.inject.Singleton;
import acr.browser.lightning.activity.BrowserActivity;
import acr.browser.lightning.activity.ReadingActivity;
import acr.browser.lightning.activity.TabsManager;
import acr.browser.lightning.activity.ThemableBrowserActivity;
import acr.browser.lightning.activity.ThemableSettingsActivity;
import acr.browser.lightning.browser.BrowserPresenter;
@ -64,4 +65,6 @@ public interface AppComponent { @@ -64,4 +65,6 @@ public interface AppComponent {
void inject(BrowserPresenter presenter);
void inject(TabsManager manager);
}

4
app/src/main/java/acr/browser/lightning/browser/BrowserPresenter.java

@ -16,6 +16,7 @@ import acr.browser.lightning.activity.TabsManager; @@ -16,6 +16,7 @@ import acr.browser.lightning.activity.TabsManager;
import acr.browser.lightning.app.BrowserApp;
import acr.browser.lightning.bus.BrowserEvents;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.controller.UIController;
import acr.browser.lightning.preference.PreferenceManager;
import acr.browser.lightning.react.OnSubscribe;
import acr.browser.lightning.utils.UrlUtils;
@ -30,7 +31,7 @@ public class BrowserPresenter { @@ -30,7 +31,7 @@ public class BrowserPresenter {
private static final String TAG = BrowserPresenter.class.getSimpleName();
@Inject TabsManager mTabsModel;
private TabsManager mTabsModel;
@Inject PreferenceManager mPreferences;
@Inject Bus mEventBus;
@ -42,6 +43,7 @@ public class BrowserPresenter { @@ -42,6 +43,7 @@ public class BrowserPresenter {
public BrowserPresenter(@NonNull BrowserView view, boolean isIncognito) {
BrowserApp.getAppComponent().inject(this);
mTabsModel = ((UIController) view).getTabModel();
mView = view;
mIsIncognito = isIncognito;
mTabsModel.setTabNumberChangedListener(new TabsManager.TabNumberChangedListener() {

3
app/src/main/java/acr/browser/lightning/controller/UIController.java

@ -14,6 +14,7 @@ import android.view.View; @@ -14,6 +14,7 @@ import android.view.View;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient.CustomViewCallback;
import acr.browser.lightning.activity.TabsManager;
import acr.browser.lightning.view.LightningView;
public interface UIController {
@ -61,4 +62,6 @@ public interface UIController { @@ -61,4 +62,6 @@ public interface UIController {
void tabChanged(LightningView tab);
TabsManager getTabModel();
}

4
app/src/main/java/acr/browser/lightning/fragment/BookmarksFragment.java

@ -42,6 +42,7 @@ import acr.browser.lightning.async.AsyncExecutor; @@ -42,6 +42,7 @@ import acr.browser.lightning.async.AsyncExecutor;
import acr.browser.lightning.bus.BookmarkEvents;
import acr.browser.lightning.bus.BrowserEvents;
import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.controller.UIController;
import acr.browser.lightning.database.BookmarkManager;
import acr.browser.lightning.database.HistoryItem;
import acr.browser.lightning.dialog.LightningDialogBuilder;
@ -72,7 +73,7 @@ public class BookmarksFragment extends Fragment implements View.OnClickListener, @@ -72,7 +73,7 @@ public class BookmarksFragment extends Fragment implements View.OnClickListener,
@Inject PreferenceManager mPreferenceManager;
@Inject TabsManager mTabsManager;
private TabsManager mTabsManager;
// Adapter
private BookmarkViewAdapter mBookmarkAdapter;
@ -107,6 +108,7 @@ public class BookmarksFragment extends Fragment implements View.OnClickListener, @@ -107,6 +108,7 @@ public class BookmarksFragment extends Fragment implements View.OnClickListener,
BrowserApp.getAppComponent().inject(this);
final Bundle arguments = getArguments();
final Context context = getContext();
mTabsManager = ((UIController) context).getTabModel();
boolean isIncognito = arguments.getBoolean(INCOGNITO_MODE, false);
boolean darkTheme = mPreferenceManager.getUseTheme() != 0 || isIncognito;
mWebpageBitmap = ThemeUtils.getThemedBitmap(context, R.drawable.ic_webpage, darkTheme);

13
app/src/main/java/acr/browser/lightning/fragment/TabsFragment.java

@ -31,7 +31,6 @@ import android.widget.LinearLayout; @@ -31,7 +31,6 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import com.squareup.otto.Bus;
import com.squareup.otto.Subscribe;
import javax.inject.Inject;
@ -39,7 +38,6 @@ import acr.browser.lightning.R; @@ -39,7 +38,6 @@ import acr.browser.lightning.R;
import acr.browser.lightning.activity.TabsManager;
import acr.browser.lightning.app.BrowserApp;
import acr.browser.lightning.browser.TabsView;
import acr.browser.lightning.bus.BrowserEvents;
import acr.browser.lightning.bus.NavigationEvents;
import acr.browser.lightning.bus.TabEvents;
import acr.browser.lightning.controller.UIController;
@ -77,7 +75,7 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View @@ -77,7 +75,7 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View
private UIController mUiController;
private RecyclerView mRecyclerView;
@Inject TabsManager tabsManager;
private TabsManager mTabsManager;
@Inject Bus mBus;
@Inject PreferenceManager mPreferences;
@ -91,6 +89,7 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View @@ -91,6 +89,7 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View
final Bundle arguments = getArguments();
final Context context = getContext();
mUiController = (UIController) getActivity();
mTabsManager = mUiController.getTabModel();
mIsIncognito = arguments.getBoolean(IS_INCOGNITO, false);
mShowInNavigationDrawer = arguments.getBoolean(VERTICAL_MODE, true);
mDarkTheme = mPreferences.getUseTheme() != 0 || mIsIncognito;
@ -187,7 +186,7 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View @@ -187,7 +186,7 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View
public void onClick(@NonNull View v) {
switch (v.getId()) {
case R.id.tab_header_button:
mUiController.showCloseDialog(tabsManager.indexOfCurrentTab());
mUiController.showCloseDialog(mTabsManager.indexOfCurrentTab());
break;
case R.id.new_tab_button:
mBus.post(new TabEvents.NewTab());
@ -220,7 +219,7 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View @@ -220,7 +219,7 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View
@Override
public void tabAdded() {
if (mTabsAdapter != null) {
mTabsAdapter.notifyItemInserted(tabsManager.last());
mTabsAdapter.notifyItemInserted(mTabsManager.last());
mRecyclerView.postDelayed(new Runnable() {
@Override
public void run() {
@ -292,7 +291,7 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View @@ -292,7 +291,7 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View
ViewCompat.jumpDrawablesToCurrentState(holder.exitButton);
LightningView web = tabsManager.getTabAtPosition(position);
LightningView web = mTabsManager.getTabAtPosition(position);
if (web == null) {
return;
}
@ -340,7 +339,7 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View @@ -340,7 +339,7 @@ public class TabsFragment extends Fragment implements View.OnClickListener, View
@Override
public int getItemCount() {
return tabsManager.size();
return mTabsManager.size();
}
public Bitmap getDesaturatedBitmap(@NonNull Bitmap favicon) {

Loading…
Cancel
Save