summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/build.gradle72
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java29
-rw-r--r--app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java7
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());