Added Picasso library
This commit is contained in:
parent
f1446f4a51
commit
9b0753bea4
|
@ -27,6 +27,7 @@ dependencies {
|
|||
compile 'com.android.support:design:26+'
|
||||
compile(name: 'colorpicker', ext: 'aar')
|
||||
compile files('libs/twitter4j-core-4.0.4.jar')
|
||||
implementation files('libs/picasso-2.5.2.jar')
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
|
Binary file not shown.
|
@ -50,9 +50,6 @@ public class MainActivity extends AppCompatActivity implements AdapterView.OnIte
|
|||
private boolean settingFlag = false;
|
||||
private String currentTab = "timeline";
|
||||
|
||||
/**
|
||||
* Create Activity
|
||||
*/
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
@ -74,9 +71,6 @@ public class MainActivity extends AppCompatActivity implements AdapterView.OnIte
|
|||
} else { login(); }
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Actionbar
|
||||
*/
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu m) {
|
||||
toolbar.inflateMenu(R.menu.home);
|
||||
|
@ -103,9 +97,6 @@ public class MainActivity extends AppCompatActivity implements AdapterView.OnIte
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Actionbar selection
|
||||
*/
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
Intent intent;
|
||||
|
@ -312,7 +303,7 @@ public class MainActivity extends AppCompatActivity implements AdapterView.OnIte
|
|||
}
|
||||
|
||||
/**
|
||||
* Set DB Content
|
||||
* Set Teb Content
|
||||
*/
|
||||
private void setTabContent() {
|
||||
TweetDatabase tweetDeck = new TweetDatabase(con,TweetDatabase.HOME_TL, 0L);
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
package org.nuclearfog.twidda.backend;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.os.AsyncTask;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.net.URL;
|
||||
|
||||
public class ImageDownloader extends AsyncTask<String, Void, Bitmap>
|
||||
{
|
||||
private final WeakReference<ImageView> imgReference ;
|
||||
|
||||
public ImageDownloader(WeakReference<ImageView> imgReference) {
|
||||
this.imgReference = imgReference;
|
||||
}
|
||||
|
||||
public ImageDownloader(ImageView img) {
|
||||
imgReference = new WeakReference<>(img);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Bitmap doInBackground(String... links) {
|
||||
Bitmap picture = null;
|
||||
try {
|
||||
InputStream iStream = new URL(links[0]).openStream();
|
||||
picture = BitmapFactory.decodeStream(iStream);
|
||||
} catch(Exception err) {
|
||||
err.printStackTrace();
|
||||
}
|
||||
return picture;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Bitmap img) {
|
||||
ImageView pb = imgReference.get();
|
||||
if(pb != null) {
|
||||
if(img != null)
|
||||
pb.setImageBitmap(img);
|
||||
else
|
||||
pb.setImageResource(R.mipmap.pb);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCancelled(){
|
||||
super.onCancelled();
|
||||
}
|
||||
}
|
|
@ -8,12 +8,19 @@ import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
|||
import org.nuclearfog.twidda.viewadapter.TrendAdapter;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.widget.ListView;
|
||||
import android.widget.Toast;
|
||||
import android.content.Context;
|
||||
import android.os.AsyncTask;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import twitter4j.Paging;
|
||||
import twitter4j.Twitter;
|
||||
import twitter4j.TwitterException;
|
||||
|
|
|
@ -11,6 +11,8 @@ import android.widget.ListView;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.database.TweetDatabase;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
|
@ -174,8 +176,8 @@ public class ProfileAction extends AsyncTask<Long,Void,Long>
|
|||
linkIcon.setVisibility(View.VISIBLE);
|
||||
}
|
||||
if(imgEnabled) {
|
||||
new ImageDownloader(profile).execute(imageLink);
|
||||
//new ImageDownloader(banner).execute(bannerLink); TODO
|
||||
Picasso.with(context).load(imageLink).into(profile);
|
||||
Picasso.with(context).load(bannerLink).into(banner);
|
||||
} else {
|
||||
profile.setImageResource(R.mipmap.pb);
|
||||
}
|
||||
|
|
|
@ -185,6 +185,10 @@ public class TweetDatabase {
|
|||
db.close();
|
||||
}
|
||||
|
||||
public void setPbList(List<Bitmap> profileImg) {
|
||||
this.profileImg = profileImg;
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
return size;
|
||||
}
|
||||
|
@ -198,7 +202,7 @@ public class TweetDatabase {
|
|||
public String getScreenname(int pos){return scrname.get(pos);}
|
||||
public String getTweet(int pos){return tweet.get(pos);}
|
||||
public String getDate(int pos){return timeToString(getTime(pos));}
|
||||
public String getPbImg (int pos){return pbLink.get(pos);}
|
||||
public String getPbLink (int pos){return pbLink.get(pos);}
|
||||
public boolean loadImages(){return toggleImg;}
|
||||
public Bitmap getProfileImg(int pos){return profileImg.get(pos);}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ public class UserDatabase {
|
|||
public long getUserID(int pos){ return user.get(pos).getId();}
|
||||
public String getUsername(int pos){ return user.get(pos).getName();}
|
||||
public String getScreenname(int pos){ return '@' + user.get(pos).getScreenName();}
|
||||
public String getProfileURL(int pos){ return user.get(pos).getProfileBackgroundImageURL();}
|
||||
public String getImageUrl(int pos){ return user.get(pos).getMiniProfileImageURL();}
|
||||
public int getSize(){ return user.size(); }
|
||||
public boolean loadImages(){ return toggleImg; }
|
||||
}
|
|
@ -10,22 +10,23 @@ import android.widget.ImageView;
|
|||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.ImageDownloader;
|
||||
import org.nuclearfog.twidda.window.ColorPreferences;
|
||||
import org.nuclearfog.twidda.database.TweetDatabase;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
public class TimelineAdapter extends ArrayAdapter implements View.OnClickListener {
|
||||
private TweetDatabase mTweets;
|
||||
private ViewGroup p;
|
||||
private LayoutInflater inf;
|
||||
private int textColor, background;
|
||||
private Context context;
|
||||
|
||||
public TimelineAdapter(Context context, TweetDatabase mTweets) {
|
||||
super(context, R.layout.tweet);
|
||||
this.mTweets = mTweets;
|
||||
this.context = context;
|
||||
inf = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
ColorPreferences mColor = ColorPreferences.getInstance(context);
|
||||
textColor = mColor.getColor(ColorPreferences.FONT_COLOR);
|
||||
|
@ -62,10 +63,9 @@ public class TimelineAdapter extends ArrayAdapter implements View.OnClickListene
|
|||
((TextView) v.findViewById(R.id.favorite_number)).setText(favoriteStr);
|
||||
((TextView) v.findViewById(R.id.time)).setText(mTweets.getDate(position));
|
||||
((TextView) v.findViewById(R.id.tweettext)).setTextColor(textColor);
|
||||
|
||||
ImageView pb = v.findViewById(R.id.tweetPb);
|
||||
if(mTweets.loadImages()) {
|
||||
ImageView imgView = v.findViewById(R.id.tweetPb);
|
||||
new ImageDownloader(new WeakReference<>(imgView)).execute(mTweets.getPbImg(position));
|
||||
Picasso.with(context).load(mTweets.getPbLink(position)).into(pb);
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
|
|
@ -10,23 +10,24 @@ import android.widget.ImageView;
|
|||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.nuclearfog.twidda.backend.ImageDownloader;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.nuclearfog.twidda.window.ColorPreferences;
|
||||
import org.nuclearfog.twidda.database.UserDatabase;
|
||||
import org.nuclearfog.twidda.R;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
public class UserAdapter extends ArrayAdapter implements View.OnClickListener {
|
||||
|
||||
private UserDatabase userDatabase;
|
||||
private ViewGroup p;
|
||||
private LayoutInflater inf;
|
||||
private int background;
|
||||
private Context context;
|
||||
|
||||
public UserAdapter(Context context, UserDatabase userDatabase) {
|
||||
super(context, R.layout.user);
|
||||
this.userDatabase = userDatabase;
|
||||
this.context = context;
|
||||
inf = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
ColorPreferences mColor = ColorPreferences.getInstance(context);
|
||||
background = mColor.getColor(ColorPreferences.BACKGROUND);
|
||||
|
@ -50,22 +51,13 @@ public class UserAdapter extends ArrayAdapter implements View.OnClickListener {
|
|||
v.setBackgroundColor(background);
|
||||
v.setOnClickListener(this);
|
||||
}
|
||||
|
||||
((TextView)v.findViewById(R.id.username_detail)).setText(userDatabase.getUsername(position));
|
||||
((TextView)v.findViewById(R.id.screenname_detail)).setText(userDatabase.getScreenname(position));
|
||||
ImageView imgView = v.findViewById(R.id.user_profileimg);
|
||||
|
||||
|
||||
ImageView pb = v.findViewById(R.id.user_profileimg);
|
||||
|
||||
if(userDatabase.loadImages()) {
|
||||
ImageDownloader imgDl = new ImageDownloader(new WeakReference<>(imgView));
|
||||
imgDl.execute(userDatabase.getProfileURL(position));
|
||||
} else {
|
||||
imgView.setImageResource(R.mipmap.pb);
|
||||
Picasso.with(context).load(userDatabase.getImageUrl(position)).into(pb);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@ import android.widget.Button;
|
|||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.nuclearfog.twidda.backend.ShowStatus;
|
||||
import org.nuclearfog.twidda.database.TweetDatabase;
|
||||
|
@ -25,8 +24,6 @@ public class TweetDetail extends AppCompatActivity implements View.OnClickListen
|
|||
private ListView answer_list;
|
||||
private long tweetID;
|
||||
private long userID;
|
||||
private long replyID = -1;
|
||||
private boolean home = false;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle b) {
|
||||
|
@ -34,12 +31,6 @@ public class TweetDetail extends AppCompatActivity implements View.OnClickListen
|
|||
setContentView(R.layout.tweet_detail);
|
||||
tweetID = getIntent().getExtras().getLong("tweetID");
|
||||
userID = getIntent().getExtras().getLong("userID");
|
||||
if(getIntent().hasExtra("home")) {
|
||||
home = getIntent().getExtras().getBoolean("home");
|
||||
}
|
||||
if(getIntent().hasExtra("replyID")) {
|
||||
replyID = getIntent().getExtras().getLong("replyID");
|
||||
}
|
||||
|
||||
answer_list = (ListView) findViewById(R.id.answer_list);
|
||||
Button answer = (Button) findViewById(R.id.answer_button);
|
||||
|
|
|
@ -3,22 +3,18 @@ package org.nuclearfog.twidda.window;
|
|||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.support.design.widget.AppBarLayout;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TabHost;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.TwitterResource;
|
||||
import org.nuclearfog.twidda.database.TweetDatabase;
|
||||
import org.nuclearfog.twidda.backend.ProfileAction;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
|
@ -38,8 +34,6 @@ public class UserProfile extends AppCompatActivity implements View.OnClickListen
|
|||
private boolean home;
|
||||
private String currentTab = "tweets";
|
||||
|
||||
private RecyclerView testV;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstance) {
|
||||
super.onCreate(savedInstance);
|
||||
|
@ -105,21 +99,26 @@ public class UserProfile extends AppCompatActivity implements View.OnClickListen
|
|||
case R.id.profile_tweet:
|
||||
intent = new Intent(this, TweetPopup.class);
|
||||
Bundle b = new Bundle();
|
||||
if(home)
|
||||
if(home) {
|
||||
b.putLong("TweetID", -1);
|
||||
else
|
||||
} else {
|
||||
b.putLong("TweetID", userId);
|
||||
}
|
||||
intent.putExtras(b);
|
||||
startActivity(intent);
|
||||
break;
|
||||
return true;
|
||||
case R.id.profile_follow:
|
||||
action.execute(userId, ProfileAction.ACTION_FOLLOW);
|
||||
break;
|
||||
if(!home) {
|
||||
action.execute(userId, ProfileAction.ACTION_FOLLOW);
|
||||
}
|
||||
return true;
|
||||
case R.id.profile_block:
|
||||
action.execute(userId, ProfileAction.ACTION_MUTE);
|
||||
break;
|
||||
if(!home) {
|
||||
action.execute(userId, ProfileAction.ACTION_MUTE);
|
||||
}
|
||||
return true;
|
||||
default: return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -147,7 +146,6 @@ public class UserProfile extends AppCompatActivity implements View.OnClickListen
|
|||
Bundle bundle = new Bundle();
|
||||
bundle.putLong("tweetID",tweetID);
|
||||
bundle.putLong("userID",userID);
|
||||
bundle.putBoolean("home", true);
|
||||
intent.putExtras(bundle);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
@ -192,15 +190,16 @@ public class UserProfile extends AppCompatActivity implements View.OnClickListen
|
|||
private void getContent() {
|
||||
TweetDatabase mTweet = new TweetDatabase(UserProfile.this, TweetDatabase.USER_TL, userId);
|
||||
TweetDatabase fTweet = new TweetDatabase(UserProfile.this, TweetDatabase.FAV_TL, userId);
|
||||
if(mTweet.getSize()>0)
|
||||
if(mTweet.getSize()>0) {
|
||||
homeTweets.setAdapter(new TimelineAdapter(UserProfile.this,mTweet));
|
||||
else
|
||||
}else {
|
||||
new ProfileAction(this, tool).execute(userId, ProfileAction.GET_TWEETS);
|
||||
|
||||
if(fTweet.getSize()>0)
|
||||
}
|
||||
if(fTweet.getSize()>0) {
|
||||
homeFavorits.setAdapter(new TimelineAdapter(UserProfile.this,fTweet));
|
||||
else
|
||||
} else {
|
||||
new ProfileAction(this, tool).execute(userId, ProfileAction.GET_FAVS);
|
||||
}
|
||||
}
|
||||
|
||||
private void initElements() {
|
||||
|
|
Loading…
Reference in New Issue