Skip to content

Commit

Permalink
Added Memory Policy option for CACHE or NO_CACHE
Browse files Browse the repository at this point in the history
  • Loading branch information
cesarferreira committed Jun 30, 2015
1 parent 63ed148 commit a752b62
Show file tree
Hide file tree
Showing 9 changed files with 60 additions and 29 deletions.
15 changes: 11 additions & 4 deletions README.md
@@ -1,8 +1,10 @@
# CatKit
Android **kit** for **cat placeholders**
<p align="center">

Android **kit** for **cat placeholders**
</p>
<p align="center">
<img src="https://raw.github.com/cesarferreira/catkit/master/extras/images/catkit.png?raw=true" width="100%" />
<img src="https://raw.github.com/cesarferreira/catkit/master/extras/images/catkit_trimmed.png?raw=true" width="100%" />
</p>


Expand All @@ -19,9 +21,14 @@ With Pixels:
CatKit.with(context).px(500, 300).into(targetImageView);
```

Memory Policy:
```java
CatKit.with(context).dp(200, 200).memoryPolicy(MemoryPolicy.NO_CACHE).into(targetImageView);
```

## Install

**Step 1:** Add the JitPack repository to your build file
**Step 1:** Add the JitPack repository to your main `build.gradle`


```groovy
Expand All @@ -39,7 +46,7 @@ allprojects {
**Step 2:** Add the dependency in the form
```groovy
dependencies {
compile 'com.github.cesarferreira:catkit:0.1.0'
compile 'com.github.cesarferreira:catkit:0.3.0'
}
```

Expand Down
3 changes: 2 additions & 1 deletion build.gradle
Expand Up @@ -16,7 +16,8 @@ def isReleaseBuild() {

allprojects {
group='com.cesarferreira'
version='0.2.0'
version='0.3.0'

repositories {
jcenter()
maven { url "https://jitpack.io" }
Expand Down
4 changes: 2 additions & 2 deletions catkit/build.gradle
Expand Up @@ -8,8 +8,8 @@ android {
defaultConfig {
minSdkVersion 16
targetSdkVersion 22
versionCode 2
versionName "0.2.0"
versionCode 3
versionName "0.3.0"
multiDexEnabled true

}
Expand Down
29 changes: 24 additions & 5 deletions catkit/src/main/java/github/cesarferreira/catkit/CatKit.java
Expand Up @@ -3,16 +3,19 @@

import android.content.Context;
import android.content.res.Resources;
import android.util.Log;
import android.widget.ImageView;

import com.squareup.picasso.MemoryPolicy;
import com.squareup.picasso.Picasso;
import com.squareup.picasso.RequestCreator;

public class CatKit {
private Context mContext;
private static CatKit mCatKit;
private int mWidth;
private int mHeight;
private MemoryPolicy mMemoryPolicy = null;

public static CatKit with(Context context) {
mCatKit = new CatKit(context);
Expand All @@ -38,15 +41,26 @@ public CatKit dp(int width, int height) {

public void into(ImageView imageView) {

if (imageView == null) {
Log.e("CatKit", "target image view is NULL");
}

// clean the view
assert imageView != null;
imageView.setImageBitmap(null);
Picasso.with(mContext).cancelRequest(imageView);

// set the view
Picasso.with(mContext)
.load(getUrl())
.memoryPolicy(MemoryPolicy.NO_STORE)
.into(imageView);
// set the image view
RequestCreator request = Picasso.with(mContext).load(getUrl());

// Show solid red after failing 3 times
request.error(R.drawable.solid_red);

if (mMemoryPolicy != null) {
request.memoryPolicy(mMemoryPolicy);
}

request.into(imageView);
}

private String getUrl() {
Expand All @@ -61,4 +75,9 @@ public static int dpToPx(int dp) {
public static int pxToDp(int px) {
return (int) (px / Resources.getSystem().getDisplayMetrics().density);
}

public CatKit memoryPolicy(MemoryPolicy memoryPolicy) {
mMemoryPolicy = memoryPolicy;
return mCatKit;
}
}
4 changes: 4 additions & 0 deletions catkit/src/main/res/drawable/solid_grey.xml
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00FF00" />
</shape>
4 changes: 4 additions & 0 deletions catkit/src/main/res/drawable/solid_red.xml
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FF0000" />
</shape>
Expand Up @@ -5,25 +5,29 @@
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;

import butterknife.Bind;
import butterknife.ButterKnife;
import com.squareup.picasso.MemoryPolicy;

import github.cesarferreira.catkit.CatKit;

public class MainActivity extends AppCompatActivity {

@Bind(R.id.targetImageView)
ImageView targetImageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ButterKnife.bind(this);

Context context = getApplicationContext();
ImageView targetImageView = (ImageView) findViewById(R.id.targetImageView);


// Simple way...
// CatKit.with(context).dp(200, 200).into(targetImageView);

CatKit.with(context).dp(200, 200).into(targetImageView);
// More complete way
CatKit.with(context)
.dp(300, 400)
.memoryPolicy(MemoryPolicy.NO_STORE)
.into(targetImageView);
}


Expand Down
8 changes: 0 additions & 8 deletions example/src/main/res/layout/activity_main.xml
Expand Up @@ -5,19 +5,11 @@
android:background="@color/c_green_munsell"
tools:context=".MainActivity">

<View
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@color/c_alabama_crimson"/>

<ImageView
android:id="@+id/targetImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:alpha="0.5"
android:src="@mipmap/ic_launcher" />
</RelativeLayout>
2 changes: 1 addition & 1 deletion example/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@
<resources>
<string name="app_name">Example</string>
<string name="app_name">CatKit Example</string>

<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
Expand Down

0 comments on commit a752b62

Please sign in to comment.