Niedzielski has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/338057 )
Change subject: Hygiene: consolidate more into BaseActivity ...................................................................... Hygiene: consolidate more into BaseActivity Change-Id: I954efc4ed79f20a7f17a7490bcda86a16792e0cd --- M app/src/main/java/org/wikipedia/activity/BaseActivity.java M app/src/main/java/org/wikipedia/activity/SingleFragmentActivity.java M app/src/main/java/org/wikipedia/activity/SingleFragmentToolbarActivity.java M app/src/main/java/org/wikipedia/activity/ThemedActionBarActivity.java M app/src/main/java/org/wikipedia/page/PageActivity.java 5 files changed, 77 insertions(+), 63 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/57/338057/1 diff --git a/app/src/main/java/org/wikipedia/activity/BaseActivity.java b/app/src/main/java/org/wikipedia/activity/BaseActivity.java index 88cf8fb..9548d44 100644 --- a/app/src/main/java/org/wikipedia/activity/BaseActivity.java +++ b/app/src/main/java/org/wikipedia/activity/BaseActivity.java @@ -1,18 +1,23 @@ package org.wikipedia.activity; -import android.annotation.TargetApi; import android.content.pm.ActivityInfo; import android.os.Build; +import android.os.Bundle; +import android.support.annotation.ColorRes; +import android.support.annotation.Nullable; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; +import com.squareup.otto.Subscribe; + +import org.wikipedia.WikipediaApp; +import org.wikipedia.events.WikipediaZeroEnterEvent; +import org.wikipedia.settings.Prefs; + public abstract class BaseActivity extends AppCompatActivity { - @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) - protected void requestFullUserOrientation() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { - setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER); - } - } + private boolean destroyed; + private EventBusMethods busMethods; @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { @@ -23,4 +28,47 @@ return false; } } + + protected void requestFullUserOrientation() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER); + } + } + + @Override protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + busMethods = new EventBusMethods(); + WikipediaApp.getInstance().getBus().register(busMethods); + } + + @Override protected void onDestroy() { + WikipediaApp.getInstance().getBus().unregister(busMethods); + busMethods = null; + super.onDestroy(); + destroyed = true; + } + + protected void setStatusBarColor(@ColorRes int color) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + getWindow().setStatusBarColor(ContextCompat.getColor(this, color)); + } + } + + @Override public boolean isDestroyed() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + return super.isDestroyed(); + } + return destroyed; + } + + private class EventBusMethods { + // todo: reevaluate lifecycle. the bus is active when this activity is paused and we show ui + @Subscribe public void onZeroEnter(WikipediaZeroEnterEvent event) { + if (Prefs.isZeroTutorialEnabled()) { + Prefs.setZeroTutorialEnabled(false); + WikipediaApp.getInstance().getWikipediaZeroHandler() + .showZeroTutorialDialog(BaseActivity.this); + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/org/wikipedia/activity/SingleFragmentActivity.java b/app/src/main/java/org/wikipedia/activity/SingleFragmentActivity.java index f5987e4..83873d2 100644 --- a/app/src/main/java/org/wikipedia/activity/SingleFragmentActivity.java +++ b/app/src/main/java/org/wikipedia/activity/SingleFragmentActivity.java @@ -1,12 +1,9 @@ package org.wikipedia.activity; -import android.os.Build; import android.os.Bundle; -import android.support.annotation.ColorRes; import android.support.annotation.IdRes; import android.support.annotation.LayoutRes; import android.support.v4.app.Fragment; -import android.support.v4.content.ContextCompat; import org.wikipedia.R; @@ -54,9 +51,4 @@ return getFragment() != null; } - protected void setStatusBarColor(@ColorRes int color) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - getWindow().setStatusBarColor(ContextCompat.getColor(this, color)); - } - } -} +} \ No newline at end of file diff --git a/app/src/main/java/org/wikipedia/activity/SingleFragmentToolbarActivity.java b/app/src/main/java/org/wikipedia/activity/SingleFragmentToolbarActivity.java index 62d2ced..12e7180 100644 --- a/app/src/main/java/org/wikipedia/activity/SingleFragmentToolbarActivity.java +++ b/app/src/main/java/org/wikipedia/activity/SingleFragmentToolbarActivity.java @@ -1,6 +1,5 @@ package org.wikipedia.activity; -import android.os.Build; import android.os.Bundle; import android.support.annotation.LayoutRes; import android.support.v4.app.Fragment; @@ -27,12 +26,6 @@ public void setWordmarkVisible(boolean visible) { getToolbarWordmark().setVisibility(visible ? View.VISIBLE : View.GONE); - } - - public void setToolbarElevation(float elevation) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - getToolbar().setElevation(elevation); - } } @LayoutRes diff --git a/app/src/main/java/org/wikipedia/activity/ThemedActionBarActivity.java b/app/src/main/java/org/wikipedia/activity/ThemedActionBarActivity.java index ba3c8bd..f260143 100644 --- a/app/src/main/java/org/wikipedia/activity/ThemedActionBarActivity.java +++ b/app/src/main/java/org/wikipedia/activity/ThemedActionBarActivity.java @@ -1,6 +1,5 @@ package org.wikipedia.activity; -import android.annotation.TargetApi; import android.app.Activity; import android.os.Build; import android.os.Bundle; @@ -14,14 +13,13 @@ import org.wikipedia.R; import org.wikipedia.WikipediaApp; import org.wikipedia.auth.AccountUtil; -import org.wikipedia.events.WikipediaZeroEnterEvent; +import org.wikipedia.events.ThemeChangeEvent; import org.wikipedia.recurring.RecurringTasksExecutor; import org.wikipedia.settings.Prefs; import java.lang.reflect.Field; public abstract class ThemedActionBarActivity extends BaseActivity { - private boolean mDestroyed; private EventBusMethods busMethods; @Override @@ -31,6 +29,8 @@ busMethods = new EventBusMethods(); WikipediaApp.getInstance().getBus().register(busMethods); + // todo: move this down into subclasses or always support all orientations and move this up + // to BaseActivity requestFullUserOrientation(); setTheme(); @@ -41,6 +41,7 @@ } forceOverflowMenuIcon(this); + // todo: move up to BaseActivity or down // Conditionally execute all recurring tasks new RecurringTasksExecutor(WikipediaApp.getInstance()).run(); } @@ -52,23 +53,15 @@ // The UI is likely shown, giving the user the opportunity to exit and making a crash loop // less probable. + // todo: can we move this method up to BaseActivity? however, CrashReportActivity should not + // call this method Prefs.crashedBeforeActivityCreated(false); } - @Override - public void onDestroy() { + @Override public void onDestroy() { WikipediaApp.getInstance().getBus().unregister(busMethods); + busMethods = null; super.onDestroy(); - mDestroyed = true; - } - - @Override - @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) - public boolean isDestroyed() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { - return super.isDestroyed(); - } - return mDestroyed; } protected void setTheme() { @@ -101,8 +94,8 @@ } catch (NoSuchFieldException ignore) { } } - // Hack for https://phabricator.wikimedia.org/T78117: onKeyDown + onKeyUp - // Consider removing once updating appcompat-v7. + // Hack for https://phabricator.wikimedia.org/T78117 (Dec 2014): onKeyDown + onKeyUp + // todo: Consider removing once updating appcompat-v7. @Override public boolean onKeyDown(int keyCode, KeyEvent event) { @@ -126,13 +119,8 @@ } private class EventBusMethods { - @Subscribe - public void onZeroEnter(WikipediaZeroEnterEvent event) { - if (Prefs.isZeroTutorialEnabled()) { - Prefs.setZeroTutorialEnabled(false); - WikipediaApp.getInstance().getWikipediaZeroHandler() - .showZeroTutorialDialog(ThemedActionBarActivity.this); - } + @Subscribe public void onThemeChange(ThemeChangeEvent event) { + ThemedActionBarActivity.this.recreate(); } } -} +} \ No newline at end of file diff --git a/app/src/main/java/org/wikipedia/page/PageActivity.java b/app/src/main/java/org/wikipedia/page/PageActivity.java index 3754652..72ee674 100644 --- a/app/src/main/java/org/wikipedia/page/PageActivity.java +++ b/app/src/main/java/org/wikipedia/page/PageActivity.java @@ -47,7 +47,6 @@ import org.wikipedia.dataclient.WikiSite; import org.wikipedia.descriptions.DescriptionEditRevertHelpView; import org.wikipedia.events.ChangeTextSizeEvent; -import org.wikipedia.events.ThemeChangeEvent; import org.wikipedia.gallery.GalleryActivity; import org.wikipedia.history.HistoryEntry; import org.wikipedia.language.LangLinksActivity; @@ -649,20 +648,6 @@ || getIntent().getAction().equals(Intent.ACTION_VIEW); } - private class EventBusMethods { - @Subscribe - public void onChangeTextSize(ChangeTextSizeEvent event) { - if (pageFragment != null && pageFragment.getWebView() != null) { - pageFragment.updateFontSize(); - } - } - - @Subscribe - public void onChangeTheme(ThemeChangeEvent event) { - PageActivity.this.recreate(); - } - } - @Override protected void onResume() { super.onResume(); @@ -865,4 +850,12 @@ return (SearchFragment) getSupportFragmentManager() .findFragmentById(R.id.activity_page_container); } + + private class EventBusMethods { + @Subscribe public void onChangeTextSize(ChangeTextSizeEvent event) { + if (pageFragment != null && pageFragment.getWebView() != null) { + pageFragment.updateFontSize(); + } + } + } } -- To view, visit https://gerrit.wikimedia.org/r/338057 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I954efc4ed79f20a7f17a7490bcda86a16792e0cd Gerrit-PatchSet: 1 Gerrit-Project: apps/android/wikipedia Gerrit-Branch: master Gerrit-Owner: Niedzielski <sniedziel...@wikimedia.org> Gerrit-Reviewer: Sniedzielski <sniedziel...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits