diff --git a/app/build.gradle b/app/build.gradle
index 7d88afb1..6ac82f87 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,8 +16,8 @@ android {
applicationId "io.lbry.browser"
minSdkVersion 21
targetSdkVersion 29
- versionCode 1608
- versionName "0.16.8"
+ versionCode 1606
+ versionName "0.16.6"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index cc655ddf..306751c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -68,18 +68,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/app/src/main/java/io/lbry/browser/MainActivity.java b/app/src/main/java/io/lbry/browser/MainActivity.java
index 96f11f79..fceb7dda 100644
--- a/app/src/main/java/io/lbry/browser/MainActivity.java
+++ b/app/src/main/java/io/lbry/browser/MainActivity.java
@@ -11,7 +11,6 @@ import android.content.BroadcastReceiver;
import android.content.ClipData;
import android.content.ComponentName;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
@@ -37,7 +36,6 @@ import android.text.style.TypefaceSpan;
import android.util.Base64;
import android.util.Log;
import android.view.KeyEvent;
-import android.view.MenuItem;
import android.view.View;
import android.view.Menu;
import android.view.WindowManager;
@@ -77,9 +75,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.ActionBarDrawerToggle;
-import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatDelegate;
-import androidx.appcompat.view.ActionMode;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.app.ActivityCompat;
import androidx.core.app.NotificationCompat;
@@ -92,7 +88,6 @@ import androidx.core.view.GravityCompat;
import androidx.core.view.OnApplyWindowInsetsListener;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
-import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
@@ -103,7 +98,6 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
@@ -148,7 +142,6 @@ import io.lbry.browser.listener.FilePickerListener;
import io.lbry.browser.listener.PIPModeListener;
import io.lbry.browser.listener.ScreenOrientationListener;
import io.lbry.browser.listener.SdkStatusListener;
-import io.lbry.browser.listener.SelectionModeListener;
import io.lbry.browser.listener.StoragePermissionListener;
import io.lbry.browser.listener.WalletBalanceListener;
import io.lbry.browser.model.Claim;
@@ -172,7 +165,6 @@ import io.lbry.browser.tasks.lbryinc.FetchRewardsTask;
import io.lbry.browser.tasks.LighthouseAutoCompleteTask;
import io.lbry.browser.tasks.MergeSubscriptionsTask;
import io.lbry.browser.tasks.claim.ResolveTask;
-import io.lbry.browser.tasks.lbryinc.NotificationDeleteTask;
import io.lbry.browser.tasks.lbryinc.NotificationListTask;
import io.lbry.browser.tasks.lbryinc.NotificationUpdateTask;
import io.lbry.browser.tasks.localdata.FetchRecentUrlHistoryTask;
@@ -217,9 +209,7 @@ import lombok.Setter;
import lombok.SneakyThrows;
import okhttp3.OkHttpClient;
-public class MainActivity extends AppCompatActivity implements SdkStatusListener,
- SharedPreferences.OnSharedPreferenceChangeListener,
- ActionMode.Callback, SelectionModeListener {
+public class MainActivity extends AppCompatActivity implements SdkStatusListener, SharedPreferences.OnSharedPreferenceChangeListener {
private static final String CHANNEL_ID_PLAYBACK = "io.lbry.browser.LBRY_PLAYBACK_CHANNEL";
private static final int PLAYBACK_NOTIFICATION_ID = 3;
private static final String SPECIAL_URL_PREFIX = "lbry://?";
@@ -254,7 +244,6 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
public static boolean startingPermissionRequest = false;
public static boolean startingSignInFlowActivity = false;
- private ActionMode actionMode;
private BillingClient billingClient;
@Getter
private boolean enteringPIPMode = false;
@@ -377,7 +366,6 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
private MediaSessionCompat mediaSession;
private boolean receivedStopService;
private ActionBarDrawerToggle toggle;
- private SwipeRefreshLayout notificationsSwipeContainer;
private SyncSetTask syncSetTask = null;
private List pendingSyncSetQueue;
@Getter
@@ -593,16 +581,6 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
}
});
- notificationsSwipeContainer = findViewById(R.id.notifications_list_swipe_container);
- notificationsSwipeContainer.setColorSchemeResources(R.color.nextLbryGreen);
- notificationsSwipeContainer.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
- @Override
- public void onRefresh() {
- notificationsSwipeContainer.setRefreshing(true);
- loadRemoteNotifications(false);
- }
- });
-
findViewById(R.id.global_now_playing_card).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -1033,7 +1011,6 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
//findViewById(R.id.global_sdk_initializing_status).setVisibility(View.GONE);
findViewById(R.id.app_bar_main_container).setFitsSystemWindows(true);
hideActionBar();
- dismissActiveDialogs();
for (PIPModeListener listener : pipModeListeners) {
listener.onEnterPIPMode();
@@ -1046,15 +1023,6 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
pipPlayerContainer.setVisibility(View.VISIBLE);
playerReassigned = true;
}
-
- private void dismissActiveDialogs() {
- for( Fragment fragment: getSupportFragmentManager().getFragments() ){
- if (fragment instanceof DialogFragment){
- ((DialogFragment) fragment).dismiss();
- }
- }
- }
-
private void renderFullMode() {
if (!inFullscreenMode) {
showActionBar();
@@ -1906,103 +1874,6 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
}
}
- @Override
- public boolean onCreateActionMode(ActionMode mode, Menu menu) {
- this.actionMode = mode;
- if (isDarkMode()) {
- getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
- }
-
- actionMode.getMenuInflater().inflate(R.menu.menu_notification, menu);
- return true;
- }
-
- @Override
- public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
- return true;
- }
-
- @Override
- public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
- if (R.id.action_delete == item.getItemId()) {
- if (notificationListAdapter != null && notificationListAdapter.getSelectedCount() > 0) {
-
- final List selectedNotifications = new ArrayList<>(notificationListAdapter.getSelectedItems());
- String message = getResources().getQuantityString(R.plurals.confirm_delete_notifications, selectedNotifications.size());
- AlertDialog.Builder builder = new AlertDialog.Builder(this).
- setTitle(R.string.delete_selection).
- setMessage(message)
- .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- handleDeleteSelectedNotifications(selectedNotifications);
- }
- }).setNegativeButton(R.string.no, null);
- builder.show();
- return true;
- }
- }
- return false;
- }
-
- @Override
- public void onDestroyActionMode(ActionMode mode) {
- if (notificationListAdapter != null) {
- notificationListAdapter.clearSelectedItems();
- notificationListAdapter.setInSelectionMode(false);
- notificationListAdapter.notifyDataSetChanged();
- }
- if (isDarkMode()) {
- getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
- }
- this.actionMode = null;
- }
-
- @Override
- public void onEnterSelectionMode() {
- startSupportActionMode(this);
- }
-
- @Override
- public void onExitSelectionMode() {
- if (actionMode != null) {
- actionMode.finish();
- }
- }
-
- @Override
- public void onItemSelectionToggled() {
- if (actionMode != null) {
- actionMode.setTitle(notificationListAdapter != null ? String.valueOf(notificationListAdapter.getSelectedCount()) : "");
- actionMode.invalidate();
- }
- }
-
- private void handleDeleteSelectedNotifications(List notifications) {
- List remoteIds = new ArrayList<>();
- for (LbryNotification notification : notifications) {
- remoteIds.add(notification.getRemoteId());
- }
- (new AsyncTask() {
- protected Void doInBackground(Void... params) {
- try {
- SQLiteDatabase db = dbHelper.getWritableDatabase();
- DatabaseHelper.deleteNotifications(notifications, db);
- } catch (Exception ex) {
- // pass
- }
- return null;
- }
- }).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- new NotificationDeleteTask(remoteIds).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- if (notificationListAdapter != null) {
- notificationListAdapter.removeNotifications(notifications);
- }
- if (actionMode != null) {
- actionMode.finish();
- }
- }
-
private class PlayerNotificationDescriptionAdapter implements PlayerNotificationManager.MediaDescriptionAdapter {
@Override
@@ -2842,12 +2713,11 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
JSONObject item = array.getJSONObject(i);
String claimId = item.getString("claim_id");
String channelName = item.getString("channel_name");
- boolean isNotificationsDisabled = item.getBoolean("is_notifications_disabled");
LbryUri url = new LbryUri();
url.setChannelName(channelName);
url.setClaimId(claimId);
- subscriptions.add(new Subscription(channelName, url.toString(), isNotificationsDisabled));
+ subscriptions.add(new Subscription(channelName, url.toString()));
subUrls.add(url.toString());
}
Lbryio.subscriptions = subscriptions;
@@ -3252,6 +3122,7 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
// TODO: Broadcast startup status changes
JSONObject startupStatus = status.getJSONObject("startup_status");
+ android.util.Log.d(TAG, startupStatus.toString(2));
sdkReady = startupStatus.getBoolean("file_manager") && startupStatus.getBoolean("wallet");
}
} catch (ConnectException | JSONException ex) {
@@ -3519,10 +3390,6 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
if (markRead && findViewById(R.id.notifications_container).getVisibility() == View.VISIBLE) {
markNotificationsRead();
}
-
- if (notificationsSwipeContainer != null) {
- notificationsSwipeContainer.setRefreshing(false);
- }
}
@Override
@@ -3530,9 +3397,6 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
// pass
Log.e(TAG, "error loading remote notifications", exception);
loadLocalNotifications();
- if (notificationsSwipeContainer != null) {
- notificationsSwipeContainer.setRefreshing(false);
- }
}
});
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
@@ -3562,7 +3426,6 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
if (notificationListAdapter == null) {
notificationListAdapter = new NotificationListAdapter(notifications, MainActivity.this);
- notificationListAdapter.setSelectionModeListener(MainActivity.this);
((RecyclerView) findViewById(R.id.notifications_list)).setAdapter(notificationListAdapter);
} else {
notificationListAdapter.addNotifications(notifications);
diff --git a/app/src/main/java/io/lbry/browser/adapter/ClaimListAdapter.java b/app/src/main/java/io/lbry/browser/adapter/ClaimListAdapter.java
index 616432c6..93b7958d 100644
--- a/app/src/main/java/io/lbry/browser/adapter/ClaimListAdapter.java
+++ b/app/src/main/java/io/lbry/browser/adapter/ClaimListAdapter.java
@@ -430,7 +430,7 @@ public class ClaimListAdapter extends RecyclerView.Adapter items;
- private List selectedItems;
@Setter
private NotificationClickListener clickListener;
@Getter
@Setter
- private boolean inSelectionMode;
- @Setter
- private SelectionModeListener selectionModeListener;
+ private int customizeMode;
public NotificationListAdapter(List notifications, Context context) {
this.context = context;
this.items = new ArrayList<>(notifications);
- this.selectedItems = new ArrayList<>();
Collections.sort(items, Collections.reverseOrder(new LbryNotification()));
}
@@ -68,7 +62,6 @@ public class NotificationListAdapter extends RecyclerView.Adapter getSelectedItems() {
- return this.selectedItems;
- }
- public int getSelectedCount() {
- return selectedItems != null ? selectedItems.size() : 0;
- }
- public void clearSelectedItems() {
- this.selectedItems.clear();
- }
- public boolean isNotificationSelected(LbryNotification notification) {
- return selectedItems.contains(notification);
- }
public void insertNotification(LbryNotification notification, int index) {
if (!items.contains(notification)) {
@@ -110,12 +90,6 @@ public class NotificationListAdapter extends RecyclerView.Adapter notifications) {
- for (LbryNotification notification : notifications) {
- items.remove(notification);
- }
- notifyDataSetChanged();
- }
public List getAuthorUrls() {
List urls = new ArrayList<>();
@@ -184,8 +158,9 @@ public class NotificationListAdapter extends RecyclerView.Adapter notifications, SQLiteDatabase db) {
- StringBuilder sb = new StringBuilder("DELETE FROM notifications WHERE remote_id IN (");
- List