use of com.klinker.android.twitter.views.NetworkedCacheableImageView in project Talon-for-Twitter by klinker24.
the class NotificationComposeSecondAcc method setUpReplyText.
@Override
public void setUpReplyText() {
// mark the messages as read here
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancel(1);
mNotificationManager.cancel(9);
sharedPrefs = getSharedPreferences("com.klinker.android.twitter_world_preferences", 0);
Context context = getApplicationContext();
int currentAccount = sharedPrefs.getInt("current_account", 1);
if (currentAccount == 1) {
currentAccount = 2;
} else {
currentAccount = 1;
}
useAccOne = false;
useAccTwo = true;
NetworkedCacheableImageView pic = (NetworkedCacheableImageView) findViewById(R.id.profile_pic);
HoloTextView currentName = (HoloTextView) findViewById(R.id.current_name);
if (settings.roundContactImages) {
pic.loadImage(settings.secondProfilePicUrl, false, null, NetworkedCacheableImageView.CIRCLE);
} else {
pic.loadImage(settings.secondProfilePicUrl, false, null);
}
currentName.setText("@" + settings.secondScreenName);
MentionsDataSource.getInstance(context).markAllRead(currentAccount);
sharedPrefs.edit().putInt("dm_unread_" + currentAccount, 0).commit();
// set up the reply box
reply.setText(sharedPrefs.getString("from_notification_second", ""));
reply.setSelection(reply.getText().toString().length());
notiId = sharedPrefs.getLong("from_notification_long_second", 0);
replyText = sharedPrefs.getString("from_notification_text_second", "");
sharedPrefs.edit().putLong("from_notification_id_second", 0).commit();
sharedPrefs.edit().putString("from_notification_text_second", "").commit();
sharedPrefs.edit().putString("from_notification_second", "").commit();
sharedPrefs.edit().putBoolean("from_notification_bool_second", false).commit();
// try from android wear device
CharSequence voiceReply = getVoiceReply(getIntent());
if (voiceReply != null) {
if (!voiceReply.equals("")) {
// set the text
reply.append(voiceReply);
// send the message
doneClick();
finish();
}
}
}
use of com.klinker.android.twitter.views.NetworkedCacheableImageView in project Talon-for-Twitter by klinker24.
the class PhotoFragment method onCreateView.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
activity = getActivity();
Bundle args = getArguments();
url = args.getString("url");
final View root = inflater.inflate(R.layout.photo_dialog_layout, container, false);
picture = (NetworkedCacheableImageView) root.findViewById(R.id.picture);
PhotoViewAttacher mAttacher = new PhotoViewAttacher(picture);
picture.loadImage(url, false, new NetworkedCacheableImageView.OnImageLoadedListener() {
@Override
public void onImageLoaded(CacheableBitmapDrawable result) {
LinearLayout spinner = (LinearLayout) root.findViewById(R.id.list_progress);
spinner.setVisibility(View.GONE);
}
}, 0, // no transform
true);
mAttacher.setOnViewTapListener(new PhotoViewAttacher.OnViewTapListener() {
@Override
public void onViewTap(View view, float x, float y) {
try {
activity.finish();
} catch (Exception e) {
// activity is null
}
}
});
return root;
}
use of com.klinker.android.twitter.views.NetworkedCacheableImageView in project Talon-for-Twitter by klinker24.
the class Compose method setUpSimilar.
public void setUpSimilar() {
attachImage[0] = (ImageView) findViewById(R.id.picture1);
attachImage[1] = (ImageView) findViewById(R.id.picture2);
attachImage[2] = (ImageView) findViewById(R.id.picture3);
attachImage[3] = (ImageView) findViewById(R.id.picture4);
attachButton = (ImageButton) findViewById(R.id.attach);
gifButton = (ImageButton) findViewById(R.id.gif);
emojiButton = (ImageButton) findViewById(R.id.emoji);
emojiKeyboard = (EmojiKeyboard) findViewById(R.id.emojiKeyboard);
reply = (EditText) findViewById(R.id.tweet_content);
charRemaining = (TextView) findViewById(R.id.char_remaining);
findViewById(R.id.prompt_pos).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.v("talon_input", "clicked the view");
((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(reply, InputMethodManager.SHOW_FORCED);
}
});
NetworkedCacheableImageView pic = (NetworkedCacheableImageView) findViewById(R.id.profile_pic);
HoloTextView currentName = (HoloTextView) findViewById(R.id.current_name);
if (settings.roundContactImages) {
pic.loadImage(settings.myProfilePicUrl, false, null, NetworkedCacheableImageView.CIRCLE);
} else {
pic.loadImage(settings.myProfilePicUrl, false, null);
}
currentName.setText("@" + settings.myScreenName);
//numberAttached.setText("0 " + getString(R.string.attached_images));
charRemaining.setText(140 - reply.getText().length() + "");
reply.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void afterTextChanged(Editable editable) {
countHandler.removeCallbacks(getCount);
countHandler.postDelayed(getCount, 300);
}
});
}
use of com.klinker.android.twitter.views.NetworkedCacheableImageView in project Talon-for-Twitter by klinker24.
the class ComposeActivity method setUpLayout.
public void setUpLayout() {
setContentView(R.layout.compose_activity);
setUpSimilar();
// number of accounts logged in
int count = 0;
if (sharedPrefs.getBoolean("is_logged_in_1", false)) {
count++;
}
if (sharedPrefs.getBoolean("is_logged_in_2", false)) {
count++;
}
if (count == 2) {
findViewById(R.id.accounts).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String[] options = new String[3];
options[0] = "@" + settings.myScreenName;
options[1] = "@" + settings.secondScreenName;
options[2] = getString(R.string.both_accounts);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setItems(options, new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, final int item) {
NetworkedCacheableImageView pic = (NetworkedCacheableImageView) findViewById(R.id.profile_pic);
HoloTextView currentName = (HoloTextView) findViewById(R.id.current_name);
switch(item) {
case 0:
useAccOne = true;
useAccTwo = false;
if (settings.roundContactImages) {
pic.loadImage(settings.myProfilePicUrl, false, null, NetworkedCacheableImageView.CIRCLE);
} else {
pic.loadImage(settings.myProfilePicUrl, false, null);
}
currentName.setText("@" + settings.myScreenName);
break;
case 1:
useAccOne = false;
useAccTwo = true;
if (settings.roundContactImages) {
pic.loadImage(settings.secondProfilePicUrl, false, null, NetworkedCacheableImageView.CIRCLE);
} else {
pic.loadImage(settings.secondProfilePicUrl, false, null);
}
currentName.setText("@" + settings.secondScreenName);
break;
case 2:
useAccOne = true;
useAccTwo = true;
TypedArray a = getTheme().obtainStyledAttributes(new int[] { R.attr.favUser });
int resource = a.getResourceId(0, 0);
a.recycle();
pic.setImageResource(resource);
currentName.setText(getString(R.string.both_accounts));
break;
}
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
UserAutoCompleteHelper.applyTo(this, reply);
hashtagAutoComplete = new ListPopupWindow(context);
hashtagAutoComplete.setAnchorView(reply);
hashtagAutoComplete.setHeight(toDP(200));
hashtagAutoComplete.setWidth((int) (width * .75));
hashtagAutoComplete.setAdapter(new AutoCompleteHashtagAdapter(context, HashtagDataSource.getInstance(context).getCursor(reply.getText().toString()), reply));
hashtagAutoComplete.setPromptPosition(ListPopupWindow.POSITION_PROMPT_ABOVE);
hashtagAutoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
hashtagAutoComplete.dismiss();
}
});
// watcher for the @
reply.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void afterTextChanged(Editable editable) {
String searchText = reply.getText().toString();
try {
int position = reply.getSelectionStart() - 1;
if (searchText.charAt(position) == '#') {
hashtagAutoComplete.show();
} else if (searchText.charAt(position) == ' ') {
hashtagAutoComplete.dismiss();
} else if (hashtagAutoComplete.isShowing()) {
String adapterText = "";
do {
adapterText = searchText.charAt(position--) + adapterText;
} while (searchText.charAt(position) != '#');
adapterText = adapterText.replace("#", "");
hashtagAutoComplete.setAdapter(new AutoCompleteHashtagAdapter(context, HashtagDataSource.getInstance(context).getCursor(adapterText), reply));
}
} catch (Exception e) {
// there is no text
try {
hashtagAutoComplete.dismiss();
} catch (Exception x) {
// something went really wrong I guess haha
}
}
}
});
overflow = (ImageButton) findViewById(R.id.overflow_button);
overflow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
attachButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
attachImage();
}
});
gifButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
findGif();
}
});
ImageButton at = (ImageButton) findViewById(R.id.at_button);
at.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int start = reply.getSelectionStart();
reply.getText().insert(start, "@");
reply.setSelection(start + 1);
}
});
ImageButton hashtag = (ImageButton) findViewById(R.id.hashtag_button);
hashtag.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int start = reply.getSelectionStart();
reply.getText().insert(start, "#");
reply.setSelection(start + 1);
}
});
final int SAVE_DRAFT = 0;
final int VIEW_DRAFTS = 1;
final int VIEW_QUEUE = 2;
final int SCHEDULE = 3;
final ImageButton overflow = (ImageButton) findViewById(R.id.overflow_button);
overflow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final PopupMenu menu = new PopupMenu(context, findViewById(R.id.discard_button));
menu.getMenu().add(Menu.NONE, SAVE_DRAFT, Menu.NONE, context.getString(R.string.menu_save_draft));
menu.getMenu().add(Menu.NONE, VIEW_DRAFTS, Menu.NONE, context.getString(R.string.menu_view_drafts));
menu.getMenu().add(Menu.NONE, VIEW_QUEUE, Menu.NONE, context.getString(R.string.menu_view_queued));
menu.getMenu().add(Menu.NONE, SCHEDULE, Menu.NONE, context.getString(R.string.menu_schedule_tweet));
menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch(menuItem.getItemId()) {
case SAVE_DRAFT:
if (reply.getText().length() > 0) {
QueuedDataSource.getInstance(context).createDraft(reply.getText().toString(), currentAccount);
Toast.makeText(context, getResources().getString(R.string.saved_draft), Toast.LENGTH_SHORT).show();
reply.setText("");
finish();
} else {
Toast.makeText(context, getResources().getString(R.string.no_tweet), Toast.LENGTH_SHORT).show();
}
break;
case VIEW_DRAFTS:
final String[] drafts = QueuedDataSource.getInstance(context).getDrafts();
if (drafts.length > 0) {
final String[] draftsAndDelete = new String[drafts.length + 1];
draftsAndDelete[0] = getString(R.string.delete_all);
for (int i = 1; i < draftsAndDelete.length; i++) {
draftsAndDelete[i] = drafts[i - 1];
}
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setItems(draftsAndDelete, new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, final int item) {
if (item == 0) {
// clicked the delete all item
new AlertDialog.Builder(context).setMessage(getString(R.string.delete_all) + "?").setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
QueuedDataSource.getInstance(context).deleteAllDrafts();
dialogInterface.dismiss();
}
}).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
}).create().show();
dialog.dismiss();
} else {
new AlertDialog.Builder(context).setTitle(context.getResources().getString(R.string.apply)).setMessage(draftsAndDelete[item]).setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
reply.setText(draftsAndDelete[item]);
reply.setSelection(reply.getText().length());
QueuedDataSource.getInstance(context).deleteDraft(draftsAndDelete[item]);
dialogInterface.dismiss();
}
}).setNegativeButton(R.string.delete_draft, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
QueuedDataSource.getInstance(context).deleteDraft(draftsAndDelete[item]);
dialogInterface.dismiss();
}
}).create().show();
dialog.dismiss();
}
}
});
AlertDialog alert = builder.create();
alert.show();
} else {
Toast.makeText(context, R.string.no_drafts, Toast.LENGTH_SHORT).show();
}
break;
case SCHEDULE:
Intent schedule = new Intent(context, ViewScheduledTweets.class);
if (!reply.getText().toString().isEmpty()) {
schedule.putExtra("has_text", true);
schedule.putExtra("text", reply.getText().toString());
}
startActivity(schedule);
finish();
break;
case VIEW_QUEUE:
final String[] queued = QueuedDataSource.getInstance(context).getQueuedTweets(currentAccount);
if (queued.length > 0) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setItems(queued, new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, final int item) {
new AlertDialog.Builder(context).setTitle(context.getResources().getString(R.string.keep_queued_tweet)).setMessage(queued[item]).setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
}).setNegativeButton(R.string.delete_draft, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
QueuedDataSource.getInstance(context).deleteQueuedTweet(queued[item]);
dialogInterface.dismiss();
}
}).create().show();
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
} else {
Toast.makeText(context, R.string.no_queued, Toast.LENGTH_SHORT).show();
}
break;
}
return false;
}
});
menu.show();
}
});
final ImageButton location = (ImageButton) findViewById(R.id.location);
location.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!addLocation) {
sharedPrefs.edit().putBoolean("share_location", true).commit();
addLocation = true;
if (!settings.addonTheme) {
location.setColorFilter(context.getResources().getColor(R.color.app_color));
} else {
location.setColorFilter(settings.accentInt);
}
} else {
sharedPrefs.edit().putBoolean("share_location", false).commit();
addLocation = false;
location.clearColorFilter();
}
}
});
if (sharedPrefs.getBoolean("share_location", false)) {
location.performClick();
}
if (!settings.useEmoji) {
emojiButton.setVisibility(View.GONE);
} else {
emojiKeyboard.setAttached((HoloEditText) reply);
reply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (emojiKeyboard.isShowing()) {
emojiKeyboard.setVisibility(false);
TypedArray a = getTheme().obtainStyledAttributes(new int[] { R.attr.emoji_button_changing });
int resource = a.getResourceId(0, 0);
a.recycle();
emojiButton.setImageResource(resource);
}
}
});
emojiButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (emojiKeyboard.isShowing()) {
emojiKeyboard.setVisibility(false);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.showSoftInput(reply, 0);
}
}, 250);
TypedArray a = getTheme().obtainStyledAttributes(new int[] { R.attr.emoji_button_changing });
int resource = a.getResourceId(0, 0);
a.recycle();
emojiButton.setImageResource(resource);
} else {
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(reply.getWindowToken(), 0);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
emojiKeyboard.setVisibility(true);
}
}, 250);
TypedArray a = getTheme().obtainStyledAttributes(new int[] { R.attr.keyboard_button_changing });
int resource = a.getResourceId(0, 0);
a.recycle();
emojiButton.setImageResource(resource);
}
}
});
}
}
use of com.klinker.android.twitter.views.NetworkedCacheableImageView in project Talon-for-Twitter by klinker24.
the class PhotoViewerActivity method onCreate.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
try {
getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
} catch (Exception e) {
Log.e(LOGGER_TAG, "", e);
}
if (Build.VERSION.SDK_INT > 18) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION | WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
url = getIntent().getStringExtra("url");
if (url == null) {
finish();
return;
}
// get higher quality imgur pictures
if (url.contains("imgur")) {
url = url.replace("t.jpg", ".jpg");
}
if (url.contains("insta")) {
url = url.substring(0, url.length() - 1) + "l";
}
boolean fromCache = getIntent().getBooleanExtra("from_cache", true);
boolean doRestart = getIntent().getBooleanExtra("restart", true);
final boolean fromLauncher = getIntent().getBooleanExtra("from_launcher", false);
AppSettings settings = new AppSettings(context);
if (Build.VERSION.SDK_INT > 18 && settings.uiExtras) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
setContentView(R.layout.photo_dialog_layout);
if (!doRestart || getIntent().getBooleanExtra("config_changed", false)) {
LinearLayout spinner = (LinearLayout) findViewById(R.id.list_progress);
spinner.setVisibility(View.GONE);
}
picture = (NetworkedCacheableImageView) findViewById(R.id.picture);
PhotoViewAttacher mAttacher = new PhotoViewAttacher(picture);
picture.loadImage(url, false, new NetworkedCacheableImageView.OnImageLoadedListener() {
@Override
public void onImageLoaded(CacheableBitmapDrawable result) {
LinearLayout spinner = (LinearLayout) findViewById(R.id.list_progress);
spinner.setVisibility(View.GONE);
}
}, 0, // no transform
fromCache);
mAttacher.setOnViewTapListener(new PhotoViewAttacher.OnViewTapListener() {
@Override
public void onViewTap(View view, float x, float y) {
((Activity) context).finish();
}
});
ActionBar ab = getActionBar();
if (ab != null) {
ColorDrawable transparent = new ColorDrawable(getResources().getColor(android.R.color.transparent));
ab.setBackgroundDrawable(transparent);
ab.setDisplayHomeAsUpEnabled(false);
ab.setDisplayShowHomeEnabled(false);
ab.setTitle("");
ab.setIcon(transparent);
}
}
Aggregations