use of com.klinker.android.twitter.views.text.HoloTextView 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(AppSettings.getInstance(this).tweetCharacterCount - 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.text.HoloTextView 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.text.HoloTextView 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.text.HoloTextView in project Talon-for-Twitter by klinker24.
the class InteractionClickListener method onItemClick.
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
HoloTextView title = (HoloTextView) view.findViewById(R.id.title);
String mTitle = title.getText().toString();
HoloTextView text = (HoloTextView) view.findViewById(R.id.text);
String mText = text.getText().toString();
// get the datasource ready to read/write
InteractionsDataSource data = InteractionsDataSource.getInstance(context);
if (mTitle.contains(context.getResources().getString(R.string.mentioned_by))) {
// this is a mention
if (MainDrawerArrayAdapter.current < 3) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
try {
drawer.closeDrawer(Gravity.END);
} catch (Exception e) {
// landscape mode
}
}
}, 300);
viewPager.setCurrentItem((mentionsPage), true);
} else {
final int pos = i;
try {
drawer.closeDrawer(Gravity.END);
} catch (Exception e) {
// landscape mode
}
new Thread(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.putExtra("page_to_open", mentionsPage);
intent.putExtra("from_drawer", true);
sharedPreferences.edit().putBoolean("should_refresh", false).commit();
try {
Thread.sleep(400);
} catch (Exception e) {
}
try {
context.startActivity(intent);
((Activity) context).overridePendingTransition(0, 0);
((Activity) context).finish();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
} else if (mTitle.contains(context.getResources().getString(R.string.retweeted)) || mTitle.contains(context.getResources().getString(R.string.favorited)) || mTitle.contains(context.getResources().getString(R.string.quoted)) || mTitle.contains(context.getResources().getString(R.string.new_favorites)) || mTitle.contains(context.getResources().getString(R.string.new_retweets)) || mTitle.contains(context.getResources().getString(R.string.new_quotes))) {
try {
drawer.closeDrawer(Gravity.END);
} catch (Exception e) {
// landscape mode
}
// open up the dialog with the users that retweeted it
final String[] fItems = data.getUsers(sharedPreferences.getInt("current_account", 1), i, DrawerActivity.oldInteractions.getText().toString().equals(context.getResources().getString(R.string.old_interactions))).split(" ");
LayoutInflater factory = LayoutInflater.from(context);
View content = factory.inflate(R.layout.interaction_dialog, null);
TextView textView = (TextView) content.findViewById(R.id.text);
textView.setText(mText);
ListView lv = (ListView) content.findViewById(R.id.list);
lv.setAdapter(new ArrayAdapter<String>(context, android.R.layout.simple_selectable_list_item, fItems));
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int item, long l) {
String touched = fItems[item];
Intent user = new Intent(context, ProfilePager.class);
user.putExtra("screenname", touched.replace("@", "").replace(" ", ""));
user.putExtra("proPic", "");
context.startActivity(user);
}
});
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(content);
AlertDialog alert = builder.create();
alert.show();
} else if (mTitle.contains(context.getResources().getString(R.string.followed))) {
try {
drawer.closeDrawer(Gravity.END);
} catch (Exception e) {
// landscape mode
}
// a new follower, open up the followers profile
String username = mTitle.substring(mTitle.indexOf("@") + 1, mTitle.indexOf(" "));
Intent user = new Intent(context, ProfilePager.class);
user.putExtra("screenname", username);
user.putExtra("proPic", "");
context.startActivity(user);
} else if (mTitle.contains(context.getResources().getString(R.string.tweeted))) {
try {
drawer.closeDrawer(Gravity.END);
} catch (Exception e) {
// landscape mode
}
// a new follower, open up the followers profile
String username = mTitle.substring(mTitle.indexOf("@") + 1, mTitle.indexOf(" "));
Intent user = new Intent(context, ProfilePager.class);
user.putExtra("screenname", username);
user.putExtra("proPic", "");
context.startActivity(user);
}
// mark it read in the sql database
data.markRead(sharedPreferences.getInt("current_account", 1), i);
// tell the system to refresh the notifications when the user opens the drawer again
sharedPreferences.edit().putBoolean("new_notification", true).commit();
}
use of com.klinker.android.twitter.views.text.HoloTextView in project Talon-for-Twitter by klinker24.
the class InteractionsCursorAdapter method newView.
@Override
public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {
View v = null;
final ViewHolder holder = new ViewHolder();
v = inflater.inflate(layout, viewGroup, false);
holder.title = (HoloTextView) v.findViewById(R.id.title);
holder.text = (HoloTextView) v.findViewById(R.id.text);
holder.background = (LinearLayout) v.findViewById(R.id.background);
holder.picture = (NetworkedCacheableImageView) v.findViewById(R.id.picture);
// sets up the font sizes
holder.title.setTextSize(15);
holder.text.setTextSize(14);
v.setTag(holder);
return v;
}
Aggregations