diff --git a/app/build.gradle b/app/build.gradle index 466cadb0..1ef20527 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -89,7 +89,9 @@ dependencies { annotationProcessor "org.androidannotations:androidannotations:$AAVersion" compile "org.androidannotations:androidannotations-api:$AAVersion" // ButterKnife - compile 'com.jakewharton:butterknife:8.6.0' + compile('com.jakewharton:butterknife:8.6.0', { + exclude group: 'com.android.support' + }) annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0' // Android supports compile 'com.android.support:appcompat-v7:25.3.1' @@ -99,7 +101,9 @@ dependencies { // Personal libraries compile 'com.github.hyb1996:MutableTheme:0.2.2' // Material Dialogs - compile 'com.afollestad.material-dialogs:core:0.9.2.3' + compile('com.afollestad.material-dialogs:core:0.9.2.3', { + exclude group: 'com.android.support' + }) // Gson compile 'com.google.code.gson:gson:2.8.0' // Common Markdown @@ -109,7 +113,10 @@ dependencies { // Console compile 'com.jraska:console:0.4.3' // Android issue reporter (a github issue reporter) - compile 'com.heinrichreimersoftware:android-issue-reporter:1.3.1' + compile('com.heinrichreimersoftware:android-issue-reporter:1.3.1', { + exclude group: 'com.afollestad.material-dialogs' + exclude group: 'com.android.support' + }) // compile 'com.github.hyb1996:android-multi-level-listview:1.1' compile 'de.psdev.licensesdialog:licensesdialog:1.8.1' @@ -126,7 +133,9 @@ dependencies { compile 'com.flurry.android:analytics:7.0.0@aar' compile 'com.pushtorefresh.storio:sqlite:1.12.3' // 920 Text Editors - compile 'com.afollestad.material-dialogs:commons:0.9.2.3' + compile('com.afollestad.material-dialogs:commons:0.9.2.3', { + exclude group: 'com.android.support' + }) compile 'com.makeramen:roundedimageview:2.2.1' compile 'com.rengwuxian.materialedittext:library:2.0.3' compile 'org.msgpack:msgpack-core:0.8.11' diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java index 839862f4..3e73a04e 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java @@ -83,7 +83,7 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega private FragmentPagerAdapterBuilder.StoredFragmentPagerAdapter mPagerAdapter; private OnActivityResultDelegate.Mediator mActivityResultMediator = new OnActivityResultDelegate.Mediator(); - private DrawableSaver mDrawerHeaderBackgroundSaver, mAppbarBackgroundSaver; + private DrawableSaver mDrawerHeaderBackgroundSaver; private VersionGuard mVersionGuard; @@ -178,7 +178,6 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega R.string.text_drawer_close); drawerToggle.syncState(); mDrawerLayout.addDrawerListener(drawerToggle); - mAppbarBackgroundSaver = new DrawableSaver.ImageSaver(this, "appbar_background", (ImageView) $(R.id.app_bar_bg)); } private void setUpTabViewPager() { @@ -192,11 +191,6 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega tabLayout.setupWithViewPager(mViewPager); } - @Click(R.id.add) - void showAddFilePanel() { - mAddBottomMenuPanel.show(); - } - @Click(R.id.create_new_file) void createScriptFile() { new ScriptOperations(this, mDrawerLayout) @@ -271,15 +265,9 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega mVersionGuard.checkDeprecateAndUpdate(); } - @Click(R.id.toolbar) - public void OnToolbarClick() { - mAppbarBackgroundSaver.select(this, mActivityResultMediator); - } - @Subscribe public void onMessageEvent(MessageEvent event) { if (event.message.equals(MESSAGE_CLEAR_BACKGROUND_SETTINGS)) { - mAppbarBackgroundSaver.reset(); mDrawerHeaderBackgroundSaver.reset(); } } diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/script_list/MyScriptListFragment.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/script_list/MyScriptListFragment.java index 90ac0a29..aa2088cc 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/main/script_list/MyScriptListFragment.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/script_list/MyScriptListFragment.java @@ -107,11 +107,10 @@ public class MyScriptListFragment extends Fragment { mScriptFiles.clear(); mDirectories.clear(); StorageFileProvider.getDefault().getInitialDirectoryScriptFiles() - .subscribeOn(Schedulers.computation()) + .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new SimpleObserver() { - @Override public void onNext(@io.reactivex.annotations.NonNull ScriptFile file) { if (file.isFile()) { diff --git a/app/src/main/java/com/stardust/widget/ScrollAwareFABBehavior.java b/app/src/main/java/com/stardust/widget/ScrollAwareFABBehavior.java new file mode 100644 index 00000000..ba7e49f9 --- /dev/null +++ b/app/src/main/java/com/stardust/widget/ScrollAwareFABBehavior.java @@ -0,0 +1,84 @@ +package com.stardust.widget; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.TimeInterpolator; +import android.content.Context; +import android.support.design.widget.CoordinatorLayout; +import android.support.design.widget.FloatingActionButton; +import android.support.v4.view.animation.FastOutSlowInInterpolator; +import android.util.AttributeSet; +import android.view.View; + +/** + * Created by Stardust on 2017/8/20. + */ + +public class ScrollAwareFABBehavior extends FloatingActionButton.Behavior { + + private static final long DURATION = 200; + private static final TimeInterpolator INTERPOLATOR = new FastOutSlowInInterpolator(); + private boolean mHidden = false; + + public ScrollAwareFABBehavior(Context context, AttributeSet attrs) { + super(); + } + + @Override + public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) { + return true; + } + + @Override + public void onNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) { + super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed); + if (dyConsumed > 0) { + onScrollDown(coordinatorLayout, child); + } else if (dyConsumed < 0) { + onScrollUp(coordinatorLayout, child); + } + } + + private void onScrollUp(CoordinatorLayout parent, FloatingActionButton button) { + if (!mHidden) { + return; + } + startShowingAnimation(parent, button); + } + + private void startShowingAnimation(CoordinatorLayout parent, FloatingActionButton button) { + button.animate() + .translationY(0) + .setDuration(DURATION) + .setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mHidden = false; + } + }) + .start(); + } + + private void onScrollDown(CoordinatorLayout parent, FloatingActionButton button) { + if (mHidden) { + return; + } + startHidingAnimation(parent, button); + } + + private void startHidingAnimation(CoordinatorLayout parent, FloatingActionButton button) { + button.animate() + .translationY(parent.getY() + parent.getHeight() - button.getY()) + .setDuration(DURATION) + .setInterpolator(INTERPOLATOR) + .setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mHidden = true; + } + }) + .start(); + } + + +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 570571f0..532f5887 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -12,58 +12,48 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - - - + app:layout_scrollFlags="scroll|enterAlways" + app:popupTheme="@style/AppTheme.PopupOverlay"/> - + app:tabMode="scrollable"/> - + + - - - - - diff --git a/app/src/main/res/layout/fragment_my_script_list.xml b/app/src/main/res/layout/fragment_my_script_list.xml index bf6b9551..c1576a2f 100644 --- a/app/src/main/res/layout/fragment_my_script_list.xml +++ b/app/src/main/res/layout/fragment_my_script_list.xml @@ -1,5 +1,6 @@ @@ -8,4 +9,6 @@ android:id="@+id/script_file_list" android:layout_width="match_parent" android:layout_height="wrap_content"/> + + \ No newline at end of file diff --git a/autojs/build.gradle b/autojs/build.gradle index bb4297c4..573b8d88 100644 --- a/autojs/build.gradle +++ b/autojs/build.gradle @@ -38,7 +38,11 @@ dependencies { compile 'com.github.hyb1996:DynamicLayoutInflator:0.1' compile 'org.greenrobot:eventbus:3.0.0' compile 'net.lingala.zip4j:zip4j:1.3.2' - compile 'com.afollestad.material-dialogs:core:0.9.2.3' + compile('com.afollestad.material-dialogs:core:0.9.2.3', { + exclude group: 'com.android.support' + }) + compile 'com.android.support:design:25.3.1' + compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.github.hyb1996:EnhancedFloaty:0.17' // Terminal emulator compile(name: 'libtermexec-release', ext: 'aar') diff --git a/inrt/build.gradle b/inrt/build.gradle index 8d2a6908..ad12bc80 100644 --- a/inrt/build.gradle +++ b/inrt/build.gradle @@ -39,7 +39,7 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) - compile 'com.android.support:appcompat-v7:25.3.0' + compile 'com.android.support:appcompat-v7:25.3.1' testCompile 'junit:junit:4.12' compile project(':automator') compile project(':common')