initial commit
This commit is contained in:
parent
a622e7d179
commit
e999eb201c
|
@ -5,6 +5,7 @@
|
|||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
|
|
|
@ -1,28 +1,24 @@
|
|||
package org.nuclearfog.twidda.DataBase;
|
||||
|
||||
import android.content.ContentValues;
|
||||
import android.content.Context;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.database.sqlite.SQLiteOpenHelper;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.engine.TweetDatabase;
|
||||
|
||||
|
||||
public class AppDatabase extends SQLiteOpenHelper
|
||||
{
|
||||
private static AppDatabase mData;
|
||||
private Context context;
|
||||
private Context c;
|
||||
|
||||
private AppDatabase(Context context) {
|
||||
super(context, "twitter",null, 1);
|
||||
c = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(SQLiteDatabase db) {
|
||||
String uQuery = context.getString(R.string.user_table);
|
||||
String tQuery = context.getString(R.string.tweet_table);
|
||||
String uQuery = c.getString(R.string.user_table);
|
||||
String tQuery = c.getString(R.string.tweet_table);
|
||||
db.execSQL(uQuery);
|
||||
db.execSQL(tQuery);
|
||||
}
|
||||
|
@ -36,42 +32,6 @@ public class AppDatabase extends SQLiteOpenHelper
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Store Home-Timeline
|
||||
*/
|
||||
public void commit(TweetDatabase mTweet) {
|
||||
|
||||
SQLiteDatabase db = getWritableDatabase();
|
||||
ContentValues values = new ContentValues();
|
||||
db.beginTransaction();
|
||||
|
||||
for(int pos=0; pos<mTweet.getSize();pos++) {
|
||||
// values.put();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
db.endTransaction();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public TweetDatabase read(){
|
||||
TweetDatabase mTweet = new TweetDatabase();
|
||||
|
||||
|
||||
|
||||
return mTweet;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Singleton Method
|
||||
* @param context Application Context
|
||||
|
@ -79,8 +39,8 @@ public class AppDatabase extends SQLiteOpenHelper
|
|||
*/
|
||||
public static synchronized AppDatabase getInstance(Context context) {
|
||||
if (mData == null) {
|
||||
mData = new AppDatabase(context.getApplicationContext());
|
||||
mData = new AppDatabase(context);
|
||||
}
|
||||
return mData;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -95,11 +95,10 @@ public class MainActivity extends Activity
|
|||
TwitterEngine homeView = new TwitterEngine(getApplicationContext(), list);
|
||||
switch(tabId) {
|
||||
case "timeline":
|
||||
homeView.execute(0,1);
|
||||
homeView.execute(3);
|
||||
break;
|
||||
|
||||
case "trends":
|
||||
homeView.execute(1,1);
|
||||
break;
|
||||
|
||||
case "mention":
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
package org.nuclearfog.twidda.engine;
|
||||
|
||||
import android.content.ContentValues;
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
|
||||
import org.nuclearfog.twidda.DataBase.AppDatabase;
|
||||
import org.nuclearfog.twidda.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
@ -8,20 +16,71 @@ import twitter4j.Status;
|
|||
public class TweetDatabase {
|
||||
private Date now;
|
||||
private List<String> user,tweet,noRT,noFav,noAns,date;
|
||||
private AppDatabase dataHelper;
|
||||
private List<Status> stats;
|
||||
private Context c;
|
||||
|
||||
/**
|
||||
* Store Data
|
||||
* @param stats Twitter Home
|
||||
*/
|
||||
public TweetDatabase(List<Status> stats) {
|
||||
public TweetDatabase(List<Status> stats, Context c) {
|
||||
this.stats=stats;
|
||||
dataHelper = AppDatabase.getInstance(c);
|
||||
initArray();
|
||||
fillArray(stats);
|
||||
fillArray();
|
||||
store();
|
||||
this.c=c;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Manually Data using setData()
|
||||
* Read Data
|
||||
* @param c MainActivity Context
|
||||
*/
|
||||
public TweetDatabase() {
|
||||
public TweetDatabase(Context c) {
|
||||
initArray();
|
||||
dataHelper = AppDatabase.getInstance(c);
|
||||
load();
|
||||
this.c=c;
|
||||
|
||||
}
|
||||
|
||||
private void store() {
|
||||
SQLiteDatabase data = dataHelper.getWritableDatabase();
|
||||
ContentValues usr = new ContentValues();
|
||||
ContentValues tl = new ContentValues();
|
||||
|
||||
Status stat;
|
||||
for(int pos = 0;pos < stats.size(); pos++)
|
||||
{
|
||||
stat = stats.get(pos);
|
||||
|
||||
// USER
|
||||
usr.put("userID",stat.getUser().getId() );
|
||||
usr.put("username", stat.getUser().getScreenName());
|
||||
usr.put("pbLink",stat.getUser().getProfileImageURL());
|
||||
|
||||
// TWEET
|
||||
tl.put("userID",stat.getUser().getId() );
|
||||
tl.put("tweetID", stat.getId());
|
||||
tl.put("time", stat.getCreatedAt().toString());
|
||||
tl.put("tweet", stat.getText());
|
||||
tl.put("retweet", stat.getRetweetCount());
|
||||
tl.put("favorite", stat.getFavoriteCount());
|
||||
tl.put("user", stat.getUser().getId());
|
||||
}
|
||||
data.insert("user",null, usr);
|
||||
data.insert("tweet",null, tl);
|
||||
}
|
||||
|
||||
private void load() {
|
||||
SQLiteDatabase data = dataHelper.getReadableDatabase();
|
||||
String col_name[]= new String[] {c.getString(R.string.table_column)};
|
||||
//Cursor tw = data.query("tweet_table", col_name, ); //TODO
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -33,7 +92,7 @@ public class TweetDatabase {
|
|||
* @param time Tweet Time
|
||||
* @param ans Number Answers
|
||||
*/
|
||||
public void setData(String usr,String tw,String rt,String fav,String time,String ans) {
|
||||
public void setTweet(String usr,String tw,String rt,String fav,String time,String ans) {
|
||||
user.add(usr);
|
||||
tweet.add(tw);
|
||||
noRT.add(rt);
|
||||
|
@ -42,7 +101,7 @@ public class TweetDatabase {
|
|||
date.add(time);
|
||||
}
|
||||
|
||||
public String getUsername(int pos) {return user.get(pos);}
|
||||
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);}
|
||||
|
@ -56,7 +115,7 @@ public class TweetDatabase {
|
|||
int tweetSec = now.getSeconds() - time.getSeconds();
|
||||
if (tweetHour > 0)
|
||||
return "vor "+tweetHour+" h";
|
||||
else if ( tweetMin > 0)
|
||||
else if(tweetMin > 0)
|
||||
return "vor "+tweetMin+" min";
|
||||
else
|
||||
return "vor "+tweetSec+" sec";
|
||||
|
@ -72,14 +131,16 @@ public class TweetDatabase {
|
|||
date = new ArrayList<>();
|
||||
}
|
||||
|
||||
private void fillArray(List<Status> stats) {
|
||||
private void fillArray() {
|
||||
Status stat;
|
||||
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();
|
||||
stat = stats.get(pos);
|
||||
tweet.add( stat.getText() );
|
||||
noRT.add( Integer.toString(stat.getRetweetCount()) );
|
||||
noFav.add( Integer.toString(stat.getFavoriteCount()) );
|
||||
date.add( getTweetTime(stat.getCreatedAt()) );
|
||||
String name = stat.getUser().getScreenName();
|
||||
String twUsr = stat.getUser().getName();
|
||||
user.add( name +" @"+twUsr );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,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(twitter.getHomeTimeline(), context);
|
||||
timelineAdapter = new TimelineAdapter(context,R.layout.tweet,mTweets);
|
||||
|
||||
break;
|
||||
|
@ -66,10 +66,15 @@ public class TwitterEngine extends AsyncTask<Integer, Void, Void>
|
|||
case(2): // Mentions
|
||||
// TODO
|
||||
break;
|
||||
|
||||
case(3): // Get TIMELINE
|
||||
TweetDatabase tweetDeck = new TweetDatabase(context);
|
||||
|
||||
break;
|
||||
}
|
||||
} catch (TwitterException e) {
|
||||
Toast.makeText(context, ERR_MSG, Toast.LENGTH_SHORT).show();
|
||||
} catch (Exception e){ e.printStackTrace(); }
|
||||
} catch (Exception e){ System.out.println(e.toString()); }
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,28 +15,33 @@
|
|||
<!--Datenbank Konstanten -->
|
||||
|
||||
<string name="user_table">
|
||||
CREATE TABLE user (
|
||||
CREATE TABLE IF NOT EXISTS user (
|
||||
userID INTEGER NOT NULL PRIMARY KEY,
|
||||
username TEXT,
|
||||
pbLink TEXT );
|
||||
</string>
|
||||
|
||||
<string name="tweet_table">
|
||||
CREATE TABLE tweet (
|
||||
CREATE TABLE IF NOT EXISTS tweet (
|
||||
tweetID INTEGER NOT NULL PRIMARY KEY,
|
||||
user TEXT,
|
||||
user INTEGER,
|
||||
time TEXT,
|
||||
tweet TEXT,
|
||||
retweet INTEGER,
|
||||
favorite INTEGER,
|
||||
answers INTEGER);
|
||||
answers INTEGER,
|
||||
FOREIGN KEY (userID) REFERENCES user_table(userID) );
|
||||
</string>
|
||||
|
||||
<string name="table_column">
|
||||
{tweetID,user,time,tweet,retweet,favorite,answers}
|
||||
</string>
|
||||
|
||||
<string name="datei">timeline.db</string>
|
||||
|
||||
|
||||
|
||||
|
||||
</resources>
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue