removed redundant method call, bug fix, renamed class

This commit is contained in:
nuclearfog 2020-11-27 11:52:36 +01:00
parent ad6254ddaa
commit e2fd3a98a2
No known key found for this signature in database
GPG Key ID: D5490E4A81F97B14
12 changed files with 48 additions and 54 deletions

View File

@ -5,7 +5,6 @@
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application <application
android:allowBackup="false" android:allowBackup="false"

View File

@ -97,7 +97,6 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
@Nullable @Nullable
private Tweet tweet; private Tweet tweet;
private long tweetId;
@Override @Override
protected void onCreate(@Nullable Bundle b) { protected void onCreate(@Nullable Bundle b) {
@ -128,7 +127,7 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
Bundle param = getIntent().getExtras(); Bundle param = getIntent().getExtras();
FragmentAdapter adapter = new FragmentAdapter(getSupportFragmentManager()); FragmentAdapter adapter = new FragmentAdapter(getSupportFragmentManager());
if (param != null) { if (param != null) {
tweetId = param.getLong(KEY_TWEET_ID); long tweetId = param.getLong(KEY_TWEET_ID);
String username = param.getString(KEY_TWEET_NAME, ""); String username = param.getString(KEY_TWEET_NAME, "");
adapter.setupTweetPage(tweetId, username); adapter.setupTweetPage(tweetId, username);
} }
@ -159,8 +158,8 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
super.onStart(); super.onStart();
Bundle param = getIntent().getExtras(); Bundle param = getIntent().getExtras();
if (statusAsync == null && param != null) { if (statusAsync == null && param != null) {
if (param.containsKey(KEY_TWEET_ID) && param.containsKey(KEY_TWEET_NAME)) { if (param.containsKey(KEY_TWEET_ID)) {
tweetId = param.getLong(KEY_TWEET_ID); long tweetId = param.getLong(KEY_TWEET_ID);
statusAsync = new TweetLoader(this, tweetId); statusAsync = new TweetLoader(this, tweetId);
statusAsync.execute(Action.LOAD); statusAsync.execute(Action.LOAD);
} }
@ -193,16 +192,15 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
@Override @Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) { public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (statusAsync != null && tweet != null && statusAsync.getStatus() != RUNNING) { if (tweet != null && statusAsync != null && statusAsync.getStatus() != RUNNING) {
int itemId = item.getItemId();
// Delete tweet option // Delete tweet option
if (itemId == R.id.delete_tweet) { if (item.getItemId() == R.id.delete_tweet) {
if (!deleteDialog.isShowing()) { if (!deleteDialog.isShowing()) {
deleteDialog.show(); deleteDialog.show();
} }
} }
// get tweet link // get tweet link
else if (itemId == R.id.tweet_link) { else if (item.getItemId() == R.id.tweet_link) {
String username = tweet.getUser().getScreenname().substring(1); String username = tweet.getUser().getScreenname().substring(1);
String tweetLink = "https://twitter.com/" + username + "/status/" + tweet.getId(); String tweetLink = "https://twitter.com/" + username + "/status/" + tweet.getId();
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(tweetLink)); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(tweetLink));
@ -212,8 +210,8 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
Toast.makeText(this, R.string.error_connection_failed, LENGTH_SHORT).show(); Toast.makeText(this, R.string.error_connection_failed, LENGTH_SHORT).show();
} }
} }
// copy tweet link to clipboeard // copy tweet link to clipboard
else if (itemId == R.id.link_copy) { else if (item.getItemId() == R.id.link_copy) {
String username = tweet.getUser().getScreenname().substring(1); String username = tweet.getUser().getScreenname().substring(1);
String tweetLink = "https://twitter.com/" + username + "/status/" + tweet.getId(); String tweetLink = "https://twitter.com/" + username + "/status/" + tweet.getId();
ClipboardManager clip = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); ClipboardManager clip = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
@ -233,9 +231,8 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (statusAsync != null && tweet != null && statusAsync.getStatus() != RUNNING) { if (statusAsync != null && tweet != null && statusAsync.getStatus() != RUNNING) {
int viewId = v.getId();
// answer to the tweet // answer to the tweet
if (viewId == R.id.tweet_answer) { if (v.getId() == R.id.tweet_answer) {
String tweetPrefix = tweet.getUser().getScreenname() + " "; String tweetPrefix = tweet.getUser().getScreenname() + " ";
Intent tweetPopup = new Intent(this, TweetPopup.class); Intent tweetPopup = new Intent(this, TweetPopup.class);
tweetPopup.putExtra(KEY_TWEETPOPUP_REPLYID, tweet.getId()); tweetPopup.putExtra(KEY_TWEETPOPUP_REPLYID, tweet.getId());
@ -243,14 +240,14 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
startActivity(tweetPopup); startActivity(tweetPopup);
} }
// retweet tweet // retweet tweet
else if (viewId == R.id.tweet_retweet) { else if (v.getId() == R.id.tweet_retweet) {
Intent userList = new Intent(this, UserDetail.class); Intent userList = new Intent(this, UserDetail.class);
userList.putExtra(KEY_USERDETAIL_ID, tweet.getId()); userList.putExtra(KEY_USERDETAIL_ID, tweet.getId());
userList.putExtra(KEY_USERDETAIL_MODE, USERLIST_RETWEETS); userList.putExtra(KEY_USERDETAIL_MODE, USERLIST_RETWEETS);
startActivity(userList); startActivity(userList);
} }
// open profile of the tweet author // open profile of the tweet author
else if (viewId == R.id.profileimage_detail) { else if (v.getId() == R.id.profileimage_detail) {
if (tweet != null) { if (tweet != null) {
Intent profile = new Intent(getApplicationContext(), UserProfile.class); Intent profile = new Intent(getApplicationContext(), UserProfile.class);
profile.putExtra(UserProfile.KEY_PROFILE_ID, tweet.getUser().getId()); profile.putExtra(UserProfile.KEY_PROFILE_ID, tweet.getUser().getId());
@ -258,7 +255,7 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
} }
} }
// open replied tweet // open replied tweet
else if (viewId == R.id.answer_reference_detail) { else if (v.getId() == R.id.answer_reference_detail) {
if (tweet != null) { if (tweet != null) {
Intent answerIntent = new Intent(getApplicationContext(), TweetActivity.class); Intent answerIntent = new Intent(getApplicationContext(), TweetActivity.class);
answerIntent.putExtra(KEY_TWEET_ID, tweet.getReplyId()); answerIntent.putExtra(KEY_TWEET_ID, tweet.getReplyId());
@ -267,7 +264,7 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
} }
} }
// open tweet location coordinates // open tweet location coordinates
else if (viewId == R.id.tweet_location_coordinate) { else if (v.getId() == R.id.tweet_location_coordinate) {
if (tweet != null) { if (tweet != null) {
Intent locationIntent = new Intent(Intent.ACTION_VIEW); Intent locationIntent = new Intent(Intent.ACTION_VIEW);
locationIntent.setData(Uri.parse("geo:" + tweet.getLocationCoordinates())); locationIntent.setData(Uri.parse("geo:" + tweet.getLocationCoordinates()));
@ -279,7 +276,7 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
} }
} }
// open tweet media // open tweet media
else if (viewId == R.id.tweet_media_attach) { else if (v.getId() == R.id.tweet_media_attach) {
if (tweet != null) { if (tweet != null) {
Intent mediaIntent = new Intent(this, MediaViewer.class); Intent mediaIntent = new Intent(this, MediaViewer.class);
mediaIntent.putExtra(KEY_MEDIA_LINK, tweet.getMediaLinks()); mediaIntent.putExtra(KEY_MEDIA_LINK, tweet.getMediaLinks());
@ -465,9 +462,10 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
/** /**
* called after a tweet action * called after a tweet action
* *
* @param action action type * @param action action type
* @param tweetId ID of the tweet
*/ */
public void onAction(Action action) { public void onAction(Action action, long tweetId) {
switch (action) { switch (action) {
case RETWEET: case RETWEET:
Toast.makeText(this, R.string.info_tweet_retweeted, LENGTH_SHORT).show(); Toast.makeText(this, R.string.info_tweet_retweeted, LENGTH_SHORT).show();
@ -488,7 +486,7 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
case DELETE: case DELETE:
Toast.makeText(this, R.string.info_tweet_removed, LENGTH_SHORT).show(); Toast.makeText(this, R.string.info_tweet_removed, LENGTH_SHORT).show();
Intent returnData = new Intent(); Intent returnData = new Intent();
returnData.putExtra(INTENT_TWEET_REMOVED_ID, tweet.getId()); returnData.putExtra(INTENT_TWEET_REMOVED_ID, tweetId);
setResult(RETURN_TWEET_CHANGED, returnData); setResult(RETURN_TWEET_CHANGED, returnData);
finish(); finish();
break; break;
@ -498,9 +496,10 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
/** /**
* called when an error occurs * called when an error occurs
* *
* @param error Engine Exception * @param error Engine Exception7
* @param tweetId ID of the tweet from which an error occurred
*/ */
public void onError(EngineException error) { public void onError(EngineException error, long tweetId) {
ErrorHandler.handleFailure(this, error); ErrorHandler.handleFailure(this, error);
if (error.resourceNotFound()) { if (error.resourceNotFound()) {
Intent returnData = new Intent(); Intent returnData = new Intent();

View File

@ -153,9 +153,9 @@ public class TweetLoader extends AsyncTask<TweetLoader.Action, Tweet, TweetLoade
protected void onPostExecute(Action action) { protected void onPostExecute(Action action) {
if (callback.get() != null) { if (callback.get() != null) {
if (twException != null) { if (twException != null) {
callback.get().onError(twException); callback.get().onError(twException, tweetId);
} else { } else {
callback.get().onAction(action); callback.get().onAction(action, tweetId);
} }
} }
} }

View File

@ -82,7 +82,7 @@ public class TwitterListLoader extends AsyncTask<Long, Void, UserListList> {
if (callback.get() != null) { if (callback.get() != null) {
if (result != null) { if (result != null) {
callback.get().setData(result); callback.get().setData(result);
} else if (twException != null) { } else {
callback.get().onError(twException); callback.get().onError(twException);
} }
} }

View File

@ -16,7 +16,7 @@ import java.lang.ref.WeakReference;
* *
* @see UserFragment * @see UserFragment
*/ */
public class UserListLoader extends AsyncTask<Long, Void, TwitterUserList> { public class UserLoader extends AsyncTask<Long, Void, TwitterUserList> {
public static final long NO_CURSOR = -1; public static final long NO_CURSOR = -1;
@ -65,7 +65,7 @@ public class UserListLoader extends AsyncTask<Long, Void, TwitterUserList> {
private final long id; private final long id;
public UserListLoader(UserFragment callback, Action action, long id, String search) { public UserLoader(UserFragment callback, Action action, long id, String search) {
super(); super();
this.callback = new WeakReference<>(callback); this.callback = new WeakReference<>(callback);
mTwitter = TwitterEngine.getInstance(callback.getContext()); mTwitter = TwitterEngine.getInstance(callback.getContext());

View File

@ -30,7 +30,7 @@ public abstract class ListFragment extends Fragment implements OnRefreshListener
private RecyclerView list; private RecyclerView list;
private SwipeRefreshLayout reload; private SwipeRefreshLayout reload;
private GlobalSettings settings; protected GlobalSettings settings;
private boolean refreshLock = false; private boolean refreshLock = false;
@ -66,19 +66,17 @@ public abstract class ListFragment extends Fragment implements OnRefreshListener
*/ */
protected void setRefresh(boolean enable) { protected void setRefresh(boolean enable) {
refreshLock = !enable; refreshLock = !enable;
if (reload != null) { if (enable) {
if (enable) { reload.postDelayed(new Runnable() {
reload.postDelayed(new Runnable() { @Override
@Override public void run() {
public void run() { if (!reload.isRefreshing() && !refreshLock) {
if (!reload.isRefreshing() && !refreshLock) { reload.setRefreshing(true);
reload.setRefreshing(true);
}
} }
}, REFRESH_DELAY); }
} else { }, REFRESH_DELAY);
reload.setRefreshing(false); } else {
} reload.setRefreshing(false);
} }
} }

View File

@ -38,7 +38,7 @@ import static org.nuclearfog.twidda.backend.utils.DialogBuilder.DialogType.DEL_M
*/ */
public class MessageFragment extends ListFragment implements OnItemSelected, OnDialogClick { public class MessageFragment extends ListFragment implements OnItemSelected, OnDialogClick {
private GlobalSettings settings;
private MessageListLoader messageTask; private MessageListLoader messageTask;
private MessageAdapter adapter; private MessageAdapter adapter;
private Dialog deleteDialog; private Dialog deleteDialog;

View File

@ -21,9 +21,9 @@ import static org.nuclearfog.twidda.activity.SearchPage.KEY_SEARCH_QUERY;
*/ */
public class TrendFragment extends ListFragment implements TrendClickListener { public class TrendFragment extends ListFragment implements TrendClickListener {
private TrendListLoader trendTask; private TrendListLoader trendTask;
private TrendAdapter adapter; private TrendAdapter adapter;
private GlobalSettings settings;
@Override @Override

View File

@ -62,7 +62,6 @@ public class TweetFragment extends ListFragment implements TweetClickListener {
private TweetListLoader tweetTask; private TweetListLoader tweetTask;
private TweetAdapter adapter; private TweetAdapter adapter;
private GlobalSettings settings;
@Override @Override

View File

@ -11,10 +11,10 @@ import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.activity.UserProfile; import org.nuclearfog.twidda.activity.UserProfile;
import org.nuclearfog.twidda.adapter.UserAdapter; import org.nuclearfog.twidda.adapter.UserAdapter;
import org.nuclearfog.twidda.adapter.UserAdapter.UserClickListener; import org.nuclearfog.twidda.adapter.UserAdapter.UserClickListener;
import org.nuclearfog.twidda.backend.UserListLoader;
import org.nuclearfog.twidda.backend.UserListLoader.Action;
import org.nuclearfog.twidda.backend.UserListManager; import org.nuclearfog.twidda.backend.UserListManager;
import org.nuclearfog.twidda.backend.UserListManager.ListManagerCallback; import org.nuclearfog.twidda.backend.UserListManager.ListManagerCallback;
import org.nuclearfog.twidda.backend.UserLoader;
import org.nuclearfog.twidda.backend.UserLoader.Action;
import org.nuclearfog.twidda.backend.engine.EngineException; import org.nuclearfog.twidda.backend.engine.EngineException;
import org.nuclearfog.twidda.backend.holder.TwitterUserList; import org.nuclearfog.twidda.backend.holder.TwitterUserList;
import org.nuclearfog.twidda.backend.items.TwitterUser; import org.nuclearfog.twidda.backend.items.TwitterUser;
@ -25,8 +25,8 @@ import org.nuclearfog.twidda.database.GlobalSettings;
import static android.os.AsyncTask.Status.RUNNING; import static android.os.AsyncTask.Status.RUNNING;
import static org.nuclearfog.twidda.activity.UserProfile.KEY_PROFILE_ID; import static org.nuclearfog.twidda.activity.UserProfile.KEY_PROFILE_ID;
import static org.nuclearfog.twidda.backend.UserListLoader.NO_CURSOR;
import static org.nuclearfog.twidda.backend.UserListManager.Action.DEL_USER; import static org.nuclearfog.twidda.backend.UserListManager.Action.DEL_USER;
import static org.nuclearfog.twidda.backend.UserLoader.NO_CURSOR;
import static org.nuclearfog.twidda.backend.utils.DialogBuilder.DialogType.DEL_USER_LIST; import static org.nuclearfog.twidda.backend.utils.DialogBuilder.DialogType.DEL_USER_LIST;
/** /**
@ -91,9 +91,8 @@ public class UserFragment extends ListFragment implements UserClickListener,
*/ */
public static final int USER_FRAG_LISTS = 7; public static final int USER_FRAG_LISTS = 7;
private UserListLoader userTask; private UserLoader userTask;
private UserListManager listTask; private UserListManager listTask;
private GlobalSettings settings;
private Dialog deleteDialog; private Dialog deleteDialog;
private UserAdapter adapter; private UserAdapter adapter;
@ -236,7 +235,7 @@ public class UserFragment extends ListFragment implements UserClickListener,
/** /**
* load content into the list * load content into the list
* *
* @param cursor cursor of the list or {@link UserListLoader#NO_CURSOR} if there is none * @param cursor cursor of the list or {@link UserLoader#NO_CURSOR} if there is none
*/ */
private void load(long cursor) { private void load(long cursor) {
Action action = Action.NONE; Action action = Action.NONE;
@ -270,7 +269,7 @@ public class UserFragment extends ListFragment implements UserClickListener,
break; break;
} }
adapter.enableDeleteButton(delUser); adapter.enableDeleteButton(delUser);
userTask = new UserListLoader(this, action, id, search); userTask = new UserLoader(this, action, id, search);
userTask.execute(cursor); userTask.execute(cursor);
if (cursor == NO_CURSOR) { if (cursor == NO_CURSOR) {
setRefresh(true); setRefresh(true);

View File

@ -73,7 +73,6 @@ public class UserListFragment extends ListFragment implements ListClickListener
public static final int RETURN_LIST_REMOVED = 4; public static final int RETURN_LIST_REMOVED = 4;
private TwitterListLoader listTask; private TwitterListLoader listTask;
private GlobalSettings settings;
private ListAdapter adapter; private ListAdapter adapter;
@ -173,7 +172,8 @@ public class UserListFragment extends ListFragment implements ListClickListener
* @param error Twitter exception * @param error Twitter exception
*/ */
public void onError(@Nullable EngineException error) { public void onError(@Nullable EngineException error) {
ErrorHandler.handleFailure(requireContext(), error); if (error != null)
ErrorHandler.handleFailure(requireContext(), error);
adapter.disableLoading(); adapter.disableLoading();
setRefresh(false); setRefresh(false);
} }

View File

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip