Move keepScreenOn and rotateScreen
This commit is contained in:
parent
59ce9105ac
commit
f123646400
@ -12,10 +12,7 @@ import android.support.design.widget.FloatingActionButton;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.*;
|
||||
import android.widget.TextView;
|
||||
import butterknife.Bind;
|
||||
import butterknife.ButterKnife;
|
||||
@ -31,9 +28,13 @@ import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
|
||||
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
|
||||
import static android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
|
||||
import static org.solovyev.android.calculator.App.cast;
|
||||
import static org.solovyev.android.calculator.Preferences.Gui.keepScreenOn;
|
||||
|
||||
public class BaseActivity extends AppCompatActivity {
|
||||
public class BaseActivity extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
@Nonnull
|
||||
protected final Tabs tabs;
|
||||
@ -69,6 +70,7 @@ public class BaseActivity extends AppCompatActivity {
|
||||
private Preferences.Gui.Mode mode = Preferences.Gui.Mode.engineer;
|
||||
@Nonnull
|
||||
private Language language = Languages.SYSTEM_LANGUAGE;
|
||||
private boolean paused = true;
|
||||
|
||||
public BaseActivity(@StringRes int titleId) {
|
||||
this(R.layout.activity_tabs, titleId);
|
||||
@ -96,11 +98,6 @@ public class BaseActivity extends AppCompatActivity {
|
||||
}
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public Preferences.Gui.Theme getActivityTheme() {
|
||||
return theme;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public Preferences.Gui.Mode getActivityMode() {
|
||||
return mode;
|
||||
@ -154,6 +151,11 @@ public class BaseActivity extends AppCompatActivity {
|
||||
languages.updateContextLocale(this, false);
|
||||
|
||||
createView();
|
||||
|
||||
updateOrientation();
|
||||
updateKeepScreenOn();
|
||||
|
||||
preferences.registerOnSharedPreferenceChangeListener(this);
|
||||
}
|
||||
|
||||
private void createView() {
|
||||
@ -236,13 +238,27 @@ public class BaseActivity extends AppCompatActivity {
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
paused = false;
|
||||
if (!restartIfThemeChanged()) {
|
||||
restartIfLanguageChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateKeepScreenOn() {
|
||||
final Window window = getWindow();
|
||||
if (window == null) {
|
||||
return;
|
||||
}
|
||||
if (keepScreenOn.getPreference(preferences)) {
|
||||
window.addFlags(FLAG_KEEP_SCREEN_ON);
|
||||
} else {
|
||||
window.clearFlags(FLAG_KEEP_SCREEN_ON);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
paused = true;
|
||||
tabs.onPause();
|
||||
super.onPause();
|
||||
}
|
||||
@ -276,4 +292,36 @@ public class BaseActivity extends AppCompatActivity {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
preferences.unregisterOnSharedPreferenceChangeListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
||||
if (Preferences.Gui.rotateScreen.isSameKey(key)) {
|
||||
updateOrientation();
|
||||
} else if (Preferences.Gui.keepScreenOn.isSameKey(key)) {
|
||||
updateKeepScreenOn();
|
||||
}
|
||||
|
||||
if (paused) {
|
||||
return;
|
||||
}
|
||||
if (Preferences.Gui.theme.isSameKey(key)) {
|
||||
restartIfThemeChanged();
|
||||
} else if (Preferences.Gui.language.isSameKey(key)) {
|
||||
restartIfLanguageChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateOrientation() {
|
||||
if (Preferences.Gui.rotateScreen.getPreference(preferences)) {
|
||||
setRequestedOrientation(SCREEN_ORIENTATION_UNSPECIFIED);
|
||||
} else {
|
||||
setRequestedOrientation(SCREEN_ORIENTATION_PORTRAIT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -27,7 +27,10 @@ import android.os.Bundle;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.*;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import butterknife.Bind;
|
||||
import butterknife.ButterKnife;
|
||||
@ -39,18 +42,11 @@ import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
|
||||
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
|
||||
import static android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
|
||||
import static org.solovyev.android.calculator.Preferences.Gui.keepScreenOn;
|
||||
|
||||
public class CalculatorActivity extends BaseActivity implements SharedPreferences.OnSharedPreferenceChangeListener, Toolbar.OnMenuItemClickListener {
|
||||
public class CalculatorActivity extends BaseActivity implements Toolbar.OnMenuItemClickListener {
|
||||
|
||||
@Inject
|
||||
PreferredPreferences preferredPreferences;
|
||||
@Inject
|
||||
SharedPreferences preferences;
|
||||
@Inject
|
||||
Keyboard keyboard;
|
||||
@Inject
|
||||
PartialKeyboardUi partialKeyboardUi;
|
||||
@ -101,9 +97,6 @@ public class CalculatorActivity extends BaseActivity implements SharedPreference
|
||||
startupHelper.onMainActivityOpened(this);
|
||||
}
|
||||
|
||||
updateOrientation();
|
||||
|
||||
preferences.registerOnSharedPreferenceChangeListener(this);
|
||||
preferredPreferences.check(this, false);
|
||||
}
|
||||
|
||||
@ -133,16 +126,7 @@ public class CalculatorActivity extends BaseActivity implements SharedPreference
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
launcher.setActivity(this);
|
||||
if (restartIfModeChanged()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Window window = getWindow();
|
||||
if (keepScreenOn.getPreference(preferences)) {
|
||||
window.addFlags(FLAG_KEEP_SCREEN_ON);
|
||||
} else {
|
||||
window.clearFlags(FLAG_KEEP_SCREEN_ON);
|
||||
}
|
||||
restartIfModeChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -153,7 +137,6 @@ public class CalculatorActivity extends BaseActivity implements SharedPreference
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
preferences.unregisterOnSharedPreferenceChangeListener(this);
|
||||
if (partialKeyboard != null) {
|
||||
partialKeyboardUi.onDestroyView();
|
||||
}
|
||||
@ -162,21 +145,10 @@ public class CalculatorActivity extends BaseActivity implements SharedPreference
|
||||
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences preferences, @Nonnull String key) {
|
||||
super.onSharedPreferenceChanged(preferences, key);
|
||||
if (Preferences.Gui.useBackAsPrevious.isSameKey(key)) {
|
||||
useBackAsPrevious = Preferences.Gui.useBackAsPrevious.getPreference(preferences);
|
||||
}
|
||||
|
||||
if (Preferences.Gui.rotateScreen.isSameKey(key)) {
|
||||
updateOrientation();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateOrientation() {
|
||||
if (Preferences.Gui.rotateScreen.getPreference(preferences)) {
|
||||
setRequestedOrientation(SCREEN_ORIENTATION_UNSPECIFIED);
|
||||
} else {
|
||||
setRequestedOrientation(SCREEN_ORIENTATION_PORTRAIT);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -8,11 +8,9 @@ import android.support.annotation.NonNull;
|
||||
import android.support.annotation.StringRes;
|
||||
import android.support.annotation.XmlRes;
|
||||
import android.util.SparseArray;
|
||||
|
||||
import org.solovyev.android.calculator.App;
|
||||
import org.solovyev.android.calculator.AppComponent;
|
||||
import org.solovyev.android.calculator.BaseActivity;
|
||||
import org.solovyev.android.calculator.Preferences;
|
||||
import org.solovyev.android.calculator.R;
|
||||
import org.solovyev.android.calculator.language.Languages;
|
||||
import org.solovyev.android.checkout.ActivityCheckout;
|
||||
@ -45,15 +43,12 @@ public class PreferencesActivity extends BaseActivity implements SharedPreferenc
|
||||
}
|
||||
|
||||
ActivityCheckout checkout;
|
||||
private boolean paused = true;
|
||||
|
||||
@Inject
|
||||
Billing billing;
|
||||
@Inject
|
||||
Products products;
|
||||
@Inject
|
||||
SharedPreferences preferences;
|
||||
@Inject
|
||||
Languages languages;
|
||||
|
||||
public PreferencesActivity() {
|
||||
@ -78,7 +73,6 @@ public class PreferencesActivity extends BaseActivity implements SharedPreferenc
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
preferences.registerOnSharedPreferenceChangeListener(this);
|
||||
|
||||
final Intent intent = getIntent();
|
||||
final int preferenceTitle = intent.getIntExtra(EXTRA_PREFERENCE_TITLE, 0);
|
||||
@ -103,33 +97,9 @@ public class PreferencesActivity extends BaseActivity implements SharedPreferenc
|
||||
component.inject(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||
if (!paused) {
|
||||
if (Preferences.Gui.theme.isSameKey(key)) {
|
||||
restartIfThemeChanged();
|
||||
} else if (Preferences.Gui.language.isSameKey(key)) {
|
||||
restartIfLanguageChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
paused = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
paused = true;
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
checkout.stop();
|
||||
preferences.unregisterOnSharedPreferenceChangeListener(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
|
@ -195,15 +195,6 @@ public class WizardActivity extends BaseActivity implements WizardsAware, Shared
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
||||
if (Preferences.Gui.theme.isSameKey(key)) {
|
||||
restartIfThemeChanged();
|
||||
} else if (Preferences.Gui.language.isSameKey(key)) {
|
||||
restartIfLanguageChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private class WizardPagerAdapter extends FragmentStatePagerAdapter {
|
||||
@Nonnull
|
||||
private final ListWizardFlow flow;
|
||||
|
Loading…
Reference in New Issue
Block a user