Skip to content

Commit

Permalink
Implemented Android X Library
Browse files Browse the repository at this point in the history
  - CompileSDK and TargetSDK bumped to API Level 28 (Pie, 9)
  - Migrated the `AnchorBottomSheetBehavior` Library to support Android
  X
  • Loading branch information
YuanLiou committed Sep 26, 2018
1 parent d894d1c commit 7353cd8
Show file tree
Hide file tree
Showing 26 changed files with 97 additions and 91 deletions.
3 changes: 2 additions & 1 deletion anchor-bottom-sheet-behavior/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@ android {
}

dependencies {
implementation "com.android.support:design:$support_version"
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.0.0'
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package android.support.v4.view;
package androidx.viewpager.widget;

import android.view.View;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,26 +15,10 @@
*/
package com.trafi.anchorbottomsheetbehavior;

import static android.support.annotation.RestrictTo.Scope.GROUP_ID;

import android.content.Context;
import android.content.res.TypedArray;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.IntDef;
import android.support.annotation.NonNull;
import android.support.annotation.RestrictTo;
import android.support.annotation.VisibleForTesting;
import android.support.design.widget.CoordinatorLayout;
import android.support.v4.os.ParcelableCompat;
import android.support.v4.os.ParcelableCompatCreatorCallbacks;
import android.support.v4.view.AbsSavedState;
import android.support.v4.view.MotionEventCompat;
import android.support.v4.view.NestedScrollingChild;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPagerUtils;
import android.support.v4.widget.ViewDragHelper;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.MotionEvent;
Expand All @@ -43,12 +27,30 @@
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.ViewParent;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;

import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.VisibleForTesting;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.os.ParcelableCompat;
import androidx.core.os.ParcelableCompatCreatorCallbacks;
import androidx.core.view.MotionEventCompat;
import androidx.core.view.NestedScrollingChild;
import androidx.core.view.ViewCompat;
import androidx.customview.view.AbsSavedState;
import androidx.customview.widget.ViewDragHelper;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager.widget.ViewPagerUtils;

import static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP;

/**
* An interaction behavior plugin for a child view of {@link CoordinatorLayout} to make it work as
* a bottom sheet.
Expand Down Expand Up @@ -130,7 +132,7 @@ public void onSlide(@NonNull View bottomSheet, float slideOffset) {
/**
* @hide
*/
@RestrictTo(GROUP_ID)
@RestrictTo(LIBRARY_GROUP)
@IntDef({STATE_EXPANDED, STATE_COLLAPSED, STATE_DRAGGING, STATE_SETTLING, STATE_HIDDEN, STATE_ANCHORED})
@Retention(RetentionPolicy.SOURCE)
public @interface State {
Expand Down Expand Up @@ -219,16 +221,16 @@ public AnchorBottomSheetBehavior() {
public AnchorBottomSheetBehavior(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray a = context.obtainStyledAttributes(attrs,
android.support.design.R.styleable.BottomSheetBehavior_Layout);
TypedValue value = a.peekValue(android.support.design.R.styleable.BottomSheetBehavior_Layout_behavior_peekHeight);
R.styleable.BottomSheetBehavior_Layout);
TypedValue value = a.peekValue(R.styleable.BottomSheetBehavior_Layout_behavior_peekHeight);
if (value != null && value.data == PEEK_HEIGHT_AUTO) {
setPeekHeight(value.data);
} else {
setPeekHeight(a.getDimensionPixelSize(
android.support.design.R.styleable.BottomSheetBehavior_Layout_behavior_peekHeight, PEEK_HEIGHT_AUTO));
R.styleable.BottomSheetBehavior_Layout_behavior_peekHeight, PEEK_HEIGHT_AUTO));
}
setHideable(a.getBoolean(android.support.design.R.styleable.BottomSheetBehavior_Layout_behavior_hideable, false));
setSkipCollapsed(a.getBoolean(android.support.design.R.styleable.BottomSheetBehavior_Layout_behavior_skipCollapsed,
setHideable(a.getBoolean(R.styleable.BottomSheetBehavior_Layout_behavior_hideable, false));
setSkipCollapsed(a.getBoolean(R.styleable.BottomSheetBehavior_Layout_behavior_skipCollapsed,
false));
a.recycle();

Expand Down Expand Up @@ -283,7 +285,7 @@ public boolean onLayoutChild(CoordinatorLayout parent, V child, int layoutDirect
if (mPeekHeightAuto) {
if (mPeekHeightMin == 0) {
mPeekHeightMin = parent.getResources().getDimensionPixelSize(
android.support.design.R.dimen.design_bottom_sheet_peek_height_min);
R.dimen.design_bottom_sheet_peek_height_min);
}
peekHeight = Math.max(mPeekHeightMin, mParentHeight - parent.getWidth() * 9 / 16);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@
*/
package com.trafi.anchorbottomsheetbehavior;

import android.support.design.widget.CoordinatorLayout;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;

import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.viewpager.widget.ViewPager;

public class BottomSheetUtils {

public static void setupViewPager(ViewPager pager) {
Expand Down
9 changes: 4 additions & 5 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ android {
minSdkVersion min_sdk_version
versionCode getVersionCodeTimeStamps()
versionName app_version
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
buildConfigField 'String', 'HOST', APIHost
}

Expand Down Expand Up @@ -75,9 +75,8 @@ dependencies {
implementation project(":anchor-bottom-sheet-behavior")

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation 'com.github.YuanLiou:ChromeCustomTabHelper:1.0'
implementation "com.android.support:appcompat-v7:${support_version}"
implementation "com.android.support:design:${support_version}"
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'com.google.android.material:material:1.0.0'

implementation "com.google.android.gms:play-services-location:${gms_version}"
implementation "com.google.android.gms:play-services-maps:${gms_version}"
Expand All @@ -103,7 +102,7 @@ dependencies {

// for unit test
testImplementation 'junit:junit:4.12'
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0-alpha4', {
exclude group: 'com.android.support', module: 'support-annotations'
})
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package tw.com.louis383.coffeefinder;

import android.support.v4.app.Fragment;

import java.util.List;

import androidx.fragment.app.Fragment;
import tw.com.louis383.coffeefinder.model.domain.CoffeeShop;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package tw.com.louis383.coffeefinder;

import android.support.annotation.Nullable;

import androidx.annotation.Nullable;

/**
* Created by louis383 on 2017/1/13.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package tw.com.louis383.coffeefinder;

import android.app.Application;
import android.support.v7.app.AppCompatDelegate;

import androidx.appcompat.app.AppCompatDelegate;
import tw.com.louis383.coffeefinder.di.AppComponent;
import tw.com.louis383.coffeefinder.di.AppModule;
import tw.com.louis383.coffeefinder.di.DaggerAppComponent;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,17 @@
import android.graphics.PorterDuff;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import tw.com.louis383.coffeefinder.R;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package tw.com.louis383.coffeefinder.adapter;

import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.view.ViewGroup;

import java.util.ArrayList;
import java.util.List;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import tw.com.louis383.coffeefinder.details.DetailsFragment;
import tw.com.louis383.coffeefinder.list.ListFragment;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package tw.com.louis383.coffeefinder.details

import android.arch.lifecycle.Lifecycle
import android.os.Bundle
import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.Lifecycle
import kotlinx.android.synthetic.main.detail_info.*
import tw.com.louis383.coffeefinder.R
import tw.com.louis383.coffeefinder.model.domain.CoffeeShop
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package tw.com.louis383.coffeefinder.list

import android.arch.lifecycle.Lifecycle.State
import android.os.Bundle
import android.os.Parcelable
import android.support.design.widget.Snackbar
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.ProgressBar
import android.widget.TextView
import androidx.lifecycle.Lifecycle
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.snackbar.Snackbar
import tw.com.louis383.coffeefinder.BaseFragment
import tw.com.louis383.coffeefinder.R
import tw.com.louis383.coffeefinder.R.layout
Expand Down Expand Up @@ -83,7 +83,7 @@ class ListFragment : BaseFragment(), CoffeeShopListView, ListTappedHandler {
}

fun setNestScrollingEnable(enable: Boolean) {
if (lifecycle.currentState.isAtLeast(State.CREATED)) {
if (lifecycle.currentState.isAtLeast(Lifecycle.State.CREATED)) {
recyclerView.isNestedScrollingEnabled = enable
}
}
Expand All @@ -95,7 +95,7 @@ class ListFragment : BaseFragment(), CoffeeShopListView, ListTappedHandler {

fun scrollToItemPosition(coffeeShop: CoffeeShop) {
val position = coffeeListAdapter.findPositionInList(coffeeShop)
if (position > -1 && position < coffeeListAdapter.itemCount) {
if (position > -1 && position < coffeeListAdapter.getItemCount()) {
recyclerView.smoothScrollToPosition(position)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,21 @@ import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.support.design.widget.CoordinatorLayout
import android.support.design.widget.Snackbar
import android.support.v4.app.ActivityCompat
import android.support.v4.content.ContextCompat
import android.support.v4.view.ViewPager
import android.support.v7.app.AlertDialog
import android.support.v7.app.AppCompatActivity
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.widget.FrameLayout
import android.widget.ImageButton
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.viewpager.widget.ViewPager
import com.google.android.gms.common.api.ResolvableApiException
import com.google.android.gms.location.LocationServices
import com.google.android.gms.maps.model.LatLng
import com.google.android.material.snackbar.Snackbar
import com.trafi.anchorbottomsheetbehavior.AnchorBottomSheetBehavior
import tw.com.louis383.coffeefinder.CoffeeTripApplication
import tw.com.louis383.coffeefinder.R
Expand Down Expand Up @@ -165,7 +165,7 @@ class MainActivity : AppCompatActivity(), MainView, MapsClickHandler, ListFragme
}
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
when (requestCode) {
internetRequest -> {
if (isInternetAvailable) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
package tw.com.louis383.coffeefinder.mainpage

import android.annotation.SuppressLint
import android.arch.lifecycle.Lifecycle.Event
import android.arch.lifecycle.LifecycleObserver
import android.arch.lifecycle.LifecycleOwner
import android.arch.lifecycle.OnLifecycleEvent
import android.content.Context
import android.content.Intent
import android.location.Location
Expand All @@ -15,6 +11,10 @@ import android.os.Looper
import android.util.Log
import android.util.TypedValue
import android.view.View
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.OnLifecycleEvent
import com.google.android.gms.common.api.ApiException
import com.google.android.gms.common.api.ResolvableApiException
import com.google.android.gms.location.*
Expand Down Expand Up @@ -104,14 +104,14 @@ class MainPresenter(private val coffeeShopListManager: CoffeeShopListManager, pr
owner.lifecycle.addObserver(this)
}

@OnLifecycleEvent(Event.ON_RESUME)
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
private fun startBackgroundThread() {
backgroundThread = HandlerThread("BackgroundThread").apply { start() }
uiHandler = Handler(Looper.getMainLooper())
requestUserLocation(false)
}

@OnLifecycleEvent(Event.ON_PAUSE)
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
private fun pauseLocationUpdate() {
coffeeShopListManager.stop()
backgroundThread?.quitSafely()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import android.content.pm.PackageManager
import android.graphics.drawable.Drawable
import android.location.Location
import android.os.Bundle
import android.support.v4.content.ContextCompat
import android.support.v7.app.AlertDialog
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import com.google.android.gms.maps.CameraUpdateFactory
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.MapView
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package tw.com.louis383.coffeefinder.maps

import android.graphics.drawable.Drawable
import android.support.annotation.DrawableRes
import androidx.annotation.DrawableRes
import com.google.android.gms.maps.model.BitmapDescriptor
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.Marker
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package tw.com.louis383.coffeefinder.utils

import android.app.Activity
import android.support.annotation.IdRes
import android.view.View
import androidx.annotation.IdRes

fun <T: View> Activity.bindView(@IdRes resId: Int): Lazy<T> = lazy {
findViewById<T>(resId)
Expand Down
Loading

0 comments on commit 7353cd8

Please sign in to comment.