Skip to content

Commit

Permalink
Merge pull request #49 from EyeSeeTea/development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
ifoche authored Jul 18, 2017
2 parents 509dfd7 + c2ca4e4 commit 7c1b9e1
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import android.content.Context;

import com.squareup.picasso.MemoryPolicy;
import com.squareup.picasso.NetworkPolicy;

import org.hisp.dhis.android.dashboard.api.models.DashboardElement;
Expand Down Expand Up @@ -83,14 +84,16 @@ public static List<String> downloadDashboardImages(List<String> requestList) {

private static void downloadImages(DhisController.ImageNetworkPolicy imageNetworkPolicy,
final List<String> requestUrlList, final Context context) {

for (int i = 0; i < requestUrlList.size(); i++) {
final String request = requestUrlList.get(i);

if (imageNetworkPolicy == DhisController.ImageNetworkPolicy.NO_CACHE) {
PicassoProvider.getInstance(context)
.load(request).networkPolicy(NetworkPolicy.NO_CACHE).fetch();
PicassoProvider.getInstance(context, false)
.load(request).networkPolicy(NetworkPolicy.NO_CACHE)
.memoryPolicy(MemoryPolicy.NO_CACHE).fetch();
} else {
PicassoProvider.getInstance(context)
PicassoProvider.getInstance(context, false)
.load(request).fetch();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,43 +30,29 @@

import android.content.Context;

import com.squareup.okhttp.Cache;
import com.squareup.okhttp.Interceptor;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Response;
import com.squareup.picasso.OkHttpDownloader;
import com.squareup.picasso.Picasso;

import org.hisp.dhis.android.dashboard.api.controllers.DhisController;
import org.hisp.dhis.android.dashboard.api.network.RepoManager;

import java.io.IOException;

public final class PicassoProvider {

private static Picasso mPicasso;

private PicassoProvider() {
}

public static Picasso getInstance(Context context) {
if (mPicasso == null) {
public static Picasso getInstance(Context context, boolean changeCredentials) {
if (mPicasso == null || changeCredentials) {
OkHttpClient client = RepoManager.provideOkHttpClient(
DhisController.getInstance().getUserCredentials(), context);

client.networkInterceptors().add(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Response originalResponse = chain.proceed(chain.request());
return originalResponse.newBuilder().header("Cache-Control", "max-age=" + (60 * 60 * 24 * 365)).build();
}
});

client.setCache(new Cache(context.getCacheDir(), Integer.MAX_VALUE));

mPicasso = new Picasso.Builder(context)
.downloader(new OkHttpDownloader(client))
.build();
mPicasso.setIndicatorsEnabled(false);
mPicasso.setLoggingEnabled(false);
}

return mPicasso;
Expand Down
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ android {
applicationId "org.hisp.dhis.android.dashboard"
minSdkVersion 15
targetSdkVersion 25
versionCode 6
versionName "0.6.6"
versionCode 7
versionName "0.6.7"
}

compileOptions {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@

package org.hisp.dhis.android.dashboard.ui.activities;

import static org.hisp.dhis.android.dashboard.utils.TextUtils.isEmpty;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
Expand All @@ -46,15 +48,14 @@
import org.hisp.dhis.android.dashboard.api.models.meta.Credentials;
import org.hisp.dhis.android.dashboard.api.models.meta.ResponseHolder;
import org.hisp.dhis.android.dashboard.api.persistence.preferences.ResourceType;
import org.hisp.dhis.android.dashboard.api.utils.PicassoProvider;

import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnClick;
import butterknife.OnTextChanged;
import fr.castorflex.android.circularprogressbar.CircularProgressBar;

import static org.hisp.dhis.android.dashboard.utils.TextUtils.isEmpty;

public class LoginActivity extends BaseActivity {
private static final String IS_LOADING = "state:isLoading";

Expand Down Expand Up @@ -136,6 +137,7 @@ public void onResultReceived(NetworkJob.NetworkJobResult<UserAccount> jobResult)
ResponseHolder<UserAccount> responseHolder = jobResult.getResponseHolder();

if (responseHolder.getApiException() == null) {
PicassoProvider.getInstance(this, true);
startActivity(new Intent(this, MenuActivity.class));
finish();
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@
import android.widget.LinearLayout;
import android.widget.TextView;

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

import org.hisp.dhis.android.dashboard.R;
Expand Down Expand Up @@ -110,7 +112,7 @@ public DashboardItemAdapter(Context context, Access dashboardAccess,
mResourcesName = context.getString(R.string.resources);
mMessaName = context.getString(R.string.messages);

mImageLoader = PicassoProvider.getInstance(context);
mImageLoader = PicassoProvider.getInstance(context, false);
}

/* returns type of row depending on item content type. */
Expand Down Expand Up @@ -334,6 +336,8 @@ private void handleItemsWithImages(ImageItemViewHolder holder, DashboardItem ite
if (request != null) {
holder.imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
mImageLoader.load(request)
.networkPolicy(NetworkPolicy.NO_STORE, NetworkPolicy.OFFLINE)
.memoryPolicy(MemoryPolicy.NO_STORE)
.placeholder(R.mipmap.ic_stub_dashboard_item)
.into(holder.imageView);
}
Expand Down Expand Up @@ -695,6 +699,10 @@ public View getView() {
}
}

public void updateImages() {
notifyDataSetChanged();
}

private static class MenuButtonHandler implements View.OnClickListener {
/* menu item ids */
static final int MENU_GROUP_ID = 9382352;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@
import android.widget.ImageView;
import android.widget.TextView;

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

import org.hisp.dhis.android.dashboard.R;
Expand Down Expand Up @@ -72,7 +74,7 @@ public InterpretationAdapter(Context context, LayoutInflater inflater,
super(context, inflater);

mClickListener = clickListener;
mImageLoader = PicassoProvider.getInstance(context);
mImageLoader = PicassoProvider.getInstance(context, false);
}

/* returns type of row depending on item content type. */
Expand Down Expand Up @@ -238,6 +240,8 @@ private void handleItemsWithImages(ImageItemViewHolder holder, Interpretation it

if (request != null) {
mImageLoader.load(request)
.networkPolicy(NetworkPolicy.NO_STORE, NetworkPolicy.OFFLINE)
.memoryPolicy(MemoryPolicy.NO_STORE)
.placeholder(R.mipmap.ic_stub_dashboard_item)
.into(holder.imageView);
}
Expand Down Expand Up @@ -398,6 +402,10 @@ public interface OnItemClickListener {
void onInterpretationCommentsClick(Interpretation interpretation);
}

public void updateImages() {
notifyDataSetChanged();
}

private static class MenuButtonHandler implements View.OnClickListener {
/* menu item ids */
static final int MENU_GROUP_ID = 746523;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,23 @@

package org.hisp.dhis.android.dashboard.ui.fragments;

import static org.hisp.dhis.android.dashboard.api.utils.Preconditions.isNull;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.squareup.picasso.MemoryPolicy;
import com.squareup.picasso.NetworkPolicy;

import org.hisp.dhis.android.dashboard.R;
import org.hisp.dhis.android.dashboard.api.persistence.preferences.SettingsManager;
import org.hisp.dhis.android.dashboard.api.utils.PicassoProvider;

import uk.co.senab.photoview.PhotoViewAttacher;

import static org.hisp.dhis.android.dashboard.api.utils.Preconditions.isNull;

public class ImageViewFragment extends BaseFragment {
private static final String IMAGE_URL = "arg:imageUrl";

Expand Down Expand Up @@ -77,8 +79,10 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
mAttacher = new PhotoViewAttacher(mImageView);
mAttacher.update();

PicassoProvider.getInstance(getActivity().getApplicationContext())
PicassoProvider.getInstance(getActivity().getApplicationContext(), false)
.load(getImageUrl())
.networkPolicy(NetworkPolicy.NO_STORE, NetworkPolicy.OFFLINE)
.memoryPolicy(MemoryPolicy.NO_STORE)
.placeholder(R.mipmap.ic_stub_dashboard_item)
.into(mImageView);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ProgressBar;
import android.widget.Toast;
import android.widget.ViewSwitcher;

Expand All @@ -59,6 +58,7 @@
import org.hisp.dhis.android.dashboard.api.models.meta.State;
import org.hisp.dhis.android.dashboard.api.persistence.loaders.DbLoader;
import org.hisp.dhis.android.dashboard.api.persistence.loaders.Query;
import org.hisp.dhis.android.dashboard.api.persistence.preferences.ResourceType;
import org.hisp.dhis.android.dashboard.api.utils.EventBusProvider;
import org.hisp.dhis.android.dashboard.ui.activities.DashboardElementDetailActivity;
import org.hisp.dhis.android.dashboard.ui.adapters.DashboardItemAdapter;
Expand All @@ -71,10 +71,6 @@
import java.util.Arrays;
import java.util.List;

import butterknife.Bind;
import butterknife.ButterKnife;
import fr.castorflex.android.smoothprogressbar.SmoothProgressBar;

public class DashboardFragment extends BaseFragment
implements LoaderManager.LoaderCallbacks<List<DashboardItem>>, DashboardItemAdapter.OnItemClickListener {
private static final int LOADER_ID = 74734523;
Expand Down Expand Up @@ -190,6 +186,9 @@ public Loader<List<DashboardItem>> onCreateLoader(int id, Bundle args) {
@SuppressWarnings("unused")
public void onResponseReceived(NetworkJob.NetworkJobResult<?> result) {
Log.d(TAG, "Received " + result.getResourceType());
if (result.getResourceType().equals(ResourceType.DASHBOARD_IMAGES)) {
mAdapter.updateImages();
}
}
@Override
public void onLoadFinished(Loader<List<DashboardItem>> loader,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,7 @@ public void onResponseReceived(NetworkJob.NetworkJobResult<?> result) {
getDhisService().pullInterpretationImages(mImageNetworkPolicy,getContext());
} else if (result.getResourceType() == ResourceType.INTERPRETATION_IMAGES) {
mProgressBar.setVisibility(View.INVISIBLE);
mAdapter.updateImages();
}
}

Expand Down

0 comments on commit 7c1b9e1

Please sign in to comment.