|
|
|
package acr.browser.lightning.activity;
|
|
|
|
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.content.res.Configuration;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.support.v7.app.AppCompatActivity;
|
|
|
|
|
|
|
|
import javax.inject.Inject;
|
|
|
|
|
|
|
|
import acr.browser.lightning.R;
|
|
|
|
import acr.browser.lightning.app.BrowserApp;
|
|
|
|
import acr.browser.lightning.preference.PreferenceManager;
|
|
|
|
|
|
|
|
public abstract class ThemableBrowserActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
@Inject PreferenceManager mPreferences;
|
|
|
|
|
|
|
|
private int mTheme;
|
|
|
|
private boolean mShowTabsInDrawer;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
BrowserApp.getAppComponent().inject(this);
|
|
|
|
mTheme = mPreferences.getUseTheme();
|
|
|
|
mShowTabsInDrawer = mPreferences.getShowTabsInDrawer(!isTablet());
|
|
|
|
|
|
|
|
// set the theme
|
|
|
|
if (mTheme == 1) {
|
|
|
|
setTheme(R.style.Theme_DarkTheme);
|
|
|
|
} else if (mTheme == 2) {
|
|
|
|
setTheme(R.style.Theme_BlackTheme);
|
|
|
|
}
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onResume() {
|
|
|
|
super.onResume();
|
|
|
|
int theme = mPreferences.getUseTheme();
|
|
|
|
boolean drawerTabs = mPreferences.getShowTabsInDrawer(!isTablet());
|
|
|
|
if (theme != mTheme || mShowTabsInDrawer != drawerTabs) {
|
|
|
|
restart();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
boolean isTablet() {
|
|
|
|
return (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void restart() {
|
|
|
|
Intent intent = getIntent();
|
|
|
|
finish();
|
|
|
|
startActivity(intent);
|
|
|
|
}
|
|
|
|
}
|