Skip to content

Commit e2617ed

Browse files
committed
migrate to Android X
When I opened this project the dependencies were outdated. Proceed to update them and migrate to Android X. - This project was utilizing compile, so I changed it to implementation. - LifecycleRegistryOwner is now depricated. Now we use LifecycleOwner. - The implementation for HasSupportFragmentInjector is not longer necessary. Now, we only have to extend DaggerAppCompatActivity instead of AppCompatActivity. - Picasso no longer need Picasso.with(view.getContext). We now use Picasso.get() - The HasAndroidInjector implementation no longer need Activity, now we use Object
1 parent 77754cc commit e2617ed

31 files changed

+151
-155
lines changed

app/build.gradle

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
apply plugin: 'com.android.application'
2-
32
android {
4-
compileSdkVersion 25
5-
buildToolsVersion "25.0.2"
3+
compileSdkVersion 29
4+
buildToolsVersion "29.0.2"
65
defaultConfig {
76
applicationId "iammert.com.androidarchitecture"
87
minSdkVersion 21
9-
targetSdkVersion 25
8+
targetSdkVersion 29
109
versionCode 1
1110
versionName "1.0"
12-
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
11+
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1312
}
1413
buildTypes {
1514
release {
@@ -30,35 +29,44 @@ android {
3029
}
3130

3231
dependencies {
33-
compile fileTree(dir: 'libs', include: ['*.jar'])
34-
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
32+
implementation fileTree(dir: 'libs', include: ['*.jar'])
33+
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
3534
exclude group: 'com.android.support', module: 'support-annotations'
3635
})
37-
testCompile 'junit:junit:4.12'
36+
testImplementation 'junit:junit:4.12'
37+
3838

39-
//support lib
40-
compile rootProject.ext.supportLibAppCompat
41-
compile rootProject.ext.supportLibDesign
4239

43-
compile rootProject.ext.archRuntime
44-
compile rootProject.ext.archExtension
45-
annotationProcessor rootProject.ext.archCompiler
40+
implementation 'androidx.appcompat:appcompat:1.1.0'
41+
implementation 'com.google.android.material:material:1.0.0'
42+
implementation'androidx.lifecycle:lifecycle-runtime:2.1.0'
43+
implementation'androidx.lifecycle:lifecycle-extensions:2.1.0'
4644

47-
compile rootProject.ext.roomRuntime
48-
annotationProcessor rootProject.ext.roomCompiler
45+
//noinspection LifecycleAnnotationProcessorWithJava8
46+
annotationProcessor 'androidx.lifecycle:lifecycle-compiler:2.1.0'
47+
implementation'androidx.room:room-runtime:2.2.2'
48+
annotationProcessor 'androidx.room:room-compiler:2.2.2'
4949

50-
compile rootProject.ext.okhttp
51-
compile rootProject.ext.retrofit
52-
compile rootProject.ext.gsonConverter
5350

5451
//dagger
55-
annotationProcessor rootProject.ext.daggerCompiler
56-
compile rootProject.ext.dagger
57-
compile rootProject.ext.daggerAndroid
58-
compile rootProject.ext.daggerAndroidSupport
59-
annotationProcessor rootProject.ext.daggerAndroidProcessor
52+
implementation "com.google.dagger:dagger:$daggerVersion"
53+
annotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
54+
annotationProcessor "com.google.dagger:dagger-android-processor:$daggerVersion"
55+
implementation "com.google.dagger:dagger-android-support:$daggerVersion"
56+
57+
implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
58+
implementation "com.squareup.retrofit2:converter-gson:$gsonConverterVersion"
59+
implementation "com.squareup.okhttp3:okhttp:$okhttpVersion"
60+
61+
implementation "com.squareup.picasso:picasso:$picassoVersion"
62+
63+
64+
65+
66+
67+
68+
6069

61-
//ui
62-
compile rootProject.ext.picasso
6370

6471
}
72+

app/src/androidTest/java/iammert/com/androidarchitecture/ExampleInstrumentedTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package iammert.com.androidarchitecture;
22

33
import android.content.Context;
4-
import android.support.test.InstrumentationRegistry;
5-
import android.support.test.runner.AndroidJUnit4;
4+
import androidx.test.platform.app.InstrumentationRegistry;
5+
import androidx.test.ext.junit.runners.AndroidJUnit4;
66

77
import org.junit.Test;
88
import org.junit.runner.RunWith;

app/src/main/java/iammert/com/androidarchitecture/AAApp.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,18 @@
77

88
import dagger.android.AndroidInjector;
99
import dagger.android.DispatchingAndroidInjector;
10-
import dagger.android.HasActivityInjector;
10+
import dagger.android.HasAndroidInjector;
1111
import iammert.com.androidarchitecture.di.DaggerAppComponent;
1212

1313
/**
1414
* Created by mertsimsek on 20/05/2017.
15+
* Updated by johnjeremih on 27/11/2019
1516
*/
1617

17-
public class AAApp extends Application implements HasActivityInjector {
18+
public class AAApp extends Application implements HasAndroidInjector {
1819

1920
@Inject
20-
DispatchingAndroidInjector<Activity> activityDispatchingInjector;
21+
DispatchingAndroidInjector<Object> activityDispatchingInjector;
2122

2223
@Override
2324
public void onCreate() {
@@ -32,8 +33,9 @@ private void initializeComponent() {
3233
.inject(this);
3334
}
3435

36+
3537
@Override
36-
public AndroidInjector<Activity> activityInjector() {
37-
return activityDispatchingInjector;
38+
public AndroidInjector<Object> androidInjector() {
39+
return activityDispatchingInjector;
3840
}
3941
}

app/src/main/java/iammert/com/androidarchitecture/data/MovieRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package iammert.com.androidarchitecture.data;
22

3-
import android.arch.lifecycle.LiveData;
4-
import android.support.annotation.NonNull;
3+
import androidx.lifecycle.LiveData;
4+
import androidx.annotation.NonNull;
55

66
import java.util.List;
77

app/src/main/java/iammert/com/androidarchitecture/data/NetworkBoundResource.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
*/
1616
package iammert.com.androidarchitecture.data;
1717

18-
import android.arch.lifecycle.LiveData;
19-
import android.arch.lifecycle.MediatorLiveData;
18+
import androidx.lifecycle.LiveData;
19+
import androidx.lifecycle.MediatorLiveData;
2020
import android.os.AsyncTask;
21-
import android.support.annotation.MainThread;
22-
import android.support.annotation.NonNull;
23-
import android.support.annotation.Nullable;
24-
import android.support.annotation.WorkerThread;
21+
import androidx.annotation.MainThread;
22+
import androidx.annotation.NonNull;
23+
import androidx.annotation.Nullable;
24+
import androidx.annotation.WorkerThread;
2525

2626
import retrofit2.Call;
2727
import retrofit2.Callback;

app/src/main/java/iammert/com/androidarchitecture/data/Resource.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616

1717
package iammert.com.androidarchitecture.data;
1818

19-
import android.support.annotation.NonNull;
20-
import android.support.annotation.Nullable;
19+
import androidx.annotation.NonNull;
20+
import androidx.annotation.Nullable;
2121

2222
import static iammert.com.androidarchitecture.data.Status.ERROR;
2323
import static iammert.com.androidarchitecture.data.Status.LOADING;

app/src/main/java/iammert/com/androidarchitecture/data/local/MovieDatabase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package iammert.com.androidarchitecture.data.local;
22

3-
import android.arch.persistence.room.Database;
4-
import android.arch.persistence.room.RoomDatabase;
3+
import androidx.room.Database;
4+
import androidx.room.RoomDatabase;
55

66
import iammert.com.androidarchitecture.data.local.dao.MovieDao;
77
import iammert.com.androidarchitecture.data.local.entity.MovieEntity;

app/src/main/java/iammert/com/androidarchitecture/data/local/dao/MovieDao.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package iammert.com.androidarchitecture.data.local.dao;
22

3-
import android.arch.lifecycle.LiveData;
4-
import android.arch.persistence.room.Dao;
5-
import android.arch.persistence.room.Insert;
6-
import android.arch.persistence.room.OnConflictStrategy;
7-
import android.arch.persistence.room.Query;
3+
import androidx.lifecycle.LiveData;
4+
import androidx.room.Dao;
5+
import androidx.room.Insert;
6+
import androidx.room.OnConflictStrategy;
7+
import androidx.room.Query;
88

99
import java.util.List;
1010

app/src/main/java/iammert/com/androidarchitecture/data/local/entity/MovieEntity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package iammert.com.androidarchitecture.data.local.entity;
22

3-
import android.arch.persistence.room.Entity;
4-
import android.arch.persistence.room.PrimaryKey;
3+
import androidx.room.Entity;
4+
import androidx.room.PrimaryKey;
55

66
import com.google.gson.annotations.SerializedName;
77

app/src/main/java/iammert/com/androidarchitecture/data/remote/RequestInterceptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package iammert.com.androidarchitecture.data.remote;
22

3-
import android.support.annotation.NonNull;
3+
import androidx.annotation.NonNull;
44

55
import java.io.IOException;
66

app/src/main/java/iammert/com/androidarchitecture/databinding/ImageBindingAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package iammert.com.androidarchitecture.databinding;
22

3-
import android.databinding.BindingAdapter;
4-
import android.support.v4.content.ContextCompat;
3+
import androidx.databinding.BindingAdapter;
4+
import androidx.core.content.ContextCompat;
55
import android.widget.ImageView;
66

77
import com.squareup.picasso.Picasso;
@@ -18,7 +18,7 @@ public final class ImageBindingAdapter {
1818
@BindingAdapter(value = "url")
1919
public static void loadImageUrl(ImageView view, String url) {
2020
if (url != null && !url.equals(""))
21-
Picasso.with(view.getContext())
21+
Picasso.get()
2222
.load(ApiConstants.IMAGE_ENDPOINT_PREFIX + url)
2323
.placeholder(R.drawable.placeholder)
2424
.into(view);

app/src/main/java/iammert/com/androidarchitecture/databinding/ListBindingAdapter.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package iammert.com.androidarchitecture.databinding;
22

3-
import android.databinding.BindingAdapter;
4-
import android.support.v7.widget.RecyclerView;
3+
import androidx.databinding.BindingAdapter;
4+
import androidx.recyclerview.widget.RecyclerView;
55

66
import java.util.List;
77

@@ -22,8 +22,5 @@ public static void setResource(RecyclerView recyclerView, Resource resource){
2222
if(resource == null || resource.data == null)
2323
return;
2424

25-
if(adapter instanceof BaseAdapter){
26-
((BaseAdapter)adapter).setData((List) resource.data);
27-
}
2825
}
2926
}

app/src/main/java/iammert/com/androidarchitecture/di/AppModule.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package iammert.com.androidarchitecture.di;
22

33
import android.app.Application;
4-
import android.arch.lifecycle.ViewModelProvider;
5-
import android.arch.persistence.room.Room;
4+
import androidx.lifecycle.ViewModelProvider;
5+
import androidx.room.Room;
66

77
import java.util.concurrent.TimeUnit;
88

@@ -15,7 +15,6 @@
1515
import iammert.com.androidarchitecture.data.remote.ApiConstants;
1616
import iammert.com.androidarchitecture.data.remote.MovieDBService;
1717
import iammert.com.androidarchitecture.data.remote.RequestInterceptor;
18-
import iammert.com.androidarchitecture.viewmodel.MovieViewModelFactory;
1918
import okhttp3.OkHttpClient;
2019
import retrofit2.Retrofit;
2120
import retrofit2.converter.gson.GsonConverterFactory;

app/src/main/java/iammert/com/androidarchitecture/di/ViewModelKey.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package iammert.com.androidarchitecture.di;
22

3-
import android.arch.lifecycle.ViewModel;
3+
import androidx.lifecycle.ViewModel;
44

55
import java.lang.annotation.Documented;
66
import java.lang.annotation.ElementType;

app/src/main/java/iammert/com/androidarchitecture/di/ViewModelModule.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package iammert.com.androidarchitecture.di;
22

3-
import android.arch.lifecycle.ViewModel;
4-
import android.arch.lifecycle.ViewModelProvider;
3+
import androidx.lifecycle.ViewModel;
4+
import androidx.lifecycle.ViewModelProvider;
55

66
import dagger.Binds;
77
import dagger.Module;
Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
package iammert.com.androidarchitecture.ui;
22

3-
import android.databinding.DataBindingUtil;
4-
import android.databinding.ViewDataBinding;
3+
import androidx.databinding.DataBindingUtil;
4+
import androidx.databinding.ViewDataBinding;
55
import android.os.Bundle;
6-
import android.support.annotation.LayoutRes;
7-
import android.support.annotation.Nullable;
8-
import android.support.v4.app.Fragment;
9-
import android.support.v7.app.AppCompatActivity;
6+
import androidx.annotation.LayoutRes;
7+
import androidx.annotation.Nullable;
8+
import androidx.fragment.app.Fragment;
9+
import androidx.appcompat.app.AppCompatActivity;
1010

1111
import javax.inject.Inject;
1212

1313
import dagger.android.AndroidInjection;
14-
import dagger.android.AndroidInjector;
1514
import dagger.android.DispatchingAndroidInjector;
16-
import dagger.android.support.HasSupportFragmentInjector;
15+
import dagger.android.support.DaggerAppCompatActivity;
1716

1817
/**
1918
* Created by mertsimsek on 15/09/2017.
19+
* Updated by johnjeremih on 26/11/2019
2020
*/
2121

22-
public abstract class BaseActivity<DB extends ViewDataBinding> extends AppCompatActivity implements HasSupportFragmentInjector {
22+
public abstract class BaseActivity<DB extends ViewDataBinding> extends DaggerAppCompatActivity {
2323

2424
@Inject
2525
DispatchingAndroidInjector<Fragment> fragmentAndroidInjector;
@@ -36,8 +36,5 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
3636
dataBinding = DataBindingUtil.setContentView(this, getLayoutRes());
3737
}
3838

39-
@Override
40-
public AndroidInjector<Fragment> supportFragmentInjector() {
41-
return fragmentAndroidInjector;
42-
}
39+
4340
}

app/src/main/java/iammert/com/androidarchitecture/ui/BaseAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package iammert.com.androidarchitecture.ui;
22

3-
import android.support.v7.widget.RecyclerView;
3+
import androidx.recyclerview.widget.RecyclerView;
44

55
import java.util.List;
66

app/src/main/java/iammert/com/androidarchitecture/ui/BaseFragment.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
package iammert.com.androidarchitecture.ui;
22

3-
import android.arch.lifecycle.LifecycleRegistry;
4-
import android.arch.lifecycle.LifecycleRegistryOwner;
5-
import android.arch.lifecycle.ViewModel;
6-
import android.arch.lifecycle.ViewModelProvider;
7-
import android.arch.lifecycle.ViewModelProviders;
8-
import android.databinding.DataBindingUtil;
9-
import android.databinding.ViewDataBinding;
3+
import androidx.lifecycle.LifecycleRegistry;
4+
import androidx.lifecycle.LifecycleRegistryOwner;
5+
import androidx.lifecycle.ViewModel;
6+
import androidx.lifecycle.ViewModelProvider;
7+
import androidx.lifecycle.ViewModelProviders;
8+
import androidx.databinding.DataBindingUtil;
9+
import androidx.databinding.ViewDataBinding;
1010
import android.os.Bundle;
11-
import android.support.annotation.LayoutRes;
12-
import android.support.annotation.Nullable;
13-
import android.support.v4.app.Fragment;
11+
import androidx.annotation.LayoutRes;
12+
import androidx.annotation.Nullable;
13+
import androidx.fragment.app.Fragment;
1414
import android.view.LayoutInflater;
1515
import android.view.View;
1616
import android.view.ViewGroup;

0 commit comments

Comments
 (0)