Fix picker and bottom for notifications
This commit is contained in:
parent
80db2c2518
commit
63e531dc57
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -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" />
|
||||
|
|
Loading…
Reference in New Issue