initial commit

This commit is contained in:
NudeDude 2017-11-12 17:17:12 +01:00
parent 0ced88c424
commit 91db07b7c7
6 changed files with 129 additions and 50 deletions

View File

@ -0,0 +1,107 @@
package org.nuclearfog.twidda.DataBase;
import org.nuclearfog.twidda.R;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import android.content.Context;
import android.database.sqlite.*;
import twitter4j.Status;
public class TweetDatabase extends SQLiteOpenHelper {
private Context context;
private Date now;
private int size;
private List<String> user,tweet,noRT,noFav,noAns,date;
/**
* Daten speichern & aufrufen
* @param context MainActivity Context
* @param stats Twitter Home
*/
public TweetDatabase(Context context, List<Status> stats) {
super(context, "Tweetlist", null, 1);
this.context=context;
initArray();
fillArray(stats);
}
/**
* Daten aufrufen
* @param context MainActivity Context
*/
public TweetDatabase(Context context) {
super(context, "Tweetlist", null, 1);
this.context=context;
initArray();
}
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
}
@Override
public void onCreate(SQLiteDatabase mData){
String createQuery = context.getString(R.string.create_table);
mData.execSQL(createQuery);
}
@Override
public void onUpgrade(SQLiteDatabase mData, int oldDB, int newDB){
mData.execSQL("DROP TABLE IF EXISTS home");
mData.execSQL("VACUUM");
onCreate(mData);
}
public String getUsername(int pos) {return user.get(pos);}
public String getTweet(int pos){return tweet.get(pos);}
public String getRetweet(int pos){return noRT.get(pos);}
public String getFavorite(int pos){return noFav.get(pos);}
public String getDate(int pos){return date.get(pos);}
public String getAnswer(int pos){return "";/* TODO */}
public int getSize(){return size;}
private String getTweetTime(Date time) {
int tweetHour = now.getHours() - time.getHours();
int tweetMin = now.getMinutes() - time.getMinutes();
int tweetSec = now.getSeconds() - time.getSeconds();
if (tweetHour > 0)
return "vor "+tweetHour+" h";
else if ( tweetMin > 0)
return "vor "+tweetMin+" min";
else
return "vor "+tweetSec+" sec";
}
private void initArray() {
now = new Date();
user = new ArrayList<>();
tweet = new ArrayList<>();
noRT = new ArrayList<>();
noFav = new ArrayList<>();
noAns = new ArrayList<>();
date = new ArrayList<>();
}
private void fillArray(List<Status> stats) {
size = stats.size();
for(short pos = 0; pos < getSize(); pos++) {
tweet.add( stats.get(pos).getText() );
noRT.add( Integer.toString(stats.get(pos).getRetweetCount()) );
noFav.add( Integer.toString(stats.get(pos).getFavoriteCount()) );
date.add( getTweetTime(stats.get(pos).getCreatedAt()) );
String name = stats.get(pos).getUser().getScreenName();
String twUsr = stats.get(pos).getUser().getName();
user.add( name +" @"+twUsr );
}
}
}

View File

@ -1,43 +0,0 @@
package org.nuclearfog.twidda.engine;
import java.util.Date;
import java.util.List;
import twitter4j.Status;
public class TweetDatabase {
private List<Status> stats;
private Date now;
public TweetDatabase(List<Status> stats) {
this.stats=stats;
now = new Date();
}
public String getUsername(int pos) {
String twittername = stats.get(pos).getUser().getScreenName();
String username = stats.get(pos).getUser().getName();
return twittername +" @"+username;
}
public String getTweet(int pos){return stats.get(pos).getText();}
public String getRetweet(int pos){return Integer.toString(stats.get(pos).getRetweetCount());}
public String getFavorite(int pos){return Integer.toString(stats.get(pos).getFavoriteCount());}
public String getDate(int pos){return getTweetTime(stats.get(pos).getCreatedAt());}
public String getAnswer(int pos){return "";/* TODO */}
public int getSize(){return stats.size();}
public void store(){}
private String getTweetTime(Date time) {
int tweetHour = now.getHours() - time.getHours();
int tweetMin = now.getMinutes() - time.getMinutes();
int tweetSec = now.getSeconds() - time.getSeconds();
if (tweetHour > 0)
return "vor "+tweetHour+" h";
else if ( tweetMin > 0)
return "vor "+tweetMin+" min";
else
return "vor "+tweetSec+" sec";
}
}

View File

@ -14,12 +14,11 @@ import android.support.v4.widget.SwipeRefreshLayout;
import android.widget.ListView;
import android.widget.Toast;
import org.nuclearfog.twidda.DataBase.TweetDatabase;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.engine.ViewAdapter.TimelineAdapter;
import org.nuclearfog.twidda.engine.ViewAdapter.TrendsAdapter;
import java.util.List;
public class TwitterEngine extends AsyncTask<Integer, Void, Void>
{
private final String TWITTER_CONSUMER_KEY = "GrylGIgQK3cDjo9mSTBqF1vwf";
@ -51,7 +50,7 @@ public class TwitterEngine extends AsyncTask<Integer, Void, Void>
try {
switch(args[0]) {
case (0): // Home Timeline
TweetDatabase mTweets = new TweetDatabase(twitter.getHomeTimeline());
TweetDatabase mTweets = new TweetDatabase(context,twitter.getHomeTimeline());
timelineAdapter = new TimelineAdapter(context,R.layout.tweet,mTweets);
break;

View File

@ -8,7 +8,7 @@ import android.widget.ArrayAdapter;
import android.widget.TextView;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.engine.TweetDatabase;
import org.nuclearfog.twidda.DataBase.TweetDatabase;
public class TimelineAdapter extends ArrayAdapter {
private TweetDatabase mTweets;

View File

@ -39,9 +39,6 @@ public class TrendsAdapter extends ArrayAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if(android.os.Debug.isDebuggerConnected())
android.os.Debug.waitForDebugger();
if(v == null) {
LayoutInflater inf=(LayoutInflater)c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inf.inflate(R.layout.trend, null);

View File

@ -10,4 +10,23 @@
<string name="pin">PIN</string>
<string name="verifierbutton">Verifizieren</string>
<string name="register_link">Link zur Anmeldung</string>
<!--Datenbank Konstanten -->
<string name="create_table">
CREATE TABLE home (
tweetID INTEGER NOT NULL PRIMARY KEY,
user TEXT,
time TEXT,
tweet TEXT,
retweet INTEGER,
favorite INTEGER,
answers INTEGER);
</string>
<string name="datei">timeline.db</string>
</resources>