Migrate koin to v3.0
This commit is contained in:
parent
4c490c3d49
commit
5d03ea0580
@ -51,8 +51,9 @@ dependencies {
|
||||
androidTestImplementation 'androidx.test:rules:1.4.0'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
||||
testImplementation 'com.squareup.okhttp3:mockwebserver:4.9.0'
|
||||
androidTestImplementation "io.insert-koin:koin-test:2.2.3"
|
||||
testImplementation "io.insert-koin:koin-test:2.2.3"
|
||||
|
||||
testImplementation "io.insert-koin:koin-test-junit4:$rootProject.ext.koin_version"
|
||||
testImplementation "io.insert-koin:koin-test:$rootProject.ext.koin_version"
|
||||
|
||||
implementation 'com.gitlab.mvysny.konsume-xml:konsume-xml:1.0'
|
||||
|
||||
|
@ -25,7 +25,7 @@ import java.util.concurrent.TimeUnit
|
||||
|
||||
val apiModule = module {
|
||||
|
||||
single(createdAtStart = true) {
|
||||
single {
|
||||
OkHttpClient.Builder()
|
||||
.callTimeout(1, TimeUnit.MINUTES)
|
||||
.readTimeout(1, TimeUnit.HOURS)
|
||||
|
@ -35,8 +35,8 @@ class LocalRSSDataSourceTest : KoinTest {
|
||||
|
||||
@get:Rule
|
||||
val koinTestRule = KoinTestRule.create {
|
||||
modules(apiModule, module {
|
||||
single(override = true) {
|
||||
modules(apiModule, module() {
|
||||
single() {
|
||||
OkHttpClient.Builder()
|
||||
.callTimeout(1, TimeUnit.MINUTES)
|
||||
.readTimeout(1, TimeUnit.HOURS)
|
||||
|
@ -77,7 +77,9 @@ dependencies {
|
||||
implementation "androidx.work:work-runtime-ktx:2.5.0"
|
||||
implementation "androidx.fragment:fragment-ktx:1.3.5"
|
||||
implementation "androidx.browser:browser:1.3.0"
|
||||
testImplementation "io.insert-koin:koin-test:2.2.3"
|
||||
|
||||
testImplementation "io.insert-koin:koin-test:$rootProject.ext.koin_version"
|
||||
testImplementation "io.insert-koin:koin-test-junit4:$rootProject.ext.koin_version"
|
||||
|
||||
implementation 'com.github.bumptech.glide:glide:4.12.0'
|
||||
kapt 'com.github.bumptech.glide:compiler:4.12.0'
|
||||
|
@ -10,7 +10,7 @@ import com.readrops.app.account.AccountTypeListActivity;
|
||||
import com.readrops.app.account.AccountViewModel;
|
||||
import com.readrops.app.itemslist.MainActivity;
|
||||
|
||||
import org.koin.androidx.viewmodel.compat.ViewModelCompat;
|
||||
import org.koin.android.compat.ViewModelCompat;
|
||||
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.observers.DisposableSingleObserver;
|
||||
|
@ -23,8 +23,6 @@ import com.readrops.app.utils.Utils;
|
||||
import com.readrops.db.entities.account.Account;
|
||||
import com.readrops.db.entities.account.AccountType;
|
||||
|
||||
import org.koin.androidx.viewmodel.compat.ViewModelCompat;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@ -38,6 +36,8 @@ import static com.readrops.app.utils.ReadropsKeys.ACCOUNT;
|
||||
import static com.readrops.app.utils.ReadropsKeys.ACCOUNT_TYPE;
|
||||
import static com.readrops.app.utils.ReadropsKeys.FROM_MAIN_ACTIVITY;
|
||||
|
||||
import org.koin.android.compat.ViewModelCompat;
|
||||
|
||||
public class AccountTypeListActivity extends AppCompatActivity {
|
||||
|
||||
private static final String TAG = AccountTypeListActivity.class.getSimpleName();
|
||||
|
@ -13,7 +13,7 @@ import com.readrops.db.entities.Feed;
|
||||
import com.readrops.db.entities.Folder;
|
||||
import com.readrops.db.entities.account.Account;
|
||||
|
||||
import org.koin.core.parameter.DefinitionParametersKt;
|
||||
import org.koin.core.parameter.ParametersHolderKt;
|
||||
import org.koin.java.KoinJavaComponent;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
@ -34,7 +34,7 @@ public class AccountViewModel extends ViewModel {
|
||||
|
||||
public void setAccount(Account account) {
|
||||
repository = KoinJavaComponent.get(ARepository.class, null,
|
||||
() -> DefinitionParametersKt.parametersOf(account));
|
||||
() -> ParametersHolderKt.parametersOf(account));
|
||||
}
|
||||
|
||||
public Completable login(Account account, boolean insert) {
|
||||
|
@ -18,8 +18,6 @@ import com.readrops.app.utils.Utils;
|
||||
import com.readrops.db.entities.account.Account;
|
||||
import com.readrops.db.entities.account.AccountType;
|
||||
|
||||
import org.koin.androidx.viewmodel.compat.ViewModelCompat;
|
||||
|
||||
import io.reactivex.CompletableObserver;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
@ -29,6 +27,8 @@ import static com.readrops.app.utils.ReadropsKeys.ACCOUNT;
|
||||
import static com.readrops.app.utils.ReadropsKeys.ACCOUNT_TYPE;
|
||||
import static com.readrops.app.utils.ReadropsKeys.EDIT_ACCOUNT;
|
||||
|
||||
import org.koin.android.compat.ViewModelCompat;
|
||||
|
||||
public class AddAccountActivity extends AppCompatActivity {
|
||||
|
||||
private static final String TAG = AddAccountActivity.class.getSimpleName();
|
||||
|
@ -28,8 +28,6 @@ import com.readrops.app.utils.Utils;
|
||||
import com.readrops.db.entities.Feed;
|
||||
import com.readrops.db.entities.account.Account;
|
||||
|
||||
import org.koin.androidx.viewmodel.compat.ViewModelCompat;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@ -41,6 +39,8 @@ import io.reactivex.schedulers.Schedulers;
|
||||
import static com.readrops.app.utils.ReadropsKeys.ACCOUNT_ID;
|
||||
import static com.readrops.app.utils.ReadropsKeys.FEEDS;
|
||||
|
||||
import org.koin.android.compat.ViewModelCompat;
|
||||
|
||||
public class AddFeedActivity extends AppCompatActivity implements View.OnClickListener {
|
||||
|
||||
private AccountArrayAdapter arrayAdapter;
|
||||
@ -73,7 +73,7 @@ public class AddFeedActivity extends AppCompatActivity implements View.OnClickLi
|
||||
fastAdapter.withSelectable(true);
|
||||
fastAdapter.withOnClickListener((v, adapter, item, position) -> {
|
||||
item.setChecked(!item.isChecked());
|
||||
|
||||
|
||||
fastAdapter.notifyAdapterItemChanged(position);
|
||||
binding.addFeedOk.setEnabled(recyclerViewHasCheckedItems());
|
||||
|
||||
|
@ -10,7 +10,7 @@ import com.readrops.app.utils.HtmlParser;
|
||||
import com.readrops.db.Database;
|
||||
import com.readrops.db.entities.account.Account;
|
||||
|
||||
import org.koin.core.parameter.DefinitionParametersKt;
|
||||
import org.koin.core.parameter.ParametersHolderKt;
|
||||
import org.koin.java.KoinJavaComponent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -30,7 +30,7 @@ public class AddFeedsViewModel extends ViewModel {
|
||||
|
||||
public Single<List<FeedInsertionResult>> addFeeds(List<ParsingResult> results, Account account) {
|
||||
ARepository repository = KoinJavaComponent.get(ARepository.class, null,
|
||||
() -> DefinitionParametersKt.parametersOf(account));
|
||||
() -> ParametersHolderKt.parametersOf(account));
|
||||
|
||||
return repository.addFeeds(results);
|
||||
}
|
||||
|
@ -21,13 +21,13 @@ import com.readrops.app.utils.Utils;
|
||||
import com.readrops.db.entities.Folder;
|
||||
import com.readrops.db.entities.account.Account;
|
||||
|
||||
import org.koin.androidx.viewmodel.compat.ViewModelCompat;
|
||||
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
import static com.readrops.app.utils.ReadropsKeys.ACCOUNT;
|
||||
|
||||
import org.koin.android.compat.ViewModelCompat;
|
||||
|
||||
public class ManageFeedsFoldersActivity extends AppCompatActivity {
|
||||
|
||||
private ActivityManageFeedsFoldersBinding binding;
|
||||
|
@ -12,7 +12,7 @@ import com.readrops.db.entities.account.Account;
|
||||
import com.readrops.db.pojo.FeedWithFolder;
|
||||
import com.readrops.db.pojo.FolderWithFeedCount;
|
||||
|
||||
import org.koin.core.parameter.DefinitionParametersKt;
|
||||
import org.koin.core.parameter.ParametersHolderKt;
|
||||
import org.koin.java.KoinJavaComponent;
|
||||
|
||||
import java.util.List;
|
||||
@ -35,7 +35,7 @@ public class ManageFeedsFoldersViewModel extends ViewModel {
|
||||
|
||||
private void setup() {
|
||||
repository = KoinJavaComponent.get(ARepository.class, null,
|
||||
() -> DefinitionParametersKt.parametersOf(account));
|
||||
() -> ParametersHolderKt.parametersOf(account));
|
||||
|
||||
feedsWithFolder = database.feedDao().getAllFeedsWithFolder(account.getId());
|
||||
folders = database.folderDao().getAllFolders(account.getId());
|
||||
|
@ -20,8 +20,6 @@ import com.readrops.db.entities.Folder;
|
||||
import com.readrops.db.entities.account.Account;
|
||||
import com.readrops.db.pojo.FeedWithFolder;
|
||||
|
||||
import org.koin.androidx.viewmodel.compat.SharedViewModelCompat;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
@ -31,6 +29,8 @@ import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
import static com.readrops.app.utils.ReadropsKeys.ACCOUNT;
|
||||
|
||||
import org.koin.android.compat.SharedViewModelCompat;
|
||||
|
||||
public class EditFeedDialogFragment extends DialogFragment implements AdapterView.OnItemSelectedListener {
|
||||
|
||||
private TextInputEditText feedName;
|
||||
|
@ -66,7 +66,7 @@ public class FeedsAdapter extends ListAdapter<FeedWithFolder, FeedsAdapter.FeedV
|
||||
FeedWithFolder feedWithFolder = getItem(i);
|
||||
|
||||
if (feedWithFolder.getFeed().getIconUrl() != null) {
|
||||
KoinJavaComponent.get(GlideRequests.class)
|
||||
KoinJavaComponent.<GlideRequests>get(GlideRequests.class)
|
||||
.load(feedWithFolder.getFeed().getIconUrl())
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.placeholder(R.drawable.ic_rss_feed_grey)
|
||||
|
@ -22,14 +22,14 @@ import com.readrops.db.entities.Feed;
|
||||
import com.readrops.db.entities.account.Account;
|
||||
import com.readrops.db.pojo.FeedWithFolder;
|
||||
|
||||
import org.koin.androidx.viewmodel.compat.SharedViewModelCompat;
|
||||
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.observers.DisposableCompletableObserver;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
import static com.readrops.app.utils.ReadropsKeys.ACCOUNT;
|
||||
|
||||
import org.koin.android.compat.SharedViewModelCompat;
|
||||
|
||||
|
||||
public class FeedsFragment extends Fragment {
|
||||
|
||||
|
@ -23,14 +23,14 @@ import com.readrops.app.utils.Utils;
|
||||
import com.readrops.db.entities.Folder;
|
||||
import com.readrops.db.entities.account.Account;
|
||||
|
||||
import org.koin.androidx.viewmodel.compat.SharedViewModelCompat;
|
||||
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.observers.DisposableSingleObserver;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
import static com.readrops.app.utils.ReadropsKeys.ACCOUNT;
|
||||
|
||||
import org.koin.android.compat.SharedViewModelCompat;
|
||||
|
||||
public class FoldersFragment extends Fragment {
|
||||
|
||||
private FoldersAdapter adapter;
|
||||
|
@ -41,7 +41,7 @@ import com.readrops.db.entities.Item;
|
||||
import com.readrops.db.entities.account.Account;
|
||||
import com.readrops.db.pojo.ItemWithFeed;
|
||||
|
||||
import org.koin.androidx.viewmodel.compat.ViewModelCompat;
|
||||
import org.koin.android.compat.ViewModelCompat;
|
||||
import org.koin.java.KoinJavaComponent;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
@ -101,7 +101,7 @@ public class ItemActivity extends AppCompatActivity {
|
||||
binding.appBarLayout.setExpanded(true);
|
||||
binding.collapsingLayout.setTitleEnabled(true);
|
||||
|
||||
KoinJavaComponent.get(GlideRequests.class)
|
||||
KoinJavaComponent.<GlideRequests>get(GlideRequests.class)
|
||||
.load(imageUrl)
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.into(binding.collapsingLayoutImage);
|
||||
@ -397,7 +397,7 @@ public class ItemActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
private void shareImage(String url) {
|
||||
KoinJavaComponent.get(GlideRequests.class)
|
||||
KoinJavaComponent.<GlideRequests>get(GlideRequests.class)
|
||||
.asBitmap()
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.load(url)
|
||||
|
@ -16,7 +16,7 @@ import com.readrops.db.entities.account.Account;
|
||||
import com.readrops.db.pojo.ItemWithFeed;
|
||||
import com.readrops.db.queries.ItemSelectionQueryBuilder;
|
||||
|
||||
import org.koin.core.parameter.DefinitionParametersKt;
|
||||
import org.koin.core.parameter.ParametersHolderKt;
|
||||
import org.koin.java.KoinJavaComponent;
|
||||
|
||||
import java.io.File;
|
||||
@ -45,7 +45,8 @@ public class ItemViewModel extends ViewModel {
|
||||
}
|
||||
|
||||
public Completable setStarState(Item item) {
|
||||
ARepository repository = KoinJavaComponent.get(ARepository.class, null, () -> DefinitionParametersKt.parametersOf(account));
|
||||
ARepository repository = KoinJavaComponent.get(ARepository.class, null,
|
||||
() -> ParametersHolderKt.parametersOf(account));
|
||||
|
||||
return repository.setItemStarState(item);
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ import com.readrops.db.filters.ListSortType;
|
||||
import com.readrops.db.pojo.ItemWithFeed;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.koin.androidx.viewmodel.compat.ViewModelCompat;
|
||||
import org.koin.android.compat.ViewModelCompat;
|
||||
import org.koin.java.KoinJavaComponent;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
@ -373,7 +373,7 @@ public class MainActivity extends AppCompatActivity implements SwipeRefreshLayou
|
||||
|
||||
binding.itemsRecyclerView.addRecyclerListener(viewHolder -> {
|
||||
MainItemListAdapter.ItemViewHolder vh = (MainItemListAdapter.ItemViewHolder) viewHolder;
|
||||
KoinJavaComponent.get(GlideRequests.class).clear(vh.getItemImage());
|
||||
KoinJavaComponent.<GlideRequests>get(GlideRequests.class).clear(vh.getItemImage());
|
||||
});
|
||||
|
||||
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
|
||||
|
@ -22,7 +22,7 @@ import com.readrops.db.filters.FilterType;
|
||||
import com.readrops.db.filters.ListSortType;
|
||||
import com.readrops.db.pojo.ItemWithFeed;
|
||||
|
||||
import org.koin.core.parameter.DefinitionParametersKt;
|
||||
import org.koin.core.parameter.ParametersHolderKt;
|
||||
import org.koin.java.KoinJavaComponent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -61,7 +61,7 @@ public class MainViewModel extends ViewModel {
|
||||
|
||||
private void setRepository() {
|
||||
repository = KoinJavaComponent.get(ARepository.class, null,
|
||||
() -> DefinitionParametersKt.parametersOf(currentAccount));
|
||||
() -> ParametersHolderKt.parametersOf(currentAccount));
|
||||
}
|
||||
|
||||
private void buildPagedList() {
|
||||
|
@ -51,7 +51,7 @@ public abstract class ARepository {
|
||||
}
|
||||
|
||||
protected void setCredentials(@Nullable Account account) {
|
||||
KoinJavaComponent.get(AuthInterceptor.class)
|
||||
KoinJavaComponent.<AuthInterceptor>get(AuthInterceptor.class)
|
||||
.setCredentials(account != null && !account.isLocal() ? Credentials.toCredentials(account) : null);
|
||||
}
|
||||
|
||||
|
@ -38,8 +38,6 @@ import com.readrops.db.entities.Folder;
|
||||
import com.readrops.db.entities.account.Account;
|
||||
import com.readrops.db.entities.account.AccountType;
|
||||
|
||||
import org.koin.androidx.viewmodel.compat.ViewModelCompat;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -55,6 +53,8 @@ import static com.readrops.app.utils.ReadropsKeys.ACCOUNT;
|
||||
import static com.readrops.app.utils.ReadropsKeys.ACCOUNT_ID;
|
||||
import static com.readrops.app.utils.ReadropsKeys.EDIT_ACCOUNT;
|
||||
|
||||
import org.koin.android.compat.ViewModelCompat;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
*/
|
||||
|
@ -86,9 +86,9 @@ public final class HtmlParser {
|
||||
long start = System.currentTimeMillis();
|
||||
|
||||
try {
|
||||
Response response = KoinJavaComponent.get(OkHttpClient.class)
|
||||
Response response = KoinJavaComponent.<OkHttpClient>get(OkHttpClient.class)
|
||||
.newCall(new Request.Builder().url(url).build()).execute();
|
||||
KoinJavaComponent.get(AuthInterceptor.class).setCredentials(null);
|
||||
KoinJavaComponent.<AuthInterceptor>get(AuthInterceptor.class).setCredentials(null);
|
||||
|
||||
if (response.header("Content-Type").contains(ApiUtils.HTML_CONTENT_TYPE)) {
|
||||
String body = response.body().string();
|
||||
|
@ -37,9 +37,9 @@ public final class Utils {
|
||||
public static Bitmap getImageFromUrl(String url) {
|
||||
try {
|
||||
Request request = new Request.Builder().url(url).build();
|
||||
KoinJavaComponent.get(AuthInterceptor.class).setCredentials(null);
|
||||
KoinJavaComponent.<AuthInterceptor>get(AuthInterceptor.class).setCredentials(null);
|
||||
|
||||
Response response = KoinJavaComponent.get(OkHttpClient.class).newCall(request).execute();
|
||||
Response response = KoinJavaComponent.<OkHttpClient>get(OkHttpClient.class).newCall(request).execute();
|
||||
|
||||
if (response.isSuccessful()) {
|
||||
InputStream inputStream = response.body().byteStream();
|
||||
|
@ -2,16 +2,15 @@ package com.readrops.app
|
||||
|
||||
import com.readrops.api.utils.AuthInterceptor
|
||||
import com.readrops.app.utils.HtmlParser
|
||||
import com.readrops.app.addfeed.ParsingResult
|
||||
import junit.framework.TestCase
|
||||
import okhttp3.OkHttpClient
|
||||
import org.junit.Assert
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.koin.dsl.module
|
||||
import org.koin.test.KoinTest
|
||||
import org.koin.test.KoinTestRule
|
||||
|
||||
class HtmlParserTest {
|
||||
class HtmlParserTest : KoinTest {
|
||||
|
||||
@get:Rule
|
||||
val koinTestRule = KoinTestRule.create {
|
||||
|
@ -34,6 +34,8 @@ ext {
|
||||
minSdkVersion = 21
|
||||
targetSdkVersion = 30
|
||||
buildToolsVersion = "30.0.3"
|
||||
|
||||
koin_version = "3.1.2"
|
||||
}
|
||||
|
||||
task clean(type: Delete) {
|
||||
|
@ -89,8 +89,7 @@ dependencies {
|
||||
|
||||
api 'joda-time:joda-time:2.10.10'
|
||||
|
||||
def koin_version = "2.2.3"
|
||||
api "io.insert-koin:koin-android:$koin_version"
|
||||
api "io.insert-koin:koin-androidx-scope:$koin_version"
|
||||
api "io.insert-koin:koin-androidx-viewmodel:$koin_version"
|
||||
api "io.insert-koin:koin-core:$rootProject.ext.koin_version"
|
||||
api "io.insert-koin:koin-android:$rootProject.ext.koin_version"
|
||||
api "io.insert-koin:koin-android-compat:$rootProject.ext.koin_version"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user