Base 1.1
This commit is contained in:
parent
a1081b3cc7
commit
7f73a894e0
|
@ -37,6 +37,7 @@ public class MainActivity extends AppCompatActivity
|
|||
private ListView timelineList, trendList,mentionList;
|
||||
private MenuItem profile, tweet, search, setting;
|
||||
private SharedPreferences settings;
|
||||
private SearchView searchQuery;
|
||||
private EditText pin;
|
||||
private Context con;
|
||||
private Toolbar toolbar;
|
||||
|
@ -74,7 +75,7 @@ public class MainActivity extends AppCompatActivity
|
|||
tweet = m.findItem(R.id.action_tweet);
|
||||
search = m.findItem(R.id.action_search);
|
||||
setting = m.findItem(R.id.action_settings);
|
||||
SearchView searchQuery = (SearchView)m.findItem(R.id.action_search).getActionView();
|
||||
searchQuery = (SearchView)m.findItem(R.id.action_search).getActionView();
|
||||
|
||||
searchQuery.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
|
@ -201,6 +202,7 @@ public class MainActivity extends AppCompatActivity
|
|||
mentionReload.setRefreshing(false);
|
||||
trendReload.setRefreshing(false);
|
||||
timelineReload.setRefreshing(false);
|
||||
searchQuery.onActionViewCollapsed();
|
||||
setVisibility(tabId);
|
||||
}
|
||||
});
|
||||
|
@ -305,6 +307,7 @@ public class MainActivity extends AppCompatActivity
|
|||
private void setVisibility(String currentTab) {
|
||||
switch(currentTab) {
|
||||
case "timeline":
|
||||
searchQuery.onActionViewCollapsed();
|
||||
profile.setVisible(true);
|
||||
search.setVisible(false);
|
||||
tweet.setVisible(true);
|
||||
|
@ -317,6 +320,7 @@ public class MainActivity extends AppCompatActivity
|
|||
setting.setVisible(true);
|
||||
break;
|
||||
case "mention":
|
||||
searchQuery.onActionViewCollapsed();
|
||||
profile.setVisible(false);
|
||||
search.setVisible(false);
|
||||
tweet.setVisible(false);
|
||||
|
|
|
@ -8,20 +8,26 @@ import android.widget.ListView;
|
|||
|
||||
import org.nuclearfog.twidda.database.TweetDatabase;
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.database.UserDatabase;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.UserAdapter;
|
||||
import org.nuclearfog.twidda.window.TwitterSearch;
|
||||
|
||||
import twitter4j.Query;
|
||||
import twitter4j.QueryResult;
|
||||
import twitter4j.Twitter;
|
||||
|
||||
public class Search extends AsyncTask<String, Void, Boolean> {
|
||||
public class Search extends AsyncTask<String, Void, String> {
|
||||
|
||||
public static final String TWEETS = "tweets";
|
||||
public static final String USERS = "users";
|
||||
|
||||
private TimelineAdapter tlAdp;
|
||||
private SwipeRefreshLayout refresh;
|
||||
private UserAdapter uAdp;
|
||||
private SwipeRefreshLayout tweetReload, userReload;
|
||||
private ListView tweetSearch, userSearch;
|
||||
private Context context;
|
||||
private Twitter twitter;
|
||||
private ListView tl;
|
||||
private int load;
|
||||
|
||||
public Search(Context context) {
|
||||
|
@ -32,34 +38,46 @@ public class Search extends AsyncTask<String, Void, Boolean> {
|
|||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
tl = (ListView) ((TwitterSearch)context).findViewById(R.id.search_result);
|
||||
refresh = (SwipeRefreshLayout) ((TwitterSearch)context).findViewById(R.id.search_refresh);
|
||||
tweetSearch = (ListView) ((TwitterSearch)context).findViewById(R.id.tweet_result);
|
||||
userSearch = (ListView) ((TwitterSearch)context).findViewById(R.id.user_result);
|
||||
tweetReload = (SwipeRefreshLayout) ((TwitterSearch)context).findViewById(R.id.searchtweets);
|
||||
userReload = (SwipeRefreshLayout) ((TwitterSearch)context).findViewById(R.id.searchusers);
|
||||
twitter = TwitterResource.getInstance(context).getTwitter();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Boolean doInBackground(String... search) {
|
||||
protected String doInBackground(String... search) {
|
||||
String mode = search[0];
|
||||
String get = search[1];
|
||||
Query q = new Query();
|
||||
q.setQuery(get+" +exclude:retweets");
|
||||
q.setCount(load);
|
||||
try {
|
||||
switch(search[0]) {
|
||||
case("tweet"):
|
||||
switch(mode) {
|
||||
case(TWEETS):
|
||||
Query q = new Query();
|
||||
q.setQuery(get+" +exclude:retweets");
|
||||
q.setCount(load);
|
||||
QueryResult result = twitter.search(q);
|
||||
TweetDatabase searchdb = new TweetDatabase(result.getTweets(),context);
|
||||
tlAdp = new TimelineAdapter(context, searchdb);
|
||||
break;
|
||||
case("user"):
|
||||
break;
|
||||
return TWEETS;
|
||||
case(USERS):
|
||||
UserDatabase userdb = new UserDatabase(context, twitter.searchUsers(get,-1));
|
||||
uAdp = new UserAdapter(context, userdb);
|
||||
return USERS;
|
||||
}
|
||||
} catch(Exception err){err.printStackTrace();}
|
||||
return false;
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Boolean result) {
|
||||
tl.setAdapter(tlAdp);
|
||||
refresh.setRefreshing(false);
|
||||
protected void onPostExecute(String mode) {
|
||||
switch(mode) {
|
||||
case(TWEETS):
|
||||
tweetSearch.setAdapter(tlAdp);
|
||||
tweetReload.setRefreshing(false);
|
||||
break;
|
||||
case(USERS):
|
||||
userSearch.setAdapter(uAdp);
|
||||
userReload.setRefreshing(false);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
package org.nuclearfog.twidda.database;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Color;
|
||||
|
||||
import com.flask.colorpicker.ColorPickerView;
|
||||
import com.flask.colorpicker.OnColorSelectedListener;
|
||||
import com.flask.colorpicker.builder.ColorPickerDialogBuilder;
|
||||
|
||||
public class ColorPreferences implements OnColorSelectedListener{
|
||||
|
||||
public static final int BACKGROUND = 0x0;
|
||||
public static final int FONT_COLOR = 0x1;
|
||||
|
||||
private int current = 0;
|
||||
private static ColorPreferences ourInstance;
|
||||
private SharedPreferences settings;
|
||||
private Context context;
|
||||
|
||||
|
||||
private ColorPreferences(Context context) {
|
||||
this.context = context;
|
||||
settings = context.getSharedPreferences("settings", 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onColorSelected(int i) {
|
||||
current = i;
|
||||
}
|
||||
|
||||
|
||||
public void setColor(final int MODE) {
|
||||
ColorPickerDialogBuilder.with(context)
|
||||
.showAlphaSlider(false)
|
||||
.wheelType(ColorPickerView.WHEEL_TYPE.CIRCLE).density(20)
|
||||
.setOnColorSelectedListener(this).build().show();
|
||||
}
|
||||
|
||||
public void commmit() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* TODO
|
||||
*/
|
||||
|
||||
|
||||
|
||||
public static ColorPreferences getInstance(Context context) {
|
||||
if(ourInstance==null)
|
||||
ourInstance = new ColorPreferences(context);
|
||||
return ourInstance;
|
||||
}
|
||||
}
|
|
@ -26,12 +26,12 @@ public class TweetDatabase {
|
|||
private List<Long> userId,tweetId,timeMillis;
|
||||
private List<Integer> noRT,noFav,noAns;
|
||||
private List<Status> stats;
|
||||
private SharedPreferences settings;
|
||||
private boolean toggleImg;
|
||||
private int size = 0;
|
||||
private int mode = 0;
|
||||
private int limit;
|
||||
private long CurrentId = 0;
|
||||
private SharedPreferences settings;
|
||||
|
||||
/**
|
||||
* Store & Read Data
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package org.nuclearfog.twidda.viewadapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
@ -48,7 +49,7 @@ public class TimelineAdapter extends ArrayAdapter {
|
|||
((TextView) v.findViewById(R.id.favorite_number)).setText(""+mTweets.getFavorite(position));
|
||||
((TextView) v.findViewById(R.id.time)).setText(mTweets.getDate(position));
|
||||
ImageView imgView = v.findViewById(R.id.tweetPb);
|
||||
|
||||
v.setBackgroundColor(Color.BLUE);
|
||||
v.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
|
|
@ -10,30 +10,36 @@ import android.view.MenuItem;
|
|||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TabHost;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.Search;
|
||||
import org.nuclearfog.twidda.database.TweetDatabase;
|
||||
import org.nuclearfog.twidda.database.UserDatabase;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.UserAdapter;
|
||||
|
||||
public class TwitterSearch extends AppCompatActivity {
|
||||
|
||||
private String search;
|
||||
private ListView searchTL;
|
||||
private SwipeRefreshLayout search_refresh;
|
||||
private ListView tweetSearch, userSearch;
|
||||
private SwipeRefreshLayout tweetReload,userReload;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle bundle){
|
||||
protected void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
setContentView(R.layout.search);
|
||||
Toolbar tool = (Toolbar) findViewById(R.id.search_toolbar);
|
||||
searchTL = (ListView) findViewById(R.id.search_result);
|
||||
search_refresh = (SwipeRefreshLayout) findViewById(R.id.search_refresh);
|
||||
tweetSearch = (ListView) findViewById(R.id.tweet_result);
|
||||
userSearch = (ListView) findViewById(R.id.user_result);
|
||||
tweetReload = (SwipeRefreshLayout) findViewById(R.id.searchtweets);
|
||||
userReload = (SwipeRefreshLayout) findViewById(R.id.searchusers);
|
||||
setSupportActionBar(tool);
|
||||
getSupportActionBar().setDisplayShowTitleEnabled(false);
|
||||
search = getIntent().getExtras().getString("search");
|
||||
getContent();
|
||||
setTabContent();
|
||||
setListener();
|
||||
getContent(Search.TWEETS);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -56,11 +62,11 @@ public class TwitterSearch extends AppCompatActivity {
|
|||
}
|
||||
|
||||
private void setListener() {
|
||||
searchTL.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
tweetSearch.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
if(!search_refresh.isRefreshing()) {
|
||||
TimelineAdapter tlAdp = (TimelineAdapter) searchTL.getAdapter();
|
||||
if(!tweetReload.isRefreshing()) {
|
||||
TimelineAdapter tlAdp = (TimelineAdapter) tweetSearch.getAdapter();
|
||||
TweetDatabase twDB = tlAdp.getAdapter();
|
||||
long tweetID = twDB.getTweetId(position);
|
||||
long userID = twDB.getUserID(position);
|
||||
|
@ -73,16 +79,61 @@ public class TwitterSearch extends AppCompatActivity {
|
|||
}
|
||||
}
|
||||
});
|
||||
search_refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
userSearch.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
if(!userReload.isRefreshing()) {
|
||||
UserAdapter uAdp = (UserAdapter) userSearch.getAdapter();
|
||||
UserDatabase uDb = uAdp.getAdapter();
|
||||
Intent profile = new Intent(getApplicationContext(), UserProfile.class);
|
||||
Bundle bundle = new Bundle();
|
||||
long userID = uDb.getUserID(position);
|
||||
bundle.putLong("userID",userID);
|
||||
profile.putExtras(bundle);
|
||||
startActivity(profile);
|
||||
}
|
||||
}
|
||||
});
|
||||
tweetReload.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
getContent();
|
||||
getContent(Search.TWEETS);
|
||||
}
|
||||
});
|
||||
userReload.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
getContent(Search.USERS);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void getContent() {
|
||||
Search s = new Search(this);
|
||||
s.execute("tweet",search);
|
||||
private void setTabContent(){
|
||||
TabHost tabhost = (TabHost)findViewById(R.id.search_tab);
|
||||
tabhost.setup();
|
||||
|
||||
TabHost.TabSpec tab1 = tabhost.newTabSpec("Tweets");
|
||||
tab1.setContent(R.id.searchtweets);
|
||||
tab1.setIndicator("",getResources().getDrawable(R.drawable.search_result));
|
||||
tabhost.addTab(tab1);
|
||||
|
||||
TabHost.TabSpec tab2 = tabhost.newTabSpec("Tweets");
|
||||
tab2.setContent(R.id.searchusers);
|
||||
tab2.setIndicator("",getResources().getDrawable(R.drawable.user_result));
|
||||
tabhost.addTab(tab2);
|
||||
|
||||
tabhost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
|
||||
@Override
|
||||
public void onTabChanged(String tabId) {
|
||||
tweetReload.setRefreshing(false);
|
||||
userReload.setRefreshing(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void getContent(final String MODE){
|
||||
Search s = new Search(TwitterSearch.this);
|
||||
s.execute(MODE,search);
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
<vector android:height="24dp" android:viewportHeight="20.0"
|
||||
android:viewportWidth="20.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FFFFFF" android:pathData="M14,5h-4v2h4V5zM14,8h-4v1h4V8zM9,5H6v4h3V5zM9,11h5v-1H9V11zM12,13h2v-1h-2V13zM14,14H6v1h8V14zM11,12H6v1h5V12zM8,10H6v1h2V10zM17,1H3C2.447,1 2,1.447 2,2v16c0,0.552 0.447,1 1,1h14c0.553,0 1,-0.448 1,-1V2C18,1.448 17.553,1 17,1zM16,17H4V3h12V17z"/>
|
||||
</vector>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item android:drawable="@drawable/result" />
|
||||
</selector>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item android:drawable="@drawable/user" />
|
||||
</selector>
|
|
@ -0,0 +1,4 @@
|
|||
<vector android:height="24dp" android:viewportHeight="20.0"
|
||||
android:viewportWidth="20.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FFFFFF" android:pathData="M7.725,2.146c-1.016,0.756 -1.289,1.953 -1.239,2.59C6.55,5.515 6.708,6.529 6.708,6.529s-0.313,0.17 -0.313,0.854C6.504,9.1 7.078,8.359 7.196,9.112c0.284,1.814 0.933,1.491 0.933,2.481c0,1.649 -0.68,2.42 -2.803,3.334C3.196,15.845 1,17 1,19v1h18v-1c0,-2 -2.197,-3.155 -4.328,-4.072c-2.123,-0.914 -2.801,-1.684 -2.801,-3.334c0,-0.99 0.647,-0.667 0.932,-2.481c0.119,-0.753 0.692,-0.012 0.803,-1.729c0,-0.684 -0.314,-0.854 -0.314,-0.854s0.158,-1.014 0.221,-1.793c0.065,-0.817 -0.398,-2.561 -2.3,-3.096c-0.333,-0.34 -0.558,-0.881 0.466,-1.424C9.439,0.112 8.918,1.284 7.725,2.146z"/>
|
||||
</vector>
|
|
@ -11,19 +11,58 @@
|
|||
android:minHeight="?attr/actionBarSize"
|
||||
android:theme="?attr/actionBarTheme" />
|
||||
|
||||
|
||||
<android.support.v4.widget.SwipeRefreshLayout
|
||||
android:id="@+id/search_refresh"
|
||||
<TabHost
|
||||
android:id="@+id/search_tab"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ListView
|
||||
android:id="@+id/search_result"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TabWidget
|
||||
android:id="@android:id/tabs"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@android:id/tabcontent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.v4.widget.SwipeRefreshLayout
|
||||
android:id="@+id/searchtweets"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ListView
|
||||
android:id="@+id/tweet_result"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
</ListView>
|
||||
|
||||
|
||||
</android.support.v4.widget.SwipeRefreshLayout>
|
||||
</android.support.v4.widget.SwipeRefreshLayout>
|
||||
|
||||
<android.support.v4.widget.SwipeRefreshLayout
|
||||
android:id="@+id/searchusers"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ListView
|
||||
android:id="@+id/user_result"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
</ListView>
|
||||
|
||||
|
||||
</android.support.v4.widget.SwipeRefreshLayout>
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
</TabHost>
|
||||
|
||||
|
||||
</LinearLayout>
|
|
@ -9,7 +9,8 @@
|
|||
android:id="@+id/trendname"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="5dp" />
|
||||
android:layout_margin="5dp"
|
||||
android:textSize="18dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
Loading…
Reference in New Issue