Search in sources :

Example 1 with ChannelCreateUpdateTask

use of com.odysee.app.tasks.claim.ChannelCreateUpdateTask in project odysee-android by OdyseeTeam.

the class ChannelFormFragment method validateAndSaveClaim.

private void validateAndSaveClaim(Claim claim) {
    if (!editMode && Helper.isNullOrEmpty(claim.getName())) {
        showError(getString(R.string.please_enter_channel_name));
        return;
    }
    String channelName = claim.getName().startsWith("@") ? claim.getName().substring(1) : claim.getName();
    if (!LbryUri.isNameValid(channelName)) {
        showError(getString(R.string.channel_name_invalid_characters));
        return;
    }
    if (!editMode) {
        if (Helper.channelExists(channelName)) {
            showError(getString(R.string.channel_name_already_created));
            return;
        }
    }
    String depositString = Helper.getValue(inputDeposit.getText());
    double depositAmount = 0;
    try {
        depositAmount = Double.parseDouble(depositString);
    } catch (NumberFormatException ex) {
        // pass
        showError(getString(R.string.please_enter_valid_deposit));
        return;
    }
    if (depositAmount < Helper.MIN_DEPOSIT) {
        String error = getResources().getQuantityString(R.plurals.min_deposit_required, depositAmount == 1 ? 1 : 2, String.valueOf(Helper.MIN_DEPOSIT));
        showError(error);
        return;
    }
    if (Lbry.getAvailableBalance() < depositAmount) {
        showError(getString(R.string.deposit_more_than_balance));
        return;
    }
    AccountManager am = AccountManager.get(getContext());
    String authToken = am.peekAuthToken(Helper.getOdyseeAccount(am.getAccounts()), "auth_token_type");
    ChannelCreateUpdateTask task = new ChannelCreateUpdateTask(claim, new BigDecimal(depositString), editMode, channelSaveProgress, authToken, new ClaimResultHandler() {

        @Override
        public void beforeStart() {
            preSave();
        }

        @Override
        public void onSuccess(Claim claimResult) {
            postSave();
            // Run the logPublish task
            if (!BuildConfig.DEBUG) {
                LogPublishTask logPublish = new LogPublishTask(claimResult);
                logPublish.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
            }
            if (!editMode) {
                // channel created
                Bundle bundle = new Bundle();
                bundle.putString("claim_id", claimResult.getClaimId());
                bundle.putString("claim_name", claimResult.getName());
                LbryAnalytics.logEvent(LbryAnalytics.EVENT_CHANNEL_CREATE, bundle);
            }
            Context context = getContext();
            if (context instanceof MainActivity) {
                MainActivity activity = (MainActivity) context;
                activity.showMessage(R.string.channel_save_successful);
                activity.onBackPressed();
            }
        }

        @Override
        public void onError(Exception error) {
            showError(error != null ? error.getMessage() : getString(R.string.channel_save_failed));
            postSave();
        }
    });
    task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
Also used : Context(android.content.Context) ClaimResultHandler(com.odysee.app.tasks.claim.ClaimResultHandler) ChannelCreateUpdateTask(com.odysee.app.tasks.claim.ChannelCreateUpdateTask) Bundle(android.os.Bundle) MainActivity(com.odysee.app.MainActivity) BigDecimal(java.math.BigDecimal) LogPublishTask(com.odysee.app.tasks.lbryinc.LogPublishTask) AccountManager(android.accounts.AccountManager) Claim(com.odysee.app.model.Claim)

Aggregations

AccountManager (android.accounts.AccountManager)1 Context (android.content.Context)1 Bundle (android.os.Bundle)1 MainActivity (com.odysee.app.MainActivity)1 Claim (com.odysee.app.model.Claim)1 ChannelCreateUpdateTask (com.odysee.app.tasks.claim.ChannelCreateUpdateTask)1 ClaimResultHandler (com.odysee.app.tasks.claim.ClaimResultHandler)1 LogPublishTask (com.odysee.app.tasks.lbryinc.LogPublishTask)1 BigDecimal (java.math.BigDecimal)1