many improvement

androidx
Zhanty 5 years ago
parent a9c0fe36b5
commit a5d4fa1a51
  1. 1
      config/repository.gradle
  2. 22
      lib_base/src/main/java/com/android/base/app/aac/SingleLiveData.java
  3. 20
      lib_base/src/main/java/com/android/base/kotlin/ViewEx.kt
  4. 1
      lib_base/src/main/res/values-en/base_strings.xml
  5. 7
      lib_media_selector/README.md
  6. 15
      lib_media_selector/build.gradle
  7. 22
      lib_social/src/main/java/com/android/sdk/social/wechat/SingleLiveData.java

@ -258,6 +258,7 @@ static Repository innerNewRepository() {
/*image view about*/
//https://github.com/chrisbanes/PhotoView
photoView : 'com.github.chrisbanes:PhotoView:2.1.3',
rotatePhotoView :'com.chensl.rotatephotoview:rotatephotoview:1.0.5',
//https://github.com/davemorrissey/subsampling-scale-image-view
subsamplingScaleImageView: 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0',
//https://github.com/hdodenhof/CircleImageView

@ -19,7 +19,6 @@ public class SingleLiveData<T> extends MediatorLiveData<T> {
private final List<WeakReference<ObserverWrapper<T>>> mWrapperObserverList = new ArrayList<>();
@Override
public void observe(@NonNull LifecycleOwner owner, @NonNull Observer<T> observer) {
super.observe(owner, getOrNewObserver(observer, mVersion));
@ -38,10 +37,27 @@ public class SingleLiveData<T> extends MediatorLiveData<T> {
@Override
public void removeObserver(@NonNull Observer<T> observer) {
Observer<T> wrapper = findWrapper(observer);
if (observer instanceof ObserverWrapper) {
super.removeObserver(observer);
removeWrapper((ObserverWrapper) observer);
Timber.d("removeObserver() called with: observer = wrapper = [" + observer + "]");
} else {
ObserverWrapper<T> wrapper = findWrapper(observer);
Timber.d("removeObserver() called with: observer = [" + observer + "], wrapper = [" + wrapper + "]");
if (wrapper != null) {
super.removeObserver(wrapper);
removeWrapper(wrapper);
}
}
private void removeWrapper(ObserverWrapper observer) {
ListIterator<WeakReference<ObserverWrapper<T>>> iterator = mWrapperObserverList.listIterator();
while (iterator.hasNext()) {
WeakReference<ObserverWrapper<T>> next = iterator.next();
ObserverWrapper<T> item = next.get();
if (item == observer) {
iterator.remove();
break;
}
}
}

@ -5,9 +5,13 @@ import android.support.annotation.ColorRes
import android.support.annotation.DrawableRes
import android.support.v4.content.ContextCompat
import android.support.v4.view.ViewCompat
import android.support.v4.widget.NestedScrollView
import android.view.View
import android.view.View.FOCUS_DOWN
import android.view.View.FOCUS_UP
import android.view.ViewGroup
import android.view.ViewTreeObserver
import android.widget.ScrollView
import com.android.base.rx.subscribeIgnoreError
import com.android.base.utils.android.ViewUtils
import com.android.base.utils.android.compat.AndroidVersion.atLeast
@ -150,3 +154,19 @@ fun View.onClickObservable(milliseconds: Long): Observable<Any> {
}
inline val ViewGroup.views get() = (0 until childCount).map { getChildAt(it) }
fun ScrollView.scrollToBottom() {
fullScroll(FOCUS_DOWN)
}
fun ScrollView.scrollToTop() {
fullScroll(FOCUS_UP)
}
fun NestedScrollView.scrollToBottom() {
fullScroll(FOCUS_DOWN)
}
fun NestedScrollView.scrollToTop() {
fullScroll(FOCUS_UP)
}

@ -3,7 +3,6 @@
<string name="Base_Confirm">Confirm</string>
<string name="Base_Cancel">Cancel</string>
<!-- ================== error layout ================== -->
<string name="base_error_load_fail_tips">Failed to load/(ㄒoㄒ)/~~ </string>
<string name="base_error_retry_action_tips">Click me to retry</string>

@ -23,5 +23,10 @@
## 3 其他备选参考
-  [boxing](https://github.com/Bilibili/boxing)
-  [uCrop](https://github.com/Yalantis/uCrop)
-  [Matisse](https://github.com/zhihu/Matisse)
-  [ImagePicker](https://github.com/jeasonlzy/ImagePicker)
-  [PictureSelector](https://github.com/LuckSiege/PictureSelector)
-  [Album](https://github.com/yanzhenjie/Album)
-  [uCrop](https://github.com/Yalantis/uCrop)
-  [smartCropper](https://github.com/pqpo/SmartCropper)
-  [simpleCropper](https:github.com/igreenwood/SimpleCropView)

@ -32,11 +32,6 @@ dependencies {
/*imageLoader*/
compileOnly thirdLibraries.glide
//other optional
// Matissehttps://github.com/zhihu/Matisse
//PictureSelector https://github.com/LuckSiege/PictureSelector
//Albumhttps://github.com/yanzhenjie/Album
implementation('com.bilibili:boxing:1.0.4') {
exclude group: 'com.android.support'
}
@ -45,10 +40,12 @@ dependencies {
exclude group: 'com.android.support'
}
//other optional
//cropper about
// smartCropperhttps://github.com/pqpo/SmartCropper
// simpleCropperhttps:github.com/igreenwood/SimpleCropView
implementation('com.chensl.rotatephotoview:rotatephotoview:1.0.5') {
exclude group: 'com.android.support', module: 'appcompat'
exclude group: 'com.android.support', module: 'support-v4'
exclude module: 'recyclerview-v7'
}
implementation('com.yalantis:ucrop:2.2.0') {
exclude group: 'com.android.support'
exclude group: 'com.squareup.okio'

@ -19,7 +19,6 @@ public class SingleLiveData<T> extends MediatorLiveData<T> {
private final List<WeakReference<ObserverWrapper<T>>> mWrapperObserverList = new ArrayList<>();
@Override
public void observe(@NonNull LifecycleOwner owner, @NonNull Observer<T> observer) {
super.observe(owner, getOrNewObserver(observer, mVersion));
@ -38,10 +37,27 @@ public class SingleLiveData<T> extends MediatorLiveData<T> {
@Override
public void removeObserver(@NonNull Observer<T> observer) {
Observer<T> wrapper = findWrapper(observer);
if (observer instanceof ObserverWrapper) {
super.removeObserver(observer);
removeWrapper((ObserverWrapper) observer);
Timber.d("removeObserver() called with: observer = wrapper = [" + observer + "]");
} else {
ObserverWrapper<T> wrapper = findWrapper(observer);
Timber.d("removeObserver() called with: observer = [" + observer + "], wrapper = [" + wrapper + "]");
if (wrapper != null) {
super.removeObserver(wrapper);
removeWrapper(wrapper);
}
}
private void removeWrapper(ObserverWrapper observer) {
ListIterator<WeakReference<ObserverWrapper<T>>> iterator = mWrapperObserverList.listIterator();
while (iterator.hasNext()) {
WeakReference<ObserverWrapper<T>> next = iterator.next();
ObserverWrapper<T> item = next.get();
if (item == observer) {
iterator.remove();
break;
}
}
}

Loading…
Cancel
Save