Skip to content
This repository was archived by the owner on Aug 13, 2023. It is now read-only.

migrate project to AndroidX, add kotlin support #40

Open
wants to merge 1 commit into
base: arch-training-steps
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 39 additions & 19 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
compileSdkVersion 26
buildToolsVersion '26.0.1'
compileSdkVersion 28

defaultConfig {
applicationId "com.example.android.sunshine"
minSdkVersion 14
targetSdkVersion 26
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
}
}

dataBinding.enabled = true
dataBinding {
enabled = true
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
Expand All @@ -28,21 +32,37 @@ android {

// Versions number variables are defined in the module build.gradle file
dependencies {
compile "com.android.support:appcompat-v7:$support_version"
compile "com.android.support:recyclerview-v7:$support_version"
compile "com.android.support:preference-v7:$support_version"
compile "com.android.support.constraint:constraint-layout:$constraint_layout_version"
compile "com.firebase:firebase-jobdispatcher:$firebase_jobdispatcher_version"
compile "android.arch.lifecycle:runtime:$arch_version"
compile "android.arch.lifecycle:extensions:$arch_version"
annotationProcessor "android.arch.lifecycle:compiler:$arch_version"
compile "android.arch.persistence.room:runtime:$arch_version"
annotationProcessor "android.arch.persistence.room:compiler:$arch_version"
// kotlin
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

// androidx appcompat
implementation "androidx.appcompat:appcompat:$appcompat_version"

// androidx core
implementation "androidx.core:core-ktx:$androidx_version"

// android material
implementation "com.google.android.material:material:$androidx_version"

// androidx constraint layout
implementation "androidx.constraintlayout:constraintlayout:$constraint_version"

// firebase
implementation "com.firebase:firebase-jobdispatcher:$firebase_jobdispatcher_version"

// lifecycle
implementation "android.arch.lifecycle:runtime:$arch_version"
implementation "android.arch.lifecycle:extensions:$arch_version"
kapt "android.arch.lifecycle:compiler:$arch_version"

// room
implementation "android.arch.persistence.room:runtime:$arch_version"
kapt "android.arch.persistence.room:compiler:$arch_version"

// Instrumentation dependencies use androidTestCompile"
// (as opposed to testCompile for local unit tests run in the JVM"
androidTestCompile "junit:junit:$junit_version"
androidTestCompile "com.android.support:support-annotations:$support_version"
androidTestCompile "com.android.support.test:runner:$support_test_version"
androidTestCompile "com.android.support.test:rules:$support_test_version"
androidTestImplementation "junit:junit:$junit_version"
androidTestImplementation "androidx.annotation:annotation:$annotation_version"
androidTestImplementation "androidx.test:runner:$arch_version"
androidTestImplementation "androidx.test:rules:$arch_version"
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import android.os.Handler;
import android.os.Looper;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;

import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

package com.example.android.sunshine.data;

import android.arch.lifecycle.LiveData;
import android.util.Log;

import androidx.lifecycle.LiveData;
import com.example.android.sunshine.AppExecutors;
import com.example.android.sunshine.data.database.ListWeatherEntry;
import com.example.android.sunshine.data.database.WeatherDao;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

package com.example.android.sunshine.data.database;

import android.arch.persistence.room.TypeConverter;
import androidx.room.TypeConverter;

import java.util.Date;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,20 @@

package com.example.android.sunshine.data.database;

import android.arch.persistence.room.Database;
import android.arch.persistence.room.Room;
import android.arch.persistence.room.RoomDatabase;
import android.arch.persistence.room.TypeConverters;
import android.content.Context;
import android.util.Log;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import androidx.room.TypeConverters;

/**
* {@link SunshineDatabase} database for the application including a table for {@link WeatherEntry}
* with the DAO {@link WeatherDao}.
*/

// List of the entry classes and associated TypeConverters
@Database(entities = {WeatherEntry.class}, version = 1)
@Database(entities = {WeatherEntry.class}, version = 1, exportSchema = false)
@TypeConverters(DateConverter.class)
public abstract class SunshineDatabase extends RoomDatabase {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@

package com.example.android.sunshine.data.database;

import android.arch.lifecycle.LiveData;
import android.arch.persistence.room.Dao;
import android.arch.persistence.room.Insert;
import android.arch.persistence.room.OnConflictStrategy;
import android.arch.persistence.room.Query;
import androidx.lifecycle.LiveData;
import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;

import java.util.Date;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@

package com.example.android.sunshine.data.database;

import android.arch.persistence.room.Entity;
import android.arch.persistence.room.Ignore;
import android.arch.persistence.room.Index;
import android.arch.persistence.room.PrimaryKey;
import android.arch.persistence.room.Room;

import androidx.room.Entity;
import androidx.room.Ignore;
import androidx.room.Index;
import androidx.room.PrimaryKey;

import java.util.Date;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
*/
package com.example.android.sunshine.data.network;

import android.support.annotation.Nullable;

import androidx.annotation.Nullable;
import com.example.android.sunshine.data.database.WeatherEntry;
import com.example.android.sunshine.utilities.SunshineDateUtils;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
*/
package com.example.android.sunshine.data.network;

import android.arch.lifecycle.LiveData;
import android.arch.lifecycle.MutableLiveData;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import com.example.android.sunshine.AppExecutors;
import com.example.android.sunshine.data.database.WeatherEntry;
import com.firebase.jobdispatcher.Constraint;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
*/
package com.example.android.sunshine.data.network;

import android.support.annotation.NonNull;

import androidx.annotation.NonNull;
import com.example.android.sunshine.data.database.WeatherEntry;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
*/
package com.example.android.sunshine.ui.detail;

import android.arch.lifecycle.LifecycleActivity;
import android.arch.lifecycle.ViewModelProviders;
import android.databinding.DataBindingUtil;
import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.ViewModelProviders;
import com.example.android.sunshine.R;
import com.example.android.sunshine.data.database.WeatherEntry;
import com.example.android.sunshine.databinding.ActivityDetailBinding;
Expand All @@ -32,7 +32,7 @@
/**
* Displays single day's forecast
*/
public class DetailActivity extends LifecycleActivity {
public class DetailActivity extends AppCompatActivity {

public static final String WEATHER_ID_EXTRA = "WEATHER_ID_EXTRA";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@

package com.example.android.sunshine.ui.detail;

import android.arch.lifecycle.LiveData;
import android.arch.lifecycle.ViewModel;

import androidx.lifecycle.LiveData;
import androidx.lifecycle.ViewModel;
import com.example.android.sunshine.data.SunshineRepository;
import com.example.android.sunshine.data.database.WeatherEntry;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

package com.example.android.sunshine.ui.detail;

import android.arch.lifecycle.ViewModel;
import android.arch.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import com.example.android.sunshine.data.database.WeatherEntry;

import com.example.android.sunshine.data.SunshineRepository;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,13 @@
package com.example.android.sunshine.ui.list;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.util.DiffUtil;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import com.example.android.sunshine.R;
import com.example.android.sunshine.data.database.ListWeatherEntry;
import com.example.android.sunshine.data.database.WeatherEntry;
Expand All @@ -34,6 +32,9 @@
import java.util.Date;
import java.util.List;

import androidx.recyclerview.widget.DiffUtil;
import androidx.recyclerview.widget.RecyclerView;

/**
* Exposes a list of weather forecasts from a list of {@link WeatherEntry} to a {@link RecyclerView}.
*/
Expand Down Expand Up @@ -81,7 +82,7 @@ class ForecastAdapter extends RecyclerView.Adapter<ForecastAdapter.ForecastAdapt
* @param viewGroup The ViewGroup that these ViewHolders are contained within.
* @param viewType If your RecyclerView has more than one type of item (like ours does) you
* can use this viewType integer to provide a different layout. See
* {@link android.support.v7.widget.RecyclerView.Adapter#getItemViewType(int)}
* {@link androidx.recyclerview.widget.RecyclerView.Adapter#getItemViewType(int)}
* for more details.
* @return A new ForecastAdapterViewHolder that holds the View for each list item
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,14 @@
*/
package com.example.android.sunshine.ui.list;

import android.arch.lifecycle.LifecycleActivity;
import android.arch.lifecycle.ViewModelProviders;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ProgressBar;

import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.android.sunshine.R;
import com.example.android.sunshine.ui.detail.DetailActivity;
import com.example.android.sunshine.utilities.InjectorUtils;
Expand All @@ -34,7 +33,7 @@
/**
* Displays a list of the next 14 days of forecasts
*/
public class MainActivity extends LifecycleActivity implements
public class MainActivity extends AppCompatActivity implements
ForecastAdapter.ForecastAdapterOnItemClickHandler {

private ForecastAdapter mForecastAdapter;
Expand Down Expand Up @@ -78,7 +77,7 @@ protected void onCreate(Bundle savedInstanceState) {
* right-to-left layout.
*/
LinearLayoutManager layoutManager =
new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
new LinearLayoutManager(this, RecyclerView.VERTICAL, false);

/* setLayoutManager associates the LayoutManager we created above with our RecyclerView */
mRecyclerView.setLayoutManager(layoutManager);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@

package com.example.android.sunshine.ui.list;

import android.arch.lifecycle.LiveData;
import android.arch.lifecycle.ViewModel;

import androidx.lifecycle.LiveData;
import androidx.lifecycle.ViewModel;
import com.example.android.sunshine.data.SunshineRepository;
import com.example.android.sunshine.data.database.ListWeatherEntry;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

package com.example.android.sunshine.ui.list;

import android.arch.lifecycle.ViewModel;
import android.arch.lifecycle.ViewModelProvider;

import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import com.example.android.sunshine.data.SunshineRepository;

/**
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/activity_forecast.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
- that there is a gap between the bottom of the screen and the EdgeEffect. Set -
- clipToPadding to "false" again and observe how the gap is gone. -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<android.support.v7.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview_forecast"
android:layout_width="match_parent"
android:layout_height="match_parent"
Expand Down
6 changes: 3 additions & 3 deletions app/src/main/res/layout/extra_weather_details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">

<android.support.constraint.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/extra_details"
android:layout_width="match_parent"
android:layout_height="match_parent"
Expand All @@ -31,7 +31,7 @@
android:paddingTop="@dimen/forecast_detail_vertical_padding">

<!-- This guideline divides the layout into a left and right half and is used for alignment -->
<android.support.constraint.Guideline
<androidx.constraintlayout.widget.Guideline
android:id="@+id/horizontal_middle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
Expand Down Expand Up @@ -91,5 +91,5 @@
app:layout_constraintLeft_toLeftOf="@+id/horizontal_middle"
tools:text="4km/h NW"/>

</android.support.constraint.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
Loading