diff --git a/Clover/app/build.gradle b/Clover/app/build.gradle index f395c03b..cf837499 100644 --- a/Clover/app/build.gradle +++ b/Clover/app/build.gradle @@ -140,13 +140,5 @@ dependencies { implementation 'org.nibor.autolink:autolink:0.6.0' implementation 'com.google.code.gson:gson:2.8.1' implementation 'me.xdrop:fuzzywuzzy:1.1.9' - - // Yes that's dagger 1, "deprecated". - // There's little wrong with it, except that it might be slow at runtime. - // We don't have a huge graph. The major downside of the newer dagger version - // is that it uses annotation processing. Annotation processors block incremental - // compiling, so our builds become way slower, and I rather have faster builds. - // Move to gradle 2 when incremental compiling supports annotation processors. - compile 'com.squareup.dagger:dagger:1.2.5' - annotationProcessor 'com.squareup.dagger:dagger-compiler:1.2.5' + implementation 'org.codejargon.feather:feather:1.0' } diff --git a/Clover/app/src/main/assets/html/license.html b/Clover/app/src/main/assets/html/license.html index 8ac74962..46dd2731 100644 --- a/Clover/app/src/main/assets/html/license.html +++ b/Clover/app/src/main/assets/html/license.html @@ -22,7 +22,7 @@ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. diff --git a/Clover/app/src/main/assets/html/licenses.html b/Clover/app/src/main/assets/html/licenses.html index a0ae3211..0c3bc6de 100644 --- a/Clover/app/src/main/assets/html/licenses.html +++ b/Clover/app/src/main/assets/html/licenses.html @@ -194,6 +194,7 @@ The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond
+

autolink-java

https://github.com/robinst/autolink-java
@@ -221,6 +222,73 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
         
     
+ +

Google Gson

+ https://github.com/google/gson +
+        
+Copyright 2008 Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+        
+    

+ +

xdrop fuzzywuzzy

+ https://github.com/xdrop/fuzzywuzzy +
+        
+fuzzywuzzy
+Java fuzzy string matching implementation of the well known Python's fuzzywuzzy algorithm. Fuzzy search for Java
+
+Copyright (C) 2016 xdrop
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+        
+    
+
+ +

zsoltherpai feather

+ https://github.com/zsoltherpai/feather +
+        
+Copyright {2015} {Zsolt Herpai}
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+        
+    
+
+ diff --git a/Clover/app/src/main/java/org/floens/chan/Chan.java b/Clover/app/src/main/java/org/floens/chan/Chan.java index d6fc8342..8b4d4994 100644 --- a/Clover/app/src/main/java/org/floens/chan/Chan.java +++ b/Clover/app/src/main/java/org/floens/chan/Chan.java @@ -25,6 +25,7 @@ import android.os.Build; import android.os.Bundle; import android.os.StrictMode; +import org.codejargon.feather.Feather; import org.floens.chan.core.database.DatabaseManager; import org.floens.chan.core.di.AppModule; import org.floens.chan.core.di.NetModule; @@ -38,7 +39,6 @@ import java.util.Locale; import javax.inject.Inject; -import dagger.ObjectGraph; import de.greenrobot.event.EventBus; public class Chan extends Application implements UserAgentProvider, Application.ActivityLifecycleCallbacks { @@ -50,13 +50,12 @@ public class Chan extends Application implements UserAgentProvider, Application. private String userAgent; private int activityForegroundCounter = 0; - protected ObjectGraph graph; - @Inject SiteManager siteManager; @Inject DatabaseManager databaseManager; + private Feather feather; public Chan() { instance = this; @@ -66,12 +65,13 @@ public class Chan extends Application implements UserAgentProvider, Application. return instance; } - public static ObjectGraph getGraph() { - return instance.graph; + public static Feather injector() { + return instance.feather; } public static T inject(T instance) { - return Chan.instance.graph.inject(instance); + Chan.instance.feather.injectFields(instance); + return instance; } @Override @@ -86,9 +86,7 @@ public class Chan extends Application implements UserAgentProvider, Application. userAgent = createUserAgent(); - graph = ObjectGraph.create(new AppModule(this, this), new NetModule()); - - graph.inject(this); + initializeGraph(); siteManager.initialize(); @@ -117,6 +115,14 @@ public class Chan extends Application implements UserAgentProvider, Application. } } + private void initializeGraph() { + feather = Feather.with( + new AppModule(this, this), + new NetModule() + ); + feather.injectFields(this); + } + @Override public String getUserAgent() { return userAgent; diff --git a/Clover/app/src/main/java/org/floens/chan/core/di/AppModule.java b/Clover/app/src/main/java/org/floens/chan/core/di/AppModule.java index 5ecc180b..c553e90d 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/di/AppModule.java +++ b/Clover/app/src/main/java/org/floens/chan/core/di/AppModule.java @@ -5,103 +5,11 @@ import android.content.Context; import com.android.volley.RequestQueue; import com.android.volley.toolbox.ImageLoader; -import org.floens.chan.ChanApplication; -import org.floens.chan.core.site.loader.ChanLoader; -import org.floens.chan.core.cache.FileCache; -import org.floens.chan.core.database.DatabaseManager; -import org.floens.chan.core.database.LoadableProvider; -import org.floens.chan.core.manager.BoardManager; -import org.floens.chan.core.manager.FilterEngine; -import org.floens.chan.core.manager.ReplyManager; -import org.floens.chan.core.manager.WatchManager; +import org.codejargon.feather.Provides; import org.floens.chan.core.net.BitmapLruImageCache; -import org.floens.chan.core.presenter.BoardSetupPresenter; -import org.floens.chan.core.presenter.ImageViewerPresenter; -import org.floens.chan.core.presenter.ReplyPresenter; -import org.floens.chan.core.presenter.SitesSetupPresenter; -import org.floens.chan.core.presenter.ThreadPresenter; -import org.floens.chan.core.receiver.WatchUpdateReceiver; -import org.floens.chan.core.saver.ImageSaveTask; -import org.floens.chan.core.site.SiteManager; -import org.floens.chan.core.site.common.ChanReaderRequest; -import org.floens.chan.core.site.http.HttpCallManager; -import org.floens.chan.core.update.UpdateManager; -import org.floens.chan.ui.activity.BoardActivity; -import org.floens.chan.ui.adapter.DrawerAdapter; -import org.floens.chan.ui.adapter.PostsFilter; -import org.floens.chan.ui.controller.BoardSetupController; -import org.floens.chan.ui.controller.BrowseController; -import org.floens.chan.ui.controller.DeveloperSettingsController; -import org.floens.chan.ui.controller.DrawerController; -import org.floens.chan.ui.controller.FiltersController; -import org.floens.chan.ui.controller.HistoryController; -import org.floens.chan.ui.controller.ImageViewerController; -import org.floens.chan.ui.controller.MainSettingsController; -import org.floens.chan.ui.controller.SiteSetupController; -import org.floens.chan.ui.controller.SitesSetupController; -import org.floens.chan.ui.controller.ViewThreadController; -import org.floens.chan.ui.helper.ImagePickDelegate; -import org.floens.chan.ui.layout.FilterLayout; -import org.floens.chan.ui.layout.ReplyLayout; -import org.floens.chan.ui.layout.ThreadLayout; -import org.floens.chan.ui.service.WatchNotifier; -import org.floens.chan.ui.view.MultiImageView; import javax.inject.Singleton; -import dagger.Module; -import dagger.Provides; - -@Module( - injects = { -// Context.class, // ApplicationContext - - BoardManager.class, - DatabaseManager.class, - ReplyManager.class, - ImageLoader.class, - FileCache.class, - HttpCallManager.class, - LoadableProvider.class, - - ChanApplication.class, - MainSettingsController.class, - ReplyPresenter.class, - ChanReaderRequest.class, - ThreadLayout.class, - DeveloperSettingsController.class, - BoardActivity.class, - ThreadPresenter.class, - FilterEngine.class, - BrowseController.class, - FilterLayout.class, - HistoryController.class, - DrawerController.class, - DrawerAdapter.class, - WatchNotifier.class, - WatchUpdateReceiver.class, - ImagePickDelegate.class, - FiltersController.class, - PostsFilter.class, - ChanLoader.class, - ImageViewerController.class, - ImageViewerPresenter.class, - MultiImageView.class, - ImageSaveTask.class, - ViewThreadController.class, - WatchManager.PinWatcher.class, - UpdateManager.class, - SiteManager.class, - SitesSetupPresenter.class, - BoardSetupPresenter.class, - SiteSetupController.class, - SitesSetupController.class, - BoardSetupController.class, - ReplyLayout.class, - }, - complete = false, - includes = NetModule.class -) public class AppModule { private Context applicationContext; private UserAgentProvider userAgentProvider; diff --git a/Clover/app/src/main/java/org/floens/chan/core/di/NetModule.java b/Clover/app/src/main/java/org/floens/chan/core/di/NetModule.java index 8ac1e4cf..b0f47812 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/di/NetModule.java +++ b/Clover/app/src/main/java/org/floens/chan/core/di/NetModule.java @@ -5,6 +5,7 @@ import android.content.Context; import com.android.volley.RequestQueue; import com.android.volley.toolbox.Volley; +import org.codejargon.feather.Provides; import org.floens.chan.core.cache.FileCache; import org.floens.chan.core.net.ProxiedHurlStack; @@ -12,16 +13,6 @@ import java.io.File; import javax.inject.Singleton; -import dagger.Module; -import dagger.Provides; - -@Module( - injects = { - RequestQueue.class, - FileCache.class - }, - complete = false -) public class NetModule { private static final int VOLLEY_CACHE_SIZE = 10 * 1024 * 1024; private static final long FILE_CACHE_DISK_SIZE = 50 * 1024 * 1024; diff --git a/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java b/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java index 31675916..d906772c 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java +++ b/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java @@ -27,17 +27,17 @@ import android.os.Message; import android.os.PowerManager; import org.floens.chan.Chan; -import org.floens.chan.core.site.loader.ChanLoader; import org.floens.chan.core.database.DatabaseManager; import org.floens.chan.core.database.DatabasePinManager; import org.floens.chan.core.exception.ChanLoaderException; import org.floens.chan.core.model.ChanThread; -import org.floens.chan.core.model.orm.Loadable; -import org.floens.chan.core.model.orm.Pin; import org.floens.chan.core.model.Post; import org.floens.chan.core.model.PostImage; +import org.floens.chan.core.model.orm.Loadable; +import org.floens.chan.core.model.orm.Pin; import org.floens.chan.core.pool.ChanLoaderFactory; import org.floens.chan.core.settings.ChanSettings; +import org.floens.chan.core.site.loader.ChanLoader; import org.floens.chan.ui.helper.PostHelper; import org.floens.chan.ui.service.WatchNotifier; import org.floens.chan.utils.Logger; @@ -57,7 +57,7 @@ import javax.inject.Singleton; import de.greenrobot.event.EventBus; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.utils.AndroidUtils.getAppContext; /** @@ -665,7 +665,7 @@ public class WatchManager { public PinWatcher(Pin pin) { this.pin = pin; - getGraph().inject(this); + inject(this); Logger.d(TAG, "PinWatcher: created for " + pin); chanLoader = chanLoaderFactory.obtain(pin.loadable, this); diff --git a/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java b/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java index 5e4a2914..e3907227 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java +++ b/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java @@ -21,8 +21,8 @@ import android.net.ConnectivityManager; import android.support.v4.view.ViewPager; import org.floens.chan.core.cache.FileCache; -import org.floens.chan.core.model.orm.Loadable; import org.floens.chan.core.model.PostImage; +import org.floens.chan.core.model.orm.Loadable; import org.floens.chan.core.settings.ChanSettings; import org.floens.chan.ui.view.MultiImageView; @@ -32,7 +32,7 @@ import java.util.List; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.utils.AndroidUtils.isConnected; public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager.OnPageChangeListener { @@ -56,7 +56,7 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager. public ImageViewerPresenter(Callback callback) { this.callback = callback; - getGraph().inject(this); + inject(this); } public void showImages(List images, int position, Loadable loadable) { diff --git a/Clover/app/src/main/java/org/floens/chan/core/receiver/WatchUpdateReceiver.java b/Clover/app/src/main/java/org/floens/chan/core/receiver/WatchUpdateReceiver.java index ba5316d7..28c6c6c5 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/receiver/WatchUpdateReceiver.java +++ b/Clover/app/src/main/java/org/floens/chan/core/receiver/WatchUpdateReceiver.java @@ -21,13 +21,11 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import org.floens.chan.Chan; import org.floens.chan.core.manager.WatchManager; -import org.floens.chan.utils.Logger; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; public class WatchUpdateReceiver extends BroadcastReceiver { private static final String TAG = "WatchUpdateReceiver"; @@ -36,7 +34,7 @@ public class WatchUpdateReceiver extends BroadcastReceiver { WatchManager watchManager; public WatchUpdateReceiver() { - getGraph().inject(this); + inject(this); } @Override diff --git a/Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaveTask.java b/Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaveTask.java index e1b0c5ab..30a52de5 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaveTask.java +++ b/Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaveTask.java @@ -34,7 +34,7 @@ import java.io.IOException; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.getAppContext; @@ -56,7 +56,7 @@ public class ImageSaveTask implements Runnable, FileCache.DownloadedCallback { private boolean success = false; public ImageSaveTask(PostImage postImage) { - getGraph().inject(this); + inject(this); this.postImage = postImage; } diff --git a/Clover/app/src/main/java/org/floens/chan/core/site/SiteBase.java b/Clover/app/src/main/java/org/floens/chan/core/site/SiteBase.java index d88d566e..c9ab1618 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/site/SiteBase.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/SiteBase.java @@ -20,6 +20,7 @@ package org.floens.chan.core.site; import com.android.volley.RequestQueue; +import org.codejargon.feather.Feather; import org.floens.chan.core.database.LoadableProvider; import org.floens.chan.core.manager.BoardManager; import org.floens.chan.core.model.json.site.SiteConfig; @@ -29,9 +30,7 @@ import org.floens.chan.core.site.http.HttpCallManager; import java.util.Collections; -import dagger.ObjectGraph; - -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.injector; public abstract class SiteBase implements Site { protected int id; @@ -52,12 +51,11 @@ public abstract class SiteBase implements Site { @Override public void postInitialize() { - ObjectGraph graph = getGraph(); - - httpCallManager = graph.get(HttpCallManager.class); - requestQueue = graph.get(RequestQueue.class); - boardManager = graph.get(BoardManager.class); - loadableProvider = graph.get(LoadableProvider.class); + Feather injector = injector(); + httpCallManager = injector.instance(HttpCallManager.class); + requestQueue = injector.instance(RequestQueue.class); + boardManager = injector.instance(BoardManager.class); + loadableProvider = injector.instance(LoadableProvider.class); if (boardsType() == BoardsType.DYNAMIC) { boards(boards -> boardManager.createAll(boards.boards)); diff --git a/Clover/app/src/main/java/org/floens/chan/core/site/common/ChanReaderRequest.java b/Clover/app/src/main/java/org/floens/chan/core/site/common/ChanReaderRequest.java index 9fe2582a..8968a417 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/site/common/ChanReaderRequest.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/common/ChanReaderRequest.java @@ -19,8 +19,6 @@ package org.floens.chan.core.site.common; import android.util.JsonReader; -import org.floens.chan.core.site.loader.ChanLoaderRequestParams; -import org.floens.chan.core.site.loader.ChanLoaderResponse; import org.floens.chan.core.database.DatabaseManager; import org.floens.chan.core.database.DatabaseSavedReplyManager; import org.floens.chan.core.manager.FilterEngine; @@ -28,6 +26,8 @@ import org.floens.chan.core.model.Post; import org.floens.chan.core.model.orm.Filter; import org.floens.chan.core.model.orm.Loadable; import org.floens.chan.core.net.JsonReaderRequest; +import org.floens.chan.core.site.loader.ChanLoaderRequestParams; +import org.floens.chan.core.site.loader.ChanLoaderResponse; import org.floens.chan.utils.Time; import java.util.ArrayList; @@ -44,7 +44,7 @@ import javax.inject.Inject; import okhttp3.HttpUrl; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; /** * Process a typical imageboard json response.
@@ -79,7 +79,7 @@ public class ChanReaderRequest extends JsonReaderRequest { public ChanReaderRequest(ChanLoaderRequestParams request) { super(getChanUrl(request.loadable).toString(), request.listener, request.errorListener); - getGraph().inject(this); + inject(this); // Copy the loadable and cached list. The cached array may changed/cleared by other threads. loadable = request.loadable.copy(); diff --git a/Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoader.java b/Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoader.java index 0b8ea957..e3b5c3ad 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoader.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoader.java @@ -43,7 +43,7 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; /** * A ChanLoader is the loader for Loadables. @@ -78,7 +78,7 @@ public class ChanLoader implements Response.ErrorListener, Response.Listener() { @Override diff --git a/Clover/app/src/main/java/org/floens/chan/core/update/UpdateManager.java b/Clover/app/src/main/java/org/floens/chan/core/update/UpdateManager.java index 31c53ac0..fe1562c3 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/update/UpdateManager.java +++ b/Clover/app/src/main/java/org/floens/chan/core/update/UpdateManager.java @@ -43,7 +43,7 @@ import javax.inject.Inject; import okhttp3.HttpUrl; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; /** * Calls the update API and downloads and requests installs of APK files. @@ -66,7 +66,7 @@ public class UpdateManager { private UpdateCallback callback; public UpdateManager(UpdateCallback callback) { - getGraph().inject(this); + inject(this); this.callback = callback; } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java index 816a14df..d8cf8e44 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java @@ -69,7 +69,7 @@ import java.util.List; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; public class StartActivity extends AppCompatActivity implements NfcAdapter.CreateNdefMessageCallback { private static final String TAG = "StartActivity"; @@ -105,7 +105,7 @@ public class StartActivity extends AppCompatActivity implements NfcAdapter.Creat @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - getGraph().inject(this); + inject(this); ThemeHelper.getInstance().setupContext(this); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/adapter/DrawerAdapter.java b/Clover/app/src/main/java/org/floens/chan/ui/adapter/DrawerAdapter.java index fa050a73..f112e4da 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/adapter/DrawerAdapter.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/adapter/DrawerAdapter.java @@ -42,7 +42,7 @@ import java.util.List; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.ui.theme.ThemeHelper.theme; import static org.floens.chan.utils.AndroidUtils.ROBOTO_MEDIUM; import static org.floens.chan.utils.AndroidUtils.dp; @@ -78,7 +78,7 @@ public class DrawerAdapter extends RecyclerView.Adapter private Pin highlighted; public DrawerAdapter(Callback callback) { - getGraph().inject(this); + inject(this); this.callback = callback; setHasStableIds(true); } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/adapter/PostsFilter.java b/Clover/app/src/main/java/org/floens/chan/ui/adapter/PostsFilter.java index 0e69ee98..48808a60 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/adapter/PostsFilter.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/adapter/PostsFilter.java @@ -31,7 +31,7 @@ import java.util.Locale; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; public class PostsFilter { public static final Comparator IMAGE_COMPARATOR = new Comparator() { @@ -71,7 +71,7 @@ public class PostsFilter { public PostsFilter(Order order, String query) { this.order = order; this.query = query; - getGraph().inject(this); + inject(this); } /** diff --git a/Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java b/Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java index c0920c53..53b80e23 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java @@ -81,7 +81,7 @@ import java.util.List; import okhttp3.HttpUrl; import static android.text.TextUtils.isEmpty; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.injector; import static org.floens.chan.utils.AndroidUtils.ROBOTO_CONDENSED_REGULAR; import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.getString; @@ -834,7 +834,7 @@ public class PostCell extends LinearLayout implements PostCellInterface { } private void request() { - request = getGraph().get(ImageLoader.class).get(url.toString(), this); + request = injector().instance(ImageLoader.class).get(url.toString(), this); } private void cancel() { diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/BoardSetupController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/BoardSetupController.java index ceb68d4b..3e8548cf 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/BoardSetupController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/BoardSetupController.java @@ -50,7 +50,7 @@ import java.util.List; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.ui.theme.ThemeHelper.theme; import static org.floens.chan.utils.AndroidUtils.fixSnackbarText; import static org.floens.chan.utils.AndroidUtils.getAttrColor; @@ -99,7 +99,7 @@ public class BoardSetupController extends Controller implements View.OnClickList public void onCreate() { super.onCreate(); - getGraph().inject(this); + inject(this); // Inflate view = inflateRes(R.layout.controller_board_setup); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java index 5f20d341..7c2c10e4 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java @@ -48,7 +48,7 @@ import java.util.List; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.utils.AndroidUtils.getString; public class BrowseController extends ThreadController implements ToolbarMenuItem.ToolbarMenuItemCallback, ThreadLayout.ThreadLayoutCallback, BrowsePresenter.Callback { @@ -78,7 +78,7 @@ public class BrowseController extends ThreadController implements ToolbarMenuIte @Override public void onCreate() { super.onCreate(); - getGraph().inject(this); + inject(this); // Initialization postViewMode = ChanSettings.boardViewMode.get(); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/DeveloperSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/DeveloperSettingsController.java index f558b1e1..a9d374dd 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/DeveloperSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/DeveloperSettingsController.java @@ -30,7 +30,7 @@ import org.floens.chan.core.database.DatabaseManager; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.getAttrColor; @@ -48,7 +48,7 @@ public class DeveloperSettingsController extends Controller { public void onCreate() { super.onCreate(); - getGraph().inject(this); + inject(this); navigationItem.setTitle(R.string.settings_developer); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/DrawerController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/DrawerController.java index 8888e352..206fb27a 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/DrawerController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/DrawerController.java @@ -49,7 +49,7 @@ import javax.inject.Inject; import de.greenrobot.event.EventBus; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.ui.theme.ThemeHelper.theme; import static org.floens.chan.utils.AndroidUtils.ROBOTO_MEDIUM; import static org.floens.chan.utils.AndroidUtils.dp; @@ -73,7 +73,7 @@ public class DrawerController extends Controller implements DrawerAdapter.Callba @Override public void onCreate() { super.onCreate(); - getGraph().inject(this); + inject(this); EventBus.getDefault().register(this); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/FiltersController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/FiltersController.java index 4be55fd2..42a24a17 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/FiltersController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/FiltersController.java @@ -50,7 +50,7 @@ import javax.inject.Inject; import de.greenrobot.event.EventBus; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.ui.theme.ThemeHelper.theme; import static org.floens.chan.utils.AndroidUtils.getAttrColor; import static org.floens.chan.utils.AndroidUtils.getString; @@ -106,7 +106,7 @@ public class FiltersController extends Controller implements ToolbarMenuItem.Too @Override public void onCreate() { super.onCreate(); - getGraph().inject(this); + inject(this); navigationItem.setTitle(R.string.filters_screen); navigationItem.menu = new ToolbarMenu(context); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/HistoryController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/HistoryController.java index 6c978baf..80f8e9bb 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/HistoryController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/HistoryController.java @@ -53,7 +53,7 @@ import java.util.Locale; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.ui.theme.ThemeHelper.theme; import static org.floens.chan.utils.AndroidUtils.dp; @@ -82,7 +82,7 @@ public class HistoryController extends Controller implements CompoundButton.OnCh @Override public void onCreate() { super.onCreate(); - getGraph().inject(this); + inject(this); databaseHistoryManager = databaseManager.getDatabaseHistoryManager(); databaseSavedReplyManager = databaseManager.getDatabaseSavedReplyManager(); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java index bf9753c1..add69599 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java @@ -46,13 +46,13 @@ import com.android.volley.toolbox.ImageLoader; import com.davemorrissey.labs.subscaleview.ImageViewState; import org.floens.chan.R; -import org.floens.chan.core.site.ImageSearch; import org.floens.chan.controller.Controller; import org.floens.chan.core.model.PostImage; import org.floens.chan.core.presenter.ImageViewerPresenter; import org.floens.chan.core.saver.ImageSaveTask; import org.floens.chan.core.saver.ImageSaver; import org.floens.chan.core.settings.ChanSettings; +import org.floens.chan.core.site.ImageSearch; import org.floens.chan.ui.adapter.ImageViewerAdapter; import org.floens.chan.ui.toolbar.Toolbar; import org.floens.chan.ui.toolbar.ToolbarMenu; @@ -75,7 +75,7 @@ import javax.inject.Inject; import okhttp3.HttpUrl; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.getString; @@ -111,7 +111,7 @@ public class ImageViewerController extends Controller implements ImageViewerPres public ImageViewerController(Context context, Toolbar toolbar) { super(context); - getGraph().inject(this); + inject(this); this.toolbar = toolbar; @@ -547,6 +547,7 @@ public class ImageViewerController extends Controller implements ImageViewerPres /** * Send thumbnail image of movie posts because none of the image search providers support movies (such as webm) directly + * * @param postImage the post image * @return url of an image to be searched */ diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java index fc7417a8..b3829ce2 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java @@ -25,7 +25,6 @@ import android.text.TextUtils; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; -import android.widget.PopupWindow; import android.widget.Toast; import org.floens.chan.R; @@ -55,7 +54,7 @@ import javax.inject.Inject; import de.greenrobot.event.EventBus; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.ui.theme.ThemeHelper.theme; import static org.floens.chan.utils.AndroidUtils.getString; @@ -92,8 +91,8 @@ public class MainSettingsController extends SettingsController implements Toolba @Override public void onCreate() { super.onCreate(); + inject(this); - getGraph().inject(this); EventBus.getDefault().register(this); navigationItem.setTitle(R.string.settings_screen); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/SiteSetupController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/SiteSetupController.java index b6b39b9c..41100fc1 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/SiteSetupController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/SiteSetupController.java @@ -28,7 +28,7 @@ import org.floens.chan.ui.settings.SettingsGroup; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; public class SiteSetupController extends SettingsController implements SiteSetupPresenter.Callback { @Inject @@ -45,8 +45,7 @@ public class SiteSetupController extends SettingsController implements SiteSetup @Override public void onCreate() { super.onCreate(); - - getGraph().inject(this); + inject(this); // Navigation navigationItem.setTitle(R.string.settings_screen); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/SitesSetupController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/SitesSetupController.java index 639206e8..a6be7a3a 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/SitesSetupController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/SitesSetupController.java @@ -47,7 +47,7 @@ import java.util.List; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.ui.theme.ThemeHelper.theme; import static org.floens.chan.utils.AndroidUtils.setRoundItemBackground; @@ -72,8 +72,7 @@ public class SitesSetupController extends StyledToolbarNavigationController impl @Override public void onCreate() { super.onCreate(); - - getGraph().inject(this); + inject(this); // Inflate view = inflateRes(R.layout.controller_sites_setup); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java index d01a0beb..9e308c55 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java @@ -42,7 +42,7 @@ import java.util.List; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.getAttrColor; @@ -75,7 +75,7 @@ public class ViewThreadController extends ThreadController implements ThreadLayo @Override public void onCreate() { super.onCreate(); - getGraph().inject(this); + inject(this); threadLayout.setPostViewMode(ChanSettings.PostViewMode.LIST); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/helper/ImagePickDelegate.java b/Clover/app/src/main/java/org/floens/chan/ui/helper/ImagePickDelegate.java index 1cac1c03..55a7e30d 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/helper/ImagePickDelegate.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/helper/ImagePickDelegate.java @@ -37,7 +37,7 @@ import java.io.OutputStream; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.utils.AndroidUtils.runOnUiThread; public class ImagePickDelegate implements Runnable { @@ -60,7 +60,7 @@ public class ImagePickDelegate implements Runnable { public ImagePickDelegate(Activity activity) { this.activity = activity; - getGraph().inject(this); + inject(this); } public boolean pick(ImagePickCallback callback) { diff --git a/Clover/app/src/main/java/org/floens/chan/ui/layout/FilterLayout.java b/Clover/app/src/main/java/org/floens/chan/ui/layout/FilterLayout.java index 2bcfbd39..8ee3dbce 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/layout/FilterLayout.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/layout/FilterLayout.java @@ -59,7 +59,7 @@ import java.util.List; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.ui.theme.ThemeHelper.theme; import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.getAttrColor; @@ -102,7 +102,7 @@ public class FilterLayout extends LinearLayout implements View.OnClickListener { @Override protected void onFinishInflate() { super.onFinishInflate(); - getGraph().inject(this); + inject(this); typeText = (TextView) findViewById(R.id.type); boardsSelector = (TextView) findViewById(R.id.boards); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java index 62ee52fc..26fc68ff 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java @@ -45,10 +45,10 @@ import org.floens.chan.controller.Controller; import org.floens.chan.core.database.DatabaseManager; import org.floens.chan.core.exception.ChanLoaderException; import org.floens.chan.core.model.ChanThread; -import org.floens.chan.core.model.orm.Loadable; import org.floens.chan.core.model.Post; import org.floens.chan.core.model.PostImage; import org.floens.chan.core.model.PostLinkable; +import org.floens.chan.core.model.orm.Loadable; import org.floens.chan.core.model.orm.ThreadHide; import org.floens.chan.core.presenter.ThreadPresenter; import org.floens.chan.core.settings.ChanSettings; @@ -64,7 +64,7 @@ import java.util.List; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; import static org.floens.chan.ui.theme.ThemeHelper.theme; import static org.floens.chan.utils.AndroidUtils.fixSnackbarText; import static org.floens.chan.utils.AndroidUtils.getString; @@ -116,8 +116,7 @@ public class ThreadLayout extends CoordinatorLayout implements public ThreadLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); - - getGraph().inject(this); + inject(this); } public void create(ThreadLayoutCallback callback) { diff --git a/Clover/app/src/main/java/org/floens/chan/ui/service/WatchNotifier.java b/Clover/app/src/main/java/org/floens/chan/ui/service/WatchNotifier.java index 6ac08d71..15abb63b 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/service/WatchNotifier.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/service/WatchNotifier.java @@ -30,8 +30,8 @@ import android.text.TextUtils; import org.floens.chan.Chan; import org.floens.chan.R; import org.floens.chan.core.manager.WatchManager; -import org.floens.chan.core.model.orm.Pin; import org.floens.chan.core.model.Post; +import org.floens.chan.core.model.orm.Pin; import org.floens.chan.core.settings.ChanSettings; import org.floens.chan.ui.activity.BoardActivity; @@ -43,7 +43,7 @@ import java.util.regex.Pattern; import javax.inject.Inject; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; public class WatchNotifier extends Service { private static final String TAG = "WatchNotifier"; @@ -66,7 +66,7 @@ public class WatchNotifier extends Service { @Override public void onCreate() { super.onCreate(); - getGraph().inject(this); + inject(this); nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java b/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java index 7192ca77..00222763 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java @@ -51,7 +51,7 @@ import javax.inject.Inject; import pl.droidsonroids.gif.GifDrawable; import pl.droidsonroids.gif.GifImageView; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.inject; public class MultiImageView extends FrameLayout implements View.OnClickListener { public enum Mode { @@ -98,7 +98,7 @@ public class MultiImageView extends FrameLayout implements View.OnClickListener } private void init() { - getGraph().inject(this); + inject(this); setOnClickListener(this); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/view/ThumbnailView.java b/Clover/app/src/main/java/org/floens/chan/ui/view/ThumbnailView.java index 74560b60..f00e4f39 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/view/ThumbnailView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/view/ThumbnailView.java @@ -42,7 +42,7 @@ import com.android.volley.toolbox.ImageLoader; import org.floens.chan.R; -import static org.floens.chan.Chan.getGraph; +import static org.floens.chan.Chan.injector; import static org.floens.chan.utils.AndroidUtils.getString; import static org.floens.chan.utils.AndroidUtils.sp; @@ -105,7 +105,7 @@ public class ThumbnailView extends View implements ImageLoader.ImageListener { } if (!TextUtils.isEmpty(url)) { - container = getGraph().get(ImageLoader.class).get(url, this, width, height); + container = injector().instance(ImageLoader.class).get(url, this, width, height); } }