diff --git a/app/build.gradle b/app/build.gradle index 03901a90..998ff330 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,14 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 - buildToolsVersion "25.0.2" + compileSdkVersion 31 defaultConfig { applicationId "com.example.android.mygarden" - minSdkVersion 15 - targetSdkVersion 25 + minSdkVersion 19 + targetSdkVersion 31 versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' } buildTypes { release { @@ -20,9 +19,9 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:25.2.0' - compile 'com.android.support:design:25.2.0' - compile 'com.android.support:recyclerview-v7:25.2.0' - compile 'com.android.support.constraint:constraint-layout:1.0.2' + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'androidx.appcompat:appcompat:1.0.0' + implementation 'com.google.android.material:material:1.0.0' + implementation 'androidx.recyclerview:recyclerview:1.0.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 215ee441..0ee96ccd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,7 +9,8 @@ android:supportsRtl="true" android:theme="@style/AppTheme"> - + @@ -32,7 +33,8 @@ + android:label="@string/title_activity_my_garden" + android:exported="true"> diff --git a/app/src/main/java/com/example/android/mygarden/provider/PlantContentProvider.java b/app/src/main/java/com/example/android/mygarden/provider/PlantContentProvider.java index c28cfbe4..7f414813 100644 --- a/app/src/main/java/com/example/android/mygarden/provider/PlantContentProvider.java +++ b/app/src/main/java/com/example/android/mygarden/provider/PlantContentProvider.java @@ -24,7 +24,7 @@ import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import java.util.ArrayList; import java.util.Arrays; diff --git a/app/src/main/java/com/example/android/mygarden/ui/AddPlantActivity.java b/app/src/main/java/com/example/android/mygarden/ui/AddPlantActivity.java index 429cd927..4502e561 100644 --- a/app/src/main/java/com/example/android/mygarden/ui/AddPlantActivity.java +++ b/app/src/main/java/com/example/android/mygarden/ui/AddPlantActivity.java @@ -18,9 +18,9 @@ import android.content.ContentValues; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.widget.ImageView; diff --git a/app/src/main/java/com/example/android/mygarden/ui/MainActivity.java b/app/src/main/java/com/example/android/mygarden/ui/MainActivity.java index ff04248a..3df5c9e2 100644 --- a/app/src/main/java/com/example/android/mygarden/ui/MainActivity.java +++ b/app/src/main/java/com/example/android/mygarden/ui/MainActivity.java @@ -20,12 +20,12 @@ import android.database.Cursor; import android.net.Uri; import android.os.Bundle; -import android.support.v4.app.LoaderManager; -import android.support.v4.content.CursorLoader; -import android.support.v4.content.Loader; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.loader.app.LoaderManager; +import androidx.loader.content.CursorLoader; +import androidx.loader.content.Loader; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.widget.ImageView; diff --git a/app/src/main/java/com/example/android/mygarden/ui/PlantDetailActivity.java b/app/src/main/java/com/example/android/mygarden/ui/PlantDetailActivity.java index 739c3aad..e3fe3d55 100644 --- a/app/src/main/java/com/example/android/mygarden/ui/PlantDetailActivity.java +++ b/app/src/main/java/com/example/android/mygarden/ui/PlantDetailActivity.java @@ -17,14 +17,13 @@ */ import android.content.ContentUris; -import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; -import android.support.v4.app.LoaderManager; -import android.support.v4.content.CursorLoader; -import android.support.v4.content.Loader; -import android.support.v7.app.AppCompatActivity; +import androidx.loader.app.LoaderManager; +import androidx.loader.content.CursorLoader; +import androidx.loader.content.Loader; +import androidx.appcompat.app.AppCompatActivity; import android.view.View; import android.widget.ImageView; import android.widget.TextView; diff --git a/app/src/main/java/com/example/android/mygarden/ui/PlantListAdapter.java b/app/src/main/java/com/example/android/mygarden/ui/PlantListAdapter.java index 484a909f..50afaad3 100644 --- a/app/src/main/java/com/example/android/mygarden/ui/PlantListAdapter.java +++ b/app/src/main/java/com/example/android/mygarden/ui/PlantListAdapter.java @@ -16,9 +16,13 @@ * limitations under the License. */ +import static androidx.constraintlayout.widget.Constraints.TAG; + import android.content.Context; import android.database.Cursor; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; + +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -62,23 +66,28 @@ public PlantViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { @Override public void onBindViewHolder(PlantViewHolder holder, int position) { - mCursor.moveToPosition(position); - int idIndex = mCursor.getColumnIndex(PlantEntry._ID); - int createTimeIndex = mCursor.getColumnIndex(PlantEntry.COLUMN_CREATION_TIME); - int waterTimeIndex = mCursor.getColumnIndex(PlantEntry.COLUMN_LAST_WATERED_TIME); - int plantTypeIndex = mCursor.getColumnIndex(PlantEntry.COLUMN_PLANT_TYPE); + try { - long plantId = mCursor.getLong(idIndex); - int plantType = mCursor.getInt(plantTypeIndex); - long createdAt = mCursor.getLong(createTimeIndex); - long wateredAt = mCursor.getLong(waterTimeIndex); - long timeNow = System.currentTimeMillis(); + mCursor.moveToPosition(position); + int idIndex = mCursor.getColumnIndex(PlantEntry._ID); + int createTimeIndex = mCursor.getColumnIndex(PlantEntry.COLUMN_CREATION_TIME); + int waterTimeIndex = mCursor.getColumnIndex(PlantEntry.COLUMN_LAST_WATERED_TIME); + int plantTypeIndex = mCursor.getColumnIndex(PlantEntry.COLUMN_PLANT_TYPE); - int imgRes = PlantUtils.getPlantImageRes(mContext, timeNow - createdAt, timeNow - wateredAt, plantType); + long plantId = mCursor.getLong(idIndex); + int plantType = mCursor.getInt(plantTypeIndex); + long createdAt = mCursor.getLong(createTimeIndex); + long wateredAt = mCursor.getLong(waterTimeIndex); + long timeNow = System.currentTimeMillis(); - holder.plantImageView.setImageResource(imgRes); - holder.plantNameView.setText(String.valueOf(plantId)); - holder.plantImageView.setTag(plantId); + int imgRes = PlantUtils.getPlantImageRes(mContext, timeNow - createdAt, timeNow - wateredAt, plantType); + + holder.plantImageView.setImageResource(imgRes); + holder.plantNameView.setText(String.valueOf(plantId)); + holder.plantImageView.setTag(plantId); + }catch (Exception e){ + Log.e(TAG, "onBindViewHolder: cursor wala exception"); + } } public void swapCursor(Cursor newCursor) { diff --git a/app/src/main/java/com/example/android/mygarden/ui/PlantTypesAdapter.java b/app/src/main/java/com/example/android/mygarden/ui/PlantTypesAdapter.java index 5f7e149a..55fd0971 100644 --- a/app/src/main/java/com/example/android/mygarden/ui/PlantTypesAdapter.java +++ b/app/src/main/java/com/example/android/mygarden/ui/PlantTypesAdapter.java @@ -19,7 +19,7 @@ import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/example/android/mygarden/ui/WaterLevelView.java b/app/src/main/java/com/example/android/mygarden/ui/WaterLevelView.java index 19e12ee6..2cdda12b 100644 --- a/app/src/main/java/com/example/android/mygarden/ui/WaterLevelView.java +++ b/app/src/main/java/com/example/android/mygarden/ui/WaterLevelView.java @@ -7,7 +7,7 @@ import android.graphics.Paint; import android.graphics.Path; import android.graphics.RectF; -import android.support.v4.content.ContextCompat; +import androidx.core.content.ContextCompat; import android.util.AttributeSet; import android.view.View; diff --git a/app/src/main/res/layout-land/activity_plant_detail.xml b/app/src/main/res/layout-land/activity_plant_detail.xml index d6372218..a3870955 100644 --- a/app/src/main/res/layout-land/activity_plant_detail.xml +++ b/app/src/main/res/layout-land/activity_plant_detail.xml @@ -16,7 +16,7 @@ limitations under the License. --> - - - - - + diff --git a/app/src/main/res/layout/activity_add_plant.xml b/app/src/main/res/layout/activity_add_plant.xml index 8547f68e..b3d96384 100644 --- a/app/src/main/res/layout/activity_add_plant.xml +++ b/app/src/main/res/layout/activity_add_plant.xml @@ -36,16 +36,16 @@ android:padding="16dp" android:text="@string/select_plant_type" /> - - + - - - - - - - + diff --git a/app/src/main/res/layout/water_meter.xml b/app/src/main/res/layout/water_meter.xml index a172196e..5a593b60 100644 --- a/app/src/main/res/layout/water_meter.xml +++ b/app/src/main/res/layout/water_meter.xml @@ -16,7 +16,7 @@ limitations under the License. --> - + app:value="100" + tools:ignore="MissingConstraints" /> - \ No newline at end of file + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 74b2ab0d..61019c1a 100644 --- a/build.gradle +++ b/build.gradle @@ -2,10 +2,11 @@ buildscript { repositories { - jcenter() + google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.3' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -14,7 +15,8 @@ buildscript { allprojects { repositories { - jcenter() + google() + mavenCentral() } } diff --git a/gradle.properties b/gradle.properties index aac7c9b4..9e6fce10 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,6 +9,8 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. +android.enableJetifier=true +android.useAndroidX=true org.gradle.jvmargs=-Xmx1536m # When configured, Gradle will run in incubating parallel mode. diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 04e285f3..f3bd5913 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip