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