use of com.odysee.app.MainActivity in project odysee-android by OdyseeTeam.
the class FileViewFragment method postComment.
private void postComment() {
if (postingComment) {
return;
}
Comment comment = buildPostComment();
beforePostComment();
AccountManager am = AccountManager.get(getContext());
Account odyseeAccount = Helper.getOdyseeAccount(am.getAccounts());
CommentCreateTask task = new CommentCreateTask(comment, am.peekAuthToken(odyseeAccount, "auth_token_type"), progressPostComment, new CommentCreateTask.CommentCreateWithTipHandler() {
@Override
public void onSuccess(Comment createdComment) {
inputComment.setText(null);
clearReplyToComment();
final boolean thisIsFirstComment = commentListAdapter == null;
ensureCommentListAdapterCreated(new ArrayList<Comment>());
if (commentListAdapter != null) {
createdComment.setPoster(comment.getPoster());
if (!Helper.isNullOrEmpty(createdComment.getParentId())) {
commentListAdapter.addReply(createdComment);
} else {
commentListAdapter.insert(0, createdComment);
}
}
afterPostComment();
checkNoComments();
if (thisIsFirstComment) {
expandButton.performClick();
}
singleCommentRoot.setVisibility(View.GONE);
Bundle bundle = new Bundle();
bundle.putString("claim_id", fileClaim != null ? fileClaim.getClaimId() : null);
bundle.putString("claim_name", fileClaim != null ? fileClaim.getName() : null);
LbryAnalytics.logEvent(LbryAnalytics.EVENT_COMMENT_CREATE, bundle);
Context context = getContext();
if (context instanceof MainActivity) {
((MainActivity) context).showMessage(R.string.comment_posted);
}
}
@Override
public void onError(Exception error) {
try {
showError(error != null ? error.getMessage() : getString(R.string.comment_error));
} catch (IllegalStateException ex) {
// pass
}
afterPostComment();
}
});
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
use of com.odysee.app.MainActivity in project odysee-android by OdyseeTeam.
the class ChannelFragment method deleteCurrentClaim.
private void deleteCurrentClaim() {
if (claim != null) {
Helper.setViewVisibility(layoutDisplayArea, View.GONE);
Helper.setViewVisibility(layoutLoadingState, View.VISIBLE);
AbandonChannelTask task = new AbandonChannelTask(Collections.singletonList(claim.getClaimId()), layoutResolving, Lbryio.AUTH_TOKEN, new AbandonHandler() {
@Override
public void onComplete(List<String> successfulClaimIds, List<String> failedClaimIds, List<Exception> errors) {
Context context = getContext();
if (context instanceof MainActivity) {
if (failedClaimIds.size() == 0) {
MainActivity activity = (MainActivity) context;
activity.showMessage(R.string.channel_deleted);
activity.onBackPressed();
} else {
View root = getView();
if (root != null) {
Snackbar.make(root, R.string.channel_failed_delete, Snackbar.LENGTH_LONG).setBackgroundTint(Color.RED).setTextColor(Color.WHITE).show();
}
}
}
}
});
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
}
use of com.odysee.app.MainActivity in project odysee-android by OdyseeTeam.
the class ChannelFragment method onCreateView.
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_channel, container, false);
layoutLoadingState = root.findViewById(R.id.channel_view_loading_state);
layoutNothingAtLocation = root.findViewById(R.id.container_nothing_at_location);
layoutDisplayArea = root.findViewById(R.id.channel_view_claim_display_area);
layoutResolving = root.findViewById(R.id.channel_view_loading_container);
imageCover = root.findViewById(R.id.channel_view_cover_image);
imageThumbnail = root.findViewById(R.id.channel_view_thumbnail);
noThumbnailView = root.findViewById(R.id.channel_view_no_thumbnail);
textAlpha = root.findViewById(R.id.channel_view_icon_alpha);
textTitle = root.findViewById(R.id.channel_view_title);
textFollowerCount = root.findViewById(R.id.channel_view_follower_count);
buttonEdit = root.findViewById(R.id.channel_view_edit);
buttonDelete = root.findViewById(R.id.channel_view_delete);
buttonShare = root.findViewById(R.id.channel_view_share);
buttonTip = root.findViewById(R.id.channel_view_tip);
buttonReport = root.findViewById(R.id.channel_view_report);
buttonFollowUnfollow = root.findViewById(R.id.channel_view_follow_unfollow);
textFollow = root.findViewById(R.id.channel_view_text_follow);
iconFollow = root.findViewById(R.id.channel_view_icon_follow);
iconUnfollow = root.findViewById(R.id.channel_view_icon_unfollow);
buttonBell = root.findViewById(R.id.channel_view_subscribe_notify);
iconBell = root.findViewById(R.id.channel_view_icon_bell);
blockUnblock = root.findViewById(R.id.channel_view_block_unblock);
blockUnblockText = root.findViewById(R.id.channel_view_block_unblock_text);
blockUnblock.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean blocked = Lbryio.isChannelBlocked(claim);
Context context = getContext();
if (context instanceof MainActivity) {
if (blocked) {
// handle unblock
((MainActivity) context).handleUnblockChannel(claim);
} else {
((MainActivity) context).handleBlockChannel(claim);
}
}
}
});
tabPager = root.findViewById(R.id.channel_view_pager);
tabLayout = root.findViewById(R.id.channel_view_tabs);
tabPager.setSaveEnabled(false);
buttonEdit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (claim != null) {
Context context = getContext();
if (context instanceof MainActivity) {
((MainActivity) context).openChannelForm(claim);
}
}
}
});
buttonDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (claim != null) {
Context c = getContext();
if (c != null) {
AlertDialog.Builder builder = new AlertDialog.Builder(c).setTitle(R.string.delete_channel).setMessage(R.string.confirm_delete_channel).setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
deleteCurrentClaim();
}
}).setNegativeButton(R.string.no, null);
builder.show();
}
}
}
});
buttonShare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (claim != null) {
try {
String shareUrl = LbryUri.parse(!Helper.isNullOrEmpty(claim.getCanonicalUrl()) ? claim.getCanonicalUrl() : (!Helper.isNullOrEmpty(claim.getShortUrl()) ? claim.getShortUrl() : claim.getPermanentUrl())).toOdyseeString();
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, shareUrl);
MainActivity.startingShareActivity = true;
Intent shareUrlIntent = Intent.createChooser(shareIntent, getString(R.string.share_lbry_content));
shareUrlIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(shareUrlIntent);
} catch (LbryUriException ex) {
// pass
}
}
}
});
buttonTip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MainActivity activity = (MainActivity) getActivity();
if (activity != null && activity.isSignedIn()) {
if (claim != null) {
CreateSupportDialogFragment dialog = CreateSupportDialogFragment.newInstance(claim, (amount, isTip) -> {
double sentAmount = amount.doubleValue();
View view1 = getView();
if (view1 != null) {
String message = getResources().getQuantityString(isTip ? R.plurals.you_sent_a_tip : R.plurals.you_sent_a_support, sentAmount == 1.0 ? 1 : 2, new DecimalFormat("#,###.##").format(sentAmount));
Snackbar.make(view1, message, Snackbar.LENGTH_LONG).show();
}
});
Context context = getContext();
if (context instanceof MainActivity) {
dialog.show(((MainActivity) context).getSupportFragmentManager(), CreateSupportDialogFragment.TAG);
}
}
} else {
if (activity != null) {
activity.simpleSignIn(0);
}
}
}
});
buttonReport.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (claim != null) {
Context context = getContext();
CustomTabColorSchemeParams.Builder ctcspb = new CustomTabColorSchemeParams.Builder();
ctcspb.setToolbarColor(ContextCompat.getColor(context, R.color.colorPrimary));
CustomTabColorSchemeParams ctcsp = ctcspb.build();
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder().setDefaultColorSchemeParams(ctcsp);
CustomTabsIntent intent = builder.build();
intent.launchUrl(context, Uri.parse(String.format("https://odysee.com/$/report_content?claimId=%s", claim.getClaimId())));
}
}
});
buttonBell.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (claim != null) {
boolean isNotificationsDisabled = Lbryio.isNotificationsDisabled(claim);
final Subscription subscription = Subscription.fromClaim(claim);
subscription.setNotificationsDisabled(!isNotificationsDisabled);
view.setEnabled(false);
Context context = getContext();
new ChannelSubscribeTask(context, claim.getClaimId(), subscription, false, new ChannelSubscribeTask.ChannelSubscribeHandler() {
@Override
public void onSuccess() {
view.setEnabled(true);
Lbryio.updateSubscriptionNotificationsDisabled(subscription);
Context context = getContext();
if (context instanceof MainActivity) {
((MainActivity) context).showMessage(subscription.isNotificationsDisabled() ? R.string.receive_no_notifications : R.string.receive_all_notifications);
}
checkIsFollowing();
if (context != null) {
context.sendBroadcast(new Intent(MainActivity.ACTION_SAVE_SHARED_USER_STATE));
}
}
@Override
public void onError(Exception exception) {
view.setEnabled(true);
}
}).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
}
});
buttonFollowUnfollow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MainActivity activity = (MainActivity) getActivity();
if (activity != null && activity.isSignedIn()) {
if (claim != null) {
if (subscribing) {
return;
}
boolean isFollowing = Lbryio.isFollowing(claim);
if (isFollowing) {
Context context = getContext();
if (context != null) {
AlertDialog.Builder builder = new AlertDialog.Builder(context).setTitle(R.string.confirm_unfollow).setMessage(R.string.confirm_unfollow_message).setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
doFollowUnfollow(isFollowing, view);
}
}).setNegativeButton(R.string.no, null);
builder.show();
}
} else {
doFollowUnfollow(isFollowing, view);
}
}
} else {
if (activity != null) {
activity.simpleSignIn(0);
}
}
}
});
return root;
}
use of com.odysee.app.MainActivity in project odysee-android by OdyseeTeam.
the class ChannelFragment method onStop.
public void onStop() {
Context context = getContext();
if (context instanceof MainActivity) {
MainActivity activity = (MainActivity) context;
activity.resetCurrentDisplayFragment();
}
super.onStop();
}
use of com.odysee.app.MainActivity in project odysee-android by OdyseeTeam.
the class ChannelFragment method onResume.
public void onResume() {
super.onResume();
Context context = getContext();
Map<String, Object> params = getParams();
String url = params != null && params.containsKey("url") ? (String) params.get("url") : null;
Helper.setWunderbarValue(url, context);
if (context instanceof MainActivity) {
MainActivity activity = (MainActivity) context;
activity.updateCurrentDisplayFragment(this);
activity.addFetchChannelsListener(this);
activity.updateMiniPlayerMargins(false);
LbryAnalytics.setCurrentScreen(activity, "Channel", "Channel");
}
checkParams();
checkOwnChannel();
checkChannelBlocked();
}
Aggregations