diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/build.gradle | 72 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java | 29 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java | 7 |
3 files changed, 70 insertions, 38 deletions
diff --git a/app/build.gradle b/app/build.gradle index ad388bd02..388487092 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,7 +1,6 @@ import org.apache.tools.ant.filters.ReplaceTokens apply plugin: "com.android.application" -apply plugin: "me.tatarka.retrolambda" apply plugin: 'com.github.triplet.play' apply plugin: 'com.getkeepsafe.dexcount' @@ -113,10 +112,13 @@ android { additionalParameters "--no-version-vectors" } + flavorDimensions "market" productFlavors { free { + dimension "market" } play { + dimension "market" } } @@ -126,58 +128,58 @@ android { } configurations { - freeDebugCompile - freeReleaseCompile - playDebugCompile - playReleaseCompile + freeDebugImplementation + freeReleaseImplementation + playDebugImplementation + playReleaseImplementation } dependencies { - freeDebugCompile project(path: ":core", configuration: "freeDebug") - freeReleaseCompile project(path: ":core", configuration: "freeRelease") + freeImplementation project(":core") // free build hack: skip some dependencies if (!doFreeBuild()) { - playDebugCompile project(path: ":core", configuration: "playDebug") - playReleaseCompile project(path: ":core", configuration: "playRelease") + playImplementation project(":core") } else { System.out.println("app: free build hack, skipping some dependencies") } - compile "com.android.support:support-v4:$supportVersion" - compile "com.android.support:appcompat-v7:$supportVersion" - compile "com.android.support:design:$supportVersion" - compile "com.android.support:gridlayout-v7:$supportVersion" - compile "com.android.support:percent:$supportVersion" - compile "com.android.support:recyclerview-v7:$supportVersion" - compile "org.apache.commons:commons-lang3:$commonslangVersion" - compile("org.shredzone.flattr4j:flattr4j-core:$flattr4jVersion") { + implementation "com.android.support:support-v4:$supportVersion" + implementation "com.android.support:appcompat-v7:$supportVersion" + implementation "com.android.support:design:$supportVersion" + implementation "com.android.support:gridlayout-v7:$supportVersion" + implementation "com.android.support:percent:$supportVersion" + implementation "com.android.support:recyclerview-v7:$supportVersion" + implementation "org.apache.commons:commons-lang3:$commonslangVersion" + implementation("org.shredzone.flattr4j:flattr4j-core:$flattr4jVersion") { exclude group: "org.json", module: "json" } - compile "commons-io:commons-io:$commonsioVersion" - compile "org.jsoup:jsoup:$jsoupVersion" - compile "com.github.bumptech.glide:glide:$glideVersion" - compile "com.squareup.okhttp3:okhttp:$okhttpVersion" - compile "com.squareup.okhttp3:okhttp-urlconnection:$okhttpVersion" - compile "com.squareup.okio:okio:$okioVersion" - compile "de.greenrobot:eventbus:$eventbusVersion" - compile "io.reactivex:rxandroid:$rxAndroidVersion" - compile "io.reactivex:rxjava:$rxJavaVersion" + implementation "commons-io:commons-io:$commonsioVersion" + implementation "org.jsoup:jsoup:$jsoupVersion" + implementation "com.github.bumptech.glide:glide:$glideVersion" + implementation "com.squareup.okhttp3:okhttp:$okhttpVersion" + implementation "com.squareup.okhttp3:okhttp-urlconnection:$okhttpVersion" + implementation "com.squareup.okio:okio:$okioVersion" + implementation "de.greenrobot:eventbus:$eventbusVersion" + implementation "io.reactivex:rxandroid:$rxAndroidVersion" + implementation "io.reactivex:rxjava:$rxJavaVersion" // And ProGuard rules for RxJava! - compile "com.artemzin.rxjava:proguard-rules:$rxJavaRulesVersion" - compile "com.joanzapata.iconify:android-iconify-fontawesome:$iconifyVersion" - compile "com.joanzapata.iconify:android-iconify-material:$iconifyVersion" - compile("com.afollestad.material-dialogs:commons:$materialDialogsVersion") { + implementation "com.artemzin.rxjava:proguard-rules:$rxJavaRulesVersion" + implementation "com.joanzapata.iconify:android-iconify-fontawesome:$iconifyVersion" + implementation "com.joanzapata.iconify:android-iconify-material:$iconifyVersion" + implementation("com.afollestad.material-dialogs:commons:$materialDialogsVersion") { transitive = true } - compile "com.yqritc:recyclerview-flexibledivider:$recyclerviewFlexibledividerVersion" - compile("com.githang:viewpagerindicator:2.5@aar") { + implementation "com.yqritc:recyclerview-flexibledivider:$recyclerviewFlexibledividerVersion" + implementation("com.githang:viewpagerindicator:2.5@aar") { exclude module: "support-v4" } - compile "com.github.shts:TriangleLabelView:$triangleLabelViewVersion" + implementation "com.github.shts:TriangleLabelView:$triangleLabelViewVersion" - compile "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion" + implementation "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion" - compile 'com.github.mfietz:fyydlin:v0.3' + implementation 'com.github.mfietz:fyydlin:v0.3' + + androidTestImplementation "com.jayway.android.robotium:robotium-solo:$robotiumSoloVersion" } play { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java index de9932bef..fba445d3a 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -388,17 +388,29 @@ public class QueueFragment extends Fragment { itemTouchHelper = new ItemTouchHelper( new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.RIGHT) { + // Position tracking whilst dragging + int dragFrom = -1; + int dragTo = -1; + @Override public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { + int fromPosition = viewHolder.getAdapterPosition(); + int toPosition = target.getAdapterPosition(); + + // Update tracked position + if(dragFrom == -1) { + dragFrom = fromPosition; + } + dragTo = toPosition; + int from = viewHolder.getAdapterPosition(); int to = target.getAdapterPosition(); - Log.d(TAG, "move(" + from + ", " + to + ")"); + Log.d(TAG, "move(" + from + ", " + to + ") in memory"); if(from >= queue.size() || to >= queue.size()) { return false; } queue.add(to, queue.remove(from)); recyclerAdapter.notifyItemMoved(from, to); - DBWriter.moveQueueItem(from, to, true); return true; } @@ -452,12 +464,25 @@ public class QueueFragment extends Fragment { RecyclerView.ViewHolder viewHolder) { super.clearView(recyclerView, viewHolder); + // Check if drag finished + if(dragFrom != -1 && dragTo != -1 && dragFrom != dragTo) { + reallyMoved(dragFrom, dragTo); + } + + dragFrom = dragTo = -1; + if (viewHolder instanceof QueueRecyclerAdapter.ItemTouchHelperViewHolder) { QueueRecyclerAdapter.ItemTouchHelperViewHolder itemViewHolder = (QueueRecyclerAdapter.ItemTouchHelperViewHolder) viewHolder; itemViewHolder.onItemClear(); } } + + private void reallyMoved(int from, int to) { + // Write drag operation to database + Log.d(TAG, "Write to database move(" + dragFrom + ", " + dragTo + ")"); + DBWriter.moveQueueItem(dragFrom, dragTo, true); + } } ); itemTouchHelper.attachToRecyclerView(recyclerView); diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java index b5e0f1e99..0f42dd01a 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java @@ -764,6 +764,10 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc } } + private static String blankIfNull(String val) { + return val == null ? "" : val; + } + private void buildAutodownloadSelectedNetworsPreference() { final Activity activity = ui.getActivity(); @@ -778,7 +782,8 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc Log.e(TAG, "Couldn't get list of configure Wi-Fi networks"); return; } - Collections.sort(networks, (x, y) -> x.SSID.compareTo(y.SSID)); + Collections.sort(networks, (x, y) -> + blankIfNull(x.SSID).compareTo(blankIfNull(y.SSID))); selectedNetworks = new CheckBoxPreference[networks.size()]; List<String> prefValues = Arrays.asList(UserPreferences .getAutodownloadSelectedNetworks()); |