parent
154671f30b
commit
850076b215
|
@ -26,11 +26,13 @@ public class ImagePopup extends AsyncTask<String, Void, Boolean> {
|
|||
private LayoutInflater inflater;
|
||||
private int position = 0;
|
||||
|
||||
|
||||
public ImagePopup(Context context) {
|
||||
popup = new Dialog(context);
|
||||
inflater = LayoutInflater.from(context);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@SuppressLint("InflateParams")
|
||||
protected void onPreExecute() {
|
||||
|
@ -46,20 +48,19 @@ public class ImagePopup extends AsyncTask<String, Void, Boolean> {
|
|||
@Override
|
||||
public void onClick(View v) {
|
||||
popup.dismiss();
|
||||
if (!isCancelled())
|
||||
cancel(true);
|
||||
}
|
||||
});
|
||||
popup.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
||||
popup.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
if (!isCancelled())
|
||||
public void onDismiss(DialogInterface dialog) {
|
||||
if (getStatus() == Status.RUNNING)
|
||||
cancel(true);
|
||||
}
|
||||
});
|
||||
popup.show();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected Boolean doInBackground(String... links) {
|
||||
try {
|
||||
|
@ -85,6 +86,7 @@ public class ImagePopup extends AsyncTask<String, Void, Boolean> {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@SuppressLint("InflateParams")
|
||||
protected void onPostExecute(Boolean result) {
|
||||
|
@ -127,6 +129,7 @@ public class ImagePopup extends AsyncTask<String, Void, Boolean> {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
private void setImage(Bitmap btm, ImageView mImg) {
|
||||
if (btm != null) {
|
||||
int height = (int) (btm.getHeight() / (btm.getWidth() / 640.0));
|
||||
|
|
|
@ -27,6 +27,7 @@ public class MessageLoader extends AsyncTask<Void, Void, Boolean> {
|
|||
private String errorMsg = "E MessageLoader: ";
|
||||
private int returnCode = 0;
|
||||
|
||||
|
||||
public MessageLoader(DirectMessage context) {
|
||||
ui = new WeakReference<>(context);
|
||||
GlobalSettings settings = GlobalSettings.getInstance(context);
|
||||
|
@ -43,6 +44,7 @@ public class MessageLoader extends AsyncTask<Void, Void, Boolean> {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected Boolean doInBackground(Void... param) {
|
||||
try {
|
||||
|
@ -72,6 +74,7 @@ public class MessageLoader extends AsyncTask<Void, Void, Boolean> {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Boolean success) {
|
||||
if (ui.get() == null) return;
|
||||
|
|
|
@ -49,7 +49,7 @@ public class MessageUpload extends AsyncTask<String, Void, Boolean> {
|
|||
popup.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
@Override
|
||||
public void onDismiss(DialogInterface dialog) {
|
||||
if (!isCancelled()) {
|
||||
if (getStatus() == Status.RUNNING) {
|
||||
Toast.makeText(ui.get(), R.string.abort, Toast.LENGTH_SHORT).show();
|
||||
cancel(true);
|
||||
}
|
||||
|
@ -80,14 +80,14 @@ public class MessageUpload extends AsyncTask<String, Void, Boolean> {
|
|||
|
||||
@Override
|
||||
protected void onPostExecute(Boolean success) {
|
||||
if (ui.get() != null) {
|
||||
popup.dismiss();
|
||||
if (success) {
|
||||
Toast.makeText(ui.get(), R.string.dmsend, Toast.LENGTH_SHORT).show();
|
||||
ui.get().finish();
|
||||
} else {
|
||||
Toast.makeText(ui.get(), R.string.error_sending_dm, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
if (ui.get() == null) return;
|
||||
|
||||
popup.dismiss();
|
||||
if (success) {
|
||||
Toast.makeText(ui.get(), R.string.dmsend, Toast.LENGTH_SHORT).show();
|
||||
ui.get().finish();
|
||||
} else {
|
||||
Toast.makeText(ui.get(), R.string.error_sending_dm, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -259,7 +259,7 @@ public class ProfileLoader extends AsyncTask<Long, Long, Long> {
|
|||
profile.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (getStatus() == Status.FINISHED)
|
||||
if (getStatus() != Status.RUNNING)
|
||||
new ImagePopup(ui.get()).execute(user.profileImg);
|
||||
}
|
||||
});
|
||||
|
@ -310,6 +310,10 @@ public class ProfileLoader extends AsyncTask<Long, Long, Long> {
|
|||
default:
|
||||
Toast.makeText(ui.get(), errMsg, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
SwipeRefreshLayout homeReload = ui.get().findViewById(R.id.hometweets);
|
||||
SwipeRefreshLayout favReload = ui.get().findViewById(R.id.homefavorits);
|
||||
homeReload.setRefreshing(false);
|
||||
favReload.setRefreshing(false);
|
||||
}
|
||||
if (!isHome) {
|
||||
ui.get().setConnection(isFollowing, isMuted, isBlocked, canDm);
|
||||
|
|
|
@ -5,18 +5,17 @@ import android.os.AsyncTask;
|
|||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.window.LoginPage;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
import twitter4j.TwitterException;
|
||||
|
||||
public class Registration extends AsyncTask<String, Void, Boolean> {
|
||||
|
||||
private WeakReference<LoginPage> ui;
|
||||
private TwitterEngine mTwitter;
|
||||
private boolean failure = false;
|
||||
private String errorMessage = "E Registration: ";
|
||||
private String redirectionURL = "";
|
||||
|
||||
|
||||
|
@ -30,19 +29,14 @@ public class Registration extends AsyncTask<String, Void, Boolean> {
|
|||
protected Boolean doInBackground(String... twitterPin) {
|
||||
String pin = twitterPin[0];
|
||||
try {
|
||||
if (pin.trim().isEmpty()) {
|
||||
redirectionURL = mTwitter.request();
|
||||
} else {
|
||||
redirectionURL = mTwitter.request();
|
||||
if (!pin.trim().isEmpty()) {
|
||||
mTwitter.initialize(pin);
|
||||
return true;
|
||||
}
|
||||
} catch (TwitterException e) {
|
||||
errorMessage += e.getMessage();
|
||||
failure = true;
|
||||
} catch (Exception e) {
|
||||
errorMessage += e.getMessage();
|
||||
e.printStackTrace();
|
||||
Log.e("Registration", errorMessage);
|
||||
Log.e("Registration", e.getMessage());
|
||||
failure = true;
|
||||
}
|
||||
return false;
|
||||
|
@ -51,15 +45,15 @@ public class Registration extends AsyncTask<String, Void, Boolean> {
|
|||
|
||||
@Override
|
||||
protected void onPostExecute(Boolean success) {
|
||||
if (ui.get() != null) {
|
||||
if (success) {
|
||||
ui.get().setResult(Activity.RESULT_OK);
|
||||
ui.get().finish();
|
||||
} else if (failure) {
|
||||
Toast.makeText(ui.get(), errorMessage, Toast.LENGTH_LONG).show();
|
||||
} else {
|
||||
ui.get().connect(redirectionURL);
|
||||
}
|
||||
if (ui.get() == null) return;
|
||||
|
||||
if (success) {
|
||||
ui.get().setResult(Activity.RESULT_OK);
|
||||
ui.get().finish();
|
||||
} else if (failure) {
|
||||
Toast.makeText(ui.get(), R.string.pin_verification_failed, Toast.LENGTH_LONG).show();
|
||||
} else {
|
||||
ui.get().connect(redirectionURL);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -91,22 +91,22 @@ public class StatusUpload extends AsyncTask<String, Void, Boolean> {
|
|||
|
||||
@Override
|
||||
protected void onPostExecute(Boolean success) {
|
||||
if (ui.get() != null) {
|
||||
popup.dismiss();
|
||||
if (success) {
|
||||
Toast.makeText(ui.get(), R.string.tweet_sent, Toast.LENGTH_LONG).show();
|
||||
ui.get().finish();
|
||||
} else {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(ui.get());
|
||||
builder.setTitle(R.string.error).setMessage(R.string.error_sending_tweet)
|
||||
.setPositiveButton(R.string.retry, new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
ui.get().findViewById(R.id.sendTweet).callOnClick();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.cancel, null).show();
|
||||
}
|
||||
if (ui.get() == null) return;
|
||||
|
||||
popup.dismiss();
|
||||
if (success) {
|
||||
Toast.makeText(ui.get(), R.string.tweet_sent, Toast.LENGTH_LONG).show();
|
||||
ui.get().finish();
|
||||
} else {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(ui.get());
|
||||
builder.setTitle(R.string.error).setMessage(R.string.error_sending_tweet)
|
||||
.setPositiveButton(R.string.retry, new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
ui.get().findViewById(R.id.sendTweet).callOnClick();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.cancel, null).show();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -38,11 +38,12 @@ public class TwitterEngine {
|
|||
private static TwitterEngine mTwitter;
|
||||
private final String TWITTER_CONSUMER_KEY = "xxx";
|
||||
private final String TWITTER_CONSUMER_SECRET = "xxx";
|
||||
private long twitterID = -1L;
|
||||
|
||||
private String redirectionUrl;
|
||||
private long twitterID;
|
||||
private Twitter twitter;
|
||||
private GlobalSettings settings;
|
||||
private RequestToken reqToken;
|
||||
private boolean login;
|
||||
private int load;
|
||||
|
||||
|
||||
|
@ -51,13 +52,18 @@ public class TwitterEngine {
|
|||
*/
|
||||
private TwitterEngine(Context context) {
|
||||
settings = GlobalSettings.getInstance(context);
|
||||
login = settings.getLogin();
|
||||
ConfigurationBuilder builder = new ConfigurationBuilder();
|
||||
builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
|
||||
builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);
|
||||
Configuration configuration = builder.build();
|
||||
TwitterFactory factory = new TwitterFactory(configuration);
|
||||
twitter = factory.getInstance();
|
||||
|
||||
if (settings.getLogin()) {
|
||||
String keys[] = settings.getKeys();
|
||||
initKeys(keys[0], keys[1]);
|
||||
twitterID = settings.getUserId();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -70,7 +76,6 @@ public class TwitterEngine {
|
|||
public static TwitterEngine getInstance(Context context) {
|
||||
if (mTwitter == null) {
|
||||
mTwitter = new TwitterEngine(context);
|
||||
mTwitter.init();
|
||||
}
|
||||
mTwitter.setLoad();
|
||||
return mTwitter;
|
||||
|
@ -83,9 +88,11 @@ public class TwitterEngine {
|
|||
* @throws TwitterException if internet connection is unavailable
|
||||
*/
|
||||
public String request() throws TwitterException {
|
||||
if (reqToken == null)
|
||||
if (reqToken == null) {
|
||||
reqToken = twitter.getOAuthRequestToken();
|
||||
return reqToken.getAuthenticationURL();
|
||||
redirectionUrl = reqToken.getAuthenticationURL();
|
||||
}
|
||||
return redirectionUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -101,9 +108,8 @@ public class TwitterEngine {
|
|||
String key1 = accessToken.getToken();
|
||||
String key2 = accessToken.getTokenSecret();
|
||||
initKeys(key1, key2);
|
||||
saveCurrentUser(key1, key2);
|
||||
} else {
|
||||
throw new IllegalMonitorStateException("empty request token!");
|
||||
twitterID = twitter.getId();
|
||||
settings.setConnection(key1, key2, twitterID);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -120,19 +126,6 @@ public class TwitterEngine {
|
|||
builder.setTweetModeExtended(true);
|
||||
AccessToken token = new AccessToken(key1, key2);
|
||||
twitter = new TwitterFactory(builder.build()).getInstance(token);
|
||||
login = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* store current user's name & id
|
||||
*
|
||||
* @param key1 AccessToken
|
||||
* @param key2 AccessToken Secret
|
||||
* @throws TwitterException if twitter isn't initialized yet.
|
||||
*/
|
||||
private void saveCurrentUser(String key1, String key2) throws TwitterException {
|
||||
twitterID = twitter.getId();
|
||||
settings.setConnection(key1, key2, twitterID);
|
||||
}
|
||||
|
||||
|
||||
|
@ -143,17 +136,6 @@ public class TwitterEngine {
|
|||
load = settings.getRowLimit();
|
||||
}
|
||||
|
||||
/**
|
||||
* recall Keys from Shared-Preferences
|
||||
* & initialize Twitter
|
||||
*/
|
||||
private void init() {
|
||||
if (login) {
|
||||
String keys[] = settings.getKeys();
|
||||
initKeys(keys[0], keys[1]);
|
||||
}
|
||||
twitterID = settings.getUserId();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Home Timeline
|
||||
|
|
|
@ -27,6 +27,11 @@ import org.nuclearfog.twidda.R;
|
|||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.viewadapter.WorldIdAdapter;
|
||||
|
||||
/**
|
||||
* App settings page
|
||||
*
|
||||
* @see GlobalSettings
|
||||
*/
|
||||
public class AppSettings extends AppCompatActivity implements OnClickListener,
|
||||
OnColorChangedListener, OnItemSelectedListener {
|
||||
|
||||
|
|
|
@ -78,11 +78,13 @@ public class DirectMessage extends AppCompatActivity implements OnItemSelected,
|
|||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.message:
|
||||
Intent sendDm = new Intent(this, MessagePopup.class);
|
||||
startActivity(sendDm);
|
||||
break;
|
||||
if (mLoader != null && mLoader.getStatus() != RUNNING) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.message:
|
||||
Intent sendDm = new Intent(this, MessagePopup.class);
|
||||
startActivity(sendDm);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
|
|
@ -15,11 +15,18 @@ import android.widget.Toast;
|
|||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.Registration;
|
||||
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
|
||||
/**
|
||||
* Login Page
|
||||
*
|
||||
* @see Registration
|
||||
*/
|
||||
public class LoginPage extends AppCompatActivity implements OnClickListener {
|
||||
|
||||
private Registration register;
|
||||
private EditText pin;
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle b) {
|
||||
super.onCreate(b);
|
||||
|
@ -31,6 +38,14 @@ public class LoginPage extends AppCompatActivity implements OnClickListener {
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
if (register != null && register.getStatus() == RUNNING)
|
||||
register.cancel(true);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
setResult(RESULT_CANCELED);
|
||||
|
@ -40,16 +55,20 @@ public class LoginPage extends AppCompatActivity implements OnClickListener {
|
|||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (register != null && register.getStatus() == RUNNING)
|
||||
register.cancel(true);
|
||||
|
||||
switch (v.getId()) {
|
||||
case R.id.linkButton:
|
||||
Registration account = new Registration(this);
|
||||
account.execute("");
|
||||
register = new Registration(this);
|
||||
register.execute("");
|
||||
break;
|
||||
|
||||
case R.id.get:
|
||||
String twitterPin = pin.getText().toString();
|
||||
if (!twitterPin.trim().isEmpty()) {
|
||||
new Registration(this).execute(twitterPin);
|
||||
register = new Registration(this);
|
||||
register.execute(twitterPin);
|
||||
} else {
|
||||
Toast.makeText(this, R.string.enter_pin, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
|
|
@ -24,6 +24,11 @@ import org.nuclearfog.twidda.database.GlobalSettings;
|
|||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
|
||||
/**
|
||||
* Message Window
|
||||
*
|
||||
* @see MessageUpload
|
||||
*/
|
||||
public class MessagePopup extends AppCompatActivity implements View.OnClickListener {
|
||||
|
||||
private MessageUpload upload;
|
||||
|
|
|
@ -27,9 +27,13 @@ import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
|||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter.OnItemClicked;
|
||||
import org.nuclearfog.twidda.viewadapter.UserAdapter;
|
||||
|
||||
import static android.os.AsyncTask.Status.FINISHED;
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
|
||||
/**
|
||||
* Search Page
|
||||
*
|
||||
* @see TwitterSearch
|
||||
*/
|
||||
public class SearchPage extends AppCompatActivity implements UserAdapter.OnItemClicked,
|
||||
OnRefreshListener, OnTabChangeListener, OnItemClicked {
|
||||
|
||||
|
@ -131,6 +135,7 @@ public class SearchPage extends AppCompatActivity implements UserAdapter.OnItemC
|
|||
startActivity(intent);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
|
@ -142,7 +147,7 @@ public class SearchPage extends AppCompatActivity implements UserAdapter.OnItemC
|
|||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == R.id.search_tweet) {
|
||||
if (item.getItemId() == R.id.search_tweet && mSearch.getStatus() != RUNNING) {
|
||||
Intent intent = new Intent(this, TweetPopup.class);
|
||||
intent.putExtra("TweetID", -1);
|
||||
if (search.startsWith("#"))
|
||||
|
@ -181,7 +186,7 @@ public class SearchPage extends AppCompatActivity implements UserAdapter.OnItemC
|
|||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
if (mSearch != null && mSearch.getStatus() == FINISHED) {
|
||||
if (mSearch != null && mSearch.getStatus() != RUNNING) {
|
||||
mSearch = new TwitterSearch(this);
|
||||
mSearch.execute(search);
|
||||
}
|
||||
|
|
|
@ -29,13 +29,13 @@ import org.nuclearfog.twidda.database.GlobalSettings;
|
|||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter.OnItemClicked;
|
||||
|
||||
import static android.os.AsyncTask.Status.FINISHED;
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
|
||||
/**
|
||||
* Detailed Tweet Activity
|
||||
*
|
||||
* @see StatusLoader
|
||||
* @see ImagePopup
|
||||
*/
|
||||
public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
||||
OnItemClicked, OnRefreshListener {
|
||||
|
@ -159,7 +159,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
|||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (mStat != null && mStat.getStatus() == FINISHED) {
|
||||
if (mStat != null && mStat.getStatus() != RUNNING) {
|
||||
switch (v.getId()) {
|
||||
case R.id.rt_button_detail:
|
||||
mStat = new StatusLoader(this);
|
||||
|
@ -227,7 +227,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
|||
|
||||
|
||||
public void onMediaClicked(String mediaLinks[]) {
|
||||
ImagePopup mediaContent = new ImagePopup(this);
|
||||
mediaContent.execute(mediaLinks);
|
||||
ImagePopup imagePopup = new ImagePopup(this);
|
||||
imagePopup.execute(mediaLinks);
|
||||
}
|
||||
}
|
|
@ -27,9 +27,15 @@ import java.util.List;
|
|||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
|
||||
/**
|
||||
* Tweet Window
|
||||
*
|
||||
* @see StatusUpload
|
||||
*/
|
||||
public class TweetPopup extends AppCompatActivity implements OnClickListener {
|
||||
|
||||
private StatusUpload sendTweet;
|
||||
private ImagePopup imagePopup;
|
||||
private View imageButton, previewBtn;
|
||||
private List<String> mediaPath;
|
||||
private TextView imgCount;
|
||||
|
@ -73,6 +79,16 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener {
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
if (sendTweet != null && sendTweet.getStatus() == RUNNING)
|
||||
sendTweet.cancel(true);
|
||||
if (imagePopup != null && imagePopup.getStatus() == RUNNING)
|
||||
imagePopup.cancel(true);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
showClosingMsg();
|
||||
|
@ -118,8 +134,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 (!tweetStr.trim().isEmpty() && mediaPath.isEmpty()) {
|
||||
sendTweet.execute();
|
||||
} else if (!mediaPath.isEmpty()) {
|
||||
|
@ -140,7 +157,10 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener {
|
|||
break;
|
||||
|
||||
case R.id.img_preview:
|
||||
new ImagePopup(this).execute(mediaPath.toArray(new String[mediaPath.size()]));
|
||||
if (imagePopup != null && imagePopup.getStatus() == RUNNING)
|
||||
imagePopup.cancel(true);
|
||||
imagePopup = new ImagePopup(this);
|
||||
imagePopup.execute(mediaPath.toArray(new String[mediaPath.size()]));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -154,8 +174,6 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener {
|
|||
closeDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
if (sendTweet != null && sendTweet.getStatus() == RUNNING)
|
||||
sendTweet.cancel(true);
|
||||
finish();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -20,9 +20,8 @@ import org.nuclearfog.twidda.viewadapter.UserAdapter.OnItemClicked;
|
|||
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
|
||||
|
||||
/**
|
||||
* User List
|
||||
* User List Activity
|
||||
*
|
||||
* @see UserLists
|
||||
*/
|
||||
|
|
|
@ -26,10 +26,8 @@ import org.nuclearfog.twidda.database.GlobalSettings;
|
|||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter;
|
||||
import org.nuclearfog.twidda.viewadapter.TimelineAdapter.OnItemClicked;
|
||||
|
||||
import static android.os.AsyncTask.Status.FINISHED;
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
|
||||
|
||||
/**
|
||||
* User Profile Activity
|
||||
*
|
||||
|
@ -169,7 +167,7 @@ public class UserProfile extends AppCompatActivity implements
|
|||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (mProfile != null && mProfile.getStatus() == FINISHED) {
|
||||
if (mProfile != null && mProfile.getStatus() != RUNNING) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.profile_tweet:
|
||||
Intent tweet = new Intent(this, TweetPopup.class);
|
||||
|
|
|
@ -182,7 +182,7 @@
|
|||
style="@style/Widget.AppCompat.Button.Borderless"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/button_height"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_margin="5dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@android:color/holo_red_dark"
|
||||
android:text="@string/delete_database" />
|
||||
|
@ -192,7 +192,7 @@
|
|||
style="@style/Widget.AppCompat.Button.Borderless"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/button_height"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_margin="5dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@android:color/holo_red_dark"
|
||||
android:text="@string/logout" />
|
||||
|
|
|
@ -10,15 +10,16 @@
|
|||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:gravity="right|center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/dm_receiver"
|
||||
android:layout_width="@dimen/text_input_width"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/name_input_height"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@android:color/transparent"
|
||||
android:hint="@string/username"
|
||||
android:inputType="text"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<string name="trend_setting">Trendeinstellung</string>
|
||||
<string name="database">Datenbank</string>
|
||||
<string name="profile">Profil</string>
|
||||
<string name="register_link">app registrieren</string>
|
||||
<string name="register_link">PIN aufrufen</string>
|
||||
<string name="profile_image">profilbild</string>
|
||||
<string name="settings">Einstellungen</string>
|
||||
<string name="back">Zurück</string>
|
||||
|
@ -68,8 +68,9 @@
|
|||
<string name="error_not_specified">Allgemeiner Fehler!</string>
|
||||
<string name="error_sending_dm">Fehler beim Senden der Direktnachricht!</string>
|
||||
<string name="empty_tweet">Tweet leer!</string>
|
||||
<string name="logout">log out!</string>
|
||||
<string name="logout">ausloggen</string>
|
||||
<string name="should_log_lout">ausloggen?</string>
|
||||
<string name="should_unfollow">User entfolgen?</string>
|
||||
<string name="should_block">user sperren?</string>
|
||||
<string name="pin_verification_failed">PIN verifizierung fehlgeschlagen!</string>
|
||||
</resources>
|
|
@ -31,7 +31,7 @@
|
|||
<string name="trend_setting">trend setting</string>
|
||||
<string name="database">database</string>
|
||||
<string name="profile">profile</string>
|
||||
<string name="register_link">app registry</string>
|
||||
<string name="register_link">get PIN!</string>
|
||||
<string name="image">load images</string>
|
||||
<string name="delete_database">delete database</string>
|
||||
<string name="search">search</string>
|
||||
|
@ -80,4 +80,5 @@
|
|||
<string name="should_log_lout">log out?</string>
|
||||
<string name="should_unfollow">unfollow user?</string>
|
||||
<string name="should_block">block user?</string>
|
||||
<string name="pin_verification_failed">PIN verification failed!</string>
|
||||
</resources>
|
|
@ -8,7 +8,7 @@
|
|||
<item name="android:windowAnimationStyle">@style/TransactionPending</item>
|
||||
<item name="android:statusBarColor">@android:color/black</item>
|
||||
<item name="android:textViewStyle">@style/RobotoTextView</item>
|
||||
<item name="buttonStyle">@style/RobotoTextView</item>
|
||||
<item name="buttonStyle">@style/CustomButton</item>
|
||||
</style>
|
||||
|
||||
<style name="Transparency" parent="AppTheme">
|
||||
|
@ -27,9 +27,13 @@
|
|||
|
||||
<style name="CardViewStyle" parent="CardView">
|
||||
<item name="cardBackgroundColor">#40000000</item>
|
||||
<item name="cardCornerRadius">4dp</item>
|
||||
<item name="cardElevation">2dp</item>
|
||||
<item name="cardCornerRadius">5dp</item>
|
||||
<item name="cardUseCompatPadding">true</item>
|
||||
</style>
|
||||
|
||||
<style name="CustomButton" parent="Widget.AppCompat.Button">
|
||||
<item name="android:textAllCaps">false</item>
|
||||
<item name="android:fontFamily">RobotoTextView</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
Loading…
Reference in New Issue