use of com.odysee.app.adapter.LicenseSpinnerAdapter 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.adapter.LicenseSpinnerAdapter 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));
}
}
}
Aggregations