Base 1.1
This commit is contained in:
parent
360c64640a
commit
22c93e1521
|
@ -31,7 +31,8 @@ import org.nuclearfog.twidda.window.TweetDetail;
|
|||
import org.nuclearfog.twidda.window.TweetPopup;
|
||||
import org.nuclearfog.twidda.window.TwitterSearch;
|
||||
|
||||
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener, SwipeRefreshLayout.OnRefreshListener
|
||||
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener,
|
||||
SwipeRefreshLayout.OnRefreshListener, TabHost.OnTabChangeListener
|
||||
{
|
||||
private SwipeRefreshLayout timelineReload,trendReload,mentionReload;
|
||||
private ListView timelineList, trendList,mentionList;
|
||||
|
@ -42,7 +43,7 @@ public class MainActivity extends AppCompatActivity implements AdapterView.OnIte
|
|||
private Context con;
|
||||
private Toolbar toolbar;
|
||||
private boolean login;
|
||||
private String currentTab;
|
||||
private String currentTab = "timeline";
|
||||
|
||||
/**
|
||||
* Create Activity
|
||||
|
@ -203,6 +204,37 @@ public class MainActivity extends AppCompatActivity implements AdapterView.OnIte
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabChanged(String tabId) {
|
||||
mentionReload.setRefreshing(false);
|
||||
trendReload.setRefreshing(false);
|
||||
timelineReload.setRefreshing(false);
|
||||
searchQuery.onActionViewCollapsed();
|
||||
currentTab = tabId;
|
||||
switch(tabId) {
|
||||
case "timeline":
|
||||
searchQuery.onActionViewCollapsed();
|
||||
profile.setVisible(true);
|
||||
search.setVisible(false);
|
||||
tweet.setVisible(true);
|
||||
setting.setVisible(false);
|
||||
break;
|
||||
case "trends":
|
||||
profile.setVisible(false);
|
||||
search.setVisible(true);
|
||||
tweet.setVisible(false);
|
||||
setting.setVisible(true);
|
||||
break;
|
||||
case "mention":
|
||||
searchQuery.onActionViewCollapsed();
|
||||
profile.setVisible(false);
|
||||
search.setVisible(false);
|
||||
tweet.setVisible(false);
|
||||
setting.setVisible(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Load Preferences
|
||||
*/
|
||||
|
@ -235,6 +267,7 @@ public class MainActivity extends AppCompatActivity implements AdapterView.OnIte
|
|||
timelineReload = (SwipeRefreshLayout) findViewById(R.id.timeline);
|
||||
trendReload = (SwipeRefreshLayout) findViewById(R.id.trends);
|
||||
mentionReload = (SwipeRefreshLayout) findViewById(R.id.mention);
|
||||
TabHost tabhost = (TabHost)findViewById(R.id.main_tabhost);
|
||||
toolbar = (Toolbar) findViewById(R.id.profile_toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayShowTitleEnabled(false);
|
||||
|
@ -246,16 +279,6 @@ public class MainActivity extends AppCompatActivity implements AdapterView.OnIte
|
|||
trendReload.setOnRefreshListener(this);
|
||||
mentionReload.setOnRefreshListener(this);
|
||||
|
||||
setTabListener();
|
||||
setTabContent();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Tab Listener
|
||||
* @see #setTabContent()
|
||||
*/
|
||||
private void setTabListener() {
|
||||
TabHost tabhost = (TabHost)findViewById(R.id.main_tabhost);
|
||||
tabhost.setup();
|
||||
// Tab #1
|
||||
TabSpec tab1 = tabhost.newTabSpec("timeline");
|
||||
|
@ -272,23 +295,13 @@ public class MainActivity extends AppCompatActivity implements AdapterView.OnIte
|
|||
tab3.setContent(R.id.mention);
|
||||
tab3.setIndicator("",getResources().getDrawable(R.drawable.mention_icon));
|
||||
tabhost.addTab(tab3);
|
||||
currentTab = "timeline";
|
||||
tabhost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
|
||||
@Override
|
||||
public void onTabChanged(String tabId) {
|
||||
mentionReload.setRefreshing(false);
|
||||
trendReload.setRefreshing(false);
|
||||
timelineReload.setRefreshing(false);
|
||||
searchQuery.onActionViewCollapsed();
|
||||
setVisibility(tabId);
|
||||
currentTab = tabId;
|
||||
}
|
||||
});
|
||||
|
||||
tabhost.setOnTabChangedListener(this);
|
||||
setTabContent();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set DB Content
|
||||
* separate THREAD
|
||||
*/
|
||||
private void setTabContent() {
|
||||
TweetDatabase tweetDeck = new TweetDatabase(con,TweetDatabase.HOME_TL, 0L);
|
||||
|
@ -298,33 +311,4 @@ public class MainActivity extends AppCompatActivity implements AdapterView.OnIte
|
|||
timelineList.setAdapter(tlAdapt);
|
||||
trendList.setAdapter(trendAdp);
|
||||
}
|
||||
|
||||
/**
|
||||
* Toolbar Items
|
||||
* @param currentTab 3 Tabs "timeline" , "trends" , "mention"
|
||||
*/
|
||||
private void setVisibility(String currentTab) {
|
||||
switch(currentTab) {
|
||||
case "timeline":
|
||||
searchQuery.onActionViewCollapsed();
|
||||
profile.setVisible(true);
|
||||
search.setVisible(false);
|
||||
tweet.setVisible(true);
|
||||
setting.setVisible(false);
|
||||
break;
|
||||
case "trends":
|
||||
profile.setVisible(false);
|
||||
search.setVisible(true);
|
||||
tweet.setVisible(false);
|
||||
setting.setVisible(true);
|
||||
break;
|
||||
case "mention":
|
||||
searchQuery.onActionViewCollapsed();
|
||||
profile.setVisible(false);
|
||||
search.setVisible(false);
|
||||
tweet.setVisible(false);
|
||||
setting.setVisible(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -20,7 +20,6 @@ public class ImageDownloader extends AsyncTask<String, Void, Bitmap>
|
|||
@Override
|
||||
protected Bitmap doInBackground(String... links) {
|
||||
Bitmap picture = null;
|
||||
|
||||
try {
|
||||
InputStream iStream = new URL(links[0]).openStream();
|
||||
picture = BitmapFactory.decodeStream(iStream);
|
||||
|
|
|
@ -91,6 +91,8 @@ public class ProfileInfo extends AsyncTask<Long,Void,Void>
|
|||
if(imgEnabled) {
|
||||
profileImg.execute(imageLink);
|
||||
bannerImg.execute(bannerLink);
|
||||
} else{
|
||||
profile.setImageResource(R.mipmap.pb);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -10,9 +10,11 @@ public class ColorPreferences implements OnColorSelectedListener {
|
|||
|
||||
public static final int BACKGROUND = 0x0;
|
||||
public static final int FONT_COLOR = 0x1;
|
||||
public static final int TWEET_COLOR = 0x3;
|
||||
|
||||
private int background = 0;
|
||||
private int font = 0;
|
||||
private int tweet = 0;
|
||||
private int mode;
|
||||
|
||||
private static ColorPreferences ourInstance;
|
||||
|
@ -23,8 +25,9 @@ public class ColorPreferences implements OnColorSelectedListener {
|
|||
private ColorPreferences(Context context) {
|
||||
ColorPreferences.context = context;
|
||||
settings = context.getSharedPreferences("settings", 0);
|
||||
background = settings.getInt("background_color", 0x061a22);//-14142465
|
||||
font = settings.getInt("font_color", 0xffffff);//-851982
|
||||
background = settings.getInt("background_color", 0xff061a22);
|
||||
font = settings.getInt("font_color", 0xffffffff);
|
||||
tweet = settings.getInt("tweet_color", 0xff19aae8);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -36,6 +39,9 @@ public class ColorPreferences implements OnColorSelectedListener {
|
|||
case FONT_COLOR:
|
||||
font = i;
|
||||
break;
|
||||
case TWEET_COLOR:
|
||||
tweet = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -43,9 +49,11 @@ public class ColorPreferences implements OnColorSelectedListener {
|
|||
int preColor = 0x0;
|
||||
mode = MODE;
|
||||
if(MODE == BACKGROUND)
|
||||
preColor = getBackgroundColor();
|
||||
preColor = background;
|
||||
else if(MODE == FONT_COLOR)
|
||||
preColor = getFontColor();
|
||||
preColor = font;
|
||||
else if(MODE == TWEET_COLOR)
|
||||
preColor = tweet;
|
||||
ColorPickerDialogBuilder.with(context)
|
||||
.showAlphaSlider(false).initialColor(preColor)
|
||||
.wheelType(ColorPickerView.WHEEL_TYPE.CIRCLE).density(20)
|
||||
|
@ -56,11 +64,13 @@ public class ColorPreferences implements OnColorSelectedListener {
|
|||
SharedPreferences.Editor e = settings.edit();
|
||||
e.putInt("background_color", background);
|
||||
e.putInt("font_color", font);
|
||||
e.putInt("tweet_color", tweet);
|
||||
e.apply();
|
||||
}
|
||||
|
||||
public int getBackgroundColor(){return background;}
|
||||
public int getFontColor(){return font;}
|
||||
public int getTweetColor(){return tweet;}
|
||||
|
||||
public static ColorPreferences getInstance(Context c) {
|
||||
if(ourInstance==null)
|
||||
|
|
|
@ -192,7 +192,7 @@ public class TweetDatabase {
|
|||
public long getTweetId(int pos){return tweetId.get(pos);}
|
||||
public long getTime(int pos){return timeMillis.get(pos);}
|
||||
public String getUsername(int pos){return user.get(pos);}
|
||||
public String getScreenname(int pos){return scrname.get(pos);}
|
||||
public String getScreenname(int pos){return '@'+scrname.get(pos);}
|
||||
public String getTweet(int pos){return tweet.get(pos);}
|
||||
public String getDate(int pos){return timeToString(getTime(pos));}
|
||||
public String getPbImg (int pos){return pbLink.get(pos);}
|
||||
|
|
|
@ -19,7 +19,7 @@ public class UserDatabase {
|
|||
|
||||
public long getUserID(int pos){ return user.get(pos).getId();}
|
||||
public String getUsername(int pos){ return user.get(pos).getName();}
|
||||
public String getScreenname(int pos){ return user.get(pos).getScreenName();}
|
||||
public String getScreenname(int pos){ return '@' + user.get(pos).getScreenName();}
|
||||
public String getProfileURL(int pos){ return user.get(pos).getProfileBackgroundImageURL();}
|
||||
public int getSize(){ return user.size(); }
|
||||
public boolean loadImages(){ return toggleImg; }
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package org.nuclearfog.twidda.viewadapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
@ -14,7 +15,7 @@ import org.nuclearfog.twidda.backend.ImageDownloader;
|
|||
import org.nuclearfog.twidda.database.ColorPreferences;
|
||||
import org.nuclearfog.twidda.database.TweetDatabase;
|
||||
|
||||
public class TimelineAdapter extends ArrayAdapter {
|
||||
public class TimelineAdapter extends ArrayAdapter implements View.OnClickListener {
|
||||
private TweetDatabase mTweets;
|
||||
private ColorPreferences mcolor;
|
||||
private Context context;
|
||||
|
@ -36,8 +37,9 @@ public class TimelineAdapter extends ArrayAdapter {
|
|||
return mTweets.getSize();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public View getView(int position, View v, ViewGroup parent) {
|
||||
public View getView(int position, View v, @NonNull ViewGroup parent) {
|
||||
p = parent;
|
||||
if(v == null) {
|
||||
LayoutInflater inf=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
|
@ -45,25 +47,27 @@ public class TimelineAdapter extends ArrayAdapter {
|
|||
v.setBackgroundColor(mcolor.getBackgroundColor());
|
||||
}
|
||||
((TextView) v.findViewById(R.id.username)).setText(mTweets.getUsername(position));
|
||||
((TextView) v.findViewById(R.id.screenname)).setText(" "+mTweets.getScreenname(position));
|
||||
((TextView) v.findViewById(R.id.screenname)).setText(mTweets.getScreenname(position));
|
||||
((TextView) v.findViewById(R.id.tweettext)).setText(mTweets.getTweet(position));
|
||||
((TextView) v.findViewById(R.id.answer_number)).setText(""+mTweets.getAnswer(position));
|
||||
((TextView) v.findViewById(R.id.retweet_number)).setText(""+mTweets.getRetweet(position));
|
||||
((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.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ListView parent = ((ListView)p);
|
||||
int position = parent.getPositionForView(v);
|
||||
parent.performItemClick(v,position,0);
|
||||
}
|
||||
});
|
||||
v.setOnClickListener(this);
|
||||
if(mTweets.loadImages()) {
|
||||
ImageDownloader imgDl = new ImageDownloader(imgView);
|
||||
imgDl.execute(mTweets.getPbImg(position));
|
||||
} else {
|
||||
imgView.setImageResource(R.mipmap.pb);
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ListView parent = ((ListView)p);
|
||||
int position = parent.getPositionForView(v);
|
||||
parent.performItemClick(v,position,0);
|
||||
}
|
||||
}
|
|
@ -5,6 +5,7 @@ import org.nuclearfog.twidda.database.ColorPreferences;
|
|||
import org.nuclearfog.twidda.database.TrendDatabase;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
@ -17,13 +18,13 @@ public class TrendAdapter extends ArrayAdapter {
|
|||
private ColorPreferences mcolor;
|
||||
|
||||
public TrendAdapter(Context context, TrendDatabase trend) {
|
||||
super(context, R.layout.trend);//test
|
||||
super(context, R.layout.trend);
|
||||
this.trend = trend;
|
||||
this.context = context;
|
||||
mcolor = ColorPreferences.getInstance(context);
|
||||
}
|
||||
|
||||
public TrendDatabase getDatabase(){
|
||||
public TrendDatabase getDatabase() {
|
||||
return trend;
|
||||
}
|
||||
|
||||
|
@ -32,8 +33,9 @@ public class TrendAdapter extends ArrayAdapter {
|
|||
return trend.getSize();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public View getView(int position, View v, ViewGroup parent) {
|
||||
public View getView(int position, View v, @NonNull ViewGroup parent) {
|
||||
if(v == null) {
|
||||
LayoutInflater inf=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
v = inf.inflate(R.layout.trend, parent,false);
|
||||
|
@ -41,7 +43,6 @@ public class TrendAdapter extends ArrayAdapter {
|
|||
}
|
||||
String trendName = trend.getTrendname(position);
|
||||
((TextView) v.findViewById(R.id.trendname)).setText(trendName);
|
||||
|
||||
return v;
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package org.nuclearfog.twidda.viewadapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
@ -14,7 +15,7 @@ import org.nuclearfog.twidda.database.ColorPreferences;
|
|||
import org.nuclearfog.twidda.database.UserDatabase;
|
||||
import org.nuclearfog.twidda.R;
|
||||
|
||||
public class UserAdapter extends ArrayAdapter {
|
||||
public class UserAdapter extends ArrayAdapter implements View.OnClickListener {
|
||||
|
||||
private Context context;
|
||||
private UserDatabase userDatabase;
|
||||
|
@ -37,8 +38,9 @@ public class UserAdapter extends ArrayAdapter {
|
|||
return userDatabase.getSize();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public View getView(int position, View v, ViewGroup parent) {
|
||||
public View getView(int position, View v, @NonNull ViewGroup parent) {
|
||||
p = parent;
|
||||
if(v == null) {
|
||||
LayoutInflater inf=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
|
@ -46,25 +48,27 @@ public class UserAdapter extends ArrayAdapter {
|
|||
}
|
||||
|
||||
((TextView)v.findViewById(R.id.username_detail)).setText(userDatabase.getUsername(position));
|
||||
((TextView)v.findViewById(R.id.screenname_detail)).setText('@'+userDatabase.getScreenname(position));
|
||||
((TextView)v.findViewById(R.id.screenname_detail)).setText(userDatabase.getScreenname(position));
|
||||
ImageView imgView = v.findViewById(R.id.user_profileimg);
|
||||
|
||||
v.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ListView parent = ((ListView)p);
|
||||
int position = parent.getPositionForView(v);
|
||||
parent.performItemClick(v,position,0);
|
||||
}
|
||||
});
|
||||
v.setOnClickListener(this);
|
||||
|
||||
if(userDatabase.loadImages()) {
|
||||
ImageDownloader imgDl = new ImageDownloader(imgView);
|
||||
imgDl.execute(userDatabase.getProfileURL(position));
|
||||
} else {
|
||||
imgView.setImageResource(R.mipmap.pb);
|
||||
}
|
||||
|
||||
v.setBackgroundColor(mColor.getBackgroundColor());
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ListView parent = ((ListView)p);
|
||||
int position = parent.getPositionForView(v);
|
||||
parent.performItemClick(v,position,0);
|
||||
}
|
||||
}
|
|
@ -13,24 +13,16 @@ import android.widget.EditText;
|
|||
import android.widget.NumberPicker;
|
||||
import android.widget.Switch;
|
||||
|
||||
import com.flask.colorpicker.ColorPickerView;
|
||||
import com.flask.colorpicker.OnColorSelectedListener;
|
||||
import com.flask.colorpicker.builder.ColorPickerDialogBuilder;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.database.ColorPreferences;
|
||||
|
||||
public class AppSettings extends AppCompatActivity implements View.OnClickListener{
|
||||
public class AppSettings extends AppCompatActivity implements View.OnClickListener,
|
||||
CompoundButton.OnCheckedChangeListener {
|
||||
|
||||
private Button delButon,save_woeid, colorButton1, colorButton2;
|
||||
private int backgroundColor, fontColor;
|
||||
private Switch toggleImg;
|
||||
private EditText woeId;
|
||||
private SharedPreferences settings;
|
||||
private NumberPicker load_factor;
|
||||
private ColorPreferences mColor;
|
||||
private Editor edit;
|
||||
private boolean modified = false;
|
||||
private boolean imgldr;
|
||||
|
||||
@Override
|
||||
|
@ -39,45 +31,37 @@ public class AppSettings extends AppCompatActivity implements View.OnClickListen
|
|||
setContentView(R.layout.settings);
|
||||
mColor = ColorPreferences.getInstance(this);
|
||||
settings = getApplicationContext().getSharedPreferences("settings", 0);
|
||||
int location = settings.getInt("woeid",23424829);
|
||||
edit = settings.edit();
|
||||
|
||||
String location = Integer.toString(settings.getInt("woeid",23424829));
|
||||
|
||||
Button delButon = (Button) findViewById(R.id.delete_db);
|
||||
Switch toggleImg = (Switch) findViewById(R.id.toggleImg);
|
||||
Button colorButton1 = (Button) findViewById(R.id.color_background);
|
||||
Button colorButton2 = (Button) findViewById(R.id.color_font);
|
||||
Button colorButton3 = (Button) findViewById(R.id.color_tweet);
|
||||
Button save_woeid = (Button) findViewById(R.id.save_woeid);
|
||||
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);
|
||||
colorButton1 = (Button) findViewById(R.id.color_background);
|
||||
colorButton2 = (Button) findViewById(R.id.color_font);
|
||||
save_woeid = (Button) findViewById(R.id.save_woeid);
|
||||
|
||||
delButon.setOnClickListener(this);
|
||||
colorButton1.setOnClickListener(this);
|
||||
colorButton2.setOnClickListener(this);
|
||||
colorButton3.setOnClickListener(this);
|
||||
save_woeid.setOnClickListener(this);
|
||||
toggleImg.setOnCheckedChangeListener(this);
|
||||
|
||||
load_factor.setMinValue(5);
|
||||
load_factor.setMaxValue(100);
|
||||
toggleImg.setChecked(settings.getBoolean("image_load",false));
|
||||
load_factor.setValue(settings.getInt("preload",10));
|
||||
woeId.setText(""+location);
|
||||
|
||||
loadSettings();
|
||||
setListener();
|
||||
woeId.setText(location);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Actionbar
|
||||
*/
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu( Menu m ) {
|
||||
getMenuInflater().inflate(R.menu.setting, m);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Actionbar selection
|
||||
*/
|
||||
@Override
|
||||
public boolean onOptionsItemSelected( MenuItem item ) {
|
||||
switch(item.getItemId()) {
|
||||
|
@ -90,6 +74,7 @@ public class AppSettings extends AppCompatActivity implements View.OnClickListen
|
|||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
Editor edit = settings.edit();
|
||||
edit.putInt("woeid", Integer.valueOf(woeId.getText().toString()));
|
||||
edit.putInt("preload", load_factor.getValue());
|
||||
edit.putBoolean("image_load", imgldr);
|
||||
|
@ -110,22 +95,14 @@ public class AppSettings extends AppCompatActivity implements View.OnClickListen
|
|||
case R.id.color_font:
|
||||
mColor.setColor(ColorPreferences.FONT_COLOR);
|
||||
break;
|
||||
case R.id.color_tweet:
|
||||
mColor.setColor(ColorPreferences.TWEET_COLOR);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void setListener() {
|
||||
toggleImg.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton b, boolean checked) {
|
||||
imgldr = checked;
|
||||
modified = true;
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton b, boolean checked) {
|
||||
imgldr = checked;
|
||||
}
|
||||
|
||||
private void loadSettings() {
|
||||
backgroundColor = settings.getInt("background",10);
|
||||
fontColor = settings.getInt("fontColor",10);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
package org.nuclearfog.twidda.window;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
|
@ -16,12 +15,12 @@ import org.nuclearfog.twidda.database.UserDatabase;
|
|||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.viewadapter.UserAdapter;
|
||||
|
||||
public class Follower extends AppCompatActivity {
|
||||
public class Follower extends AppCompatActivity implements AdapterView.OnItemClickListener,
|
||||
SwipeRefreshLayout.OnRefreshListener {
|
||||
|
||||
private long userID;
|
||||
private long mode;
|
||||
private ListView follow;
|
||||
private Context context;
|
||||
private SwipeRefreshLayout reload;
|
||||
private Toolbar toolbar;
|
||||
|
||||
|
@ -31,49 +30,42 @@ public class Follower extends AppCompatActivity {
|
|||
setContentView(R.layout.follow);
|
||||
userID = getIntent().getExtras().getLong("userID");
|
||||
mode = getIntent().getExtras().getLong("mode");
|
||||
toolbar = (Toolbar) findViewById(R.id.follow_toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
follow = (ListView) findViewById(R.id.followList);
|
||||
reload = (SwipeRefreshLayout) findViewById(R.id.follow_swipe);
|
||||
context = getApplicationContext();
|
||||
toolbar = (Toolbar) findViewById(R.id.follow_toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
setActionbarTitle(mode);
|
||||
setListener();
|
||||
|
||||
follow.setOnItemClickListener(this);
|
||||
reload.setOnRefreshListener(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Actionbar
|
||||
*/
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu( Menu m ) {
|
||||
toolbar.inflateMenu(R.menu.setting); //TODO
|
||||
return true;
|
||||
}
|
||||
|
||||
private void setListener() {
|
||||
reload.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
Following follow = new Following(Follower.this);
|
||||
follow.execute(mode, userID);
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
if(!reload.isRefreshing()) {
|
||||
UserAdapter uAdp = (UserAdapter) follow.getAdapter();
|
||||
UserDatabase uDB = uAdp.getAdapter();
|
||||
long userID = uDB.getUserID(position);
|
||||
Intent intent = new Intent(getApplicationContext(), UserProfile.class);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putLong("userID",userID);
|
||||
bundle.putBoolean("home", false);//todo
|
||||
intent.putExtras(bundle);
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
||||
follow.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
if(!reload.isRefreshing()) {
|
||||
UserAdapter uAdp = (UserAdapter) follow.getAdapter();
|
||||
UserDatabase uDB = uAdp.getAdapter();
|
||||
long userID = uDB.getUserID(position);
|
||||
Intent intent = new Intent(context, UserProfile.class);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putLong("userID",userID);
|
||||
bundle.putBoolean("home", false);//todo
|
||||
intent.putExtras(bundle);
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
Following follow = new Following(Follower.this);
|
||||
follow.execute(mode, userID);
|
||||
}
|
||||
|
||||
private void setActionbarTitle(long mode) {
|
||||
|
|
|
@ -7,9 +7,11 @@ import android.view.View;
|
|||
import android.widget.AdapterView;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ListView;
|
||||
|
||||
import org.nuclearfog.twidda.backend.ShowStatus;
|
||||
import org.nuclearfog.twidda.database.ColorPreferences;
|
||||
import org.nuclearfog.twidda.database.TweetDatabase;
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
|
@ -21,7 +23,7 @@ public class TweetDetail extends AppCompatActivity implements View.OnClickListen
|
|||
private long userID;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle b){
|
||||
protected void onCreate(Bundle b) {
|
||||
super.onCreate(b);
|
||||
setContentView(R.layout.tweet_detail);
|
||||
tweetID = getIntent().getExtras().getLong("tweetID");
|
||||
|
@ -43,14 +45,20 @@ public class TweetDetail extends AppCompatActivity implements View.OnClickListen
|
|||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
// TODO save tweet
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent;
|
||||
Bundle bundle = new Bundle();
|
||||
switch(v.getId()) {
|
||||
case R.id.answer_button:
|
||||
//todo
|
||||
intent = new Intent(getApplicationContext(), TweetPopup.class);
|
||||
bundle.putLong("TweetID", tweetID);
|
||||
intent.putExtras(bundle);
|
||||
startActivity(intent);
|
||||
break;
|
||||
case R.id.rt_button:
|
||||
//todo
|
||||
|
@ -59,12 +67,11 @@ public class TweetDetail extends AppCompatActivity implements View.OnClickListen
|
|||
//todo
|
||||
break;
|
||||
case R.id.profileimage_detail:
|
||||
Intent profile = new Intent(getApplicationContext(), UserProfile.class);
|
||||
Bundle bundle = new Bundle();
|
||||
intent = new Intent(getApplicationContext(), UserProfile.class);
|
||||
bundle.putLong("userID",userID);
|
||||
bundle.putBoolean("home", false);//todo
|
||||
profile.putExtras(bundle);
|
||||
startActivity(profile);
|
||||
intent.putExtras(bundle);
|
||||
startActivity(intent);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -84,6 +91,9 @@ public class TweetDetail extends AppCompatActivity implements View.OnClickListen
|
|||
}
|
||||
|
||||
private void setContent() {
|
||||
ColorPreferences mColor = ColorPreferences.getInstance(getApplicationContext());
|
||||
LinearLayout background = (LinearLayout) findViewById(R.id.tweet_detail);
|
||||
background.setBackgroundColor(mColor.getBackgroundColor());//TODO
|
||||
ShowStatus set = new ShowStatus(this);
|
||||
set.execute(tweetID);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.nuclearfog.twidda.window;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.View;
|
||||
|
@ -9,8 +10,9 @@ import android.widget.LinearLayout;
|
|||
|
||||
import org.nuclearfog.twidda.backend.SendStatus;
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.database.ColorPreferences;
|
||||
|
||||
public class TweetPopup extends AppCompatActivity {
|
||||
public class TweetPopup extends AppCompatActivity implements View.OnClickListener {
|
||||
|
||||
private EditText tweetfield;
|
||||
private long inReplyId;
|
||||
|
@ -19,28 +21,39 @@ public class TweetPopup extends AppCompatActivity {
|
|||
protected void onCreate(Bundle SavedInstance) {
|
||||
super.onCreate(SavedInstance);
|
||||
setContentView(R.layout.tweetwindow);
|
||||
|
||||
inReplyId = getIntent().getExtras().getLong("TweetID");
|
||||
|
||||
getWindow().setLayout(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
|
||||
|
||||
Button tweetButton = (Button) findViewById(R.id.sendTweet);
|
||||
Button closeButton = (Button) findViewById(R.id.close);
|
||||
tweetfield = (EditText) findViewById(R.id.tweet_input);
|
||||
|
||||
Button closeButton = (Button) findViewById(R.id.close);
|
||||
closeButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
final int size = LinearLayout.LayoutParams.WRAP_CONTENT;
|
||||
getWindow().setLayout(size, size);
|
||||
|
||||
Button tweetButton = (Button) findViewById(R.id.sendTweet);
|
||||
tweetButton.setOnClickListener(new Button.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
closeButton.setOnClickListener(this);
|
||||
tweetButton.setOnClickListener(this);
|
||||
|
||||
LinearLayout root = (LinearLayout) findViewById(R.id.tweet_popup);
|
||||
ColorPreferences mColor = ColorPreferences.getInstance(this);
|
||||
root.setBackgroundColor(mColor.getTweetColor());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch(v.getId()){
|
||||
case R.id.sendTweet:
|
||||
send();
|
||||
}
|
||||
});
|
||||
break;
|
||||
case R.id.close:
|
||||
finish();
|
||||
break;
|
||||
}
|
||||
finish();
|
||||
}
|
||||
|
||||
private void send() {
|
||||
|
@ -52,9 +65,4 @@ public class TweetPopup extends AppCompatActivity {
|
|||
sendTweet.execute(tweet);
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
}
|
||||
}
|
|
@ -19,26 +19,46 @@ import org.nuclearfog.twidda.database.UserDatabase;
|
|||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.UserAdapter;
|
||||
|
||||
public class TwitterSearch extends AppCompatActivity {
|
||||
public class TwitterSearch extends AppCompatActivity implements AdapterView.OnItemClickListener,
|
||||
SwipeRefreshLayout.OnRefreshListener, TabHost.OnTabChangeListener {
|
||||
|
||||
private String search;
|
||||
private ListView tweetSearch, userSearch;
|
||||
private SwipeRefreshLayout tweetReload,userReload;
|
||||
private String currentTab = "search_result";
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
setContentView(R.layout.search);
|
||||
search = getIntent().getExtras().getString("search");
|
||||
|
||||
Toolbar tool = (Toolbar) findViewById(R.id.search_toolbar);
|
||||
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);
|
||||
TabHost tabhost = (TabHost)findViewById(R.id.search_tab);
|
||||
tabhost.setup();
|
||||
setSupportActionBar(tool);
|
||||
getSupportActionBar().setDisplayShowTitleEnabled(false);
|
||||
search = getIntent().getExtras().getString("search");
|
||||
setTabContent();
|
||||
setListener();
|
||||
|
||||
TabHost.TabSpec tab1 = tabhost.newTabSpec("search_result");
|
||||
tab1.setContent(R.id.searchtweets);
|
||||
tab1.setIndicator("",getResources().getDrawable(R.drawable.search_result));
|
||||
tabhost.addTab(tab1);
|
||||
|
||||
TabHost.TabSpec tab2 = tabhost.newTabSpec("user_result");
|
||||
tab2.setContent(R.id.searchusers);
|
||||
tab2.setIndicator("",getResources().getDrawable(R.drawable.user_result));
|
||||
tabhost.addTab(tab2);
|
||||
|
||||
tabhost.setOnTabChangedListener(this);
|
||||
tweetSearch.setOnItemClickListener(this);
|
||||
userSearch.setOnItemClickListener(this);
|
||||
tweetReload.setOnRefreshListener(this);
|
||||
userReload.setOnRefreshListener(this);
|
||||
|
||||
getContent(Search.TWEETS);
|
||||
}
|
||||
|
||||
|
@ -61,10 +81,10 @@ public class TwitterSearch extends AppCompatActivity {
|
|||
return true;
|
||||
}
|
||||
|
||||
private void setListener() {
|
||||
tweetSearch.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
switch(parent.getId()) {
|
||||
case R.id.tweet_result:
|
||||
if(!tweetReload.isRefreshing()) {
|
||||
TimelineAdapter tlAdp = (TimelineAdapter) tweetSearch.getAdapter();
|
||||
TweetDatabase twDB = tlAdp.getAdapter();
|
||||
|
@ -77,11 +97,8 @@ public class TwitterSearch extends AppCompatActivity {
|
|||
intent.putExtras(bundle);
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
});
|
||||
userSearch.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
break;
|
||||
case R.id.user_result:
|
||||
if(!userReload.isRefreshing()) {
|
||||
UserAdapter uAdp = (UserAdapter) userSearch.getAdapter();
|
||||
UserDatabase uDb = uAdp.getAdapter();
|
||||
|
@ -92,48 +109,31 @@ public class TwitterSearch extends AppCompatActivity {
|
|||
profile.putExtras(bundle);
|
||||
startActivity(profile);
|
||||
}
|
||||
}
|
||||
});
|
||||
tweetReload.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
switch(currentTab){
|
||||
case "search_result":
|
||||
getContent(Search.TWEETS);
|
||||
}
|
||||
});
|
||||
userReload.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
break;
|
||||
case "user_result":
|
||||
getContent(Search.USERS);
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onTabChanged(String tabId) {
|
||||
tweetReload.setRefreshing(false);
|
||||
userReload.setRefreshing(false);
|
||||
currentTab = tabId;
|
||||
}
|
||||
|
||||
private void getContent(final String MODE){
|
||||
private void getContent(final String MODE) {
|
||||
Search s = new Search(TwitterSearch.this);
|
||||
s.execute(MODE,search);
|
||||
|
||||
}
|
||||
}
|
|
@ -19,16 +19,18 @@ import org.nuclearfog.twidda.backend.ProfileTweets;
|
|||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
|
||||
public class UserProfile extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemClickListener {
|
||||
public class UserProfile extends AppCompatActivity implements View.OnClickListener,
|
||||
AdapterView.OnItemClickListener, SwipeRefreshLayout.OnRefreshListener, TabHost.OnTabChangeListener {
|
||||
|
||||
private SwipeRefreshLayout homeReload, favoriteReload;
|
||||
private ListView homeTweets, homeFavorits;
|
||||
private TextView txtFollowing, txtFollower;
|
||||
private long userId, tweetId;
|
||||
private boolean home;
|
||||
private String currentTab = "tweets";
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstance){
|
||||
protected void onCreate(Bundle savedInstance) {
|
||||
super.onCreate(savedInstance);
|
||||
setContentView(R.layout.profile);
|
||||
Toolbar tool = (Toolbar) findViewById(R.id.profile_toolbar);
|
||||
|
@ -42,15 +44,30 @@ public class UserProfile extends AppCompatActivity implements View.OnClickListen
|
|||
txtFollower = (TextView)findViewById(R.id.follower);
|
||||
homeReload = (SwipeRefreshLayout) findViewById(R.id.hometweets);
|
||||
favoriteReload = (SwipeRefreshLayout) findViewById(R.id.homefavorits);
|
||||
TabHost mTab = (TabHost)findViewById(R.id.profile_tab);
|
||||
|
||||
txtFollowing.setOnClickListener(this);
|
||||
txtFollower.setOnClickListener(this);
|
||||
homeTweets.setOnItemClickListener(this);
|
||||
homeFavorits.setOnItemClickListener(this);
|
||||
homeReload.setOnRefreshListener(this);
|
||||
favoriteReload.setOnRefreshListener(this);
|
||||
|
||||
mTab.setup();
|
||||
// Tab #1
|
||||
TabHost.TabSpec tab1 = mTab.newTabSpec("tweets");
|
||||
tab1.setContent(R.id.hometweets);
|
||||
tab1.setIndicator("",getResources().getDrawable(R.drawable.timeline_icon));
|
||||
mTab.addTab(tab1);
|
||||
// Tab #2
|
||||
TabHost.TabSpec tab2 = mTab.newTabSpec("favorites");
|
||||
tab2.setContent(R.id.homefavorits);
|
||||
tab2.setIndicator("",getResources().getDrawable(R.drawable.favorite_icon));
|
||||
mTab.addTab(tab2);
|
||||
|
||||
mTab.setOnTabChangedListener(this);
|
||||
|
||||
initElements();
|
||||
initTabs();
|
||||
initSwipe();
|
||||
getContent();
|
||||
}
|
||||
|
||||
|
@ -131,55 +148,29 @@ public class UserProfile extends AppCompatActivity implements View.OnClickListen
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Init Tab Listener
|
||||
*/
|
||||
private void initTabs(){
|
||||
TabHost mTab = (TabHost)findViewById(R.id.profile_tab);
|
||||
mTab.setup();
|
||||
// Tab #1
|
||||
TabHost.TabSpec tab1 = mTab.newTabSpec("tweets");
|
||||
tab1.setContent(R.id.hometweets);
|
||||
tab1.setIndicator("",getResources().getDrawable(R.drawable.timeline_icon));
|
||||
mTab.addTab(tab1);
|
||||
// Tab #2
|
||||
TabHost.TabSpec tab2 = mTab.newTabSpec("favorites");
|
||||
tab2.setContent(R.id.homefavorits);
|
||||
tab2.setIndicator("",getResources().getDrawable(R.drawable.favorite_icon));
|
||||
mTab.addTab(tab2);
|
||||
// Listener
|
||||
mTab.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
|
||||
@Override
|
||||
public void onTabChanged(String tabId) {
|
||||
homeReload.setRefreshing(false);
|
||||
favoriteReload.setRefreshing(false);
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
switch(currentTab) {
|
||||
case "tweets":
|
||||
getTweets(0L);
|
||||
break;
|
||||
case "favorites":
|
||||
getTweets(1L);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Init SwipeRefresh
|
||||
*/
|
||||
private void initSwipe() {
|
||||
homeReload.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
getTweets(0L);
|
||||
}
|
||||
});
|
||||
favoriteReload.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
getTweets(1L);
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onTabChanged(String tabId) {
|
||||
homeReload.setRefreshing(false);
|
||||
favoriteReload.setRefreshing(false);
|
||||
currentTab = tabId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load Content from Database
|
||||
*/
|
||||
private void getContent(){
|
||||
private void getContent() {
|
||||
new Thread(){
|
||||
@Override
|
||||
public void run(){
|
||||
|
@ -203,9 +194,8 @@ public class UserProfile extends AppCompatActivity implements View.OnClickListen
|
|||
|
||||
/**
|
||||
* Download Content
|
||||
* @param mode 0 = Home Tweets, 1 = Home Favorite Tweets
|
||||
*/
|
||||
private void getTweets(long mode ){
|
||||
private void getTweets(long mode) {
|
||||
ProfileTweets mProfile = new ProfileTweets(this);
|
||||
mProfile.execute(userId, mode);
|
||||
}
|
||||
|
|
|
@ -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="M10,0.4c-5.303,0 -9.601,4.298 -9.601,9.6c0,5.303 4.298,9.601 9.601,9.601c5.301,0 9.6,-4.298 9.6,-9.601C19.6,4.698 15.301,0.4 10,0.4zM2.399,10c0,-4.197 3.402,-7.6 7.6,-7.6c1.829,0 3.506,0.647 4.817,1.723L4.122,14.817C3.046,13.505 2.399,11.829 2.399,10zM9.999,17.599c-1.828,0 -3.505,-0.646 -4.815,-1.722L15.878,5.184C16.953,6.496 17.6,8.171 17.6,10C17.6,14.197 14.196,17.599 9.999,17.599z"/>
|
||||
</vector>
|
|
@ -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="M15.989,19.129C16,17 13.803,15.74 11.672,14.822c-2.123,-0.914 -2.801,-1.684 -2.801,-3.334c0,-0.989 0.648,-0.667 0.932,-2.481c0.12,-0.752 0.692,-0.012 0.802,-1.729c0,-0.684 -0.313,-0.854 -0.313,-0.854s0.159,-1.013 0.221,-1.793c0.064,-0.817 -0.398,-2.56 -2.301,-3.095C7.88,1.195 7.655,0.654 8.679,0.112c-2.24,-0.104 -2.761,1.068 -3.954,1.93c-1.015,0.756 -1.289,1.953 -1.24,2.59c0.065,0.78 0.223,1.793 0.223,1.793s-0.314,0.17 -0.314,0.854c0.11,1.718 0.684,0.977 0.803,1.729C4.481,10.822 5.13,10.5 5.13,11.489c0,1.65 -0.212,2.21 -2.336,3.124C0.663,15.53 0,17 0.011,19.129C0.014,19.766 0,20 0,20h16C16,20 15.986,19.766 15.989,19.129zM17,10V7h-2v3h-3v2h3v3h2v-3h3v-2H17z"/>
|
||||
</vector>
|
|
@ -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="M4.254,19.567c0.307,-0.982 0.77,-2.364 1.391,-4.362c2.707,-0.429 3.827,0.341 5.546,-2.729c-1.395,0.427 -3.077,-0.792 -2.987,-1.321c0.091,-0.528 3.913,0.381 6.416,-3.173c-3.155,0.696 -4.164,-0.836 -3.757,-1.067c0.939,-0.534 3.726,-0.222 5.212,-1.669c0.766,-0.745 1.125,-2.556 0.813,-3.202c-0.374,-0.781 -2.656,-1.946 -3.914,-1.836c-1.258,0.109 -3.231,4.79 -3.817,4.754C8.573,4.925 8.454,2.864 9.476,0.949c-1.077,0.477 -3.051,1.959 -3.67,3.226c-1.153,2.357 0.108,7.766 -0.296,7.958c-0.405,0.193 -1.766,-2.481 -2.172,-3.694c-0.555,1.859 -0.568,3.721 1.053,6.194c-0.611,1.623 -0.945,3.491 -0.996,4.441C3.371,19.833 4.119,19.996 4.254,19.567z"/>
|
||||
</vector>
|
|
@ -28,7 +28,7 @@
|
|||
android:layout_height="wrap_content" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/color_link"
|
||||
android:id="@+id/color_tweet"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
|
|
@ -47,7 +47,6 @@
|
|||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_margin="5dp"
|
||||
android:background="@mipmap/pb"
|
||||
android:contentDescription="@string/profile_image" />
|
||||
|
||||
<TextView
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/tweet_detail"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_horizontal"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/tweet_popup"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_gravity="center"
|
||||
|
|
|
@ -11,8 +11,7 @@
|
|||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:contentDescription="@string/profile_image"
|
||||
android:padding="5dp"
|
||||
app:srcCompat="@mipmap/pb" />
|
||||
android:padding="5dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item
|
||||
android:id="@+id/profile_tweet"
|
||||
android:icon="@drawable/tweet"
|
||||
android:title="@string/tweet"
|
||||
android:visible="true"
|
||||
app:showAsAction="always" />
|
||||
<item
|
||||
android:id="@+id/profile_follow"
|
||||
android:icon="@drawable/follow"
|
||||
android:title="follow "
|
||||
android:visible="false"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/profile_block"
|
||||
android:icon="@drawable/block"
|
||||
android:title="Block"
|
||||
android:visible="false"
|
||||
app:showAsAction="ifRoom" />
|
||||
</menu>
|
Loading…
Reference in New Issue