sdk 0.87.0. Show confirmation for unfollow.
This commit is contained in:
parent
ee1d090e62
commit
b1e0b9af33
5 changed files with 114 additions and 61 deletions
|
@ -131,8 +131,8 @@ dependencies {
|
||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
|
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
|
||||||
|
|
||||||
__32bitImplementation 'io.lbry:lbrysdk32:0.86.1'
|
__32bitImplementation 'io.lbry:lbrysdk32:0.87.0'
|
||||||
__64bitImplementation 'io.lbry:lbrysdk64:0.86.1'
|
__64bitImplementation 'io.lbry:lbrysdk64:0.87.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
apply plugin: 'com.google.gms.google-services'
|
apply plugin: 'com.google.gms.google-services'
|
||||||
|
|
|
@ -3091,6 +3091,17 @@ public class MainActivity extends AppCompatActivity implements SdkStatusListener
|
||||||
String action = intent.getAction();
|
String action = intent.getAction();
|
||||||
if (LbrynetService.ACTION_STOP_SERVICE.equals(action)) {
|
if (LbrynetService.ACTION_STOP_SERVICE.equals(action)) {
|
||||||
MainActivity.this.receivedStopService = true;
|
MainActivity.this.receivedStopService = true;
|
||||||
|
|
||||||
|
// STOP is meant to close everything,
|
||||||
|
// So destroy the player at this point (even with background play enabled)
|
||||||
|
if (appPlayer != null) {
|
||||||
|
playerNotificationManager.setPlayer(null);
|
||||||
|
stopExoplayer();
|
||||||
|
nowPlayingClaim = null;
|
||||||
|
nowPlayingClaimUrl = null;
|
||||||
|
nowPlayingClaimBitmap = null;
|
||||||
|
}
|
||||||
|
|
||||||
MainActivity.this.finish();
|
MainActivity.this.finish();
|
||||||
} else if (LbrynetService.LBRY_SDK_SERVICE_STARTED.equals(action)) {
|
} else if (LbrynetService.LBRY_SDK_SERVICE_STARTED.equals(action)) {
|
||||||
// Rebuild the service notification
|
// Rebuild the service notification
|
||||||
|
|
|
@ -252,37 +252,22 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
subscribing = true;
|
|
||||||
boolean isFollowing = Lbryio.isFollowing(claim);
|
boolean isFollowing = Lbryio.isFollowing(claim);
|
||||||
Subscription subscription = Subscription.fromClaim(claim);
|
if (isFollowing) {
|
||||||
view.setEnabled(false);
|
Context context = getContext();
|
||||||
new ChannelSubscribeTask(getContext(), claim.getClaimId(), subscription, isFollowing, new ChannelSubscribeTask.ChannelSubscribeHandler() {
|
AlertDialog.Builder builder = new AlertDialog.Builder(context).
|
||||||
@Override
|
setTitle(R.string.confirm_unfollow).
|
||||||
public void onSuccess() {
|
setMessage(R.string.confirm_unfollow_message)
|
||||||
if (isFollowing) {
|
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
|
||||||
Lbryio.removeSubscription(subscription);
|
@Override
|
||||||
Lbryio.removeCachedResolvedSubscription(claim);
|
public void onClick(DialogInterface dialogInterface, int i) {
|
||||||
} else {
|
doFollowUnfollow(isFollowing, view);
|
||||||
Lbryio.addSubscription(subscription);
|
}
|
||||||
Lbryio.addCachedResolvedSubscription(claim);
|
}).setNegativeButton(R.string.no, null);
|
||||||
}
|
builder.show();
|
||||||
buttonFollowUnfollow.setEnabled(true);
|
} else {
|
||||||
subscribing = false;
|
doFollowUnfollow(isFollowing, view);
|
||||||
checkIsFollowing();
|
}
|
||||||
FollowingFragment.resetClaimSearchContent = true;
|
|
||||||
|
|
||||||
Context context = getContext();
|
|
||||||
if (context != null) {
|
|
||||||
context.sendBroadcast(new Intent(MainActivity.ACTION_SAVE_SHARED_USER_STATE));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(Exception exception) {
|
|
||||||
buttonFollowUnfollow.setEnabled(true);
|
|
||||||
subscribing = false;
|
|
||||||
}
|
|
||||||
}).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -290,6 +275,39 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void doFollowUnfollow(boolean isFollowing, View view) {
|
||||||
|
subscribing = true;
|
||||||
|
Subscription subscription = Subscription.fromClaim(claim);
|
||||||
|
view.setEnabled(false);
|
||||||
|
new ChannelSubscribeTask(getContext(), claim.getClaimId(), subscription, isFollowing, new ChannelSubscribeTask.ChannelSubscribeHandler() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess() {
|
||||||
|
if (isFollowing) {
|
||||||
|
Lbryio.removeSubscription(subscription);
|
||||||
|
Lbryio.removeCachedResolvedSubscription(claim);
|
||||||
|
} else {
|
||||||
|
Lbryio.addSubscription(subscription);
|
||||||
|
Lbryio.addCachedResolvedSubscription(claim);
|
||||||
|
}
|
||||||
|
buttonFollowUnfollow.setEnabled(true);
|
||||||
|
subscribing = false;
|
||||||
|
checkIsFollowing();
|
||||||
|
FollowingFragment.resetClaimSearchContent = true;
|
||||||
|
|
||||||
|
Context context = getContext();
|
||||||
|
if (context != null) {
|
||||||
|
context.sendBroadcast(new Intent(MainActivity.ACTION_SAVE_SHARED_USER_STATE));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Exception exception) {
|
||||||
|
buttonFollowUnfollow.setEnabled(true);
|
||||||
|
subscribing = false;
|
||||||
|
}
|
||||||
|
}).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
|
}
|
||||||
|
|
||||||
private void deleteCurrentClaim() {
|
private void deleteCurrentClaim() {
|
||||||
if (claim != null) {
|
if (claim != null) {
|
||||||
Helper.setViewVisibility(layoutDisplayArea, View.GONE);
|
Helper.setViewVisibility(layoutDisplayArea, View.GONE);
|
||||||
|
|
|
@ -824,42 +824,64 @@ public class FileViewFragment extends BaseFragment implements
|
||||||
|
|
||||||
private View.OnClickListener followUnfollowListener = new View.OnClickListener() {
|
private View.OnClickListener followUnfollowListener = new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(final View view) {
|
||||||
if (claim != null && claim.getSigningChannel() != null) {
|
if (claim != null && claim.getSigningChannel() != null) {
|
||||||
Claim publisher = claim.getSigningChannel();
|
Claim publisher = claim.getSigningChannel();
|
||||||
boolean isFollowing = Lbryio.isFollowing(publisher);
|
boolean isFollowing = Lbryio.isFollowing(publisher);
|
||||||
Subscription subscription = Subscription.fromClaim(publisher);
|
if (isFollowing) {
|
||||||
view.setEnabled(false);
|
// show unfollow confirmation
|
||||||
Context context = getContext();
|
Context context = getContext();
|
||||||
new ChannelSubscribeTask(context, publisher.getClaimId(), subscription, isFollowing, new ChannelSubscribeTask.ChannelSubscribeHandler() {
|
AlertDialog.Builder builder = new AlertDialog.Builder(context).
|
||||||
@Override
|
setTitle(R.string.confirm_unfollow).
|
||||||
public void onSuccess() {
|
setMessage(R.string.confirm_unfollow_message)
|
||||||
if (isFollowing) {
|
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
|
||||||
Lbryio.removeSubscription(subscription);
|
@Override
|
||||||
Lbryio.removeCachedResolvedSubscription(publisher);
|
public void onClick(DialogInterface dialogInterface, int i) {
|
||||||
} else {
|
doFollowUnfollow(isFollowing, view);
|
||||||
Lbryio.addSubscription(subscription);
|
}
|
||||||
Lbryio.addCachedResolvedSubscription(publisher);
|
}).setNegativeButton(R.string.no, null);
|
||||||
}
|
builder.show();
|
||||||
view.setEnabled(true);
|
} else {
|
||||||
checkIsFollowing();
|
doFollowUnfollow(isFollowing, view);
|
||||||
FollowingFragment.resetClaimSearchContent = true;
|
}
|
||||||
|
|
||||||
// Save shared user state
|
|
||||||
if (context != null) {
|
|
||||||
context.sendBroadcast(new Intent(MainActivity.ACTION_SAVE_SHARED_USER_STATE));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(Exception exception) {
|
|
||||||
view.setEnabled(true);
|
|
||||||
}
|
|
||||||
}).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private void doFollowUnfollow(boolean isFollowing, View view) {
|
||||||
|
if (claim != null && claim.getSigningChannel() != null) {
|
||||||
|
Claim publisher = claim.getSigningChannel();
|
||||||
|
Subscription subscription = Subscription.fromClaim(publisher);
|
||||||
|
view.setEnabled(false);
|
||||||
|
Context context = getContext();
|
||||||
|
new ChannelSubscribeTask(context, publisher.getClaimId(), subscription, isFollowing, new ChannelSubscribeTask.ChannelSubscribeHandler() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess() {
|
||||||
|
if (isFollowing) {
|
||||||
|
Lbryio.removeSubscription(subscription);
|
||||||
|
Lbryio.removeCachedResolvedSubscription(publisher);
|
||||||
|
} else {
|
||||||
|
Lbryio.addSubscription(subscription);
|
||||||
|
Lbryio.addCachedResolvedSubscription(publisher);
|
||||||
|
}
|
||||||
|
view.setEnabled(true);
|
||||||
|
checkIsFollowing();
|
||||||
|
FollowingFragment.resetClaimSearchContent = true;
|
||||||
|
|
||||||
|
// Save shared user state
|
||||||
|
if (context != null) {
|
||||||
|
context.sendBroadcast(new Intent(MainActivity.ACTION_SAVE_SHARED_USER_STATE));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Exception exception) {
|
||||||
|
view.setEnabled(true);
|
||||||
|
}
|
||||||
|
}).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void resolveUrl(String url) {
|
private void resolveUrl(String url) {
|
||||||
resolving = true;
|
resolving = true;
|
||||||
Helper.setViewVisibility(layoutDisplayArea, View.INVISIBLE);
|
Helper.setViewVisibility(layoutDisplayArea, View.INVISIBLE);
|
||||||
|
|
|
@ -111,6 +111,8 @@
|
||||||
<string name="reposted">reposted</string>
|
<string name="reposted">reposted</string>
|
||||||
<string name="receive_all_notifications">You will receive all notifications</string>
|
<string name="receive_all_notifications">You will receive all notifications</string>
|
||||||
<string name="receive_no_notifications">You will not receive notifications for this channel</string>
|
<string name="receive_no_notifications">You will not receive notifications for this channel</string>
|
||||||
|
<string name="confirm_unfollow">Stop following channel?</string>
|
||||||
|
<string name="confirm_unfollow_message">Are you sure you want to stop following this channel?</string>
|
||||||
<plurals name="follower_count">
|
<plurals name="follower_count">
|
||||||
<item quantity="one">%1$s follower</item>
|
<item quantity="one">%1$s follower</item>
|
||||||
<item quantity="other">%1$s followers</item>
|
<item quantity="other">%1$s followers</item>
|
||||||
|
|
Loading…
Reference in a new issue