Merge from upstream and fix conflicts

This commit is contained in:
Javi Rueda 2021-03-13 06:12:11 +01:00
commit 052197e1e3
No known key found for this signature in database
GPG key ID: BF881E052BAA3A4E
126 changed files with 481 additions and 557 deletions

View file

@ -2,7 +2,7 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.1"
buildToolsVersion "29.0.2"
flavorDimensions "default"
compileOptions {

View file

@ -172,8 +172,8 @@ public class FirstRunActivity extends AppCompatActivity {
}
private static class CheckInstallIdTask extends AsyncTask<Void, Void, Boolean> {
private Context context;
private InstallIdHandler handler;
private final Context context;
private final InstallIdHandler handler;
public CheckInstallIdTask(Context context, InstallIdHandler handler) {
this.context = context;
this.handler = handler;
@ -236,7 +236,7 @@ public class FirstRunActivity extends AppCompatActivity {
}
private static class AuthenticateTask extends AsyncTask<Void, Void, Void> {
private Context context;
private final Context context;
public AuthenticateTask(Context context) {
this.context = context;
}

View file

@ -110,6 +110,7 @@ import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ConnectException;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
@ -210,6 +211,7 @@ import lombok.SneakyThrows;
import okhttp3.OkHttpClient;
import static android.os.Build.VERSION_CODES.M;
import static android.os.Build.VERSION_CODES.P;
public class MainActivity extends AppCompatActivity implements SdkStatusListener,
SharedPreferences.OnSharedPreferenceChangeListener,
@ -243,7 +245,7 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
public static boolean startingFilePickerActivity = false;
public static boolean startingShareActivity = false;
public static boolean startingPermissionRequest = false;
public static boolean startingSignInFlowActivity = false;
public static final boolean startingSignInFlowActivity = false;
private ActionMode actionMode;
@Getter
@ -383,7 +385,7 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
private List<FetchClaimsListener> fetchClaimsListeners;
private List<FetchChannelsListener> fetchChannelsListeners;
@Getter
private ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
private final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
private boolean walletBalanceUpdateScheduled;
private boolean shouldOpenUserSelectedMenuItem;
private boolean walletSyncScheduled;
@ -788,9 +790,7 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
public void removeNavFragment(Class fragmentClass, int navItemId) {
String key = buildNavFragmentKey(fragmentClass, navItemId, null);
if (openNavFragments.containsKey(key)) {
openNavFragments.remove(key);
}
openNavFragments.remove(key);
}
public void addFetchChannelsListener(FetchChannelsListener listener) {
@ -984,7 +984,7 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
openFragment(RewardsFragment.class, true, NavMenuItem.ID_ITEM_REWARDS);
}
private FragmentManager.OnBackStackChangedListener backStackChangedListener = new FragmentManager.OnBackStackChangedListener() {
private final FragmentManager.OnBackStackChangedListener backStackChangedListener = new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
FragmentManager manager = getSupportFragmentManager();
@ -1743,7 +1743,7 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
if (!Helper.isNullOrEmpty(encryptedAuthToken)) {
try {
Lbryio.AUTH_TOKEN = new String(Utils.decrypt(
Base64.decode(encryptedAuthToken, Base64.NO_WRAP), this, Lbry.KEYSTORE), "UTF8");
Base64.decode(encryptedAuthToken, Base64.NO_WRAP), this, Lbry.KEYSTORE), StandardCharsets.UTF_8);
} catch (Exception ex) {
// pass. A new auth token would have to be generated if the old one cannot be decrypted
Log.e(TAG, "Could not decrypt existing auth token.", ex);
@ -2940,10 +2940,11 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
} else {
try {
LbryUri uri = LbryUri.parse(url);
String checkedURL = url.startsWith(LbryUri.PROTO_DEFAULT) ? url : uri.toString();
if (uri.isChannel()) {
openChannelUrl(url.startsWith(LbryUri.PROTO_DEFAULT) ? url : uri.toString());
openChannelUrl(checkedURL);
} else {
openFileUrl(url.startsWith(LbryUri.PROTO_DEFAULT) ? url : uri.toString());
openFileUrl(checkedURL);
}
} catch (LbryUriException ex) {
// pass
@ -3199,8 +3200,8 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
}
private static class CheckSdkReadyTask extends AsyncTask<Void, Void, Boolean> {
private Context context;
private List<SdkStatusListener> listeners;
private final Context context;
private final List<SdkStatusListener> listeners;
public CheckSdkReadyTask(Context context, List<SdkStatusListener> listeners) {
this.context = context;

View file

@ -23,7 +23,7 @@ import lombok.Getter;
import lombok.Setter;
public class ChannelFilterListAdapter extends RecyclerView.Adapter<ChannelFilterListAdapter.ViewHolder> {
private Context context;
private final Context context;
private List<Claim> items;
@Getter
@Setter
@ -42,12 +42,12 @@ public class ChannelFilterListAdapter extends RecyclerView.Adapter<ChannelFilter
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected View mediaContainer;
protected View alphaContainer;
protected View allView;
protected ImageView thumbnailView;
protected TextView alphaView;
protected TextView titleView;
protected final View mediaContainer;
protected final View alphaContainer;
protected final View allView;
protected final ImageView thumbnailView;
protected final TextView alphaView;
protected final TextView titleView;
public ViewHolder(View v) {
super(v);
mediaContainer = v.findViewById(R.id.channel_filter_media_container);

View file

@ -21,7 +21,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import io.lbry.browser.MainActivity;
import io.lbry.browser.R;
import io.lbry.browser.listener.SelectionModeListener;
import io.lbry.browser.model.Claim;
@ -37,18 +36,18 @@ public class ClaimListAdapter extends RecyclerView.Adapter<ClaimListAdapter.View
private static final int VIEW_TYPE_CHANNEL = 2;
private static final int VIEW_TYPE_FEATURED = 3; // featured search result
private Map<String, Claim> quickClaimIdMap;
private Map<String, Claim> quickClaimUrlMap;
private Map<String, Boolean> notFoundClaimIdMap;
private Map<String, Boolean> notFoundClaimUrlMap;
private final Map<String, Claim> quickClaimIdMap;
private final Map<String, Claim> quickClaimUrlMap;
private final Map<String, Boolean> notFoundClaimIdMap;
private final Map<String, Boolean> notFoundClaimUrlMap;
@Setter
private boolean hideFee;
@Setter
private boolean canEnterSelectionMode;
private Context context;
private final Context context;
private List<Claim> items;
private List<Claim> selectedItems;
private final List<Claim> selectedItems;
@Setter
private ClaimListItemListener listener;
@Getter
@ -176,27 +175,27 @@ public class ClaimListAdapter extends RecyclerView.Adapter<ClaimListAdapter.View
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected View feeContainer;
protected TextView feeView;
protected ImageView thumbnailView;
protected View noThumbnailView;
protected TextView alphaView;
protected TextView vanityUrlView;
protected TextView durationView;
protected TextView titleView;
protected TextView publisherView;
protected TextView publishTimeView;
protected TextView pendingTextView;
protected View repostInfoView;
protected TextView repostChannelView;
protected View selectedOverlayView;
protected TextView fileSizeView;
protected ProgressBar downloadProgressView;
protected TextView deviceView;
protected final View feeContainer;
protected final TextView feeView;
protected final ImageView thumbnailView;
protected final View noThumbnailView;
protected final TextView alphaView;
protected final TextView vanityUrlView;
protected final TextView durationView;
protected final TextView titleView;
protected final TextView publisherView;
protected final TextView publishTimeView;
protected final TextView pendingTextView;
protected final View repostInfoView;
protected final TextView repostChannelView;
protected final View selectedOverlayView;
protected final TextView fileSizeView;
protected final ProgressBar downloadProgressView;
protected final TextView deviceView;
protected View loadingImagePlaceholder;
protected View loadingTextPlaceholder1;
protected View loadingTextPlaceholder2;
protected final View loadingImagePlaceholder;
protected final View loadingTextPlaceholder1;
protected final View loadingTextPlaceholder2;
public ViewHolder(View v) {
super(v);
feeContainer = v.findViewById(R.id.claim_fee_container);

View file

@ -27,9 +27,9 @@ import io.lbry.browser.utils.LbryUri;
import lombok.Setter;
public class CommentListAdapter extends RecyclerView.Adapter<CommentListAdapter.ViewHolder> {
private List<Comment> items;
private Context context;
private boolean nested;
private final List<Comment> items;
private final Context context;
private final boolean nested;
private float scale;
@Setter
private ClaimListAdapter.ClaimListItemListener listener;
@ -102,14 +102,14 @@ public class CommentListAdapter extends RecyclerView.Adapter<CommentListAdapter.
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected TextView channelName;
protected TextView commentText;
protected ImageView thumbnailView;
protected View noThumbnailView;
protected TextView alphaView;
protected TextView commentTimeView;
protected View replyLink;
protected RecyclerView repliesList;
protected final TextView channelName;
protected final TextView commentText;
protected final ImageView thumbnailView;
protected final View noThumbnailView;
protected final TextView alphaView;
protected final TextView commentTimeView;
protected final View replyLink;
protected final RecyclerView repliesList;
public ViewHolder (View v) {
super(v);

View file

@ -23,8 +23,8 @@ public class EditorsChoiceItemAdapter extends RecyclerView.Adapter<EditorsChoice
private static final int VIEW_TYPE_HEADER = 1;
private static final int VIEW_TYPE_CONTENT = 2;
private Context context;
private List<EditorsChoiceItem> items;
private final Context context;
private final List<EditorsChoiceItem> items;
@Setter
private EditorsChoiceItemListener listener;
@ -48,11 +48,11 @@ public class EditorsChoiceItemAdapter extends RecyclerView.Adapter<EditorsChoice
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected ImageView thumbnailView;
protected TextView descriptionView;
protected TextView headerView;
protected TextView titleView;
protected View cardView;
protected final ImageView thumbnailView;
protected final TextView descriptionView;
protected final TextView headerView;
protected final TextView titleView;
protected final View cardView;
public ViewHolder(View v) {
super(v);

View file

@ -21,8 +21,8 @@ import io.lbry.browser.utils.Helper;
import lombok.Setter;
public class GalleryGridAdapter extends RecyclerView.Adapter<GalleryGridAdapter.ViewHolder> {
private Context context;
private List<GalleryItem> items;
private final Context context;
private final List<GalleryItem> items;
@Setter
private GalleryItemClickListener listener;
@ -32,8 +32,8 @@ public class GalleryGridAdapter extends RecyclerView.Adapter<GalleryGridAdapter.
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected ImageView thumbnailView;
protected TextView durationView;
protected final ImageView thumbnailView;
protected final TextView durationView;
public ViewHolder(View v) {
super(v);
thumbnailView = v.findViewById(R.id.gallery_item_thumbnail);
@ -96,8 +96,8 @@ public class GalleryGridAdapter extends RecyclerView.Adapter<GalleryGridAdapter.
public static class GalleryGridItemDecoration extends RecyclerView.ItemDecoration {
private int spanCount;
private int spacing;
private final int spanCount;
private final int spacing;
public GalleryGridItemDecoration(int spanCount, int spacing) {
this.spanCount = spanCount;

View file

@ -1,12 +1,10 @@
package io.lbry.browser.adapter;
import android.content.Context;
import android.database.DataSetObserver;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.SpinnerAdapter;
import android.widget.TextView;
import java.util.ArrayList;
@ -18,9 +16,9 @@ import io.lbry.browser.model.Claim;
public class InlineChannelSpinnerAdapter extends ArrayAdapter<Claim> {
private List<Claim> channels;
private int layoutResourceId;
private LayoutInflater inflater;
private final List<Claim> channels;
private final int layoutResourceId;
private final LayoutInflater inflater;
public InlineChannelSpinnerAdapter(Context context, int resource, List<Claim> channels) {
super(context, resource, 0, channels);

View file

@ -1,9 +1,7 @@
package io.lbry.browser.adapter;
import android.content.Context;
import android.content.Intent;
import android.graphics.Typeface;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -11,21 +9,16 @@ import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import io.lbry.browser.R;
import io.lbry.browser.model.lbryinc.Invitee;
import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.LbryUri;
import lombok.Setter;
public class InviteeListAdapter extends RecyclerView.Adapter<InviteeListAdapter.ViewHolder> {
private Context context;
private List<Invitee> items;
private final Context context;
private final List<Invitee> items;
public InviteeListAdapter(List<Invitee> invitees, Context context) {
this.context = context;
@ -80,8 +73,8 @@ public class InviteeListAdapter extends RecyclerView.Adapter<InviteeListAdapter.
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected TextView emailView;
protected TextView rewardView;
protected final TextView emailView;
protected final TextView rewardView;
public ViewHolder(View v) {
super(v);

View file

@ -10,13 +10,12 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import io.lbry.browser.R;
import io.lbry.browser.model.Claim;
import io.lbry.browser.model.Language;
import io.lbry.browser.utils.Predefined;
public class LanguageSpinnerAdapter extends ArrayAdapter<Language> {
private int layoutResourceId;
private LayoutInflater inflater;
private final int layoutResourceId;
private final LayoutInflater inflater;
public LanguageSpinnerAdapter(Context context, int resource) {
super(context, resource, 0, Predefined.PUBLISH_LANGUAGES);

View file

@ -10,13 +10,12 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import io.lbry.browser.R;
import io.lbry.browser.model.Language;
import io.lbry.browser.model.License;
import io.lbry.browser.utils.Predefined;
public class LicenseSpinnerAdapter extends ArrayAdapter<License> {
private int layoutResourceId;
private LayoutInflater inflater;
private final int layoutResourceId;
private final LayoutInflater inflater;
public LicenseSpinnerAdapter(Context context, int resource) {
super(context, resource, 0, Predefined.LICENSES);

View file

@ -2,10 +2,8 @@ package io.lbry.browser.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
@ -17,15 +15,14 @@ import io.lbry.browser.R;
import io.lbry.browser.model.NavMenuItem;
import io.lbry.browser.ui.controls.SolidIconView;
import io.lbry.browser.utils.Helper;
import lombok.Getter;
import lombok.Setter;
public class NavigationMenuAdapter extends RecyclerView.Adapter<NavigationMenuAdapter.ViewHolder> {
private static final int TYPE_GROUP = 1;
private static final int TYPE_ITEM = 2;
private Context context;
private List<NavMenuItem> menuItems;
private final Context context;
private final List<NavMenuItem> menuItems;
private NavMenuItem currentItem;
@Setter
private NavigationMenuItemClickListener listener;
@ -65,8 +62,8 @@ public class NavigationMenuAdapter extends RecyclerView.Adapter<NavigationMenuAd
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected SolidIconView iconView;
protected TextView titleView;
protected final SolidIconView iconView;
protected final TextView titleView;
public ViewHolder(View v) {
super(v);
titleView = v.findViewById(R.id.nav_menu_title);

View file

@ -14,12 +14,10 @@ import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.android.material.snackbar.Snackbar;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.TimeZone;
@ -34,7 +32,6 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Data
@EqualsAndHashCode(callSuper = false)
@ -43,9 +40,9 @@ public class NotificationListAdapter extends RecyclerView.Adapter<NotificationLi
private static final String RULE_CREATOR_SUBSCRIBER = "creator_subscriber";
private static final String RULE_COMMENT = "comment";
private Context context;
private List<LbryNotification> items;
private List<LbryNotification> selectedItems;
private final Context context;
private final List<LbryNotification> items;
private final List<LbryNotification> selectedItems;
@Setter
private NotificationClickListener clickListener;
@Getter
@ -62,13 +59,13 @@ public class NotificationListAdapter extends RecyclerView.Adapter<NotificationLi
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected View layoutView;
protected TextView titleView;
protected TextView bodyView;
protected TextView timeView;
protected SolidIconView iconView;
protected ImageView thumbnailView;
protected View selectedOverlayView;
protected final View layoutView;
protected final TextView titleView;
protected final TextView bodyView;
protected final TextView timeView;
protected final SolidIconView iconView;
protected final ImageView thumbnailView;
protected final View selectedOverlayView;
public ViewHolder(View v) {
super(v);
layoutView = v.findViewById(R.id.notification_layout);

View file

@ -32,7 +32,7 @@ public class RewardListAdapter extends RecyclerView.Adapter<RewardListAdapter.Vi
public static final int DISPLAY_MODE_ALL = 1;
public static final int DISPLAY_MODE_UNCLAIMED = 2;
private Context context;
private final Context context;
@Setter
private List<Reward> all;
private List<Reward> items;
@ -85,16 +85,16 @@ public class RewardListAdapter extends RecyclerView.Adapter<RewardListAdapter.Vi
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected View iconClaimed;
protected View loading;
protected View upTo;
protected TextView textTitle;
protected TextView textDescription;
protected TextView textLbcValue;
protected TextView textUsdValue;
protected TextView textLinkTransaction;
protected EditText inputCustomCode;
protected MaterialButton buttonClaimCustom;
protected final View iconClaimed;
protected final View loading;
protected final View upTo;
protected final TextView textTitle;
protected final TextView textDescription;
protected final TextView textLbcValue;
protected final TextView textUsdValue;
protected final TextView textLinkTransaction;
protected final EditText inputCustomCode;
protected final MaterialButton buttonClaimCustom;
public ViewHolder(View v) {
super(v);
iconClaimed = v.findViewById(R.id.reward_item_claimed_icon);

View file

@ -22,9 +22,9 @@ import io.lbry.browser.utils.Helper;
import lombok.Setter;
public class SuggestedChannelGridAdapter extends RecyclerView.Adapter<SuggestedChannelGridAdapter.ViewHolder> {
private Context context;
private List<Claim> items;
private List<Claim> selectedItems;
private final Context context;
private final List<Claim> items;
private final List<Claim> selectedItems;
@Setter
private ChannelItemSelectionListener listener;
@ -35,11 +35,11 @@ public class SuggestedChannelGridAdapter extends RecyclerView.Adapter<SuggestedC
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected View noThumbnailView;
protected ImageView thumbnailView;
protected TextView alphaView;
protected TextView titleView;
protected TextView tagView;
protected final View noThumbnailView;
protected final ImageView thumbnailView;
protected final TextView alphaView;
protected final TextView titleView;
protected final TextView tagView;
public ViewHolder(View v) {
super(v);
noThumbnailView = v.findViewById(R.id.suggested_channel_no_thumbnail);

View file

@ -23,12 +23,13 @@ public class TagListAdapter extends RecyclerView.Adapter<TagListAdapter.ViewHold
public static final int CUSTOMIZE_MODE_ADD = 1;
public static final int CUSTOMIZE_MODE_REMOVE = 2;
private Context context;
private final Context context;
private List<Tag> items;
@Setter
private TagClickListener clickListener;
@Getter
@Setter
@Getter
private int customizeMode;
public TagListAdapter(List<Tag> tags, Context context) {
@ -38,8 +39,8 @@ public class TagListAdapter extends RecyclerView.Adapter<TagListAdapter.ViewHold
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected ImageView iconView;
protected TextView nameView;
protected final ImageView iconView;
protected final TextView nameView;
public ViewHolder(View v) {
super(v);
iconView = v.findViewById(R.id.tag_action);

View file

@ -26,8 +26,8 @@ public class TransactionListAdapter extends RecyclerView.Adapter<TransactionList
private static final DecimalFormat TX_LIST_AMOUNT_FORMAT = new DecimalFormat("#,##0.0000");
private static final SimpleDateFormat TX_LIST_DATE_FORMAT = new SimpleDateFormat("MMM d");
private Context context;
private List<Transaction> items;
private final Context context;
private final List<Transaction> items;
@Setter
private TransactionClickListener listener;
@ -107,14 +107,14 @@ public class TransactionListAdapter extends RecyclerView.Adapter<TransactionList
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected TextView descView;
protected TextView amountView;
protected TextView claimView;
protected TextView feeView;
protected TextView txidLinkView;
protected TextView dateView;
protected TextView pendingView;
protected View infoFeeContainer;
protected final TextView descView;
protected final TextView amountView;
protected final TextView claimView;
protected final TextView feeView;
protected final TextView txidLinkView;
protected final TextView dateView;
protected final TextView pendingView;
protected final View infoFeeContainer;
public ViewHolder(View v) {
super(v);

View file

@ -21,8 +21,8 @@ import io.lbry.browser.utils.LbryUri;
import lombok.Setter;
public class UrlSuggestionListAdapter extends RecyclerView.Adapter<UrlSuggestionListAdapter.ViewHolder> {
private Context context;
private List<UrlSuggestion> items;
private final Context context;
private final List<UrlSuggestion> items;
@Setter
private UrlSuggestionClickListener listener;
@ -130,9 +130,9 @@ public class UrlSuggestionListAdapter extends RecyclerView.Adapter<UrlSuggestion
}
public static class ViewHolder extends RecyclerView.ViewHolder {
protected SolidIconView iconView;
protected TextView titleView;
protected TextView descView;
protected final SolidIconView iconView;
protected final TextView titleView;
protected final TextView descView;
public ViewHolder(View v) {
super(v);
iconView = v.findViewById(R.id.url_suggestion_icon);

View file

@ -25,7 +25,7 @@ public class VerificationPagerAdapter extends FragmentStateAdapter {
public static final int PAGE_VERIFICATION_WALLET = 2;
public static final int PAGE_VERIFICATION_MANUAL = 3;
private FragmentActivity activity;
private final FragmentActivity activity;
public VerificationPagerAdapter(FragmentActivity activity) {
super(activity);

View file

@ -6,7 +6,6 @@ import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.math.BigDecimal;
import java.sql.SQLInput;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

View file

@ -67,8 +67,8 @@ public class ContentFromDialogFragment extends BottomSheetDialogFragment {
R.id.content_from_past_year_item,
R.id.content_from_all_time_item
};
private BottomSheetDialogFragment dialog;
private ContentFromListener listener;
private final BottomSheetDialogFragment dialog;
private final ContentFromListener listener;
public ContentFromItemClickListener(BottomSheetDialogFragment dialog, ContentFromListener listener) {
this.dialog = dialog;

View file

@ -54,8 +54,8 @@ public class ContentScopeDialogFragment extends BottomSheetDialogFragment {
private final int[] checkViewIds = {
R.id.content_scope_everyone_item_selected, R.id.content_scope_tags_item_selected
};
private BottomSheetDialogFragment dialog;
private ContentScopeListener listener;
private final BottomSheetDialogFragment dialog;
private final ContentScopeListener listener;
public ContentScopeItemClickListener(BottomSheetDialogFragment dialog, ContentScopeListener listener) {
this.dialog = dialog;

View file

@ -57,8 +57,8 @@ public class ContentSortDialogFragment extends BottomSheetDialogFragment {
private final int[] checkViewIds = {
R.id.sort_by_trending_item_selected, R.id.sort_by_new_item_selected, R.id.sort_by_top_item_selected
};
private BottomSheetDialogFragment dialog;
private SortByListener listener;
private final BottomSheetDialogFragment dialog;
private final SortByListener listener;
public SortByItemClickListener(BottomSheetDialogFragment dialog, SortByListener listener) {
this.dialog = dialog;

View file

@ -13,7 +13,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.ProgressBar;
import android.widget.Switch;
import android.widget.TextView;
import androidx.appcompat.widget.AppCompatSpinner;
@ -41,7 +40,6 @@ import io.lbry.browser.tasks.claim.ClaimListTask;
import io.lbry.browser.tasks.wallet.SupportCreateTask;
import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
import lombok.Setter;
public class CreateSupportDialogFragment extends BottomSheetDialogFragment implements WalletBalanceListener {
public static final String TAG = "CreateSupportDialog";
@ -61,13 +59,17 @@ public class CreateSupportDialogFragment extends BottomSheetDialogFragment imple
private ProgressBar progressLoadingChannels;
@Setter
private CreateSupportListener listener;
@Setter
private Claim claim;
private final CreateSupportListener listener;
private final Claim claim;
public static CreateSupportDialogFragment newInstance() {
return new CreateSupportDialogFragment();
private CreateSupportDialogFragment(Claim claim, CreateSupportListener listener) {
super();
this.claim = claim;
this.listener = listener;
}
public static CreateSupportDialogFragment newInstance(Claim claim, CreateSupportListener listener) {
return new CreateSupportDialogFragment(claim, listener);
}
private void disableControls() {

View file

@ -142,7 +142,7 @@ public class CustomizeTagsDialogFragment extends BottomSheetDialogFragment {
return view;
}
private TagListAdapter.TagClickListener customizeTagClickListener = new TagListAdapter.TagClickListener() {
private final TagListAdapter.TagClickListener customizeTagClickListener = new TagListAdapter.TagClickListener() {
@Override
public void onTagClicked(Tag tag, int customizeMode) {
if (customizeMode == TagListAdapter.CUSTOMIZE_MODE_ADD) {

View file

@ -5,7 +5,6 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ProgressBar;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;

View file

@ -37,7 +37,6 @@ import io.lbry.browser.tasks.claim.StreamRepostTask;
import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
import io.lbry.browser.utils.LbryUri;
import lombok.Setter;
public class RepostClaimDialogFragment extends BottomSheetDialogFragment implements WalletBalanceListener {
public static final String TAG = "RepostClaimDialog";
@ -57,13 +56,17 @@ public class RepostClaimDialogFragment extends BottomSheetDialogFragment impleme
private TextView linkToggleAdvanced;
private View advancedContainer;
@Setter
private RepostClaimListener listener;
@Setter
private Claim claim;
private final RepostClaimListener listener;
private final Claim claim;
public static RepostClaimDialogFragment newInstance() {
return new RepostClaimDialogFragment();
private RepostClaimDialogFragment(Claim claim, RepostClaimListener listener) {
super();
this.listener = listener;
this.claim = claim;
}
public static RepostClaimDialogFragment newInstance(Claim claim, RepostClaimListener listener) {
return new RepostClaimDialogFragment(claim, listener);
}
@Override

View file

@ -15,7 +15,6 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.LbryUri;

View file

@ -40,7 +40,7 @@ public class ClaimCacheKey {
@Override
public boolean equals(@Nullable Object obj) {
if (obj == null || !(obj instanceof ClaimCacheKey)) {
if (!(obj instanceof ClaimCacheKey)) {
return false;
}
ClaimCacheKey key = (ClaimCacheKey) obj;

View file

@ -1,19 +1,15 @@
package io.lbry.browser.model;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
public class ClaimSearchCacheValue {
@Getter
@Setter
private List<Claim> claims;
private final List<Claim> claims;
@Getter
@Setter
private long timestamp;
private final long timestamp;
public ClaimSearchCacheValue(List<Claim> claims, long timestamp) {
this.claims = new ArrayList<>(claims);

View file

@ -3,7 +3,6 @@ package io.lbry.browser.model;
import org.json.JSONException;
import org.json.JSONObject;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;

View file

@ -4,9 +4,9 @@ import lombok.Data;
@Data
public class Language {
private String code;
private String name;
private int stringResourceId;
private final String code;
private final String name;
private final int stringResourceId;
public Language(String code, String name, int stringResourceId) {
this.code = code;

View file

@ -4,9 +4,9 @@ import lombok.Data;
@Data
public class License {
private String name;
private final String name;
private String url;
private int stringResourceId;
private final int stringResourceId;
public License(String name, int stringResourceId) {
this.name = name;

View file

@ -2,8 +2,6 @@ package io.lbry.browser.model;
import android.content.Context;
import androidx.core.content.res.ResourcesCompat;
import java.util.ArrayList;
import java.util.List;
@ -37,8 +35,8 @@ public class NavMenuItem {
public static final int ID_ITEM_SETTINGS = 401;
public static final int ID_ITEM_ABOUT = 402;
private Context context;
private int id;
private final Context context;
private final int id;
private boolean group;
private int icon;
private String title;

View file

@ -1,8 +1,8 @@
package io.lbry.browser.model;
public class StartupStage {
public Integer stage;
public Boolean stageDone;
public final Integer stage;
public final Boolean stageDone;
public StartupStage(Integer stage, Boolean stageDone) {
this.stage = stage;

View file

@ -3,9 +3,7 @@ package io.lbry.browser.model;
import java.math.BigDecimal;
import java.util.Date;
import io.lbry.browser.exceptions.LbryUriException;
import io.lbry.browser.utils.LbryUri;
import io.lbry.browser.utils.Lbryio;
import lombok.Data;
@Data

View file

@ -6,14 +6,28 @@ import java.math.BigDecimal;
import io.lbry.browser.utils.Helper;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Data
public class WalletBalance {
@Setter
@Getter
private BigDecimal available;
@Setter
@Getter
private BigDecimal reserved;
@Setter
@Getter
private BigDecimal claims;
@Setter
@Getter
private BigDecimal supports;
@Setter
@Getter
private BigDecimal tips;
@Setter
@Getter
private BigDecimal total;
public WalletBalance() {

View file

@ -1,11 +1,15 @@
package io.lbry.browser.model;
import lombok.Data;
import lombok.Getter;
@Data
public class WalletSync {
private String hash;
private String data;
@Getter
private final String hash;
@Getter
private final String data;
@Getter
private boolean changed;
public WalletSync(String hash, String data) {
@ -17,4 +21,5 @@ public class WalletSync {
this(hash, data);
this.changed = changed;
}
}

View file

@ -9,7 +9,6 @@ import org.json.JSONObject;
import java.lang.reflect.Type;
import io.lbry.browser.model.Claim;
import io.lbry.browser.utils.Helper;
import lombok.Data;

View file

@ -12,16 +12,17 @@ import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.ResponseBody;
public class BufferEventTask extends AsyncTask<Void, Void, Void> {
private static final String TAG = "LbryBufferEvent";
private static final String ENDPOINT = "https://collector-service.api.lbry.tv/api/v1/events/video";
private String streamUrl;
private String userIdHash;
private long streamDuration;
private long streamPosition;
private long bufferDuration;
private final String streamUrl;
private final String userIdHash;
private final long streamDuration;
private final long streamPosition;
private final long bufferDuration;
public BufferEventTask(String streamUrl, long streamDuration, long streamPosition, long bufferDuration, String userIdHash) {
this.streamUrl = streamUrl;
@ -53,7 +54,11 @@ public class BufferEventTask extends AsyncTask<Void, Void, Void> {
build();
Response response = client.newCall(request).execute();
String responseString = response.body().string();
ResponseBody resBody = response.body();
String responseString = "";
if (resBody != null) {
responseString = response.body().string();
}
Log.d(TAG, String.format("buffer event sent: %s", responseString));
} catch (Exception ex) {
// we don't want to fail if a buffer event fails to register

View file

@ -10,10 +10,10 @@ import io.lbry.browser.model.Tag;
import io.lbry.browser.utils.Lbry;
public class FollowUnfollowTagTask extends AsyncTask<Void, Void, Boolean> {
private Tag tag;
private boolean unfollowing;
private Context context;
private FollowUnfollowTagHandler handler;
private final Tag tag;
private final boolean unfollowing;
private final Context context;
private final FollowUnfollowTagHandler handler;
private Exception error;
public FollowUnfollowTagTask(Tag tag, boolean unfollowing, Context context, FollowUnfollowTagHandler handler) {

View file

@ -12,9 +12,9 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lighthouse;
public class LighthouseAutoCompleteTask extends AsyncTask<Void, Void, List<UrlSuggestion>> {
private String text;
private AutoCompleteResultHandler handler;
private View progressView;
private final String text;
private final AutoCompleteResultHandler handler;
private final View progressView;
private Exception error;
public LighthouseAutoCompleteTask(String text, View progressView, AutoCompleteResultHandler handler) {

View file

@ -14,13 +14,13 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lighthouse;
public class LighthouseSearchTask extends AsyncTask<Void, Void, List<Claim>> {
private String rawQuery;
private int size;
private int from;
private boolean nsfw;
private String relatedTo;
private ClaimSearchResultHandler handler;
private ProgressBar progressBar;
private final String rawQuery;
private final int size;
private final int from;
private final boolean nsfw;
private final String relatedTo;
private final ClaimSearchResultHandler handler;
private final ProgressBar progressBar;
private Exception error;
public LighthouseSearchTask(String rawQuery, int size, int from, boolean nsfw, String relatedTo, ProgressBar progressBar, ClaimSearchResultHandler handler) {

View file

@ -4,22 +4,16 @@ import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.AsyncTask;
import android.view.View;
import android.widget.ProgressBar;
import java.util.List;
import io.lbry.browser.MainActivity;
import io.lbry.browser.data.DatabaseHelper;
import io.lbry.browser.exceptions.LbryRequestException;
import io.lbry.browser.exceptions.LbryResponseException;
import io.lbry.browser.model.Claim;
import io.lbry.browser.model.Tag;
import io.lbry.browser.utils.Helper;
public class LoadTagsTask extends AsyncTask<Void, Void, List<Tag>> {
private Context context;
private LoadTagsHandler handler;
private final Context context;
private final LoadTagsHandler handler;
private Exception error;
public LoadTagsTask(Context context, LoadTagsHandler handler) {

View file

@ -4,7 +4,6 @@ import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.AsyncTask;
import android.util.Log;
import org.json.JSONArray;
import org.json.JSONException;
@ -17,24 +16,21 @@ import java.util.Map;
import io.lbry.browser.MainActivity;
import io.lbry.browser.data.DatabaseHelper;
import io.lbry.browser.exceptions.LbryUriException;
import io.lbry.browser.exceptions.LbryioRequestException;
import io.lbry.browser.exceptions.LbryioResponseException;
import io.lbry.browser.model.lbryinc.Subscription;
import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.LbryUri;
import io.lbry.browser.utils.Lbryio;
import okhttp3.Response;
// background task to create a diff of local and remote subscriptions and try to merge
public class MergeSubscriptionsTask extends AsyncTask<Void, Void, List<Subscription>> {
private static final String TAG = "MergeSubscriptionsTask";
private Context context;
private List<Subscription> base;
private final Context context;
private final List<Subscription> base;
private List<Subscription> diff;
private MergeSubscriptionsHandler handler;
private final MergeSubscriptionsHandler handler;
private Exception error;
private boolean replaceLocal;
private final boolean replaceLocal;
public MergeSubscriptionsTask(List<Subscription> base, boolean replaceLocal, Context context, MergeSubscriptionsHandler handler) {
this.base = base;

View file

@ -4,18 +4,15 @@ import android.os.AsyncTask;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.Buffer;
import io.lbry.browser.utils.Helper;
public class ReadTextFileTask extends AsyncTask<Void, Void, String> {
private String filePath;
private final String filePath;
private Exception error;
private ReadTextFileHandler handler;
private final ReadTextFileHandler handler;
public ReadTextFileTask(String filePath, ReadTextFileHandler handler) {
this.filePath = filePath;
this.handler = handler;

View file

@ -9,9 +9,9 @@ import io.lbry.browser.exceptions.ApiCallException;
import io.lbry.browser.utils.Lbry;
public class SetSdkSettingTask extends AsyncTask<Void, Void, Boolean> {
private String key;
private String value;
private GenericTaskHandler handler;
private final String key;
private final String value;
private final GenericTaskHandler handler;
private Exception error;
public SetSdkSettingTask(String key, String value, GenericTaskHandler handler) {
this.key = key;

View file

@ -13,13 +13,13 @@ import io.lbry.browser.utils.Lbry;
public class UpdateSuggestedTagsTask extends AsyncTask<Void, Void, List<Tag>> {
private boolean clearPrevious;
private boolean excludeMature;
private int limit;
private String filter;
private TagListAdapter addedTagsAdapter;
private TagListAdapter suggestedTagsAdapter;
private KnownTagsHandler handler;
private final boolean clearPrevious;
private final boolean excludeMature;
private final int limit;
private final String filter;
private final TagListAdapter addedTagsAdapter;
private final TagListAdapter suggestedTagsAdapter;
private final KnownTagsHandler handler;
public UpdateSuggestedTagsTask(
String filter,

View file

@ -21,9 +21,9 @@ import okhttp3.RequestBody;
import okhttp3.Response;
public class UploadImageTask extends AsyncTask<Void, Void, String> {
private String filePath;
private View progressView;
private UploadThumbnailHandler handler;
private final String filePath;
private final View progressView;
private final UploadThumbnailHandler handler;
private Exception error;
public UploadImageTask(String filePath, View progressView, UploadThumbnailHandler handler) {

View file

@ -11,17 +11,16 @@ import java.util.List;
import java.util.Map;
import io.lbry.browser.exceptions.ApiCallException;
import io.lbry.browser.tasks.GenericTaskHandler;
import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class AbandonChannelTask extends AsyncTask<Void, Void, Boolean> {
private List<String> claimIds;
private final List<String> claimIds;
private List<String> successfulClaimIds;
private List<String> failedClaimIds;
private List<Exception> failedExceptions;
private View progressView;
private AbandonHandler handler;
private final View progressView;
private final AbandonHandler handler;
public AbandonChannelTask(List<String> claimIds, View progressView, AbandonHandler handler) {
this.claimIds = claimIds;

View file

@ -11,17 +11,16 @@ import java.util.List;
import java.util.Map;
import io.lbry.browser.exceptions.ApiCallException;
import io.lbry.browser.tasks.GenericTaskHandler;
import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class AbandonStreamTask extends AsyncTask<Void, Void, Boolean> {
private List<String> claimIds;
private final List<String> claimIds;
private List<String> successfulClaimIds;
private List<String> failedClaimIds;
private List<Exception> failedExceptions;
private View progressView;
private AbandonHandler handler;
private final View progressView;
private final AbandonHandler handler;
public AbandonStreamTask(List<String> claimIds, View progressView, AbandonHandler handler) {
this.claimIds = claimIds;

View file

@ -21,12 +21,12 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class ChannelCreateUpdateTask extends AsyncTask<Void, Void, Claim> {
private Claim claim;
private BigDecimal deposit;
private boolean update;
private final Claim claim;
private final BigDecimal deposit;
private final boolean update;
private Exception error;
private ClaimResultHandler handler;
private View progressView;
private final ClaimResultHandler handler;
private final View progressView;
public ChannelCreateUpdateTask(Claim claim, BigDecimal deposit, boolean update, View progressView, ClaimResultHandler handler) {
this.claim = claim;

View file

@ -19,9 +19,9 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class ClaimListTask extends AsyncTask<Void, Void, List<Claim>> {
private List<String> types;
private View progressView;
private ClaimListResultHandler handler;
private final List<String> types;
private final View progressView;
private final ClaimListResultHandler handler;
private Exception error;
public ClaimListTask(String type, View progressView, ClaimListResultHandler handler) {

View file

@ -12,10 +12,10 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class ClaimSearchTask extends AsyncTask<Void, Void, List<Claim>> {
private Map<String, Object> options;
private String connectionString;
private ClaimSearchResultHandler handler;
private View progressView;
private final Map<String, Object> options;
private final String connectionString;
private final ClaimSearchResultHandler handler;
private final View progressView;
private ApiCallException error;
public ClaimSearchTask(Map<String, Object> options, String connectionString, View progressView, ClaimSearchResultHandler handler) {

View file

@ -21,10 +21,10 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class PublishClaimTask extends AsyncTask<Void, Void, Claim> {
private Claim claim;
private String filePath;
private View progressView;
private ClaimResultHandler handler;
private final Claim claim;
private final String filePath;
private final View progressView;
private final ClaimResultHandler handler;
private Exception error;
public PublishClaimTask(Claim claim, String filePath, View progressView, ClaimResultHandler handler) {
this.claim = claim;

View file

@ -21,8 +21,8 @@ public class PurchaseListTask extends AsyncTask<Void, Void, List<Claim>> {
private String claimId;
private int page;
private int pageSize;
private ClaimSearchResultHandler handler;
private View progressView;
private final ClaimSearchResultHandler handler;
private final View progressView;
private Exception error;
public PurchaseListTask(String claimId, View progressView, ClaimSearchResultHandler handler) {

View file

@ -13,10 +13,10 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class ResolveTask extends AsyncTask<Void, Void, List<Claim>> {
private List<String> urls;
private String connectionString;
private ClaimListResultHandler handler;
private View progressView;
private final List<String> urls;
private final String connectionString;
private final ClaimListResultHandler handler;
private final View progressView;
private ApiCallException error;
public ResolveTask(String url, String connectionString, View progressView, ClaimListResultHandler handler) {

View file

@ -20,12 +20,12 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class StreamRepostTask extends AsyncTask<Void, Void, Claim> {
private String name;
private BigDecimal bid;
private String claimId;
private String channelId;
private View progressView;
private ClaimResultHandler handler;
private final String name;
private final BigDecimal bid;
private final String claimId;
private final String channelId;
private final View progressView;
private final ClaimResultHandler handler;
private Exception error;
public StreamRepostTask(String name, BigDecimal bid, String claimId, String channelId, View progressView, ClaimResultHandler handler) {

View file

@ -7,12 +7,11 @@ import java.util.List;
import java.util.Map;
import io.lbry.browser.exceptions.ApiCallException;
import io.lbry.browser.tasks.GenericTaskHandler;
import io.lbry.browser.utils.Lbry;
// Just run delete on the specified claim IDs (no need for a handler)
public class BulkDeleteFilesTask extends AsyncTask<Void, Void, Boolean> {
private List<String> claimIds;
private final List<String> claimIds;
public BulkDeleteFilesTask(List<String> claimIds) {
this.claimIds = claimIds;
}

View file

@ -10,9 +10,9 @@ import io.lbry.browser.tasks.GenericTaskHandler;
import io.lbry.browser.utils.Lbry;
public class DeleteFileTask extends AsyncTask<Void, Void, Boolean> {
private String claimId;
private final String claimId;
private Exception error;
private GenericTaskHandler handler;
private final GenericTaskHandler handler;
public DeleteFileTask(String claimId, GenericTaskHandler handler) {
this.claimId = claimId;

View file

@ -11,12 +11,12 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class FileListTask extends AsyncTask<Void, Void, List<LbryFile>> {
private String claimId;
private final String claimId;
private boolean downloads;
private int page;
private int pageSize;
private FileListResultHandler handler;
private View progressView;
private final FileListResultHandler handler;
private final View progressView;
private ApiCallException error;
public FileListTask(int page, int pageSize, boolean downloads, View progressView, FileListResultHandler handler) {

View file

@ -14,10 +14,10 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class GetFileTask extends AsyncTask<Void, Void, LbryFile> {
private String uri;
private boolean saveFile;
private View progressView;
private GetFileHandler handler;
private final String uri;
private final boolean saveFile;
private final View progressView;
private final GetFileHandler handler;
private Exception error;
public GetFileTask(String uri, boolean saveFile, View progressView, GetFileHandler handler) {

View file

@ -13,16 +13,15 @@ import io.lbry.browser.data.DatabaseHelper;
import io.lbry.browser.exceptions.LbryioRequestException;
import io.lbry.browser.exceptions.LbryioResponseException;
import io.lbry.browser.model.lbryinc.Subscription;
import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbryio;
public class ChannelSubscribeTask extends AsyncTask<Void, Void, Boolean> {
private Context context;
private String channelClaimId;
private Subscription subscription;
private ChannelSubscribeHandler handler;
private final Context context;
private final String channelClaimId;
private final Subscription subscription;
private final ChannelSubscribeHandler handler;
private Exception error;
private boolean isUnsubscribing;
private final boolean isUnsubscribing;
public ChannelSubscribeTask(Context context, String channelClaimId, Subscription subscription, boolean isUnsubscribing, ChannelSubscribeHandler handler) {
this.context = context;

View file

@ -9,7 +9,6 @@ import org.json.JSONException;
import org.json.JSONObject;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
@ -25,12 +24,12 @@ import io.lbry.browser.utils.Lbryio;
public class ClaimRewardTask extends AsyncTask<Void, Void, String> {
private Context context;
private String type;
private String rewardCode;
private View progressView;
private final Context context;
private final String type;
private final String rewardCode;
private final View progressView;
private double amountClaimed;
private ClaimRewardHandler handler;
private final ClaimRewardHandler handler;
private Exception error;
public ClaimRewardTask(String type, String rewardCode, View progressView, Context context, ClaimRewardHandler handler) {

View file

@ -7,9 +7,9 @@ import io.lbry.browser.model.lbryinc.User;
import io.lbry.browser.utils.Lbryio;
public class FetchCurrentUserTask extends AsyncTask<Void, Void, User> {
private Context context;
private final Context context;
private Exception error;
private FetchUserTaskHandler handler;
private final FetchUserTaskHandler handler;
public FetchCurrentUserTask(Context context, FetchUserTaskHandler handler) {
this.context = context;

View file

@ -17,8 +17,8 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbryio;
public class FetchInviteStatusTask extends AsyncTask<Void, Void, List<Invitee>> {
private FetchInviteStatusHandler handler;
private View progressView;
private final FetchInviteStatusHandler handler;
private final View progressView;
private Exception error;
public FetchInviteStatusTask(View progressView, FetchInviteStatusHandler handler) {

View file

@ -12,8 +12,8 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbryio;
public class FetchReferralCodeTask extends AsyncTask<Void, Void, String> {
private FetchReferralCodeHandler handler;
private View progressView;
private final FetchReferralCodeHandler handler;
private final View progressView;
private Exception error;
public FetchReferralCodeTask(View progressView, FetchReferralCodeHandler handler) {

View file

@ -18,8 +18,8 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbryio;
public class FetchRewardsTask extends AsyncTask<Void, Void, List<Reward>> {
private FetchRewardsHandler handler;
private View progressView;
private final FetchRewardsHandler handler;
private final View progressView;
private Exception error;
public FetchRewardsTask(View progressView, FetchRewardsHandler handler) {

View file

@ -15,10 +15,10 @@ public class FetchStatCountTask extends AsyncTask<Void, Void, Integer> {
public static final int STAT_VIEW_COUNT = 1;
public static final int STAT_SUB_COUNT = 2;
private String claimId;
private int stat;
private FetchStatCountHandler handler;
private View progressView;
private final String claimId;
private final int stat;
private final FetchStatCountHandler handler;
private final View progressView;
private Exception error;
public FetchStatCountTask(int stat, String claimId, View progressView, FetchStatCountHandler handler) {

View file

@ -23,9 +23,9 @@ import io.lbry.browser.utils.LbryUri;
import io.lbry.browser.utils.Lbryio;
public class FetchSubscriptionsTask extends AsyncTask<Void, Void, List<Subscription>> {
private Context context;
private FetchSubscriptionsHandler handler;
private ProgressBar progressBar;
private final Context context;
private final FetchSubscriptionsHandler handler;
private final ProgressBar progressBar;
private Exception error;
public FetchSubscriptionsTask(Context context, ProgressBar progressBar, FetchSubscriptionsHandler handler) {

View file

@ -14,9 +14,9 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbryio;
public class InviteByEmailTask extends AsyncTask<Void, Void, Boolean> {
private String email;
private View progressView;
private GenericTaskHandler handler;
private final String email;
private final View progressView;
private final GenericTaskHandler handler;
private Exception error;
public InviteByEmailTask(String email, View progressView, GenericTaskHandler handler) {

View file

@ -2,24 +2,21 @@ package io.lbry.browser.tasks.lbryinc;
import android.os.AsyncTask;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Executor;
import io.lbry.browser.exceptions.LbryioRequestException;
import io.lbry.browser.exceptions.LbryioResponseException;
import io.lbry.browser.model.Claim;
import io.lbry.browser.tasks.GenericTaskHandler;
import io.lbry.browser.utils.Lbryio;
import okhttp3.Response;
public class LogFileViewTask extends AsyncTask<Void, Void, Boolean> {
private String uri;
private Claim claim;
private final String uri;
private final Claim claim;
private Exception error;
private GenericTaskHandler handler;
private long timeToStart;
private final GenericTaskHandler handler;
private final long timeToStart;
public LogFileViewTask(String uri, Claim claim, long timeToStart, GenericTaskHandler handler) {
this.uri = uri;

View file

@ -2,7 +2,6 @@ package io.lbry.browser.tasks.lbryinc;
import android.os.AsyncTask;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@ -10,10 +9,9 @@ import io.lbry.browser.exceptions.LbryioRequestException;
import io.lbry.browser.exceptions.LbryioResponseException;
import io.lbry.browser.model.Claim;
import io.lbry.browser.utils.Lbryio;
import okhttp3.Response;
public class LogPublishTask extends AsyncTask<Void, Void, Void> {
private Claim claimResult;
private final Claim claimResult;
public LogPublishTask(Claim claimResult) {
this.claimResult = claimResult;
}

View file

@ -12,7 +12,7 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbryio;
public class NotificationDeleteTask extends AsyncTask<Void, Void, Boolean> {
private List<Long> ids;
private final List<Long> ids;
public NotificationDeleteTask(List<Long> ids) {
this.ids = ids;

View file

@ -30,9 +30,9 @@ import io.lbry.browser.utils.Lbryio;
public class NotificationListTask extends AsyncTask<Void, Void, List<LbryNotification>> {
private static final String TAG = "Notifications";
private Context context;
private ListNotificationsHandler handler;
private ProgressBar progressBar;
private final Context context;
private final ListNotificationsHandler handler;
private final ProgressBar progressBar;
private Exception error;
public NotificationListTask(Context context, ProgressBar progressBar, ListNotificationsHandler handler) {

View file

@ -12,10 +12,10 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbryio;
public class NotificationUpdateTask extends AsyncTask<Void, Void, Boolean> {
private List<Long> ids;
private boolean seen;
private boolean read;
private boolean updateRead;
private final List<Long> ids;
private final boolean seen;
private final boolean read;
private final boolean updateRead;
public NotificationUpdateTask(List<Long> ids, boolean seen) {
this(ids, false, true, false);

View file

@ -11,8 +11,8 @@ import io.lbry.browser.data.DatabaseHelper;
import io.lbry.browser.model.UrlSuggestion;
public class FetchRecentUrlHistoryTask extends AsyncTask<Void, Void, List<UrlSuggestion>> {
private DatabaseHelper dbHelper;
private FetchRecentUrlHistoryHandler handler;
private final DatabaseHelper dbHelper;
private final FetchRecentUrlHistoryHandler handler;
public FetchRecentUrlHistoryTask(DatabaseHelper dbHelper, FetchRecentUrlHistoryHandler handler) {
this.dbHelper = dbHelper;
this.handler = handler;

View file

@ -10,15 +10,14 @@ import java.util.Date;
import java.util.List;
import io.lbry.browser.data.DatabaseHelper;
import io.lbry.browser.model.UrlSuggestion;
import io.lbry.browser.model.ViewHistory;
import io.lbry.browser.utils.Helper;
public class FetchViewHistoryTask extends AsyncTask<Void, Void, List<ViewHistory>> {
private DatabaseHelper dbHelper;
private FetchViewHistoryHandler handler;
private int pageSize;
private Date lastDate;
private final DatabaseHelper dbHelper;
private final FetchViewHistoryHandler handler;
private final int pageSize;
private final Date lastDate;
public FetchViewHistoryTask(Date lastDate, int pageSize, DatabaseHelper dbHelper, FetchViewHistoryHandler handler) {
this.lastDate = lastDate;
this.pageSize = pageSize;

View file

@ -6,7 +6,6 @@ import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.AsyncTask;
import android.provider.MediaStore;
import android.util.Log;
@ -23,9 +22,9 @@ import io.lbry.browser.utils.Helper;
public class LoadGalleryItemsTask extends AsyncTask<Void, GalleryItem, List<GalleryItem>> {
private static final String TAG = "LoadGalleryItemsTask";
private LoadGalleryHandler handler;
private View progressView;
private Context context;
private final LoadGalleryHandler handler;
private final View progressView;
private final Context context;
public LoadGalleryItemsTask(View progressView, Context context, LoadGalleryHandler handler) {
this.progressView = progressView;
@ -44,6 +43,7 @@ public class LoadGalleryItemsTask extends AsyncTask<Void, GalleryItem, List<Gall
if (context != null) {
ContentResolver resolver = context.getContentResolver();
try {
// TODO: MediaStore.Video.Media.DURATION requires API level 29
String[] projection = {
MediaStore.MediaColumns._ID,
MediaStore.MediaColumns.DATA,
@ -61,6 +61,7 @@ public class LoadGalleryItemsTask extends AsyncTask<Void, GalleryItem, List<Gall
int nameColumn = cursor.getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME);
int typeColumn = cursor.getColumnIndex(MediaStore.MediaColumns.MIME_TYPE);
int pathColumn = cursor.getColumnIndex(MediaStore.MediaColumns.DATA);
// TODO: MediaStore.Video.Media.DURATION requires API level 29
int durationColumn = cursor.getColumnIndex(MediaStore.Video.Media.DURATION);
GalleryItem item = new GalleryItem();

View file

@ -1,18 +1,15 @@
package io.lbry.browser.tasks.localdata;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;
import io.lbry.browser.MainActivity;
import io.lbry.browser.data.DatabaseHelper;
import io.lbry.browser.model.UrlSuggestion;
import io.lbry.browser.tasks.GenericTaskHandler;
public class SaveUrlHistoryTask extends AsyncTask<Void, Void, Boolean> {
private DatabaseHelper dbHelper;
private UrlSuggestion suggestion;
private SaveUrlHistoryHandler handler;
private final DatabaseHelper dbHelper;
private final UrlSuggestion suggestion;
private final SaveUrlHistoryHandler handler;
private Exception error;
public SaveUrlHistoryTask(UrlSuggestion suggestion, DatabaseHelper dbHelper, SaveUrlHistoryHandler handler) {

View file

@ -7,9 +7,9 @@ import io.lbry.browser.data.DatabaseHelper;
import io.lbry.browser.model.ViewHistory;
public class SaveViewHistoryTask extends AsyncTask<Void, Void, Boolean> {
private DatabaseHelper dbHelper;
private ViewHistory history;
private SaveViewHistoryHandler handler;
private final DatabaseHelper dbHelper;
private final ViewHistory history;
private final SaveViewHistoryHandler handler;
private Exception error;
public SaveViewHistoryTask(ViewHistory history, DatabaseHelper dbHelper, SaveViewHistoryHandler handler) {

View file

@ -8,8 +8,8 @@ import io.lbry.browser.model.lbryinc.User;
import io.lbry.browser.utils.Lbryio;
public class CheckUserEmailVerifiedTask extends AsyncTask<Void, Void, Boolean> {
private Context context;
private CheckUserEmailVerifiedHandler handler;
private final Context context;
private final CheckUserEmailVerifiedHandler handler;
public CheckUserEmailVerifiedTask(Context context, CheckUserEmailVerifiedHandler handler) {
this.context = context;

View file

@ -3,8 +3,6 @@ package io.lbry.browser.tasks.verification;
import android.os.AsyncTask;
import android.view.View;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
@ -15,9 +13,9 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbryio;
public class EmailNewTask extends AsyncTask<Void, Void, Boolean> {
private String email;
private View progressView;
private EmailNewHandler handler;
private final String email;
private final View progressView;
private final EmailNewHandler handler;
private Exception error;
public EmailNewTask(String email, View progressView, EmailNewHandler handler) {

View file

@ -13,9 +13,9 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbryio;
public class EmailResendTask extends AsyncTask<Void, Void, Boolean> {
private String email;
private View progressView;
private GenericTaskHandler handler;
private final String email;
private final View progressView;
private final GenericTaskHandler handler;
private Exception error;
public EmailResendTask(String email, View progressView, GenericTaskHandler handler) {

View file

@ -13,11 +13,11 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbryio;
public class PhoneNewVerifyTask extends AsyncTask<Void, Void, Boolean> {
private String countryCode;
private String phoneNumber;
private String verificationCode;
private View progressView;
private GenericTaskHandler handler;
private final String countryCode;
private final String phoneNumber;
private final String verificationCode;
private final View progressView;
private final GenericTaskHandler handler;
private Exception error;
public PhoneNewVerifyTask(String countryCode, String phoneNumber, String verificationCode, View progressView, GenericTaskHandler handler) {

View file

@ -36,8 +36,8 @@ import io.lbry.browser.utils.LbryUri;
public class LoadSharedUserStateTask extends AsyncTask<Void, Void, Boolean> {
private static final String KEY = "shared";
private Context context;
private LoadSharedUserStateHandler handler;
private final Context context;
private final LoadSharedUserStateHandler handler;
private Exception error;
private List<Subscription> subscriptions;

View file

@ -33,7 +33,7 @@ import io.lbry.browser.utils.Lbryio;
public class SaveSharedUserStateTask extends AsyncTask<Void, Void, Boolean> {
private static final String KEY = "shared";
private static final String VERSION = "0.1";
private SaveSharedUserStateHandler handler;
private final SaveSharedUserStateHandler handler;
private Exception error;
public SaveSharedUserStateTask(SaveSharedUserStateHandler handler) {

View file

@ -16,12 +16,12 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class SupportCreateTask extends AsyncTask<Void, Void, Boolean> {
private String claimId;
private String channelId;
private BigDecimal amount;
private boolean tip;
private View progressView;
private GenericTaskHandler handler;
private final String claimId;
private final String channelId;
private final BigDecimal amount;
private final boolean tip;
private final View progressView;
private final GenericTaskHandler handler;
private Exception error;
public SupportCreateTask(String claimId, String channelId, BigDecimal amount, boolean tip, View progressView, GenericTaskHandler handler) {

View file

@ -3,7 +3,6 @@ package io.lbry.browser.tasks.wallet;
import android.os.AsyncTask;
import android.view.View;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
@ -17,10 +16,10 @@ public class SyncApplyTask extends AsyncTask<Void, Void, Boolean> {
// flag to indicate if this sync_apply is to fetch wallet data or apply data
private boolean fetch;
private Exception error;
private String password;
private final String password;
private String data;
private View progressView;
private SyncTaskHandler handler;
private final SyncTaskHandler handler;
private String syncHash;
private String syncData;

View file

@ -19,13 +19,13 @@ import io.lbry.browser.utils.Lbryio;
public class SyncGetTask extends AsyncTask<Void, Void, WalletSync> {
private boolean applySyncChanges;
private final boolean applySyncChanges;
private boolean applySyncSuccessful;
private Exception error;
private Exception syncApplyError;
private String password;
private SyncTaskHandler handler;
private View progressView;
private final SyncTaskHandler handler;
private final View progressView;
private String syncHash;
private String syncData;

View file

@ -14,10 +14,10 @@ import io.lbry.browser.utils.Lbryio;
public class SyncSetTask extends AsyncTask<Void, Void, String> {
private Exception error;
private String oldHash;
private String newHash;
private String data;
private SyncTaskHandler handler;
private final String oldHash;
private final String newHash;
private final String data;
private final SyncTaskHandler handler;
public SyncSetTask(String oldHash, String newHash, String data, SyncTaskHandler handler) {
this.oldHash = oldHash;

View file

@ -11,10 +11,10 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class TransactionListTask extends AsyncTask<Void, Void, List<Transaction>> {
private int page;
private int pageSize;
private View progressView;
private TransactionListHandler handler;
private final int page;
private final int pageSize;
private final View progressView;
private final TransactionListHandler handler;
private Exception error;
public TransactionListTask(int page, int pageSize, View progressView, TransactionListHandler handler) {

View file

@ -2,18 +2,12 @@ package io.lbry.browser.tasks.wallet;
import android.os.AsyncTask;
import org.json.JSONException;
import org.json.JSONObject;
import java.math.BigDecimal;
import io.lbry.browser.exceptions.ApiCallException;
import io.lbry.browser.model.WalletBalance;
import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class WalletAddressUnusedTask extends AsyncTask<Void, Void, String> {
private WalletAddressUnusedHandler handler;
private final WalletAddressUnusedHandler handler;
private Exception error;
public WalletAddressUnusedTask(WalletAddressUnusedHandler handler) {

View file

@ -4,15 +4,12 @@ import android.os.AsyncTask;
import org.json.JSONObject;
import java.math.BigDecimal;
import io.lbry.browser.exceptions.ApiCallException;
import io.lbry.browser.model.WalletBalance;
import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class WalletBalanceTask extends AsyncTask<Void, Void, WalletBalance> {
private WalletBalanceHandler handler;
private final WalletBalanceHandler handler;
private Exception error;
public WalletBalanceTask(WalletBalanceHandler handler) {

View file

@ -12,10 +12,10 @@ import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
public class WalletSendTask extends AsyncTask<Void, Void, Boolean> {
private String recipientAddress;
private String amount;
private View progressView;
private WalletSendHandler handler;
private final String recipientAddress;
private final String amount;
private final View progressView;
private final WalletSendHandler handler;
private Exception error;
public WalletSendTask(String recipientAddress, String amount, View progressView, WalletSendHandler handler) {

View file

@ -22,11 +22,9 @@ import io.lbry.browser.MainActivity;
import io.lbry.browser.R;
import io.lbry.browser.adapter.InlineChannelSpinnerAdapter;
import io.lbry.browser.model.Claim;
import io.lbry.browser.model.WalletBalance;
import io.lbry.browser.tasks.claim.ChannelCreateUpdateTask;
import io.lbry.browser.tasks.claim.ClaimResultHandler;
import io.lbry.browser.tasks.lbryinc.LogPublishTask;
import io.lbry.browser.ui.wallet.RewardsFragment;
import io.lbry.browser.utils.Helper;
import io.lbry.browser.utils.Lbry;
import io.lbry.browser.utils.LbryAnalytics;

View file

@ -1,7 +1,6 @@
package io.lbry.browser.ui.channel;
import android.content.Context;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Editable;
@ -16,7 +15,6 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.AppCompatSpinner;
import androidx.core.widget.NestedScrollView;
import androidx.fragment.app.Fragment;
@ -648,8 +646,8 @@ public class ChannelCommentsFragment extends Fragment implements SdkStatusListen
showError(getString(R.string.please_enter_valid_deposit));
return;
}
if (depositAmount == 0) {
String error = getResources().getQuantityString(R.plurals.min_deposit_required, depositAmount == 1 ? 1 : 2, String.valueOf(Helper.MIN_DEPOSIT));
if (depositAmount <= 0.000001) {
String error = getResources().getQuantityString(R.plurals.min_deposit_required, Math.abs(depositAmount-1.0) <= 0.000001 ? 1 : 2, String.valueOf(Helper.MIN_DEPOSIT));
showError(error);
return;
}

View file

@ -3,7 +3,6 @@ package io.lbry.browser.ui.channel;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
@ -16,7 +15,6 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.core.content.ContextCompat;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.RecyclerView;

View file

@ -26,7 +26,6 @@ import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Arrays;
@ -185,19 +184,14 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen
}
if (claim != null) {
CreateSupportDialogFragment dialog = CreateSupportDialogFragment.newInstance();
dialog.setClaim(claim);
dialog.setListener(new CreateSupportDialogFragment.CreateSupportListener() {
@Override
public void onSupportCreated(BigDecimal amount, boolean isTip) {
double sentAmount = amount.doubleValue();
View view = getView();
if (view != 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(view, message, Snackbar.LENGTH_LONG).show();
}
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();
@ -399,7 +393,12 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen
}
}
if (params.containsKey("url")) {
LbryUri newLbryUri = LbryUri.tryParse(params.get("url").toString());
Object o = params.get("url");
String urlString = "";
if (o != null) {
urlString = o.toString();
}
LbryUri newLbryUri = LbryUri.tryParse(urlString);
if (newLbryUri != null) {
newUrl = newLbryUri.toString();
String qs = newLbryUri.getQueryString();
@ -590,8 +589,8 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen
}
private static class ChannelPagerAdapter extends FragmentStateAdapter {
private Claim channelClaim;
private String commentHash;
private final Claim channelClaim;
private final String commentHash;
public ChannelPagerAdapter(Claim channelClaim, String commentHash, FragmentActivity activity) {
super(activity);
this.channelClaim = channelClaim;
@ -634,6 +633,7 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen
return commentsFragment;
}
// TODO: createFragment is defined as a @NonNull and should never be able to return null.
return null;
}

Some files were not shown because too many files have changed in this diff Show more