Skip to content

Commit

Permalink
used Fresco instead of glide and support staggeredgridlayoutmanager l…
Browse files Browse the repository at this point in the history
…oad more
  • Loading branch information
sungerk committed Apr 9, 2016
1 parent bd75d1f commit b7bd280
Show file tree
Hide file tree
Showing 50 changed files with 490 additions and 265 deletions.
7 changes: 3 additions & 4 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ android {
}
instrumentTest.setRoot('src/test')
}

}

dependencies {
Expand All @@ -51,10 +50,10 @@ dependencies {
compile 'com.android.support:cardview-v7:23.2.1'
compile 'io.reactivex:rxjava:1.1.2'
compile 'io.reactivex:rxandroid:1.1.0'
compile 'com.facebook.fresco:fresco:0.9.0+'
compile 'com.facebook.fresco:imagepipeline-okhttp:0.9.0+'
compile 'com.squareup.okhttp:okhttp:2.5.0'
compile 'com.github.bumptech.glide:glide:3.6.1'
compile 'com.github.bumptech.glide:okhttp-integration:1.3.1@aar'
compile 'cn.bingoogolapple:bga-badgeview:1.0.2'
compile 'cn.bingoogolapple:bga-badgeview:1.1.1'
compile 'com.github.traex.rippleeffect:library:1.3'
compile 'com.soundcloud.android:android-crop:1.0.1@aar'
compile 'com.github.dmytrodanylyk.android-process-button:library:1.0.4'
Expand Down
10 changes: 0 additions & 10 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,6 @@

<activity android:name="com.soundcloud.android.crop.CropImageActivity" />

<activity
android:name="io.vov.vitamio.activity.InitActivity"
android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"
android:launchMode="singleTop"
android:theme="@android:style/Theme.NoTitleBar"
android:windowSoftInputMode="stateAlwaysHidden" />

<meta-data
android:name="com.bumptech.glide.integration.okhttp.OkHttpGlideModule"
android:value="GlideModule" />
</application>

</manifest>
2 changes: 1 addition & 1 deletion app/src/main/java/org/sunger/net/api/ApiClient.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.sunger.net.api;

import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.support.okhttp.request.OkHttpRequest;

import java.util.Map;
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/org/sunger/net/api/HeaderMap.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.sunger.net.api;

import org.sunger.net.app.App;
import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.entity.OauthUserEntity;

import java.util.HashMap;
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/org/sunger/net/api/ParamsMap.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import android.text.TextUtils;

import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.utils.DeviceUtils;

import java.util.HashMap;
Expand Down
7 changes: 7 additions & 0 deletions app/src/main/java/org/sunger/net/app/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import android.app.Application;

import com.facebook.drawee.backends.pipeline.Fresco;
import com.squareup.okhttp.OkHttpClient;

import org.sunger.net.config.ImagePipelineConfigFactory;
import org.sunger.net.entity.OauthUserEntity;
import org.sunger.net.support.okhttp.OkHttpClientManager;
import org.sunger.net.utils.DeviceUtils;
Expand All @@ -25,9 +27,14 @@ public void onCreate() {
super.onCreate();
instance = this;
initOkHttp();
initFresco();
DeviceUtils.init(this);
}

private void initFresco() {
Fresco.initialize(this, ImagePipelineConfigFactory.getOkHttpImagePipelineConfig(this,okHttpClient));
}

private void initOkHttp() {
okHttpClient =
OkHttpClientManager.getInstance().getOkHttpClient();
Expand Down
27 changes: 12 additions & 15 deletions app/src/main/java/org/sunger/net/app/AppUtils.java
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
package org.sunger.net.app;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.text.TextUtils;

import com.bumptech.glide.BitmapTypeRequest;
import com.bumptech.glide.Glide;

import org.sunger.net.entity.MediaEntity;
import org.sunger.net.entity.SimpleUserEntity;
import org.sunger.net.entity.VideoItemEntity;
import org.sunger.net.utils.GlideUtils;
import org.sunger.net.ui.widget.AvatarView;

import java.util.ArrayList;
import java.util.List;

import cn.bingoogolapple.badgeview.BGABadgeImageView;
import sunger.org.demo.R;

/**
Expand All @@ -23,22 +21,21 @@
public class AppUtils {


public static void loadBigUserAvata(Activity activity, SimpleUserEntity entity, BGABadgeImageView imageView) {
loadImage(activity, R.mipmap.ic_verified_account_24dp, entity, imageView);
public static void loadBigUserAvata(SimpleUserEntity entity, AvatarView imageView) {
loadImage(R.mipmap.ic_verified_account_24dp, entity, imageView);
}

public static void loadSmallUserAvata(Activity activity, SimpleUserEntity entity, BGABadgeImageView imageView) {
loadImage(activity, R.mipmap.ic_verified_account_16dp, entity, imageView);
public static void loadSmallUserAvata(SimpleUserEntity entity, AvatarView imageView) {
loadImage(R.mipmap.ic_verified_account_16dp, entity, imageView);
}

private static void loadImage(Activity activity, int v, SimpleUserEntity entity, BGABadgeImageView imageView) {
private static void loadImage(int vIcon, SimpleUserEntity entity, AvatarView imageView) {
if (TextUtils.isEmpty(entity.getAvatar()))
return;
BitmapTypeRequest builder = Glide.with(activity).load(entity.getAvatar()).asBitmap();
imageView.setImageURI(Uri.parse(entity.getAvatar()));
if (entity.getVerified()) {
GlideUtils.loadBadgeImage(v, builder, imageView);
} else {
GlideUtils.loadCircleImage(builder, imageView);
Bitmap avatorBadgeBitmap = BitmapFactory.decodeResource(App.getInstance().getResources(), vIcon);
imageView.showDrawableBadge(avatorBadgeBitmap);
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.sunger.net.app;
package org.sunger.net.config;

/**
* Created by sunger on 2015/10/27.
Expand All @@ -11,7 +11,6 @@ public final class RequestPath {
public final static String VIDEO_LIST = "/channels/feed_timeline.json";
public final static String HOT_VIDEO_LIST = "/hot/feed_timeline.json";
public final static String MEDIAS = "/medias/show.json";

public final static String LIKES_VIDEO_CREATE = "/likes/create.json";
public final static String LIKES_VIDEO_DESTORY = "/likes/destroy.json";

Expand Down
35 changes: 35 additions & 0 deletions app/src/main/java/org/sunger/net/config/ConfigConstants.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/*
* Copyright 2015, 2016 Sungerk
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.sunger.net.config;

import com.facebook.common.util.ByteConstants;

import org.sunger.net.utils.SdcardUtils;

/**
* Created by sunger on 16/4/9.
*/
public class ConfigConstants {
private static final int MAX_HEAP_SIZE = (int) Runtime.getRuntime().maxMemory();
public static final int MAX_DISK_CACHE_SIZE = 100 * ByteConstants.MB;
public static final int MAX_MEMORY_CACHE_SIZE = MAX_HEAP_SIZE / 4;
public static final String IMAGE_PIPELINE_BASE_DIR = SdcardUtils.getSdcardPath()+"meiShi/Cache/";
public static final String IMAGE_PIPELINE_CACHE_DIR = SdcardUtils.getSdcardPath()+"imagepipeline_cache";



}
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/*
* Copyright 2015, 2016 Sungerk
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.sunger.net.config;

import android.content.Context;

import com.facebook.cache.disk.DiskCacheConfig;
import com.facebook.common.internal.Supplier;
import com.facebook.imagepipeline.backends.okhttp.OkHttpImagePipelineConfigFactory;
import com.facebook.imagepipeline.cache.MemoryCacheParams;
import com.facebook.imagepipeline.core.ImagePipelineConfig;
import com.facebook.imagepipeline.listener.RequestListener;
import com.facebook.imagepipeline.listener.RequestLoggingListener;
import com.squareup.okhttp.OkHttpClient;

import org.sunger.net.utils.FileUtils;

import java.util.HashSet;
import java.util.Set;

/**
* Created by sunger on 16/4/9.
* thanks for http://www.oschina.net/code/piece_full?code=47596&piece=68319
*/
public class ImagePipelineConfigFactory {
private static ImagePipelineConfig sOkHttpImagePipelineConfig;

/**
* Creates config using OkHttp as network backed.
*/
public static ImagePipelineConfig getOkHttpImagePipelineConfig(Context context,OkHttpClient okHttpClient) {
if (sOkHttpImagePipelineConfig == null) {
ImagePipelineConfig.Builder configBuilder =
OkHttpImagePipelineConfigFactory.newBuilder(context, okHttpClient);
configureCaches(configBuilder, context);
configureLoggingListeners(configBuilder);
sOkHttpImagePipelineConfig = configBuilder.build();
}
return sOkHttpImagePipelineConfig;
}

/**
* Configures disk and memory cache not to exceed common limits
*/
private static void configureCaches(
ImagePipelineConfig.Builder configBuilder,
Context context) {
FileUtils.createDirs(ConfigConstants.IMAGE_PIPELINE_CACHE_DIR);
final MemoryCacheParams bitmapCacheParams = new MemoryCacheParams(
ConfigConstants.MAX_MEMORY_CACHE_SIZE, // Max total size of elements in the cache
Integer.MAX_VALUE, // Max entries in the cache
ConfigConstants.MAX_MEMORY_CACHE_SIZE, // Max total size of elements in eviction queue
Integer.MAX_VALUE, // Max length of eviction queue
Integer.MAX_VALUE); // Max cache entry size
configBuilder
.setBitmapMemoryCacheParamsSupplier(
new Supplier<MemoryCacheParams>() {
public MemoryCacheParams get() {
return bitmapCacheParams;
}
})
.setMainDiskCacheConfig(
DiskCacheConfig.newBuilder(context)
.setBaseDirectoryPath(FileUtils.createDirs(ConfigConstants.IMAGE_PIPELINE_BASE_DIR))
.setBaseDirectoryName(ConfigConstants.IMAGE_PIPELINE_CACHE_DIR)
.setMaxCacheSize(ConfigConstants.MAX_DISK_CACHE_SIZE)
.build());
}

private static void configureLoggingListeners(ImagePipelineConfig.Builder configBuilder) {
Set<RequestListener> requestListeners = new HashSet<>();
requestListeners.add(new RequestLoggingListener());
configBuilder.setRequestListeners(requestListeners);
}

private static void configureOptions(ImagePipelineConfig.Builder configBuilder) {
configBuilder.setDownsampleEnabled(true);
}
}

2 changes: 1 addition & 1 deletion app/src/main/java/org/sunger/net/model/CategoryModel.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.sunger.net.model;

import org.sunger.net.api.ApiClient;
import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.entity.CategoryEntity;
import org.sunger.net.support.okhttp.callback.ResultCallback;
import org.sunger.net.support.okhttp.request.OkHttpRequest;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import org.sunger.net.api.ApiClient;
import org.sunger.net.api.HeaderMap;
import org.sunger.net.api.ParamsMap;
import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.entity.UserEntity;
import org.sunger.net.support.okhttp.callback.ResultCallback;
import org.sunger.net.support.okhttp.request.OkHttpRequest;
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/org/sunger/net/model/FollowersModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import org.sunger.net.api.ApiClient;
import org.sunger.net.api.HeaderMap;
import org.sunger.net.api.ParamsMap;
import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.entity.FollowEntity;
import org.sunger.net.support.okhttp.callback.ResultCallback;
import org.sunger.net.support.okhttp.request.OkHttpRequest;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import org.sunger.net.api.ApiClient;
import org.sunger.net.api.ParamsMap;
import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.entity.SimpleUserEntity;
import org.sunger.net.support.okhttp.callback.ResultCallback;
import org.sunger.net.support.okhttp.request.OkHttpRequest;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import org.sunger.net.api.ApiClient;
import org.sunger.net.api.ParamsMap;
import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.entity.VideoItemEntity;
import org.sunger.net.support.okhttp.callback.ResultCallback;
import org.sunger.net.support.okhttp.request.OkHttpRequest;
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/org/sunger/net/model/LoginModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import org.sunger.net.api.ApiClient;
import org.sunger.net.api.ParamsMap;
import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.entity.OauthUserEntity;
import org.sunger.net.support.okhttp.callback.ResultCallback;
import org.sunger.net.support.okhttp.request.OkHttpRequest;
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/org/sunger/net/model/PlayVideoModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import org.sunger.net.api.ApiClient;
import org.sunger.net.api.HeaderMap;
import org.sunger.net.api.ParamsMap;
import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.entity.CommentEntity;
import org.sunger.net.entity.MediaEntity;
import org.sunger.net.support.okhttp.callback.ResultCallback;
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/org/sunger/net/model/RepostsModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import org.sunger.net.api.ApiClient;
import org.sunger.net.api.ParamsMap;
import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.entity.MediaEntity;
import org.sunger.net.support.okhttp.callback.ResultCallback;
import org.sunger.net.support.okhttp.request.OkHttpRequest;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import org.sunger.net.api.ApiClient;
import org.sunger.net.api.ParamsMap;
import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.entity.OauthUserEntity;
import org.sunger.net.support.okhttp.callback.ResultCallback;
import org.sunger.net.support.okhttp.request.OkHttpRequest;
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/org/sunger/net/model/SignUpModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import org.sunger.net.api.ApiClient;
import org.sunger.net.api.ParamsMap;
import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.support.okhttp.callback.ResultCallback;
import org.sunger.net.support.okhttp.request.OkHttpRequest;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import org.sunger.net.api.ApiClient;
import org.sunger.net.api.ParamsMap;
import org.sunger.net.app.AppConstants;
import org.sunger.net.config.AppConstants;
import org.sunger.net.entity.MediaEntity;
import org.sunger.net.support.okhttp.callback.ResultCallback;
import org.sunger.net.support.okhttp.request.OkHttpRequest;
Expand Down
Loading

0 comments on commit b7bd280

Please sign in to comment.