code cleanup

This commit is contained in:
NudeDude 2019-04-12 20:44:00 +02:00
parent d10cc8adef
commit 82489e2aba
16 changed files with 200 additions and 191 deletions

View File

@ -22,7 +22,7 @@ import android.widget.TabHost.TabSpec;
import org.nuclearfog.twidda.adapter.OnItemClickListener;
import org.nuclearfog.twidda.adapter.TimelineAdapter;
import org.nuclearfog.twidda.adapter.TrendAdapter;
import org.nuclearfog.twidda.backend.MainPage;
import org.nuclearfog.twidda.backend.StartPage;
import org.nuclearfog.twidda.backend.items.Tweet;
import org.nuclearfog.twidda.database.GlobalSettings;
import org.nuclearfog.twidda.window.AppSettings;
@ -33,16 +33,16 @@ import org.nuclearfog.twidda.window.TweetPopup;
import org.nuclearfog.twidda.window.UserProfile;
import static android.os.AsyncTask.Status.RUNNING;
import static org.nuclearfog.twidda.backend.MainPage.Mode.DATA;
import static org.nuclearfog.twidda.backend.MainPage.Mode.HOME;
import static org.nuclearfog.twidda.backend.MainPage.Mode.MENT;
import static org.nuclearfog.twidda.backend.MainPage.Mode.TRND;
import static org.nuclearfog.twidda.backend.StartPage.Mode.DATA;
import static org.nuclearfog.twidda.backend.StartPage.Mode.HOME;
import static org.nuclearfog.twidda.backend.StartPage.Mode.MENT;
import static org.nuclearfog.twidda.backend.StartPage.Mode.TRND;
import static org.nuclearfog.twidda.window.TweetDetail.STAT_CHANGED;
/**
* Main Activity
*
* @see MainPage
* @see StartPage
*/
public class MainActivity extends AppCompatActivity implements OnRefreshListener,
OnTabChangeListener, OnItemClickListener {
@ -58,7 +58,7 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
private View lastTab, root;
private TrendAdapter trendsAdapter;
private GlobalSettings settings;
private MainPage home;
private StartPage mainAsync;
private TabHost tabhost;
private int tabIndex = 0;
@ -125,7 +125,7 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
if (!settings.getLogin()) {
Intent i = new Intent(this, LoginPage.class);
startActivityForResult(i, LOGIN);
} else if (home == null) {
} else if (mainAsync == null) {
timelineAdapter = new TimelineAdapter(this);
trendsAdapter = new TrendAdapter(this);
mentionAdapter = new TimelineAdapter(this);
@ -145,8 +145,8 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
trendList.setAdapter(trendsAdapter);
mentionList.setAdapter(mentionAdapter);
home = new MainPage(this, DATA);
home.execute(1);
mainAsync = new StartPage(this, DATA);
mainAsync.execute(1);
setIndicator();
}
@ -155,8 +155,8 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
@Override
protected void onStop() {
if (home != null && home.getStatus() == RUNNING) {
home.cancel(true);
if (mainAsync != null && mainAsync.getStatus() == RUNNING) {
mainAsync.cancel(true);
}
super.onStop();
}
@ -166,18 +166,17 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
protected void onActivityResult(int reqCode, int returnCode, Intent i) {
switch (reqCode) {
case LOGIN:
if (returnCode == RESULT_CANCELED) {
if (returnCode == RESULT_CANCELED)
finish();
}
break;
case TWEET:
if (returnCode == STAT_CHANGED)
home = null;
mainAsync = null;
break;
case SETTING:
home = null;
mainAsync = null;
break;
}
super.onActivityResult(reqCode, returnCode, i);
@ -213,7 +212,6 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
MenuItem tweet = m.findItem(R.id.action_tweet);
MenuItem search = m.findItem(R.id.action_search);
MenuItem setting = m.findItem(R.id.action_settings);
SearchView searchQuery = (SearchView) search.getActionView();
switch (tabIndex) {
case 0:
@ -232,7 +230,6 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
break;
case 2:
searchQuery.onActionViewCollapsed();
profile.setVisible(false);
search.setVisible(false);
tweet.setVisible(false);
@ -261,8 +258,8 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
break;
case R.id.action_settings:
if (home != null && home.getStatus() == RUNNING)
home.cancel(true);
if (mainAsync != null && mainAsync.getStatus() == RUNNING)
mainAsync.cancel(true);
Intent settings = new Intent(this, AppSettings.class);
startActivityForResult(settings, SETTING);
break;
@ -283,19 +280,22 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
@Override
public void onRefresh() {
if (mainAsync != null && mainAsync.getStatus() == RUNNING)
mainAsync.cancel(true);
switch (tabIndex) {
default:
case 0:
home = new MainPage(this, HOME);
mainAsync = new StartPage(this, HOME);
break;
case 1:
home = new MainPage(this, TRND);
mainAsync = new StartPage(this, TRND);
break;
case 2:
home = new MainPage(this, MENT);
mainAsync = new StartPage(this, MENT);
break;
}
home.execute(1);
mainAsync.execute(1);
}
@ -316,7 +316,7 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
Tweet tweet = timelineAdapter.getData(position);
if (tweet.getEmbeddedTweet() != null)
tweet = tweet.getEmbeddedTweet();
openTweet(tweet.getId(), tweet.getUser().getId(), tweet.getUser().getScreenname());
openTweet(tweet.getId(), tweet.getUser().getScreenname());
}
break;
@ -336,7 +336,7 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
Tweet tweet = mentionAdapter.getData(position);
if (tweet.getEmbeddedTweet() != null)
tweet = tweet.getEmbeddedTweet();
openTweet(tweet.getId(), tweet.getUser().getId(), tweet.getUser().getScreenname());
openTweet(tweet.getId(), tweet.getUser().getScreenname());
}
break;
}
@ -366,10 +366,9 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
}
private void openTweet(long tweetId, long userId, String username) {
private void openTweet(long tweetId, String username) {
Intent intent = new Intent(this, TweetDetail.class);
intent.putExtra("tweetID", tweetId);
intent.putExtra("userID", userId);
intent.putExtra("username", username);
startActivityForResult(intent, TWEET);
}

View File

@ -18,14 +18,14 @@ import java.lang.ref.WeakReference;
import java.net.URL;
public class ImageLoad extends AsyncTask<String, Void, Boolean> {
public class ImageLoader extends AsyncTask<String, Void, Boolean> {
private WeakReference<ImageDetail> ui;
private ImageAdapter imageAdapter;
private Bitmap images[];
public ImageLoad(@NonNull ImageDetail context) {
public ImageLoader(@NonNull ImageDetail context) {
ui = new WeakReference<>(context);
RecyclerView imageList = context.findViewById(R.id.image_list);
imageAdapter = (ImageAdapter) imageList.getAdapter();

View File

@ -73,10 +73,12 @@ public class MessageLoader extends AsyncTask<Long, Void, Void> {
break;
}
} catch (TwitterException err) {
if (err.getErrorCode() == 34)
if (err.getErrorCode() == 34) {
mData.deleteDm(messageId);
} else {
this.err = err;
failure = true;
}
} catch (Exception err) {
if(err.getMessage() != null)
Log.e("Direct Message", err.getMessage());
@ -98,11 +100,9 @@ public class MessageLoader extends AsyncTask<Long, Void, Void> {
mAdapter.setData(message);
mAdapter.notifyDataSetChanged();
if (failure) {
if (err != null && err.getErrorCode() != 34)
if (failure)
ErrorHandler.printError(ui.get(), err);
}
}
@Override

View File

@ -22,6 +22,7 @@ import org.nuclearfog.twidda.backend.items.Tweet;
import org.nuclearfog.twidda.backend.items.TwitterUser;
import org.nuclearfog.twidda.database.DatabaseAdapter;
import org.nuclearfog.twidda.database.GlobalSettings;
import org.nuclearfog.twidda.window.ImageDetail;
import org.nuclearfog.twidda.window.UserDetail;
import org.nuclearfog.twidda.window.UserProfile;
@ -34,8 +35,8 @@ import java.util.List;
import twitter4j.TwitterException;
import static android.view.View.VISIBLE;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
public class ProfileLoader extends AsyncTask<Long, Void, Void> {
@ -300,7 +301,10 @@ public class ProfileLoader extends AsyncTask<Long, Void, Void> {
profile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ui.get().imageClick(user.getImageLink());
Intent image = new Intent(ui.get(), ImageDetail.class);
image.putExtra("link", new String[]{user.getImageLink()});
ui.get().startActivity(image);
}
});
}

View File

@ -21,7 +21,7 @@ import java.util.List;
import twitter4j.TwitterException;
public class MainPage extends AsyncTask<Integer, Void, Void> {
public class StartPage extends AsyncTask<Integer, Void, Void> {
public enum Mode {
DATA,
@ -45,7 +45,7 @@ public class MainPage extends AsyncTask<Integer, Void, Void> {
private int woeId;
public MainPage(@NonNull MainActivity context, Mode mode) {
public StartPage(@NonNull MainActivity context, Mode mode) {
ui = new WeakReference<>(context);
mTwitter = TwitterEngine.getInstance(context);
GlobalSettings settings = GlobalSettings.getInstance(context);

View File

@ -19,7 +19,7 @@ import java.lang.ref.WeakReference;
import twitter4j.TwitterException;
public class StatusUpload extends AsyncTask<String, Void, Boolean> {
public class StatusUploader extends AsyncTask<String, Void, Boolean> {
private WeakReference<TweetPopup> ui;
private TwitterEngine mTwitter;
@ -30,7 +30,7 @@ public class StatusUpload extends AsyncTask<String, Void, Boolean> {
private long replyId;
public StatusUpload(@NonNull TweetPopup context, String tweet, long replyId) {
public StatusUploader(@NonNull TweetPopup context, String tweet, long replyId) {
ui = new WeakReference<>(context);
mTwitter = TwitterEngine.getInstance(context);
inflater = LayoutInflater.from(context);

View File

@ -33,7 +33,7 @@ import static org.nuclearfog.twidda.backend.MessageLoader.Mode.LDR;
*/
public class DirectMessage extends AppCompatActivity implements OnRefreshListener, OnItemSelected {
private MessageLoader mLoader;
private MessageLoader messageAsync;
private MessageAdapter mAdapter;
private SwipeRefreshLayout messageRefresh;
private GlobalSettings settings;
@ -66,21 +66,21 @@ public class DirectMessage extends AppCompatActivity implements OnRefreshListene
@Override
protected void onStart() {
super.onStart();
if (mLoader == null) {
if (messageAsync == null) {
mAdapter = new MessageAdapter(this);
mAdapter.setColor(settings.getFontColor(), settings.getHighlightColor());
mAdapter.setImageLoad(settings.getImageLoad());
dmList.setAdapter(mAdapter);
mLoader = new MessageLoader(this, LDR);
mLoader.execute();
messageAsync = new MessageLoader(this, LDR);
messageAsync.execute();
}
}
@Override
protected void onStop() {
if (mLoader != null && mLoader.getStatus() == RUNNING) {
mLoader.cancel(true);
if (messageAsync != null && messageAsync.getStatus() == RUNNING) {
messageAsync.cancel(true);
}
super.onStop();
}
@ -95,7 +95,7 @@ public class DirectMessage extends AppCompatActivity implements OnRefreshListene
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mLoader != null && mLoader.getStatus() != RUNNING) {
if (messageAsync != null && messageAsync.getStatus() != RUNNING) {
switch (item.getItemId()) {
case R.id.message:
Intent sendDm = new Intent(this, MessagePopup.class);
@ -128,8 +128,8 @@ public class DirectMessage extends AppCompatActivity implements OnRefreshListene
.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mLoader = new MessageLoader(DirectMessage.this, DEL);
mLoader.execute(messageId);
messageAsync = new MessageLoader(DirectMessage.this, DEL);
messageAsync.execute(messageId);
}
}).show();
}
@ -162,7 +162,7 @@ public class DirectMessage extends AppCompatActivity implements OnRefreshListene
@Override
public void onRefresh() {
mLoader = new MessageLoader(this, GET);
mLoader.execute();
messageAsync = new MessageLoader(this, GET);
messageAsync.execute();
}
}

View File

@ -14,7 +14,7 @@ import android.widget.Toast;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.adapter.ImageAdapter;
import org.nuclearfog.twidda.adapter.ImageAdapter.OnImageClickListener;
import org.nuclearfog.twidda.backend.ImageLoad;
import org.nuclearfog.twidda.backend.ImageLoader;
import org.nuclearfog.zoomview.ZoomView;
import java.io.File;
@ -30,12 +30,12 @@ import static android.support.v7.widget.LinearLayoutManager.HORIZONTAL;
/**
* @see ImageLoad
* @see ImageLoader
*/
public class ImageDetail extends AppCompatActivity implements OnImageClickListener {
boolean storable = true;
private ImageLoad mImage;
private ImageLoader imageAsync;
private ZoomView zoomImage;
private String link[];
private int width;
@ -66,17 +66,17 @@ public class ImageDetail extends AppCompatActivity implements OnImageClickListen
@Override
protected void onStart() {
super.onStart();
if (mImage == null) {
mImage = new ImageLoad(this);
mImage.execute(link);
if (imageAsync == null) {
imageAsync = new ImageLoader(this);
imageAsync.execute(link);
}
}
@Override
protected void onDestroy() {
if (mImage != null && mImage.getStatus() == RUNNING)
mImage.cancel(true);
if (imageAsync != null && imageAsync.getStatus() == RUNNING)
imageAsync.cancel(true);
super.onDestroy();
}

View File

@ -24,7 +24,7 @@ import static android.os.AsyncTask.Status.RUNNING;
*/
public class LoginPage extends AppCompatActivity implements OnClickListener {
private Registration register;
private Registration registerAsync;
private EditText pin;
@Override
@ -40,8 +40,8 @@ public class LoginPage extends AppCompatActivity implements OnClickListener {
@Override
protected void onDestroy() {
if (register != null && register.getStatus() == RUNNING)
register.cancel(true);
if (registerAsync != null && registerAsync.getStatus() == RUNNING)
registerAsync.cancel(true);
super.onDestroy();
}
@ -55,20 +55,20 @@ public class LoginPage extends AppCompatActivity implements OnClickListener {
@Override
public void onClick(View v) {
if (register != null && register.getStatus() == RUNNING)
register.cancel(true);
if (registerAsync != null && registerAsync.getStatus() == RUNNING)
registerAsync.cancel(true);
switch (v.getId()) {
case R.id.linkButton:
register = new Registration(this);
register.execute("");
registerAsync = new Registration(this);
registerAsync.execute("");
break;
case R.id.get:
String twitterPin = pin.getText().toString();
if (!twitterPin.trim().isEmpty()) {
register = new Registration(this);
register.execute(twitterPin);
registerAsync = new Registration(this);
registerAsync.execute(twitterPin);
} else {
Toast.makeText(this, R.string.enter_pin, Toast.LENGTH_LONG).show();
}

View File

@ -29,7 +29,7 @@ import static android.os.AsyncTask.Status.RUNNING;
*/
public class MessagePopup extends AppCompatActivity implements View.OnClickListener {
private MessageUpload upload;
private MessageUpload messageAsync;
private EditText receiver, text;
private String mediaPath = "";
@ -69,8 +69,8 @@ public class MessagePopup extends AppCompatActivity implements View.OnClickListe
closeDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (upload != null && upload.getStatus() == RUNNING)
upload.cancel(true);
if (messageAsync != null && messageAsync.getStatus() == RUNNING)
messageAsync.cancel(true);
finish();
}
});
@ -107,8 +107,8 @@ public class MessagePopup extends AppCompatActivity implements View.OnClickListe
String username = receiver.getText().toString();
String message = text.getText().toString();
if (!username.trim().isEmpty() && (!message.trim().isEmpty() || !mediaPath.isEmpty())) {
upload = new MessageUpload(this);
upload.execute(username, message, mediaPath);
messageAsync = new MessageUpload(this);
messageAsync.execute(username, message, mediaPath);
} else {
Toast.makeText(this, R.string.error_dm, Toast.LENGTH_SHORT).show();
}

View File

@ -34,7 +34,7 @@ import static org.nuclearfog.twidda.backend.ProfileEditor.Mode.WRITE_DATA;
*/
public class ProfileEdit extends AppCompatActivity implements View.OnClickListener {
private ProfileEditor mEdit;
private ProfileEditor editorAsync;
private TextView txtImg;
@Override
@ -60,17 +60,17 @@ public class ProfileEdit extends AppCompatActivity implements View.OnClickListen
@Override
protected void onStart() {
super.onStart();
if (mEdit == null) {
mEdit = new ProfileEditor(this, READ_DATA);
mEdit.execute();
if (editorAsync == null) {
editorAsync = new ProfileEditor(this, READ_DATA);
editorAsync.execute();
}
}
@Override
protected void onStop() {
if (mEdit != null && mEdit.getStatus() == AsyncTask.Status.RUNNING)
mEdit.cancel(true);
if (editorAsync != null && editorAsync.getStatus() == AsyncTask.Status.RUNNING)
editorAsync.cancel(true);
super.onStop();
}
@ -101,7 +101,7 @@ public class ProfileEdit extends AppCompatActivity implements View.OnClickListen
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_save:
if (mEdit == null || mEdit.getStatus() != RUNNING) {
if (editorAsync == null || editorAsync.getStatus() != RUNNING) {
save();
}
break;
@ -146,10 +146,10 @@ public class ProfileEdit extends AppCompatActivity implements View.OnClickListen
if (name.getText().toString().trim().isEmpty()) {
Toast.makeText(this, R.string.edit_empty_name, Toast.LENGTH_SHORT).show();
} else {
if (mEdit != null && mEdit.getStatus() == RUNNING)
mEdit.cancel(true);
mEdit = new ProfileEditor(this, WRITE_DATA);
mEdit.execute();
if (editorAsync != null && editorAsync.getStatus() == RUNNING)
editorAsync.cancel(true);
editorAsync = new ProfileEditor(this, WRITE_DATA);
editorAsync.execute();
}
}

View File

@ -42,7 +42,7 @@ public class SearchPage extends AppCompatActivity implements OnRefreshListener,
private UserAdapter userAdapter;
private SwipeRefreshLayout tweetReload;
private GlobalSettings settings;
private TwitterSearch mSearch;
private TwitterSearch searchAsync;
private View lastView, twUnderline, usUnderline;
private TabHost tabhost;
private String search = "";
@ -76,7 +76,6 @@ public class SearchPage extends AppCompatActivity implements OnRefreshListener,
View usIndicator = inflater.inflate(R.layout.tab_us, null);
twUnderline = twIndicator.findViewById(R.id.ts_divider);
usUnderline = usIndicator.findViewById(R.id.us_divider);
twUnderline.setBackgroundColor(settings.getHighlightColor());
tweetReload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
tabhost.setup();
@ -84,12 +83,12 @@ public class SearchPage extends AppCompatActivity implements OnRefreshListener,
tab1.setContent(R.id.searchtweets);
tab1.setIndicator(twIndicator);
tabhost.addTab(tab1);
TabHost.TabSpec tab2 = tabhost.newTabSpec("user_result");
tab2.setContent(R.id.user_result);
tab2.setIndicator(usIndicator);
tabhost.addTab(tab2);
lastView = tabhost.getCurrentView();
setIndicator();
tweetSearch.setLayoutManager(new LinearLayoutManager(this));
userSearch.setLayoutManager(new LinearLayoutManager(this));
@ -102,7 +101,7 @@ public class SearchPage extends AppCompatActivity implements OnRefreshListener,
@Override
protected void onStart() {
super.onStart();
if (mSearch == null) {
if (searchAsync == null) {
searchAdapter = new TimelineAdapter(this);
searchAdapter.setColor(settings.getHighlightColor(), settings.getFontColor());
searchAdapter.toggleImage(settings.getImageLoad());
@ -113,16 +112,16 @@ public class SearchPage extends AppCompatActivity implements OnRefreshListener,
userAdapter.setColor(settings.getFontColor());
userSearch.setAdapter(userAdapter);
mSearch = new TwitterSearch(this);
mSearch.execute(search);
searchAsync = new TwitterSearch(this);
searchAsync.execute(search);
}
}
@Override
protected void onStop() {
if (mSearch != null && mSearch.getStatus() == RUNNING)
mSearch.cancel(true);
if (searchAsync != null && searchAsync.getStatus() == RUNNING)
searchAsync.cancel(true);
super.onStop();
}
@ -181,7 +180,6 @@ public class SearchPage extends AppCompatActivity implements OnRefreshListener,
Tweet tweet = searchAdapter.getData(position);
Intent tweetdetail = new Intent(this, TweetDetail.class);
tweetdetail.putExtra("tweetID", tweet.getId());
tweetdetail.putExtra("userID", tweet.getUser().getId());
tweetdetail.putExtra("username", tweet.getUser().getScreenname());
startActivity(tweetdetail);
break;
@ -200,8 +198,10 @@ public class SearchPage extends AppCompatActivity implements OnRefreshListener,
@Override
public void onRefresh() {
mSearch = new TwitterSearch(this);
mSearch.execute(search);
if (searchAsync != null && searchAsync.getStatus() == RUNNING)
searchAsync.cancel(true);
searchAsync = new TwitterSearch(this);
searchAsync.execute(search);
}
@ -209,14 +209,20 @@ public class SearchPage extends AppCompatActivity implements OnRefreshListener,
public void onTabChanged(String tabId) {
animate();
tabIndex = tabhost.getCurrentTab();
setIndicator();
}
private void setIndicator() {
switch (tabIndex) {
case 0:
twUnderline.setBackgroundColor(settings.getHighlightColor());
usUnderline.setBackgroundColor(0);
break;
case 1:
usUnderline.setBackgroundColor(settings.getHighlightColor());
twUnderline.setBackgroundResource(0);
twUnderline.setBackgroundColor(0);
break;
}
}

View File

@ -55,7 +55,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
private RecyclerView answer_list;
private TimelineAdapter answerAdapter;
private StatusLoader mStat;
private StatusLoader statusAsync;
private GlobalSettings settings;
private SwipeRefreshLayout answerReload;
private ConnectivityManager mConnect;
@ -118,21 +118,21 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
protected void onStart() {
super.onStart();
if (mStat == null) {
if (statusAsync == null) {
answerAdapter = new TimelineAdapter(this);
answerAdapter.toggleImage(settings.getImageLoad());
answerAdapter.setColor(settings.getHighlightColor(), settings.getFontColor());
answer_list.setAdapter(answerAdapter);
mStat = new StatusLoader(this, LOAD);
mStat.execute(tweetID);
statusAsync = new StatusLoader(this, LOAD);
statusAsync.execute(tweetID);
}
}
@Override
protected void onStop() {
if (mStat != null && mStat.getStatus() == RUNNING)
mStat.cancel(true);
if (statusAsync != null && statusAsync.getStatus() == RUNNING)
statusAsync.cancel(true);
super.onStop();
}
@ -140,7 +140,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
@Override
protected void onActivityResult(int reqCode, int returnCode, Intent i) {
if (reqCode == TWEET && returnCode == STAT_CHANGED) {
mStat = null;
statusAsync = null;
}
super.onActivityResult(reqCode, returnCode, i);
}
@ -163,7 +163,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(mStat != null && mStat.getStatus() != RUNNING) {
if (statusAsync != null && statusAsync.getStatus() != RUNNING) {
switch (item.getItemId()) {
case R.id.delete_tweet:
Builder deleteDialog = new Builder(this);
@ -171,10 +171,10 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
deleteDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (mStat != null && mStat.getStatus() == RUNNING)
mStat.cancel(true);
mStat = new StatusLoader(TweetDetail.this, DELETE);
mStat.execute(tweetID);
if (statusAsync != null && statusAsync.getStatus() == RUNNING)
statusAsync.cancel(true);
statusAsync = new StatusLoader(TweetDetail.this, DELETE);
statusAsync.execute(tweetID);
}
});
deleteDialog.setNegativeButton(R.string.no_confirm, null);
@ -207,21 +207,21 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
@Override
public void onClick(View v) {
if (mStat != null && mStat.getStatus() != RUNNING) {
if (statusAsync != null && statusAsync.getStatus() != RUNNING) {
switch (v.getId()) {
case R.id.rt_button_detail:
if (mStat != null && mStat.getStatus() == RUNNING)
mStat.cancel(true);
mStat = new StatusLoader(this, RETWEET);
mStat.execute(tweetID);
if (statusAsync != null && statusAsync.getStatus() == RUNNING)
statusAsync.cancel(true);
statusAsync = new StatusLoader(this, RETWEET);
statusAsync.execute(tweetID);
Toast.makeText(this, R.string.loading, Toast.LENGTH_SHORT).show();
break;
case R.id.fav_button_detail:
if (mStat != null && mStat.getStatus() == RUNNING)
mStat.cancel(true);
mStat = new StatusLoader(this, FAVORITE);
mStat.execute(tweetID);
if (statusAsync != null && statusAsync.getStatus() == RUNNING)
statusAsync.cancel(true);
statusAsync = new StatusLoader(this, FAVORITE);
statusAsync.execute(tweetID);
Toast.makeText(this, R.string.loading, Toast.LENGTH_SHORT).show();
break;
@ -273,8 +273,8 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
@Override
public void onRefresh() {
mStat = new StatusLoader(this, ANS);
mStat.execute(tweetID);
statusAsync = new StatusLoader(this, ANS);
statusAsync.execute(tweetID);
}

View File

@ -16,7 +16,7 @@ import android.widget.TextView;
import android.widget.Toast;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.StatusUpload;
import org.nuclearfog.twidda.backend.StatusUploader;
import org.nuclearfog.twidda.database.GlobalSettings;
import java.util.ArrayList;
@ -31,11 +31,11 @@ import static android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
/**
* Tweet Window
*
* @see StatusUpload
* @see StatusUploader
*/
public class TweetPopup extends AppCompatActivity implements OnClickListener {
private StatusUpload sendTweet;
private StatusUploader uploaderAsync;
private View imageButton, previewBtn;
private List<String> mediaPath;
private TextView imgCount;
@ -81,8 +81,8 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener {
@Override
protected void onDestroy() {
if (sendTweet != null && sendTweet.getStatus() == RUNNING)
sendTweet.cancel(true);
if (uploaderAsync != null && uploaderAsync.getStatus() == RUNNING)
uploaderAsync.cancel(true);
super.onDestroy();
}
@ -132,9 +132,9 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener {
switch (v.getId()) {
case R.id.sendTweet:
String tweetStr = tweet.getText().toString();
if (sendTweet != null && sendTweet.getStatus() == RUNNING)
sendTweet.cancel(true);
sendTweet = new StatusUpload(this, tweetStr, inReplyId);
if (uploaderAsync != null && uploaderAsync.getStatus() == RUNNING)
uploaderAsync.cancel(true);
uploaderAsync = new StatusUploader(this, tweetStr, inReplyId);
if (tweetStr.trim().isEmpty() && mediaPath.isEmpty()) {
Toast.makeText(this, R.string.empty_tweet, Toast.LENGTH_SHORT).show();
@ -143,9 +143,9 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener {
} else if (!mediaPath.isEmpty()) {
String[] paths = new String[mediaPath.size()];
paths = mediaPath.toArray(paths);
sendTweet.execute(paths);
uploaderAsync.execute(paths);
} else {
sendTweet.execute();
uploaderAsync.execute();
}
break;

View File

@ -34,7 +34,7 @@ public class UserDetail extends AppCompatActivity implements OnItemClickListener
private SwipeRefreshLayout userReload;
private UserAdapter usrAdp;
private GlobalSettings settings;
private UserLoader uList;
private UserLoader userAsync;
private int mode;
private long id;
@ -69,7 +69,7 @@ public class UserDetail extends AppCompatActivity implements OnItemClickListener
@Override
protected void onStart() {
super.onStart();
if (uList == null) {
if (userAsync == null) {
int titleId;
usrAdp = new UserAdapter(this);
usrAdp.toggleImage(settings.getImageLoad());
@ -79,26 +79,26 @@ public class UserDetail extends AppCompatActivity implements OnItemClickListener
switch (mode) {
case 0:
titleId = R.string.following;
uList = new UserLoader(UserDetail.this, FOLLOWING);
userAsync = new UserLoader(UserDetail.this, FOLLOWING);
break;
case 1:
titleId = R.string.follower;
uList = new UserLoader(UserDetail.this, FOLLOWERS);
userAsync = new UserLoader(UserDetail.this, FOLLOWERS);
break;
case 2:
titleId = R.string.retweet;
uList = new UserLoader(UserDetail.this, RETWEET);
userAsync = new UserLoader(UserDetail.this, RETWEET);
break;
case 3:
default:
titleId = R.string.favorite;
uList = new UserLoader(UserDetail.this, FAVORIT);
userAsync = new UserLoader(UserDetail.this, FAVORIT);
break;
}
uList.execute(id, -1L);
userAsync.execute(id, -1L);
if (getSupportActionBar() != null) {
getSupportActionBar().setTitle(titleId);
@ -109,8 +109,8 @@ public class UserDetail extends AppCompatActivity implements OnItemClickListener
@Override
protected void onStop() {
if (uList != null && uList.getStatus() == RUNNING)
uList.cancel(true);
if (userAsync != null && userAsync.getStatus() == RUNNING)
userAsync.cancel(true);
super.onStop();
}
@ -133,19 +133,19 @@ public class UserDetail extends AppCompatActivity implements OnItemClickListener
public void onRefresh() {
switch(mode) {
case 0:
uList = new UserLoader(UserDetail.this, FOLLOWING);
userAsync = new UserLoader(UserDetail.this, FOLLOWING);
break;
case 1:
uList = new UserLoader(UserDetail.this, FOLLOWERS);
userAsync = new UserLoader(UserDetail.this, FOLLOWERS);
break;
case 2:
uList = new UserLoader(UserDetail.this, RETWEET);
userAsync = new UserLoader(UserDetail.this, RETWEET);
break;
case 3:
default:
uList = new UserLoader(UserDetail.this, FAVORIT);
userAsync = new UserLoader(UserDetail.this, FAVORIT);
break;
}
uList.execute(id, -1L);
userAsync.execute(id, -1L);
}
}

View File

@ -44,7 +44,7 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
private static final int TWEET = 1;
private ProfileLoader mProfile;
private ProfileLoader profileAsync;
private GlobalSettings settings;
private RecyclerView homeList, favoriteList;
private TimelineAdapter tweetAdapter, favAdapter;
@ -103,7 +103,6 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
favorUnderline = favorIndicator.findViewById(R.id.favor_divider);
tweetCount = tweetIndicator.findViewById(R.id.profile_tweet_count);
favorCount = favorIndicator.findViewById(R.id.profile_favor_count);
tweetUnderline.setBackgroundColor(settings.getHighlightColor());
homeReload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
favoriteReload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());
@ -117,6 +116,7 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
tab2.setIndicator(favorIndicator);
mTab.addTab(tab2);
lastTab = mTab.getCurrentView();
setIndicator();
mTab.setOnTabChangedListener(this);
homeReload.setOnRefreshListener(this);
@ -127,7 +127,7 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
@Override
protected void onStart() {
super.onStart();
if (mProfile == null) {
if (profileAsync == null) {
tweetAdapter = new TimelineAdapter(this);
tweetAdapter.setColor(settings.getHighlightColor(), settings.getFontColor());
tweetAdapter.toggleImage(settings.getImageLoad());
@ -138,16 +138,16 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
favAdapter.toggleImage(settings.getImageLoad());
favoriteList.setAdapter(favAdapter);
mProfile = new ProfileLoader(this, ProfileLoader.Mode.LDR_PROFILE);
mProfile.execute(userId, 0L);
profileAsync = new ProfileLoader(this, ProfileLoader.Mode.LDR_PROFILE);
profileAsync.execute(userId, 0L);
}
}
@Override
protected void onStop() {
if (mProfile != null && mProfile.getStatus() == RUNNING)
mProfile.cancel(true);
if (profileAsync != null && profileAsync.getStatus() == RUNNING)
profileAsync.cancel(true);
super.onStop();
}
@ -155,7 +155,7 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
@Override
protected void onActivityResult(int reqCode, int returnCode, Intent i) {
if (reqCode == TWEET && returnCode == STAT_CHANGED) {
mProfile = null;
profileAsync = null;
}
super.onActivityResult(reqCode, returnCode, i);
}
@ -214,7 +214,7 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mProfile != null && mProfile.getStatus() != RUNNING) {
if (profileAsync != null && profileAsync.getStatus() != RUNNING) {
switch (item.getItemId()) {
case R.id.profile_tweet:
Intent tweet = new Intent(this, TweetPopup.class);
@ -224,16 +224,16 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
break;
case R.id.profile_follow:
mProfile = new ProfileLoader(this, ProfileLoader.Mode.ACTION_FOLLOW);
profileAsync = new ProfileLoader(this, ProfileLoader.Mode.ACTION_FOLLOW);
if (!isFollowing) {
mProfile.execute(userId);
profileAsync.execute(userId);
} else {
new Builder(this).setMessage(R.string.confirm_unfollow)
.setNegativeButton(R.string.no_confirm, null)
.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mProfile.execute(userId);
profileAsync.execute(userId);
}
})
.show();
@ -241,16 +241,16 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
break;
case R.id.profile_block:
mProfile = new ProfileLoader(this, ProfileLoader.Mode.ACTION_BLOCK);
profileAsync = new ProfileLoader(this, ProfileLoader.Mode.ACTION_BLOCK);
if (isBlocked) {
mProfile.execute(userId);
profileAsync.execute(userId);
} else {
new Builder(this).setMessage(R.string.confirm_block)
.setNegativeButton(R.string.no_confirm, null)
.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mProfile.execute(userId);
profileAsync.execute(userId);
}
})
.show();
@ -258,8 +258,8 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
break;
case R.id.profile_mute:
mProfile = new ProfileLoader(this, ProfileLoader.Mode.ACTION_MUTE);
mProfile.execute(userId);
profileAsync = new ProfileLoader(this, ProfileLoader.Mode.ACTION_MUTE);
profileAsync.execute(userId);
break;
case R.id.profile_message:
@ -276,7 +276,7 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
case R.id.profile_settings:
Intent editProfile = new Intent(this, ProfileEdit.class);
startActivity(editProfile);
mProfile = null;
profileAsync = null;
break;
}
}
@ -296,16 +296,18 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
@Override
public void onRefresh() {
if (profileAsync != null && profileAsync.getStatus() == RUNNING)
profileAsync.cancel(true);
switch (tabIndex) {
default:
case 0:
mProfile = new ProfileLoader(this, ProfileLoader.Mode.GET_TWEETS);
profileAsync = new ProfileLoader(this, ProfileLoader.Mode.GET_TWEETS);
break;
case 1:
mProfile = new ProfileLoader(this, ProfileLoader.Mode.GET_FAVORS);
profileAsync = new ProfileLoader(this, ProfileLoader.Mode.GET_FAVORS);
break;
}
mProfile.execute(userId);
profileAsync.execute(userId);
}
@ -313,19 +315,7 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
public void onTabChanged(String tabId) {
animate();
tabIndex = mTab.getCurrentTab();
switch (tabIndex) {
case 0:
favoriteList.smoothScrollToPosition(0);
tweetUnderline.setBackgroundColor(settings.getHighlightColor());
favorUnderline.setBackgroundColor(0);
break;
case 1:
homeList.smoothScrollToPosition(0);
favorUnderline.setBackgroundColor(settings.getHighlightColor());
tweetUnderline.setBackgroundColor(0);
break;
}
setIndicator();
}
@ -337,7 +327,7 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
Tweet tweet = tweetAdapter.getData(position);
if (tweet.getEmbeddedTweet() != null)
tweet = tweet.getEmbeddedTweet();
openTweet(tweet.getId(), tweet.getUser().getId(), tweet.getUser().getScreenname());
openTweet(tweet.getId(), tweet.getUser().getScreenname());
}
break;
@ -346,7 +336,7 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
Tweet tweet = favAdapter.getData(position);
if (tweet.getEmbeddedTweet() != null)
tweet = tweet.getEmbeddedTweet();
openTweet(tweet.getId(), tweet.getUser().getId(), tweet.getUser().getScreenname());
openTweet(tweet.getId(), tweet.getUser().getScreenname());
}
break;
}
@ -376,15 +366,32 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
}
private void openTweet(long tweetId, long userId, String username) {
private void openTweet(long tweetId, String username) {
Intent intent = new Intent(this, TweetDetail.class);
intent.putExtra("tweetID", tweetId);
intent.putExtra("userID", userId);
intent.putExtra("username", username);
startActivityForResult(intent, TWEET);
}
private void setIndicator() {
switch (tabIndex) {
case 0:
tweetUnderline.setBackgroundColor(settings.getHighlightColor());
favorUnderline.setBackgroundColor(0);
favoriteList.smoothScrollToPosition(0);
break;
case 1:
favorUnderline.setBackgroundColor(settings.getHighlightColor());
tweetUnderline.setBackgroundColor(0);
homeList.smoothScrollToPosition(0);
break;
}
}
private void animate() {
final int ANIM_DUR = 300;
final float LEFT = -1.0f;
@ -410,11 +417,4 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
}
lastTab = mTab.getCurrentView();
}
public void imageClick(String link) {
Intent image = new Intent(this, ImageDetail.class);
image.putExtra("link", new String[]{link});
startActivity(image);
}
}