diff --git a/app/src/main/java/org/nuclearfog/twidda/Backend/ImageDownloader.java b/app/src/main/java/org/nuclearfog/twidda/Backend/ImageDownloader.java index 5495b622..5e74f60f 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Backend/ImageDownloader.java +++ b/app/src/main/java/org/nuclearfog/twidda/Backend/ImageDownloader.java @@ -13,12 +13,12 @@ public class ImageDownloader extends AsyncTask { private ImageView imgView; - public ImageDownloader(ImageView imgView){ + public ImageDownloader(ImageView imgView) { this.imgView = imgView; } @Override - protected Bitmap doInBackground(String... links){ + protected Bitmap doInBackground(String... links) { Bitmap picture = null; try { @@ -31,7 +31,7 @@ public class ImageDownloader extends AsyncTask } @Override - protected void onPostExecute(Bitmap img){ + protected void onPostExecute(Bitmap img) { imgView.setImageBitmap(img); } } diff --git a/app/src/main/java/org/nuclearfog/twidda/Backend/MainPage.java b/app/src/main/java/org/nuclearfog/twidda/Backend/MainPage.java index e42c4b90..807e6a90 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Backend/MainPage.java +++ b/app/src/main/java/org/nuclearfog/twidda/Backend/MainPage.java @@ -7,6 +7,7 @@ import org.nuclearfog.twidda.R; import org.nuclearfog.twidda.ViewAdapter.TimelineAdapter; import org.nuclearfog.twidda.ViewAdapter.TrendAdapter; +import android.content.SharedPreferences; import android.support.v4.widget.SwipeRefreshLayout; import android.widget.ListView; import android.widget.Toast; @@ -26,6 +27,8 @@ public class MainPage extends AsyncTask private ListView timelineList, trendList, mentionList; private TimelineAdapter timelineAdapter, mentionAdapter; private TrendAdapter trendsAdapter; + private SharedPreferences settings; + private int load; /** @@ -35,7 +38,9 @@ public class MainPage extends AsyncTask public MainPage(Context context) { this.context=context; twitterResource = TwitterResource.getInstance(context); - twitterResource.init(); + twitterResource.init();// preload + settings = context.getSharedPreferences("settings", 0); + load = settings.getInt("preload", 10); } @Override @@ -58,15 +63,16 @@ public class MainPage extends AsyncTask @Override protected Boolean doInBackground(Integer... args) { Twitter twitter = twitterResource.getTwitter(); - Paging p = new Paging(); //TODO - p.setCount(100); + Paging p = new Paging(); + p.setCount(load); try { if(args[0]==0) { TweetDatabase mTweets = new TweetDatabase(twitter.getHomeTimeline(p), context,TweetDatabase.HOME_TL,0); timelineAdapter = new TimelineAdapter(context,mTweets); } else if(args[0]==1) { - TrendDatabase trend = new TrendDatabase(twitter.getPlaceTrends(23424829),context); //Germany by default + int location = settings.getInt("woeid",23424829); + TrendDatabase trend = new TrendDatabase(twitter.getPlaceTrends(location),context); //Germany by default trendsAdapter = new TrendAdapter(context,trend); } else if(args[0]==2) { diff --git a/app/src/main/java/org/nuclearfog/twidda/Backend/ProfileInfo.java b/app/src/main/java/org/nuclearfog/twidda/Backend/ProfileInfo.java index 0fe97cf6..d1a20486 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Backend/ProfileInfo.java +++ b/app/src/main/java/org/nuclearfog/twidda/Backend/ProfileInfo.java @@ -22,7 +22,7 @@ public class ProfileInfo extends AsyncTask private boolean imgEnabled = false; /** - * @param context "this" Context + * @param context Activity's Context */ public ProfileInfo(Context context) { this.context=context; diff --git a/app/src/main/java/org/nuclearfog/twidda/Backend/ProfileTweets.java b/app/src/main/java/org/nuclearfog/twidda/Backend/ProfileTweets.java index 21b7f5ca..6de56baa 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Backend/ProfileTweets.java +++ b/app/src/main/java/org/nuclearfog/twidda/Backend/ProfileTweets.java @@ -1,6 +1,7 @@ package org.nuclearfog.twidda.Backend; import android.content.Context; +import android.content.SharedPreferences; import android.os.AsyncTask; import android.support.v4.widget.SwipeRefreshLayout; import android.widget.ListView; @@ -10,6 +11,7 @@ import org.nuclearfog.twidda.R; import org.nuclearfog.twidda.ViewAdapter.TimelineAdapter; import org.nuclearfog.twidda.Window.UserProfile; +import twitter4j.Paging; import twitter4j.Twitter; public class ProfileTweets extends AsyncTask { @@ -19,11 +21,15 @@ public class ProfileTweets extends AsyncTask { private ListView profileTweets, profileFavorits; private TwitterResource twitterResource; private TimelineAdapter homeTl, homeFav; + private SharedPreferences settings; + private int load; public ProfileTweets(Context context){ this.context=context; twitterResource = TwitterResource.getInstance(context); twitterResource.init(); + settings = context.getSharedPreferences("settings", 0); + load = settings.getInt("preload", 10); } /** @@ -45,12 +51,14 @@ public class ProfileTweets extends AsyncTask { protected Void doInBackground(Long... id) { try { long userId = id[0]; + Paging p = new Paging(); + p.setCount(load); Twitter twitter = twitterResource.getTwitter(); if(id[1] == 0) { - TweetDatabase hTweets = new TweetDatabase(twitter.getUserTimeline(userId), context,TweetDatabase.USER_TL,userId); + TweetDatabase hTweets = new TweetDatabase(twitter.getUserTimeline(userId,p), context,TweetDatabase.USER_TL,userId); homeTl = new TimelineAdapter(context,hTweets); } else if(id[1] == 1) { - TweetDatabase fTweets = new TweetDatabase(twitter.getFavorites(userId), context,TweetDatabase.FAV_TL,userId); + TweetDatabase fTweets = new TweetDatabase(twitter.getFavorites(userId,p), context,TweetDatabase.FAV_TL,userId); homeFav = new TimelineAdapter(context,fTweets); } } catch(Exception err){err.printStackTrace();} diff --git a/app/src/main/java/org/nuclearfog/twidda/Backend/RegisterAccount.java b/app/src/main/java/org/nuclearfog/twidda/Backend/RegisterAccount.java index 1380d99c..1d5d60a7 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Backend/RegisterAccount.java +++ b/app/src/main/java/org/nuclearfog/twidda/Backend/RegisterAccount.java @@ -21,7 +21,7 @@ public class RegisterAccount extends AsyncTask * @see TwitterResource used to Store Twitter instance * @param context current Activity's Context. */ - public RegisterAccount( Context context ){ + public RegisterAccount(Context context) { this.context = context; } diff --git a/app/src/main/java/org/nuclearfog/twidda/Backend/Search.java b/app/src/main/java/org/nuclearfog/twidda/Backend/Search.java index 260a59cf..352cd933 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Backend/Search.java +++ b/app/src/main/java/org/nuclearfog/twidda/Backend/Search.java @@ -53,6 +53,5 @@ public class Search extends AsyncTask { @Override protected void onPostExecute(Boolean result) { tl.setAdapter(tlAdp); - } } \ No newline at end of file diff --git a/app/src/main/java/org/nuclearfog/twidda/Backend/SendStatus.java b/app/src/main/java/org/nuclearfog/twidda/Backend/SendStatus.java index 0e47ca1d..878a8658 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Backend/SendStatus.java +++ b/app/src/main/java/org/nuclearfog/twidda/Backend/SendStatus.java @@ -5,7 +5,6 @@ import android.os.AsyncTask; import android.widget.Toast; import twitter4j.Twitter; -import twitter4j.TwitterException; public class SendStatus extends AsyncTask { @@ -34,8 +33,9 @@ public class SendStatus extends AsyncTask { twitter.tweets().updateStatus(tweet); return true; } - }catch(TwitterException err){} - catch(Exception err){} + } catch(Exception err) { + err.printStackTrace(); + } return false; } @@ -43,6 +43,8 @@ public class SendStatus extends AsyncTask { protected void onPostExecute(Boolean success) { if(success) { Toast.makeText(context, "TweetDetail wurde gesendet!", Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(context, "Fehler beim Senden des Tweets!", Toast.LENGTH_LONG).show(); } } } \ No newline at end of file diff --git a/app/src/main/java/org/nuclearfog/twidda/Backend/ShowStatus.java b/app/src/main/java/org/nuclearfog/twidda/Backend/ShowStatus.java index 7a163678..97672406 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Backend/ShowStatus.java +++ b/app/src/main/java/org/nuclearfog/twidda/Backend/ShowStatus.java @@ -1,6 +1,7 @@ package org.nuclearfog.twidda.Backend; import android.content.Context; +import android.content.SharedPreferences; import android.os.AsyncTask; import android.widget.ListView; import android.widget.TextView; @@ -26,10 +27,14 @@ public class ShowStatus extends AsyncTask { private TextView username,scrName, tweet; private ArrayList answers; private String usernameStr, scrNameStr, tweetStr; + private SharedPreferences settings; + private int load; - public ShowStatus( Context c) { + public ShowStatus(Context c) { twitter = TwitterResource.getInstance(c).getTwitter(); answers = new ArrayList<>(); + settings = c.getSharedPreferences("settings", 0); + load = settings.getInt("preload", 10); this.c=c; } @@ -53,8 +58,8 @@ public class ShowStatus extends AsyncTask { usernameStr = currentTweet.getUser().getName(); scrNameStr = currentTweet.getUser().getScreenName(); - Query query = new Query('@'+scrNameStr+" since_id:"+tweetID); - query.setCount(10);//TODO + Query query = new Query('@'+scrNameStr+" since_id:"+tweetID+" +exclude:retweets"); + query.setCount(load); QueryResult result= null; do { result = twitter.search(query); diff --git a/app/src/main/java/org/nuclearfog/twidda/Backend/TwitterResource.java b/app/src/main/java/org/nuclearfog/twidda/Backend/TwitterResource.java index 16242c81..1495894f 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Backend/TwitterResource.java +++ b/app/src/main/java/org/nuclearfog/twidda/Backend/TwitterResource.java @@ -64,7 +64,7 @@ public class TwitterResource { * @throws NullPointerException if Request-Token is not set * @see #initKeys(String, String) */ - public void initialize(String twitterPin) throws TwitterException, NullPointerException{ + public void initialize(String twitterPin) throws TwitterException, NullPointerException { if(reqToken == null) throw new NullPointerException("empty request token"); AccessToken accessToken = twitter.getOAuthAccessToken(reqToken,twitterPin); String key1 = accessToken.getToken(); @@ -109,7 +109,7 @@ public class TwitterResource { * get Twitter object * @return Twitter Object */ - public Twitter getTwitter(){ + public Twitter getTwitter() { init(); return twitter; } @@ -119,7 +119,7 @@ public class TwitterResource { * recall Keys from Shared-Preferences * & initialize Twitter */ - public void init(){ + public void init() { String key1,key2; if( settings.getBoolean("login", false) ) { key1 = settings.getString("key1", " "); @@ -135,7 +135,7 @@ public class TwitterResource { * @return TwitterResource Instance */ public static TwitterResource getInstance(Context context) { - if(mTwitter == null){ + if(mTwitter == null) { mTwitter = new TwitterResource(context); } return mTwitter; diff --git a/app/src/main/java/org/nuclearfog/twidda/DataBase/AppDatabase.java b/app/src/main/java/org/nuclearfog/twidda/DataBase/AppDatabase.java index c75043a8..d690568e 100644 --- a/app/src/main/java/org/nuclearfog/twidda/DataBase/AppDatabase.java +++ b/app/src/main/java/org/nuclearfog/twidda/DataBase/AppDatabase.java @@ -8,20 +8,20 @@ import org.nuclearfog.twidda.R; public class AppDatabase extends SQLiteOpenHelper { private static AppDatabase mData; - private Context c; + private Context context; private AppDatabase(Context context) { super(context, context.getString(R.string.database),null, 1); - c = context; + context = context; } @Override public void onCreate(SQLiteDatabase db) { - String uQuery = c.getString(R.string.tableUser); - String tQuery = c.getString(R.string.tableTweet); - String trQuery = c.getString(R.string.tableTrend); - String hQuery = c.getString(R.string.tableHome); - String fQuery = c.getString(R.string.tableFavorit); + String uQuery = context.getString(R.string.tableUser); + String tQuery = context.getString(R.string.tableTweet); + String trQuery = context.getString(R.string.tableTrend); + String hQuery = context.getString(R.string.tableHome); + String fQuery = context.getString(R.string.tableFavorit); db.execSQL(uQuery); db.execSQL(tQuery); db.execSQL(trQuery); diff --git a/app/src/main/java/org/nuclearfog/twidda/DataBase/TrendDatabase.java b/app/src/main/java/org/nuclearfog/twidda/DataBase/TrendDatabase.java index 92231194..972da7cb 100644 --- a/app/src/main/java/org/nuclearfog/twidda/DataBase/TrendDatabase.java +++ b/app/src/main/java/org/nuclearfog/twidda/DataBase/TrendDatabase.java @@ -24,13 +24,13 @@ public class TrendDatabase { public TrendDatabase(Trends trends, Context c) { this.trends = trends; - this.c=c; + this.c = c; init(); setup(); store(); } - public TrendDatabase(Context c){ + public TrendDatabase(Context c) { this.c = c; init(); load(); @@ -47,7 +47,7 @@ public class TrendDatabase { return size; } - private void load(){ + private void load() { SQLiteDatabase db = dataHelper.getReadableDatabase(); String SQL_TREND = "SELECT * FROM trend ORDER BY trendpos ASC"; Cursor cursor = db.rawQuery(SQL_TREND,null); @@ -66,7 +66,7 @@ public class TrendDatabase { db.close(); } - private void store(){ + private void store() { SQLiteDatabase db = dataHelper.getWritableDatabase(); ContentValues trend = new ContentValues(); for(int pos = 0; pos < getSize(); pos++) { @@ -77,7 +77,7 @@ public class TrendDatabase { } } - private void init(){ + private void init() { dataHelper = AppDatabase.getInstance(c); trendpos = new ArrayList<>(); trendName = new ArrayList<>(); diff --git a/app/src/main/java/org/nuclearfog/twidda/DataBase/TweetDatabase.java b/app/src/main/java/org/nuclearfog/twidda/DataBase/TweetDatabase.java index d4ad5def..715d4169 100644 --- a/app/src/main/java/org/nuclearfog/twidda/DataBase/TweetDatabase.java +++ b/app/src/main/java/org/nuclearfog/twidda/DataBase/TweetDatabase.java @@ -6,19 +6,20 @@ import android.content.SharedPreferences; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Date; import java.util.List; import twitter4j.Status; import twitter4j.User; public class TweetDatabase { - public static final int HOME_TL = 0; - public static final int FAV_TL = 1; - public static final int USER_TL = 2; - public static final int GET_TWEET = 3; - public static final int GET_MENT = 4; - public static final int SEARCH = 5; + public static final int HOME_TL = 0; // GET HOME TIMELINE + public static final int FAV_TL = 1; // GET FAVORITE TL + public static final int USER_TL = 2; // GET USERS TWEET TL @userID + public static final int GET_TWEET = 3; // GET TWEET @ userID + public static final int GET_MENT = 4; // GET MENTION TL private AppDatabase dataHelper; private List user,scrname, tweet,pbLink; @@ -62,7 +63,6 @@ public class TweetDatabase { } /** - * TODO * this Constructor is used by twitter search * no need to store in SQLITE * @param stats Search Result Tweets @@ -113,11 +113,9 @@ public class TweetDatabase { if(mode!=USER_TL) { if(mode == HOME_TL) { db.insertWithOnConflict("timeline",null,home,SQLiteDatabase.CONFLICT_IGNORE); - } - else if(mode == FAV_TL) { + } else if(mode == FAV_TL) { db.insertWithOnConflict("favorit",null,fav,SQLiteDatabase.CONFLICT_IGNORE); - } - else if(mode == GET_MENT) { + } else if(mode == GET_MENT) { db.insertWithOnConflict("timeline",null,ment,SQLiteDatabase.CONFLICT_IGNORE); } } @@ -215,6 +213,11 @@ public class TweetDatabase { long days = hours / 24; long weeks = days / 7; + if(weeks > 4) { + Date tweetDate = new Date(mills); + SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); + return sdf.format(tweetDate); + } if(weeks > 0) return "vor "+weeks+" w"; if(days > 0) diff --git a/app/src/main/java/org/nuclearfog/twidda/MainActivity.java b/app/src/main/java/org/nuclearfog/twidda/MainActivity.java index 6b6c4fb2..5bfe16ef 100644 --- a/app/src/main/java/org/nuclearfog/twidda/MainActivity.java +++ b/app/src/main/java/org/nuclearfog/twidda/MainActivity.java @@ -191,7 +191,7 @@ public class MainActivity extends AppCompatActivity } /** - * Swipe To Refresh Listener TODO + * Swipe To Refresh Listener */ private void setRefreshListener() { timelineReload.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @@ -217,9 +217,8 @@ public class MainActivity extends AppCompatActivity }); } - /** - * Item Listener for a TweetDetail + * Set On Item Click Listener for the main Listviews */ private void setListViewListener() { timelineList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @@ -242,8 +241,8 @@ public class MainActivity extends AppCompatActivity trendList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { - TrendDatabase trend = ((TrendDatabase) trendList.getAdapter()); - String search = trend.getTrendname(position); + TrendAdapter trend = (TrendAdapter) trendList.getAdapter(); + String search = trend.getDatabase().getTrendname(position); Intent intent = new Intent(con, TwitterSearch.class); Bundle bundle = new Bundle(); bundle.putString("search", search); @@ -255,10 +254,10 @@ public class MainActivity extends AppCompatActivity @Override public void onItemClick(AdapterView parent, View view, int position, long id) { if(!mentionReload.isRefreshing()) { - TweetDatabase tweetDeck = new TweetDatabase(con,TweetDatabase.GET_MENT, 0L); - int index = mentionList.getPositionForView(view); - long tweetID = tweetDeck.getTweetId(index); - long userID = tweetDeck.getUserID(index); + TimelineAdapter tlAdp = (TimelineAdapter) timelineList.getAdapter(); + TweetDatabase twDB = tlAdp.getAdapter(); + long tweetID = twDB.getTweetId(position); + long userID = twDB.getUserID(position); Intent intent = new Intent(con, TweetDetail.class); Bundle bundle = new Bundle(); bundle.putLong("tweetID",tweetID); diff --git a/app/src/main/java/org/nuclearfog/twidda/ViewAdapter/TimelineAdapter.java b/app/src/main/java/org/nuclearfog/twidda/ViewAdapter/TimelineAdapter.java index 7378db89..3e2f646f 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ViewAdapter/TimelineAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/ViewAdapter/TimelineAdapter.java @@ -24,7 +24,7 @@ public class TimelineAdapter extends ArrayAdapter { this.context = context; } - public TweetDatabase getAdapter(){ + public TweetDatabase getAdapter() { return mTweets; } diff --git a/app/src/main/java/org/nuclearfog/twidda/ViewAdapter/TrendAdapter.java b/app/src/main/java/org/nuclearfog/twidda/ViewAdapter/TrendAdapter.java index e2a7fa6a..703f6fbb 100644 --- a/app/src/main/java/org/nuclearfog/twidda/ViewAdapter/TrendAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/ViewAdapter/TrendAdapter.java @@ -20,6 +20,10 @@ public class TrendAdapter extends ArrayAdapter { this.context = context; } + public TrendDatabase getDatabase(){ + return trend; + } + @Override public int getCount() { return trend.getSize(); diff --git a/app/src/main/java/org/nuclearfog/twidda/Window/AppSettings.java b/app/src/main/java/org/nuclearfog/twidda/Window/AppSettings.java index c4ba9612..1a706a69 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Window/AppSettings.java +++ b/app/src/main/java/org/nuclearfog/twidda/Window/AppSettings.java @@ -1,6 +1,7 @@ package org.nuclearfog.twidda.Window; import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; @@ -10,40 +11,43 @@ import android.view.View; import android.widget.Button; import android.widget.CompoundButton; import android.widget.EditText; +import android.widget.NumberPicker; import android.widget.Switch; import org.nuclearfog.twidda.R; public class AppSettings extends AppCompatActivity { + + private Button delButon; + private Switch toggleImg; + private EditText woeId; private SharedPreferences settings; + private NumberPicker load_factor; + private Editor edit; @Override protected void onCreate(Bundle savedInst) { super.onCreate(savedInst); - settings = getApplicationContext().getSharedPreferences("settings", 0); setContentView(R.layout.settings); - Toolbar tool = (Toolbar) findViewById(R.id.toolbar_setting); - setSupportActionBar(tool); - Switch toggleImg = (Switch) findViewById(R.id.toggleImg); + settings = getApplicationContext().getSharedPreferences("settings", 0); + int location = settings.getInt("woeid",23424829); + edit = settings.edit(); + + Toolbar tool = (Toolbar) findViewById(R.id.toolbar_setting); + load_factor = (NumberPicker)findViewById(R.id.tweet_load); + delButon = (Button) findViewById(R.id.delete_db); + toggleImg = (Switch) findViewById(R.id.toggleImg); + woeId = (EditText) findViewById(R.id.woeid); + + setSupportActionBar(tool); + load_factor.setMinValue(5); + load_factor.setMaxValue(100); toggleImg.setChecked(settings.getBoolean("image_load",false)); - toggleImg.setOnCheckedChangeListener( - new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton b, boolean checked){ - SharedPreferences.Editor e = settings.edit(); - e.putBoolean("image_load", checked); - e.apply(); - } - }); - Button delButon = (Button) findViewById(R.id.delete_db); - delButon.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - getApplicationContext().deleteDatabase(getApplicationContext().getString(R.string.database)); - } - }); + woeId.setText(""+location); + + setListener(); } /** @@ -60,12 +64,42 @@ public class AppSettings extends AppCompatActivity { */ @Override public boolean onOptionsItemSelected(MenuItem item) { - switch(item.getItemId()) - { + switch(item.getItemId()) { case R.id.back_settings: finish(); - break; + return true; } - return true; + return false; } -} + + @Override + protected void onDestroy() { + edit.putInt("woeid", Integer.valueOf(woeId.getText().toString())); + edit.putInt("preload", load_factor.getValue()); + edit.apply(); + super.onDestroy(); + } + + + + private void setListener() { + + toggleImg.setOnCheckedChangeListener( + new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton b, boolean checked) { + edit.putBoolean("image_load", checked); + edit.apply(); + } + }); + + + delButon.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + getApplicationContext().deleteDatabase(getApplicationContext().getString(R.string.database)); + } + }); + + } +} \ No newline at end of file diff --git a/app/src/main/java/org/nuclearfog/twidda/Window/TweetDetail.java b/app/src/main/java/org/nuclearfog/twidda/Window/TweetDetail.java index 53a4e0bc..134af29b 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Window/TweetDetail.java +++ b/app/src/main/java/org/nuclearfog/twidda/Window/TweetDetail.java @@ -1,20 +1,24 @@ package org.nuclearfog.twidda.Window; +import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; +import android.widget.AdapterView; import android.widget.ImageView; +import android.widget.ListView; import android.widget.TextView; import org.nuclearfog.twidda.Backend.ShowStatus; import org.nuclearfog.twidda.DataBase.TweetDatabase; import org.nuclearfog.twidda.R; +import org.nuclearfog.twidda.ViewAdapter.TimelineAdapter; public class TweetDetail extends AppCompatActivity { - private TweetDatabase mTweet; - + private ListView answer_list; + private Context context; private long tweetID; private long userID; @@ -25,7 +29,7 @@ public class TweetDetail extends AppCompatActivity { tweetID = getIntent().getExtras().getLong("tweetID"); userID = getIntent().getExtras().getLong("userID"); - + answer_list = (ListView) findViewById(R.id.answer_list); ImageView pb = (ImageView) findViewById(R.id.profileimage_detail); pb.setOnClickListener(new View.OnClickListener() { @Override @@ -38,16 +42,35 @@ public class TweetDetail extends AppCompatActivity { } }); setContent(); + setListViewListener(); } @Override - protected void onDestroy(){ + protected void onDestroy() { super.onDestroy(); } + private void setListViewListener() { + context = getApplicationContext(); + answer_list.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + TimelineAdapter tlAdp = (TimelineAdapter) answer_list.getAdapter(); + TweetDatabase twDB = tlAdp.getAdapter(); + long tweetID = twDB.getTweetId(position); + long userID = twDB.getUserID(position); + Intent intent = new Intent(context, TweetDetail.class); + Bundle bundle = new Bundle(); + bundle.putLong("tweetID",tweetID); + bundle.putLong("userID",userID); + intent.putExtras(bundle); + startActivity(intent); + } + }); + } + private void setContent() { ShowStatus set = new ShowStatus(this); set.execute(tweetID); - } } \ No newline at end of file diff --git a/app/src/main/java/org/nuclearfog/twidda/Window/TweetPopup.java b/app/src/main/java/org/nuclearfog/twidda/Window/TweetPopup.java index 1b1bf45f..18d56bb1 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Window/TweetPopup.java +++ b/app/src/main/java/org/nuclearfog/twidda/Window/TweetPopup.java @@ -15,7 +15,7 @@ public class TweetPopup extends AppCompatActivity { private EditText tweetfield; @Override - protected void onCreate(Bundle SavedInstance){ + protected void onCreate(Bundle SavedInstance) { super.onCreate(SavedInstance); getWindow().setLayout(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); setContentView(R.layout.tweetwindow); @@ -38,7 +38,7 @@ public class TweetPopup extends AppCompatActivity { }); } - private void send(){ + private void send() { String tweet = tweetfield.getText().toString(); SendStatus sendTweet = new SendStatus(getApplicationContext()); sendTweet.execute(SendStatus.SEND_STATUS, tweet); diff --git a/app/src/main/java/org/nuclearfog/twidda/Window/TwitterSearch.java b/app/src/main/java/org/nuclearfog/twidda/Window/TwitterSearch.java index cfcadf7d..cefdd293 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Window/TwitterSearch.java +++ b/app/src/main/java/org/nuclearfog/twidda/Window/TwitterSearch.java @@ -13,7 +13,9 @@ import android.widget.AdapterView; import android.widget.ListView; import org.nuclearfog.twidda.Backend.Search; +import org.nuclearfog.twidda.DataBase.TweetDatabase; import org.nuclearfog.twidda.R; +import org.nuclearfog.twidda.ViewAdapter.TimelineAdapter; public class TwitterSearch extends AppCompatActivity { @@ -61,8 +63,18 @@ public class TwitterSearch extends AppCompatActivity { searchTL.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { - int index = searchTL.getPositionForView(view); - + if(!search_refresh.isRefreshing()) { + TimelineAdapter tlAdp = (TimelineAdapter) searchTL.getAdapter(); + TweetDatabase twDB = tlAdp.getAdapter(); + long tweetID = twDB.getTweetId(position); + long userID = twDB.getUserID(position); + Intent intent = new Intent(getApplicationContext(), TweetDetail.class); + Bundle bundle = new Bundle(); + bundle.putLong("tweetID",tweetID); + bundle.putLong("userID",userID); + intent.putExtras(bundle); + startActivity(intent); + } } }); } @@ -71,4 +83,6 @@ public class TwitterSearch extends AppCompatActivity { Search s = new Search(this); s.execute("tweet",search); } + + } \ No newline at end of file diff --git a/app/src/main/java/org/nuclearfog/twidda/Window/UserProfile.java b/app/src/main/java/org/nuclearfog/twidda/Window/UserProfile.java index a6b9e9bc..01ddcf46 100644 --- a/app/src/main/java/org/nuclearfog/twidda/Window/UserProfile.java +++ b/app/src/main/java/org/nuclearfog/twidda/Window/UserProfile.java @@ -7,6 +7,8 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; +import android.view.View; +import android.widget.AdapterView; import android.widget.ListView; import android.widget.TabHost; @@ -142,5 +144,43 @@ public class UserProfile extends AppCompatActivity { mProfile.execute(userId, mode); } - private void setListener(){} + /** + * Set On Item Click Listener + */ + private void setListener(){ + homeTweets.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + if(!homeReload.isRefreshing()) { + TimelineAdapter tlAdp = (TimelineAdapter) homeTweets.getAdapter(); + TweetDatabase twDB = tlAdp.getAdapter(); + long tweetID = twDB.getTweetId(position); + long userID = twDB.getUserID(position); + Intent intent = new Intent(getApplicationContext(), TweetDetail.class); + Bundle bundle = new Bundle(); + bundle.putLong("tweetID",tweetID); + bundle.putLong("userID",userID); + intent.putExtras(bundle); + startActivity(intent); + } + } + }); + homeFavorits.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + if(!favoriteReload.isRefreshing()) { + TimelineAdapter tlAdp = (TimelineAdapter) homeFavorits.getAdapter(); + TweetDatabase twDB = tlAdp.getAdapter(); + long tweetID = twDB.getTweetId(position); + long userID = twDB.getUserID(position); + Intent intent = new Intent(getApplicationContext(), TweetDetail.class); + Bundle bundle = new Bundle(); + bundle.putLong("tweetID",tweetID); + bundle.putLong("userID",userID); + intent.putExtras(bundle); + startActivity(intent); + } + } + }); + } } \ No newline at end of file diff --git a/app/src/main/res/layout/settings.xml b/app/src/main/res/layout/settings.xml index 8091b448..9a885efc 100644 --- a/app/src/main/res/layout/settings.xml +++ b/app/src/main/res/layout/settings.xml @@ -11,22 +11,54 @@ android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" /> - + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:gravity="center_vertical" + android:orientation="horizontal" + android:padding="5dp"> - + + + + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:orientation="horizontal" + android:padding="10dp"> + + + + + + + + +