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 EditText wysiwygEditText;
|
||||||
private String url_for_media;
|
private String url_for_media;
|
||||||
private UpdateAccountInfoAsyncTask.SOCIAL social;
|
private UpdateAccountInfoAsyncTask.SOCIAL social;
|
||||||
|
List<Emojis> emojis;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -1897,7 +1898,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
|
||||||
picker.show(getSupportFragmentManager(), "COUNTRY_PICKER");
|
picker.show(getSupportFragmentManager(), "COUNTRY_PICKER");
|
||||||
return true;
|
return true;
|
||||||
case R.id.action_emoji:
|
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);
|
final AlertDialog.Builder builder = new AlertDialog.Builder(this, style);
|
||||||
int paddingPixel = 15;
|
int paddingPixel = 15;
|
||||||
float density = getResources().getDisplayMetrics().density;
|
float density = getResources().getDisplayMetrics().density;
|
||||||
|
|
|
@ -21,9 +21,6 @@ import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.AsyncTask;
|
|
||||||
import android.os.Handler;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -40,7 +37,6 @@ import com.github.penfeizhou.animation.gif.GifDrawable;
|
||||||
import com.github.penfeizhou.animation.gif.decode.GifParser;
|
import com.github.penfeizhou.animation.gif.decode.GifParser;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.lang.ref.WeakReference;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import app.fedilab.android.R;
|
import app.fedilab.android.R;
|
||||||
|
@ -57,11 +53,13 @@ public class CustomEmojiAdapter extends ArrayAdapter<Emojis> {
|
||||||
|
|
||||||
private Context context;
|
private Context context;
|
||||||
private List<Emojis> emojis;
|
private List<Emojis> emojis;
|
||||||
|
private CustomEmojiAdapter customEmojiAdapter;
|
||||||
|
|
||||||
public CustomEmojiAdapter(@NonNull Context context, int resource, List<Emojis> emojis) {
|
public CustomEmojiAdapter(@NonNull Context context, int resource, List<Emojis> emojis) {
|
||||||
super(context, resource, resource);
|
super(context, resource, resource);
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.emojis = emojis;
|
this.emojis = emojis;
|
||||||
|
customEmojiAdapter = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -102,7 +100,27 @@ public class CustomEmojiAdapter extends ArrayAdapter<Emojis> {
|
||||||
.into(new SimpleTarget<File>() {
|
.into(new SimpleTarget<File>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResourceReady(@NonNull File resourceFile, @Nullable Transition<? super File> transition) {
|
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{
|
}else{
|
||||||
|
@ -110,51 +128,4 @@ public class CustomEmojiAdapter extends ArrayAdapter<Emojis> {
|
||||||
}
|
}
|
||||||
return convertView;
|
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 List<ViewHolder> lstHolders;
|
||||||
private final Object lock = new Object();
|
private final Object lock = new Object();
|
||||||
|
private List<Emojis> emojisPicker;
|
||||||
|
|
||||||
private Runnable updateAnimatedEmoji = new Runnable() {
|
private Runnable updateAnimatedEmoji = new Runnable() {
|
||||||
@Override
|
@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();
|
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);
|
final AlertDialog.Builder builder = new AlertDialog.Builder(context, style);
|
||||||
int paddingPixel = 15;
|
int paddingPixel = 15;
|
||||||
float density = context.getResources().getDisplayMetrics().density;
|
float density = context.getResources().getDisplayMetrics().density;
|
||||||
|
@ -1181,14 +1182,14 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
builder.setTitle(R.string.insert_emoji);
|
builder.setTitle(R.string.insert_emoji);
|
||||||
if( emojis != null && emojis.size() > 0) {
|
if( emojisPicker != null && emojisPicker.size() > 0) {
|
||||||
GridView gridView = new GridView(context);
|
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.setNumColumns(5);
|
||||||
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
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();
|
alertDialogEmoji.dismiss();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -137,7 +137,7 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
<app.fedilab.android.helper.CustomTextView
|
<app.fedilab.android.helper.CustomTextView
|
||||||
android:id="@+id/notification_status_content"
|
android:id="@+id/notification_status_content"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="-20dp"
|
||||||
android:textIsSelectable="true"
|
android:textIsSelectable="true"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
|
|
Loading…
Reference in New Issue