use of com.odysee.app.model.License in project odysee-android by OdyseeTeam.
the class PublishFormFragment method initUi.
private void initUi() {
Context context = getContext();
languageSpinner.setAdapter(new LanguageSpinnerAdapter(context, R.layout.spinner_item_generic));
licenseSpinner.setAdapter(new LicenseSpinnerAdapter(context, R.layout.spinner_item_generic));
licenseSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
License license = (License) adapterView.getAdapter().getItem(position);
boolean otherLicense = Arrays.asList(Predefined.LICENSE_COPYRIGHTED.toLowerCase(), Predefined.LICENSE_OTHER.toLowerCase()).contains(license.getName().toLowerCase());
Helper.setViewVisibility(layoutOtherLicenseDescription, otherLicense ? View.VISIBLE : View.GONE);
if (!otherLicense) {
inputOtherLicenseDescription.setText(null);
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
linkGenerateAddress.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!editMode) {
inputAddress.setText(Helper.generateUrl());
}
}
});
switchPrice.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
Helper.setViewVisibility(textNoPrice, checked ? View.GONE : View.VISIBLE);
Helper.setViewVisibility(layoutPrice, checked ? View.VISIBLE : View.GONE);
}
});
inputAddress.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
String value = Helper.getValue(charSequence);
boolean invalid = !Helper.isNullOrEmpty(value) && !LbryUri.isNameValid(value);
Helper.setViewVisibility(textInlineAddressInvalid, invalid ? View.VISIBLE : View.INVISIBLE);
}
@Override
public void afterTextChanged(Editable editable) {
}
});
inputDeposit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
Helper.setViewVisibility(inlineDepositBalanceContainer, hasFocus ? View.VISIBLE : View.GONE);
}
});
linkShowExtraFields.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (layoutExtraFields.getVisibility() != View.VISIBLE) {
layoutExtraFields.setVisibility(View.VISIBLE);
linkShowExtraFields.setText(R.string.hide_extra_fields);
scrollView.post(new Runnable() {
@Override
public void run() {
scrollView.fullScroll(NestedScrollView.FOCUS_DOWN);
}
});
} else {
layoutExtraFields.setVisibility(View.GONE);
linkShowExtraFields.setText(R.string.show_extra_fields);
}
}
});
mediaContainer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
checkStoragePermissionAndLaunchFilePicker();
}
});
channelSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
Object item = adapterView.getItemAtPosition(position);
if (item instanceof Claim) {
Claim claim = (Claim) item;
if (claim.isPlaceholder() && !claim.isPlaceholderAnonymous()) {
if (!fetchingChannels) {
showChannelCreator();
}
}
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
inputTagFilter.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
String value = Helper.getValue(charSequence);
setFilter(value);
}
@Override
public void afterTextChanged(Editable editable) {
}
});
linkPublishCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (transcodeInProgress) {
// show alert confirming the user is sure, and then cancel
FFmpeg.cancel();
transcodeInProgress = false;
}
Context context = getContext();
if (context instanceof MainActivity) {
((MainActivity) context).onBackPressed();
}
}
});
buttonPublish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (uploading) {
Snackbar.make(view, R.string.publish_thumbnail_in_progress, Snackbar.LENGTH_LONG).show();
return;
} else if (Helper.isNullOrEmpty(uploadedThumbnailUrl)) {
showError(getString(R.string.publish_no_thumbnail));
return;
}
if (transcodeInProgress) {
Snackbar.make(view, R.string.optimization_in_progress, Snackbar.LENGTH_LONG).show();
return;
}
// check minimum deposit
String depositString = Helper.getValue(inputDeposit.getText());
double depositAmount = 0;
try {
depositAmount = Double.valueOf(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;
}
String priceString = Helper.getValue(inputPrice.getText());
double priceAmount = Helper.parseDouble(priceString, 0);
if (switchPrice.isChecked() && priceAmount == 0) {
showError(getString(R.string.price_amount_not_set));
return;
}
Claim claim = buildPublishClaim();
if (validatePublishClaim(claim)) {
publishClaim(claim);
}
}
});
channelSpinnerAdapter = new InlineChannelSpinnerAdapter(getContext(), R.layout.spinner_item_channel, new ArrayList<>());
channelSpinnerAdapter.addPlaceholder(false);
}
use of com.odysee.app.model.License in project odysee-android by OdyseeTeam.
the class PublishFormFragment method updateFieldsFromCurrentClaim.
private void updateFieldsFromCurrentClaim() {
if (currentClaim != null && !editFieldsLoaded) {
Context context = getContext();
try {
Claim.StreamMetadata metadata = (Claim.StreamMetadata) currentClaim.getValue();
if (context != null) {
uploadedThumbnailUrl = currentClaim.getThumbnailUrl(imageThumbnail.getLayoutParams().width, imageThumbnail.getLayoutParams().height, 85);
}
if (context != null && !Helper.isNullOrEmpty(uploadedThumbnailUrl)) {
Glide.with(context.getApplicationContext()).load(uploadedThumbnailUrl).centerCrop().into(imageThumbnail);
}
inputTitle.setText(currentClaim.getTitle());
inputDescription.setText(currentClaim.getDescription());
if (addedTagsAdapter != null && currentClaim.getTagObjects() != null) {
addedTagsAdapter.addTags(currentClaim.getTagObjects());
updateSuggestedTags(currentFilter, SUGGESTED_LIMIT, true);
}
if (metadata.getFee() != null) {
Fee fee = metadata.getFee();
switchPrice.setChecked(true);
inputPrice.setText(fee.getAmount());
priceCurrencySpinner.setSelection("lbc".equalsIgnoreCase(fee.getCurrency()) ? 0 : 1);
}
inputAddress.setText(currentClaim.getName());
inputDeposit.setText(currentClaim.getAmount());
if (metadata.getLanguages() != null && metadata.getLanguages().size() > 0) {
// get the first language
String langCode = metadata.getLanguages().get(0);
int langCodePosition = ((LanguageSpinnerAdapter) languageSpinner.getAdapter()).getItemPosition(langCode);
if (langCodePosition > -1) {
languageSpinner.setSelection(langCodePosition);
}
}
if (!Helper.isNullOrEmpty(metadata.getLicense())) {
LicenseSpinnerAdapter adapter = (LicenseSpinnerAdapter) licenseSpinner.getAdapter();
int licPosition = adapter.getItemPosition(metadata.getLicense());
if (licPosition == -1) {
licPosition = adapter.getItemPosition(Predefined.LICENSE_OTHER);
}
if (licPosition > -1) {
licenseSpinner.setSelection(licPosition);
}
License selectedLicense = (License) licenseSpinner.getSelectedItem();
boolean otherLicense = Arrays.asList(Predefined.LICENSE_COPYRIGHTED.toLowerCase(), Predefined.LICENSE_OTHER.toLowerCase()).contains(selectedLicense.getName().toLowerCase());
inputOtherLicenseDescription.setText(otherLicense ? metadata.getLicense() : null);
}
inputAddress.setEnabled(false);
editMode = true;
editFieldsLoaded = true;
} catch (ClassCastException ex) {
// invalid claim value type
cancelOnFatalCondition(getString(R.string.publish_invalid_claim_type));
}
}
}
use of com.odysee.app.model.License in project odysee-android by OdyseeTeam.
the class LicenseSpinnerAdapter method createView.
private View createView(int position, View convertView, ViewGroup parent) {
License item = getItem(position);
View view = inflater.inflate(layoutResourceId, parent, false);
TextView label = view.findViewById(R.id.item_display_name);
label.setText(item != null ? item.getStringResourceId() : 0);
return view;
}
use of com.odysee.app.model.License in project odysee-android by OdyseeTeam.
the class PublishFormFragment method buildPublishClaim.
private Claim buildPublishClaim() {
Claim claim = new Claim();
claim.setName(Helper.getValue(inputAddress.getText()));
claim.setAmount(Helper.getValue(inputDeposit.getText()));
Claim.StreamMetadata metadata = new Claim.StreamMetadata();
metadata.setTitle(Helper.getValue(inputTitle.getText()));
metadata.setDescription(Helper.getValue(inputDescription.getText()));
metadata.setTags(Helper.getTagsForTagObjects(addedTagsAdapter.getTags()));
Claim selectedChannel = (Claim) channelSpinner.getSelectedItem();
if (selectedChannel != null && !selectedChannel.isPlaceholder() && !selectedChannel.isPlaceholderAnonymous()) {
claim.setSigningChannel(selectedChannel);
}
if (switchPrice.isChecked()) {
Fee fee = new Fee();
fee.setCurrency((String) priceCurrencySpinner.getSelectedItem());
fee.setAmount(Helper.getValue(inputPrice.getText()));
metadata.setFee(fee);
}
if (!Helper.isNullOrEmpty(uploadedThumbnailUrl)) {
Claim.Resource thumbnail = new Claim.Resource();
thumbnail.setUrl(uploadedThumbnailUrl);
metadata.setThumbnail(thumbnail);
}
Language selectedLanguage = (Language) languageSpinner.getSelectedItem();
if (selectedLanguage != null) {
metadata.setLanguages(Arrays.asList(selectedLanguage.getCode()));
}
License selectedLicense = (License) licenseSpinner.getSelectedItem();
if (selectedLicense != null) {
boolean otherLicense = Arrays.asList(Predefined.LICENSE_COPYRIGHTED.toLowerCase(), Predefined.LICENSE_OTHER.toLowerCase()).contains(selectedLicense.getName().toLowerCase());
metadata.setLicense(otherLicense ? Helper.getValue(inputOtherLicenseDescription.getText()) : selectedLicense.getName());
metadata.setLicenseUrl(selectedLicense.getUrl());
}
// set release time from current claim (on edit)
if (currentClaim != null) {
Claim.StreamMetadata currentMetadata = (Claim.StreamMetadata) currentClaim.getValue();
metadata.setReleaseTime(currentMetadata.getReleaseTime());
if (metadata.getReleaseTime() == 0) {
metadata.setReleaseTime(currentClaim.getTimestamp());
}
claim.setTimestamp(currentClaim.getTimestamp());
}
claim.setValueType(Claim.TYPE_STREAM);
claim.setValue(metadata);
return claim;
}
Aggregations