diff --git a/build.gradle b/build.gradle index 8ccd9c9..8cfcd91 100644 --- a/build.gradle +++ b/build.gradle @@ -1,14 +1,16 @@ buildscript { repositories { + google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.1' + classpath 'com.android.tools.build:gradle:3.2.1' } } allprojects { repositories { + google() jcenter() } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3c11526..c01049d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Apr 18 11:58:38 MSK 2017 +#Tue Sep 25 17:53:54 PHT 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip diff --git a/library/build.gradle b/library/build.gradle index 15dbe3d..fca5647 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,49 +1,18 @@ -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.novoda:bintray-release:0.4.0' - } -} - apply plugin: 'com.android.library' -apply plugin: 'idea' -apply plugin: 'bintray-release' android { - compileSdkVersion 23 - buildToolsVersion '25.0.2' + compileSdkVersion 27 defaultConfig { - minSdkVersion 9 - targetSdkVersion 23 + minSdkVersion 15 + targetSdkVersion 27 versionCode 22 versionName '2.7.1' } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_7 - targetCompatibility JavaVersion.VERSION_1_7 - } } -idea { - module { - downloadJavadoc = true - downloadSources = true - } -} -dependencies { - compile 'org.slf4j:slf4j-android:1.7.21' -} -publish { - userOrg = 'alexeydanilov' - groupId = 'com.danikula' - artifactId = 'videocache' - publishVersion = android.defaultConfig.versionName - description = 'Cache support for android VideoView' - website = 'https://github.com/danikula/AndroidVideoCache' +dependencies { + implementation 'org.slf4j:slf4j-android:1.7.21' } diff --git a/library/src/main/java/com/danikula/videocache/HttpProxyCache.java b/library/src/main/java/com/danikula/videocache/HttpProxyCache.java index 010354f..a3385d8 100644 --- a/library/src/main/java/com/danikula/videocache/HttpProxyCache.java +++ b/library/src/main/java/com/danikula/videocache/HttpProxyCache.java @@ -1,6 +1,7 @@ package com.danikula.videocache; import android.text.TextUtils; +import android.util.Log; import com.danikula.videocache.file.FileCache; @@ -76,10 +77,12 @@ private String newResponseHeaders(GetRequest request) throws IOException, ProxyC private void responseWithCache(OutputStream out, long offset) throws ProxyCacheException, IOException { byte[] buffer = new byte[DEFAULT_BUFFER_SIZE]; int readBytes; + Log.i("clyde", "responseWithCache: offset: "+ offset + " thread " + Thread.currentThread()); while ((readBytes = read(buffer, offset, buffer.length)) != -1) { out.write(buffer, 0, readBytes); offset += readBytes; } + Log.e("clyde", "end --- responseWithCache: offset: "+ offset + " thread " + Thread.currentThread()); out.flush(); } diff --git a/library/src/main/java/com/danikula/videocache/HttpProxyCacheServer.java b/library/src/main/java/com/danikula/videocache/HttpProxyCacheServer.java index 1f34ae8..a7655d1 100644 --- a/library/src/main/java/com/danikula/videocache/HttpProxyCacheServer.java +++ b/library/src/main/java/com/danikula/videocache/HttpProxyCacheServer.java @@ -2,6 +2,7 @@ import android.content.Context; import android.net.Uri; +import android.util.Log; import com.danikula.videocache.file.DiskUsage; import com.danikula.videocache.file.FileNameGenerator; @@ -243,6 +244,7 @@ private void processSocket(Socket socket) { onError(new ProxyCacheException("Error processing request", e)); } finally { releaseSocket(socket); + Log.i("clyde", "releaseSocket: " + Thread.currentThread()); LOG.debug("Opened connections: " + getClientsCount()); } } diff --git a/library/src/main/java/com/danikula/videocache/ProxyCache.java b/library/src/main/java/com/danikula/videocache/ProxyCache.java index eeea971..0f335f5 100644 --- a/library/src/main/java/com/danikula/videocache/ProxyCache.java +++ b/library/src/main/java/com/danikula/videocache/ProxyCache.java @@ -1,5 +1,7 @@ package com.danikula.videocache; +import android.util.Log; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/sample/build.gradle b/sample/build.gradle index 2e33790..05102dc 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -1,44 +1,28 @@ -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4' - } -} - repositories { maven { url 'https://github.com/dahlgren/vpi-aar/raw/master' } } apply plugin: 'com.android.application' -apply plugin: 'com.neenbedankt.android-apt' +//apply plugin: 'com.neenbedankt.android-apt' android { - compileSdkVersion 23 - buildToolsVersion '25.0.2' + compileSdkVersion 27 defaultConfig { applicationId 'com.danikula.videocache.sample' minSdkVersion 15 - targetSdkVersion 23 + targetSdkVersion 27 versionCode 1 versionName '1.0' } } -apt { - arguments { - androidManifestFile variant.outputs[0].processResources.manifestFile - resourcePackageName android.defaultConfig.applicationId - } -} - dependencies { -// compile project(':library') - compile 'com.android.support:support-v4:23.1.0' - compile 'org.androidannotations:androidannotations-api:3.3.2' - compile 'com.danikula:videocache:2.7.1' - compile 'com.viewpagerindicator:library:2.4.2-SNAPSHOT@aar' - apt 'org.androidannotations:androidannotations:3.3.2' + implementation project(':library') + implementation 'com.android.support:appcompat-v7:27.1.1' +// implementation 'com.danikula:videocache:2.7.1' + implementation 'com.viewpagerindicator:library:2.4.2-SNAPSHOT@aar' + + annotationProcessor "org.androidannotations:androidannotations:4.5.2" + implementation "org.androidannotations:androidannotations-api:4.5.2" } diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index 3ba1f44..0d800c7 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ - + diff --git a/sample/src/main/java/com/danikula/videocache/sample/GalleryVideoFragment.java b/sample/src/main/java/com/danikula/videocache/sample/GalleryVideoFragment.java index 94a79ca..9579864 100644 --- a/sample/src/main/java/com/danikula/videocache/sample/GalleryVideoFragment.java +++ b/sample/src/main/java/com/danikula/videocache/sample/GalleryVideoFragment.java @@ -4,6 +4,7 @@ import android.os.Message; import android.support.v4.app.Fragment; import android.widget.ProgressBar; +import android.widget.SeekBar; import android.widget.VideoView; import com.danikula.videocache.CacheListener; @@ -27,7 +28,7 @@ public class GalleryVideoFragment extends Fragment implements CacheListener { @InstanceState boolean playerStarted; @ViewById VideoView videoView; - @ViewById ProgressBar progressBar; + @ViewById SeekBar progressBar; private boolean visibleForUser; @@ -42,7 +43,6 @@ public static Fragment build(String url) { @AfterViews void afterViewInjected() { startProxy(); - if (visibleForUser) { startPlayer(); } diff --git a/sample/src/main/java/com/danikula/videocache/sample/SingleVideoActivity.java b/sample/src/main/java/com/danikula/videocache/sample/SingleVideoActivity.java index 2ecbe56..5d5c9d4 100644 --- a/sample/src/main/java/com/danikula/videocache/sample/SingleVideoActivity.java +++ b/sample/src/main/java/com/danikula/videocache/sample/SingleVideoActivity.java @@ -15,7 +15,7 @@ protected void onCreate(Bundle state) { if (state == null) { getSupportFragmentManager() .beginTransaction() - .add(R.id.containerView, VideoFragment.build(Video.ORANGE_1.url)) + .add(R.id.containerView, VideoFragment.build("http://192.168.1.246:8080/test.mp4")) .commit(); } } diff --git a/sample/src/main/java/com/danikula/videocache/sample/VideoFragment.java b/sample/src/main/java/com/danikula/videocache/sample/VideoFragment.java index 85c8086..ebd7059 100644 --- a/sample/src/main/java/com/danikula/videocache/sample/VideoFragment.java +++ b/sample/src/main/java/com/danikula/videocache/sample/VideoFragment.java @@ -6,6 +6,7 @@ import android.util.Log; import android.widget.ImageView; import android.widget.ProgressBar; +import android.widget.SeekBar; import android.widget.VideoView; import com.danikula.videocache.CacheListener; @@ -22,13 +23,17 @@ @EFragment(R.layout.fragment_video) public class VideoFragment extends Fragment implements CacheListener { - private static final String LOG_TAG = "VideoFragment"; + private static final String LOG_TAG = "clyde"; - @FragmentArg String url; + @FragmentArg + String url; - @ViewById ImageView cacheStatusImageView; - @ViewById VideoView videoView; - @ViewById ProgressBar progressBar; + @ViewById + ImageView cacheStatusImageView; + @ViewById + VideoView videoView; + @ViewById + SeekBar progressBar; private final VideoProgressUpdater updater = new VideoProgressUpdater(); @@ -75,18 +80,23 @@ public void onPause() { } @Override - public void onDestroy() { - super.onDestroy(); - + public void onDestroyView() { + super.onDestroyView(); videoView.stopPlayback(); + } + + @Override + public void onDestroy() { App.getProxy(getActivity()).unregisterCacheListener(this); + + super.onDestroy(); } @Override public void onCacheAvailable(File file, String url, int percentsAvailable) { progressBar.setSecondaryProgress(percentsAvailable); setCachedState(percentsAvailable == 100); - Log.d(LOG_TAG, String.format("onCacheAvailable. percents: %d, file: %s, url: %s", percentsAvailable, file, url)); +// Log.d(LOG_TAG, String.format("onCacheAvailable. percents: %d, file: %s, url: %s", percentsAvailable, file, url)); } private void updateVideoProgress() { diff --git a/sample/src/main/res/layout/fragment_video.xml b/sample/src/main/res/layout/fragment_video.xml index c153b69..3f18195 100644 --- a/sample/src/main/res/layout/fragment_video.xml +++ b/sample/src/main/res/layout/fragment_video.xml @@ -1,9 +1,7 @@ - + android:layout_height="match_parent"> - -