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

Reply via email to