Fix picker and bottom for notifications

This commit is contained in:
tom79 2019-08-23 19:08:52 +02:00
parent 80db2c2518
commit 63e531dc57
4 changed files with 31 additions and 58 deletions

View File

@ -284,6 +284,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
private EditText wysiwygEditText;
private String url_for_media;
private UpdateAccountInfoAsyncTask.SOCIAL social;
List<Emojis> emojis;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -1897,7 +1898,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
picker.show(getSupportFragmentManager(), "COUNTRY_PICKER");
return true;
case R.id.action_emoji:
final List<Emojis> emojis = new CustomEmojiDAO(getApplicationContext(), db).getAllEmojis(account.getInstance());
emojis = new CustomEmojiDAO(getApplicationContext(), db).getAllEmojis(account.getInstance());
final AlertDialog.Builder builder = new AlertDialog.Builder(this, style);
int paddingPixel = 15;
float density = getResources().getDisplayMetrics().density;

View File

@ -21,9 +21,6 @@ import androidx.annotation.Nullable;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -40,7 +37,6 @@ import com.github.penfeizhou.animation.gif.GifDrawable;
import com.github.penfeizhou.animation.gif.decode.GifParser;
import java.io.File;
import java.lang.ref.WeakReference;
import java.util.List;
import app.fedilab.android.R;
@ -57,11 +53,13 @@ public class CustomEmojiAdapter extends ArrayAdapter<Emojis> {
private Context context;
private List<Emojis> emojis;
private CustomEmojiAdapter customEmojiAdapter;
public CustomEmojiAdapter(@NonNull Context context, int resource, List<Emojis> emojis) {
super(context, resource, resource);
this.context = context;
this.emojis = emojis;
customEmojiAdapter = this;
}
@Override
@ -102,7 +100,27 @@ public class CustomEmojiAdapter extends ArrayAdapter<Emojis> {
.into(new SimpleTarget<File>() {
@Override
public void onResourceReady(@NonNull File resourceFile, @Nullable Transition<? super File> transition) {
new transform(context, emoji,resourceFile, imageView).execute();
//new transform(context, emoji,resourceFile, imageView).execute();
Drawable resource;
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
boolean disableAnimatedEmoji = sharedpreferences.getBoolean(Helper.SET_DISABLE_ANIMATED_EMOJI, false);
if( !disableAnimatedEmoji) {
if (GifParser.isGif(resourceFile.getAbsolutePath())) {
resource = GifDrawable.fromFile(resourceFile.getAbsolutePath());
emoji.setDrawable(resource);
} else if (APNGParser.isAPNG(resourceFile.getAbsolutePath())) {
resource = APNGDrawable.fromFile(resourceFile.getAbsolutePath());
emoji.setDrawable(resource);
} else {
resource = Drawable.createFromPath(resourceFile.getAbsolutePath());
emoji.setDrawable(resource);
}
}else{
resource = Drawable.createFromPath(resourceFile.getAbsolutePath());
emoji.setDrawable(resource);
}
customEmojiAdapter.notifyDataSetChanged();
}
});
}else{
@ -110,51 +128,4 @@ public class CustomEmojiAdapter extends ArrayAdapter<Emojis> {
}
return convertView;
}
private static class transform extends AsyncTask<Void, Void, Drawable> {
private WeakReference<Context> contextWeakReference;
private File resourceFile;
private Emojis emoji;
private WeakReference<ImageView> imageViewWeakReference;
transform(Context context, Emojis emoji, File resource, ImageView imageView) {
this.contextWeakReference = new WeakReference<>(context);
this.resourceFile = resource;
this.emoji = emoji;
this.imageViewWeakReference = new WeakReference<>(imageView);
}
@Override
protected Drawable doInBackground(Void... params) {
Drawable resource;
SharedPreferences sharedpreferences = contextWeakReference.get().getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
boolean disableAnimatedEmoji = sharedpreferences.getBoolean(Helper.SET_DISABLE_ANIMATED_EMOJI, false);
if( !disableAnimatedEmoji) {
if (GifParser.isGif(resourceFile.getAbsolutePath())) {
resource = GifDrawable.fromFile(resourceFile.getAbsolutePath());
emoji.setDrawable(resource);
} else if (APNGParser.isAPNG(resourceFile.getAbsolutePath())) {
resource = APNGDrawable.fromFile(resourceFile.getAbsolutePath());
emoji.setDrawable(resource);
} else {
resource = Drawable.createFromPath(resourceFile.getAbsolutePath());
emoji.setDrawable(resource);
}
}else{
resource = Drawable.createFromPath(resourceFile.getAbsolutePath());
emoji.setDrawable(resource);
}
return resource;
}
@Override
protected void onPostExecute(Drawable result) {
imageViewWeakReference.get().setImageDrawable(result);
}
}
}

View File

@ -221,6 +221,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
private List<ViewHolder> lstHolders;
private final Object lock = new Object();
private List<Emojis> emojisPicker;
private Runnable updateAnimatedEmoji = new Runnable() {
@Override
@ -1170,7 +1171,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
}
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
final List<Emojis> emojis = new CustomEmojiDAO(context, db).getAllEmojis(Helper.getLiveInstance(context));
emojisPicker = new CustomEmojiDAO(context, db).getAllEmojis(Helper.getLiveInstance(context));
final AlertDialog.Builder builder = new AlertDialog.Builder(context, style);
int paddingPixel = 15;
float density = context.getResources().getDisplayMetrics().density;
@ -1181,14 +1182,14 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
}
});
builder.setTitle(R.string.insert_emoji);
if( emojis != null && emojis.size() > 0) {
if( emojisPicker != null && emojisPicker.size() > 0) {
GridView gridView = new GridView(context);
gridView.setAdapter(new CustomEmojiAdapter(context, android.R.layout.simple_list_item_1, emojis));
gridView.setAdapter(new CustomEmojiAdapter(context, android.R.layout.simple_list_item_1, emojisPicker));
gridView.setNumColumns(5);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
holder.quick_reply_text.getText().insert(holder.quick_reply_text.getSelectionStart(), " :" + emojis.get(position).getShortcode()+": ");
holder.quick_reply_text.getText().insert(holder.quick_reply_text.getSelectionStart(), " :" + emojisPicker.get(position).getShortcode()+": ");
alertDialogEmoji.dismiss();
}
});

View File

@ -137,7 +137,7 @@
android:orientation="vertical">
<app.fedilab.android.helper.CustomTextView
android:id="@+id/notification_status_content"
android:layout_marginBottom="10dp"
android:layout_marginBottom="-20dp"
android:textIsSelectable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content" />