bugfix, code cleanup

This commit is contained in:
NudeDude 2018-08-10 22:48:17 +02:00
parent f43219676e
commit 41b4c34f96
13 changed files with 120 additions and 81 deletions

View File

@ -29,6 +29,7 @@ public class ImagePopup extends AsyncTask<String, Void, Boolean> {
private LayoutInflater inf;
private ErrorLog errorLog;
private int position = 0;
private String errMsg = "E: Image Popup, ";
public ImagePopup(Context context) {
popup = new Dialog(context);
@ -73,7 +74,8 @@ public class ImagePopup extends AsyncTask<String, Void, Boolean> {
}
return true;
} catch (Exception err) {
errorLog.add("E: " + err.getMessage());
errMsg += err.getMessage();
errorLog.add(errMsg);
return false;
}
}

View File

@ -38,9 +38,9 @@ public class MainPage extends AsyncTask<Integer, Void, Integer> {
private TrendRecycler trendsAdapter;
private ErrorLog errorLog;
private int woeId;
private String errMsg;
private int highlight, font;
private boolean image;
private String errMsg = "E: Main Page, ";
private int retryAfter = 0;
/**
@ -162,16 +162,13 @@ public class MainPage extends AsyncTask<Integer, Void, Integer> {
if(errCode == 420) {
retryAfter = e.getRetryAfter();
} else {
String errMsg = "E: " + e.getMessage();
errorLog.add(errMsg);
errMsg += e.getMessage();
}
return FAIL;
}
catch (Exception e) {
String errMsg = "E: Main Page, " + e.getMessage();
if(ui.get() != null) {
errorLog.add(errMsg);
}
errMsg += e.getMessage();
errorLog.add(errMsg);
return FAIL;
}
return MODE;
@ -206,8 +203,11 @@ public class MainPage extends AsyncTask<Integer, Void, Integer> {
break;
case FAIL:
if (retryAfter > 0)
Toast.makeText(connect, R.string.rate_limit_exceeded, Toast.LENGTH_LONG).show();
if (retryAfter > 0) {
Toast.makeText(connect, R.string.rate_limit_exceeded, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(connect, errMsg, Toast.LENGTH_LONG).show();
}
default:
timelineRefresh.setRefreshing(false);
trendRefresh.setRefreshing(false);

View File

@ -55,6 +55,7 @@ public class ProfileLoader extends AsyncTask<Long,Void,Long> {
private boolean isVerified = false;
private boolean isLocked = false;
private boolean blocked = false;
private String errMsg = "E: Profile Load, ";
private int retryAfter = 0;
/**
@ -192,13 +193,13 @@ public class ProfileLoader extends AsyncTask<Long,Void,Long> {
retryAfter = err.getRetryAfter();
}
else if(errCode != 136) {
String errMsg = "E: " + err.getMessage();
errMsg += err.getMessage();
errorLog.add(errMsg);
}
return FAILURE;
}
catch(Exception err) {
String errMsg = "E: Profile Load, " + err.getMessage();
errMsg += err.getMessage();
errorLog.add(errMsg);
return FAILURE;
}

View File

@ -17,7 +17,8 @@ public class Registration extends AsyncTask<String, Void, Boolean> {
private WeakReference<LoginPage> ui;
private TwitterEngine mTwitter;
private ErrorLog errorLog;
private String errorMessage;
private boolean failure = false;
private String errorMessage = "E: Registration, ";
private String redirectionURL = "";
@ -39,12 +40,14 @@ public class Registration extends AsyncTask<String, Void, Boolean> {
return true;
}
} catch(TwitterException e) {
errorMessage = "E: " + e.getErrorMessage();
errorMessage += e.getErrorMessage();
errorLog.add(errorMessage);
failure = true;
}
catch ( Exception e ) {
errorMessage = "E: Registration, " + e.getMessage();
errorMessage += e.getMessage();
errorLog.add(errorMessage);
failure = true;
}
return false;
}
@ -58,10 +61,10 @@ public class Registration extends AsyncTask<String, Void, Boolean> {
if(success) {
connect.setResult(Activity.RESULT_OK);
connect.finish();
} else if (errorMessage != null) {
} else if (failure) {
Toast.makeText(connect,errorMessage,Toast.LENGTH_LONG).show();
} else {
ui.get().connect(redirectionURL);
connect.connect(redirectionURL);
}
}

View File

@ -54,7 +54,7 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> {
private String usernameStr, scrNameStr, tweetStr, dateString;
private String repliedUsername, apiName, profile_pb;
private String medialinks[];
private String errorMessage = "";
private String errorMessage = "Status load: ";
private boolean retweeted, favorited, toggleImg, verified;
private long tweetReplyID, replyUserId;
private int rtCount, favCount;
@ -162,6 +162,7 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> {
answers = mTwitter.getAnswers(scrNameStr, tweetID, tweetID);
}
answerAdapter.setData(answers);
answerAdapter.toggleImage(toggleImg);
answerAdapter.setColor(highlight, font);
if(answers.size() > 0 && database.containStatus(tweetID))
database.storeReplies(answers);
@ -170,18 +171,18 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> {
catch(TwitterException e) {
int errCode = e.getErrorCode();
if(errCode == 144) {
database.removeStatus(tweetID);
database.removeStatus(tweetID); //TODO
errorMessage = "Tweet nicht gefunden!\nID:"+tweetID;
} else if(errCode == 420) {
int retry = e.getRetryAfter();
int retry = e.getRetryAfter(); //TODO
errorMessage = "Rate limit erreicht!\n Weiter in "+retry+" Sekunden";
} else {
errorMessage = "Fehler: "+e.getMessage();
errorMessage += e.getMessage();
}
return ERROR;
}
catch(Exception err) {
errorMessage = "Status load: "+err.getMessage();
errorMessage += err.getMessage();
errorLog.add(errorMessage);
return ERROR;
}
@ -245,16 +246,16 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> {
}
if(toggleImg) {
Picasso.with(ui.get()).load(profile_pb).into(profile_img);
if(medialinks != null && medialinks.length != 0) {
View mediaButton = connect.findViewById(R.id.image_attach);
mediaButton.setVisibility(View.VISIBLE);
mediaButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
connect.onMediaClicked(medialinks);
}
});
}
}
if (medialinks != null && medialinks.length != 0) {
View mediaButton = connect.findViewById(R.id.image_attach);
mediaButton.setVisibility(View.VISIBLE);
mediaButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
connect.onMediaClicked(medialinks);
}
});
}
Button retweetButton = connect.findViewById(R.id.rt_button_detail);
Button favoriteButton = connect.findViewById(R.id.fav_button_detail);

View File

@ -20,7 +20,7 @@ import java.util.List;
import twitter4j.TwitterException;
public class TwitterSearch extends AsyncTask<String, Void, Void> {
public class TwitterSearch extends AsyncTask<String, Void, Boolean> {
private TimelineRecycler searchAdapter;
private UserRecycler userAdapter;
@ -29,6 +29,7 @@ public class TwitterSearch extends AsyncTask<String, Void, Void> {
private WeakReference<SearchPage> ui;
private int highlight, font_color;
private boolean imageLoad;
private String errorMessage = "E: Twitter search, ";
private int retryAfter = 0;
public TwitterSearch(Context context) {
@ -58,7 +59,7 @@ public class TwitterSearch extends AsyncTask<String, Void, Void> {
@Override
protected Void doInBackground(String... search) {
protected Boolean doInBackground(String... search) {
String strSearch = search[0];
long id = 1L;
try {
@ -79,32 +80,35 @@ public class TwitterSearch extends AsyncTask<String, Void, Void> {
searchAdapter.setColor(highlight,font_color);
searchAdapter.toggleImage(imageLoad);
userAdapter.toggleImage(imageLoad);
return true;
} catch (TwitterException err) {
int errCode = err.getErrorCode();
if(errCode == 420) {
retryAfter = err.getRetryAfter();
} else {
String errorMessage = "E: " + err.getErrorMessage();
errorMessage += err.getMessage();
errorLog.add(errorMessage);
}
} catch(Exception err) {
String errorMessage = "E: Twitter search, " + err.getMessage();
errorMessage += err.getMessage();
errorLog.add(errorMessage);
}
return null;
return false;
}
@Override
protected void onPostExecute(Void v) {
protected void onPostExecute(Boolean success) {
SearchPage connect = ui.get();
if(connect == null)
return;
if (retryAfter > 0) {
Toast.makeText(connect, R.string.rate_limit_exceeded, Toast.LENGTH_LONG).show();
if (!success) {
if (retryAfter > 0)
Toast.makeText(connect, R.string.rate_limit_exceeded, Toast.LENGTH_LONG).show();
else
Toast.makeText(connect, errorMessage, Toast.LENGTH_LONG).show();
}
SwipeRefreshLayout tweetReload = connect.findViewById(R.id.searchtweets);
View circleLoad = connect.findViewById(R.id.search_progress);
circleLoad.setVisibility(View.INVISIBLE);

View File

@ -29,6 +29,7 @@ public class UserLists extends AsyncTask <Long, Void, Boolean> {
private UserRecycler usrAdp;
private ErrorLog errorLog;
private boolean imageLoad;
private String errorMessage = "E: Userlist, ";
private int retryAfter = 0;
/**
@ -75,12 +76,12 @@ public class UserLists extends AsyncTask <Long, Void, Boolean> {
if(errCode == 420) {
retryAfter = err.getRetryAfter();
} else {
String errorMessage = "E: " + err.getMessage();
errorMessage += err.getMessage();
errorLog.add(errorMessage);
}
return false;
} catch(Exception err) {
String errorMessage = "E: Userlist, " + err.getMessage();
errorMessage += err.getMessage();
errorLog.add(errorMessage);
return false;
}
@ -98,7 +99,9 @@ public class UserLists extends AsyncTask <Long, Void, Boolean> {
usrAdp.notifyDataSetChanged();
} else {
if (retryAfter > 0)
Toast.makeText(ui.get(), R.string.rate_limit_exceeded, Toast.LENGTH_LONG).show();
Toast.makeText(ui.get(), R.string.rate_limit_exceeded, Toast.LENGTH_SHORT).show();
else
Toast.makeText(ui.get(), errorMessage, Toast.LENGTH_SHORT).show();
}
}
}

View File

@ -13,6 +13,9 @@ import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
@ -43,13 +46,13 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
private ConnectivityManager mConnect;
private GlobalSettings settings;
private String username = "";
private boolean isHome;
private long userID = 0;
private long tweetID = 0;
@Override
protected void onCreate(Bundle b) {
super.onCreate(b);
b = getIntent().getExtras();
if (b != null) {
tweetID = b.getLong("tweetID");
@ -58,13 +61,17 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
}
setContentView(R.layout.tweetpage);
Toolbar tool = findViewById(R.id.tweet_toolbar);
setSupportActionBar(tool);
if (getSupportActionBar() != null)
getSupportActionBar().setDisplayShowTitleEnabled(false);
settings = GlobalSettings.getInstance(this);
boolean home = userID == settings.getUserId();
isHome = userID == settings.getUserId();
mConnect = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
View retweet = findViewById(R.id.rt_button_detail);
View favorite = findViewById(R.id.fav_button_detail);
View delete = findViewById(R.id.delete);
View txtRt = findViewById(R.id.no_rt_detail);
View txtFav = findViewById(R.id.no_fav_detail);
View date = findViewById(R.id.timedetail);
@ -73,16 +80,12 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
answerReload = findViewById(R.id.answer_reload);
answer_list = findViewById(R.id.answer_list);
answer_list.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
if(home) {
delete.setVisibility(View.VISIBLE);
}
favorite.setOnClickListener(this);
retweet.setOnClickListener(this);
answerReload.setOnRefreshListener(this);
txtFav.setOnClickListener(this);
txtRt.setOnClickListener(this);
date.setOnClickListener(this);
delete.setOnClickListener(this);
profile_img.setOnClickListener(this);
answer.setOnClickListener(this);
setContent();
@ -103,6 +106,31 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
super.onPause();
}
@Override
public boolean onCreateOptionsMenu(Menu m) {
getMenuInflater().inflate(R.menu.tweet, m); //TODO add more
if (isHome) {
m.findItem(R.id.delete_tweet).setVisible(true);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.delete_tweet:
AlertDialog.Builder alerta = new AlertDialog.Builder(this);
alerta.setMessage(R.string.delete_tweet);
alerta.setPositiveButton(R.string.yes_confirm, this);
alerta.setNegativeButton(R.string.no_confirm, this);
alerta.show();
return true;
default:
return false;
}
}
@Override
public void onClick(View v) {
Intent intent;
@ -133,18 +161,10 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
startActivity(intent);
break;
case R.id.delete:
AlertDialog.Builder alerta = new AlertDialog.Builder(this);
alerta.setMessage(R.string.delete_tweet);
alerta.setPositiveButton(R.string.yes_confirm, this);
alerta.setNegativeButton(R.string.no_confirm, this);
alerta.show();
break;
case R.id.timedetail:
if (mConnect.getActiveNetworkInfo() != null && mConnect.getActiveNetworkInfo().isConnected()) {
intent = new Intent(Intent.ACTION_VIEW);
String tweetLink = "https://twitter.com/" + username + "/status/" + tweetID;
String tweetLink = "https://twitter.com/" + username.substring(1) + "/status/" + tweetID;
intent.setData(Uri.parse(tweetLink));
startActivity(intent);
} else {

View File

@ -10,10 +10,10 @@
android:background="@android:color/transparent">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:toolbarId="@+id/tweet_toolbar">
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<LinearLayout
android:layout_width="match_parent"

View File

@ -3,21 +3,18 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:fitsSystemWindows="false">
android:background="@android:color/transparent">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/tweet_detail"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:toolbarId="@+id/tweet_toolbar">
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<LinearLayout
android:layout_width="match_parent"
@ -26,6 +23,11 @@
android:gravity="center_horizontal"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/tweet_toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/bar_wide" />
<TextView
android:id="@+id/answer_reference_detail"
android:layout_width="match_parent"
@ -152,8 +154,8 @@
<Button
android:id="@+id/answer_button"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/chat" />
<TextView
@ -169,8 +171,8 @@
<Button
android:id="@+id/rt_button_detail"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/retweet" />
<TextView
@ -186,8 +188,8 @@
<Button
android:id="@+id/fav_button_detail"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_width="24dp"
android:layout_height="20dp"
android:background="@drawable/favorite" />
<TextView
@ -201,13 +203,6 @@
android:singleLine="true"
android:textSize="12sp" />
<Button
android:id="@+id/delete"
android:layout_width="16dp"
android:layout_height="16dp"
android:background="@drawable/cross"
android:visibility="invisible" />
</LinearLayout>
<android.support.v4.widget.SwipeRefreshLayout

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/delete_tweet"
android:title="@string/tweet_delete"
android:visible="false" />
</menu>

View File

@ -40,4 +40,5 @@
<string name="error_sending_tweet">Fehler beim Senden!</string>
<string name="tweet_sent">Tweet gesendet</string>
<string name="error">Fehler!</string>
<string name="tweet_delete">Tweet löschen</string>
</resources>

View File

@ -48,4 +48,5 @@
<string name="error_sending_tweet">error while sending</string>
<string name="tweet_sent">tweet sent</string>
<string name="error">Error!</string>
<string name="tweet_delete">Delete</string>
</resources>