initial commit

This commit is contained in:
NudeDude 2017-12-03 11:16:31 +01:00
parent a622e7d179
commit e999eb201c
6 changed files with 99 additions and 68 deletions

View File

@ -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"

View File

@ -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;
} }

View File

@ -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":

View File

@ -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 );
} }
} }

View File

@ -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;
} }

View File

@ -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>