Fixes issue #366 - disable bookmark function

This commit is contained in:
stom79 2018-03-25 11:39:53 +02:00
parent eb8f099a92
commit ae2be2d365
7 changed files with 75 additions and 0 deletions

View File

@ -427,6 +427,12 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
final String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
boolean displayBookmarkButton = sharedpreferences.getBoolean(Helper.SET_SHOW_BOOKMARK, true);
if( displayBookmarkButton)
holder.status_bookmark.setVisibility(View.VISIBLE);
else
holder.status_bookmark.setVisibility(View.GONE);
holder.status_reply.setText("");
//Display a preview for accounts that have replied *if enabled and only for home timeline*
@ -1166,6 +1172,10 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
if( status.getVisibility().equals("private") || status.getVisibility().equals("direct")){
popup.getMenu().findItem(R.id.action_mention).setVisible(false);
}
if( status.isBookmarked())
popup.getMenu().findItem(R.id.action_bookmark).setTitle(R.string.bookmark_remove);
else
popup.getMenu().findItem(R.id.action_bookmark).setTitle(R.string.bookmark_add);
final String[] stringArrayConf;
if( isOwner) {
popup.getMenu().findItem(R.id.action_block).setVisible(false);
@ -1200,6 +1210,31 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
builderInner.setTitle(stringArrayConf[0]);
doAction = API.StatusAction.MUTE;
break;
case R.id.action_bookmark:
if( type != RetrieveFeedsAsyncTask.Type.CACHE_BOOKMARKS) {
status.setBookmarked(!status.isBookmarked());
if (status.isBookmarked()) {
new StatusCacheDAO(context, db).insertStatus(StatusCacheDAO.BOOKMARK_CACHE, status);
Toast.makeText(context, R.string.status_bookmarked, Toast.LENGTH_LONG).show();
} else {
new StatusCacheDAO(context, db).remove(StatusCacheDAO.BOOKMARK_CACHE, status);
Toast.makeText(context, R.string.status_unbookmarked, Toast.LENGTH_LONG).show();
}
notifyStatusChanged(status);
}else {
int position = 0;
for (Status statustmp : statuses) {
if (statustmp.getId().equals(status.getId())) {
statuses.remove(status);
statusListAdapter.notifyItemRemoved(position);
new StatusCacheDAO(context, db).remove(StatusCacheDAO.BOOKMARK_CACHE, statustmp);
Toast.makeText(context, R.string.status_unbookmarked, Toast.LENGTH_LONG).show();
break;
}
position++;
}
}
return true;
case R.id.action_timed_mute:
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
@ -1351,6 +1386,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
file.delete ();
try {
FileOutputStream out = new FileOutputStream(file);
assert bitmap != null;
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();

View File

@ -199,6 +199,19 @@ public class SettingsFragment extends Fragment {
});
boolean display_bookmark = sharedpreferences.getBoolean(Helper.SET_SHOW_BOOKMARK, true);
final CheckBox set_display_bookmark = rootView.findViewById(R.id.set_display_bookmarks);
set_display_bookmark.setChecked(display_bookmark);
set_display_bookmark.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(Helper.SET_SHOW_BOOKMARK, set_display_bookmark.isChecked());
editor.apply();
}
});
boolean multiaccount_actions = sharedpreferences.getBoolean(Helper.SET_ALLOW_CROSS_ACTIONS, true);
final CheckBox set_multiaccount_actions = rootView.findViewById(R.id.set_multiaccount_actions);
set_multiaccount_actions.setChecked(multiaccount_actions);

View File

@ -231,6 +231,7 @@ public class Helper {
public static final String SET_DISABLE_GIF = "set_disable_gif";
public static final String SET_CAPITALIZE = "set_capitalize";
public static final String SET_PICTURE_RESIZE = "set_picture_resize";
public static final String SET_SHOW_BOOKMARK = "set_show_bookmark";
public static final int S_512KO = 1;
public static final int S_1MO = 2;
public static final int S_2MO = 3;
@ -1840,6 +1841,10 @@ public class Helper {
*/
public static Bitmap convertTootIntoBitmap(Context context, String name, View view) {
if( view.getWidth() == 0 || view.getHeight() == 0){
Toast.makeText(context, R.string.toast_error, Toast.LENGTH_SHORT).show();
return null;
}
Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth()+10, view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(returnedBitmap);
canvas.drawBitmap(returnedBitmap, 10, 0, null);

View File

@ -149,6 +149,14 @@
android:text="@string/expand_cw"
android:layout_height="wrap_content" />
<!-- DISPLAY BOOKMARK BUTTON -->
<CheckBox
android:id="@+id/set_display_bookmarks"
android:layout_width="wrap_content"
android:text="@string/set_display_bookmark_button"
android:layout_height="wrap_content" />
<!-- Resize pictures -->
<LinearLayout
android:layout_marginTop="10dp"

View File

@ -148,6 +148,12 @@
android:text="@string/expand_cw"
android:layout_height="wrap_content" />
<!-- DISPLAY BOOKMARK BUTTON -->
<CheckBox
android:id="@+id/set_display_bookmarks"
android:layout_width="wrap_content"
android:text="@string/set_display_bookmark_button"
android:layout_height="wrap_content" />
<!-- Resize pictures -->
<LinearLayout

View File

@ -33,4 +33,8 @@
android:id="@+id/action_mention"
android:title="@string/more_action_7"
app:showAsAction="never" />
<item
android:id="@+id/action_bookmark"
android:title="@string/bookmark_add"
app:showAsAction="never" />
</menu>

View File

@ -138,7 +138,10 @@
<item quantity="one">%d reply</item>
<item quantity="other">%d replies</item>
</plurals>
<string name="set_display_bookmark_button">Display the bookmark button</string>
<string name="bookmarks">Bookmarks</string>
<string name="bookmark_add">Add to bookmarks</string>
<string name="bookmark_remove">Remove bookmark</string>
<string name="bookmarks_empty">No bookmarks to display</string>
<string name="status_bookmarked">Status has been added to bookmarks!</string>
<string name="status_unbookmarked">Status was removed from bookmarks!</string>