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.INTERNET" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"

View File

@ -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,7 +39,7 @@ 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;
}

View File

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

View File

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

View File

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

View File

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