From 7dc57d27a4c0bdf1db38e926a335f8ea096946b0 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 26 Nov 2022 11:20:15 +0100 Subject: [PATCH 001/111] Set AKKOMA instance as PLEROMA --- app/build.gradle | 7 +++---- .../java/app/fedilab/android/BaseMainActivity.java | 2 +- .../android/activities/EditProfileActivity.java | 2 +- .../android/activities/ProfileActivity.java | 2 +- .../activities/admin/AdminAccountActivity.java | 2 +- .../activities/admin/AdminReportActivity.java | 2 +- .../fedilab/android/client/entities/api/Field.java | 11 +++++++++++ .../android/client/entities/app/Account.java | 1 + .../app/fedilab/android/helper/MastodonHelper.java | 14 +++++++++----- .../fedilab/android/ui/drawer/FieldAdapter.java | 2 +- .../ui/fragment/login/FragmentLoginMain.java | 1 + 11 files changed, 31 insertions(+), 15 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a677471a..df57002d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -92,8 +92,8 @@ dependencies { implementation 'com.vanniktech:emoji-one:0.6.0' implementation 'com.github.GrenderG:Toasty:1.5.2' implementation 'org.framagit.tom79:SparkButton:1.0.13' - implementation "com.github.bumptech.glide:glide:4.12.0" - implementation "com.github.bumptech.glide:okhttp3-integration:4.12.0" + implementation "com.github.bumptech.glide:glide:4.14.2" + implementation "com.github.bumptech.glide:okhttp3-integration:4.14.2" implementation "org.jsoup:jsoup:1.15.1" @@ -102,12 +102,11 @@ dependencies { implementation project(path: ':ratethisapp') - implementation 'com.burhanrashid52:photoeditor:1.5.1' implementation project(path: ':cropper') annotationProcessor "com.github.bumptech.glide:compiler:4.12.0" implementation 'jp.wasabeef:glide-transformations:4.3.0' - implementation 'com.github.penfeizhou.android.animation:glide-plugin:2.22.0' + implementation 'com.github.penfeizhou.android.animation:glide-plugin:2.24.0' implementation 'com.google.android.exoplayer:exoplayer:2.18.1' implementation "androidx.viewpager2:viewpager2:1.0.0" implementation 'com.github.piasy:rxandroidaudio:1.7.0' diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java index f98860b4..a4ec704c 100644 --- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java @@ -661,7 +661,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt } headerMainBinding.accountName.setText(currentAccount.mastodon_account.display_name); Helper.loadPP(BaseMainActivity.this, headerMainBinding.accountProfilePicture, currentAccount, false); - MastodonHelper.loadProfileMediaMastodon(headerMainBinding.backgroundImage, currentAccount.mastodon_account, MastodonHelper.MediaAccountType.HEADER); + MastodonHelper.loadProfileMediaMastodon(BaseMainActivity.this, headerMainBinding.backgroundImage, currentAccount.mastodon_account, MastodonHelper.MediaAccountType.HEADER); /* * Some general data are loaded when the app starts such; * - Pinned timelines (in app feature) diff --git a/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java index 008f8197..8efe171b 100644 --- a/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java @@ -89,7 +89,7 @@ public class EditProfileActivity extends BaseActivity { @SuppressWarnings("deprecation") private void initializeView() { //Hydrate values - MastodonHelper.loadProfileMediaMastodon(binding.bannerPp, currentAccount.mastodon_account, MastodonHelper.MediaAccountType.HEADER); + MastodonHelper.loadProfileMediaMastodon(EditProfileActivity.this, binding.bannerPp, currentAccount.mastodon_account, MastodonHelper.MediaAccountType.HEADER); MastodonHelper.loadPPMastodon(binding.accountPp, currentAccount.mastodon_account); binding.displayName.setText(currentAccount.mastodon_account.display_name); binding.acct.setText(String.format(Locale.getDefault(), "%s@%s", currentAccount.mastodon_account.acct, BaseMainActivity.currentInstance)); diff --git a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java index 38be0df2..edcd50c1 100644 --- a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java @@ -291,7 +291,7 @@ public class ProfileActivity extends BaseActivity { } ); //Load header - MastodonHelper.loadProfileMediaMastodon(binding.bannerPp, account, MastodonHelper.MediaAccountType.HEADER); + MastodonHelper.loadProfileMediaMastodon(ProfileActivity.this, binding.bannerPp, account, MastodonHelper.MediaAccountType.HEADER); //Redraws icon for locked accounts final float scale = getResources().getDisplayMetrics().density; if (account.locked) { diff --git a/app/src/main/java/app/fedilab/android/activities/admin/AdminAccountActivity.java b/app/src/main/java/app/fedilab/android/activities/admin/AdminAccountActivity.java index c40cace7..01a18ccd 100644 --- a/app/src/main/java/app/fedilab/android/activities/admin/AdminAccountActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/admin/AdminAccountActivity.java @@ -272,7 +272,7 @@ public class AdminAccountActivity extends BaseActivity { } ); //Load header - MastodonHelper.loadProfileMediaMastodon(binding.bannerPp, adminAccount.account, MastodonHelper.MediaAccountType.HEADER); + MastodonHelper.loadProfileMediaMastodon(AdminAccountActivity.this, binding.bannerPp, adminAccount.account, MastodonHelper.MediaAccountType.HEADER); //Redraws icon for locked accounts final float scale = getResources().getDisplayMetrics().density; if (adminAccount.account.locked) { diff --git a/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java b/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java index c74897c0..5ff001d0 100644 --- a/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java @@ -291,7 +291,7 @@ public class AdminReportActivity extends BaseActivity { } ); //Load header - MastodonHelper.loadProfileMediaMastodon(binding.bannerPp, account, MastodonHelper.MediaAccountType.HEADER); + MastodonHelper.loadProfileMediaMastodon(AdminReportActivity.this, binding.bannerPp, account, MastodonHelper.MediaAccountType.HEADER); //Redraws icon for locked accounts final float scale = getResources().getDisplayMetrics().density; if (account.locked) { diff --git a/app/src/main/java/app/fedilab/android/client/entities/api/Field.java b/app/src/main/java/app/fedilab/android/client/entities/api/Field.java index e1e2b3cd..0fdbb3a6 100644 --- a/app/src/main/java/app/fedilab/android/client/entities/api/Field.java +++ b/app/src/main/java/app/fedilab/android/client/entities/api/Field.java @@ -40,6 +40,7 @@ public class Field implements Serializable { //Some extra spannable element - They will be filled automatically when fetching the account private transient ForegroundColorSpan value_span; + private transient ForegroundColorSpan name_span; public synchronized Spannable getValueSpan(Context context, Account account, WeakReference viewWeakReference) { @@ -53,6 +54,16 @@ public class Field implements Serializable { return spannable; } + + public synchronized Spannable getLabelSpan(Context context, Account account, WeakReference viewWeakReference) { + + Spannable spannable = SpannableHelper.convert(context, name, null, account, null, true, viewWeakReference); + if (name_span != null && spannable != null) { + spannable.setSpan(name_span, 0, spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + } + return spannable; + } + public static class FieldParams implements Serializable { @SerializedName("name") public String name; diff --git a/app/src/main/java/app/fedilab/android/client/entities/app/Account.java b/app/src/main/java/app/fedilab/android/client/entities/app/Account.java index 7410dc45..7564cc36 100644 --- a/app/src/main/java/app/fedilab/android/client/entities/app/Account.java +++ b/app/src/main/java/app/fedilab/android/client/entities/app/Account.java @@ -419,6 +419,7 @@ public class Account extends BaseAccount implements Serializable { case "PIXELFED": api = API.PIXELFED; break; + case "AKKOMA": case "PLEROMA": api = API.PLEROMA; break; diff --git a/app/src/main/java/app/fedilab/android/helper/MastodonHelper.java b/app/src/main/java/app/fedilab/android/helper/MastodonHelper.java index 59f81791..2a8b7584 100644 --- a/app/src/main/java/app/fedilab/android/helper/MastodonHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/MastodonHelper.java @@ -222,13 +222,17 @@ public class MastodonHelper { } public static void loadProfileMediaMastodon(ImageView view, Account account, MediaAccountType type) { + loadProfileMediaMastodon(null, view, account, type); + } + + public static void loadProfileMediaMastodon(Activity activity, ImageView view, Account account, MediaAccountType type) { Context context = view.getContext(); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); boolean disableGif = sharedpreferences.getBoolean(context.getString(R.string.SET_DISABLE_GIF), false); @DrawableRes int placeholder = type == MediaAccountType.AVATAR ? R.drawable.ic_person : R.drawable.default_banner; - if (Helper.isValidContextForGlide(view.getContext())) { + if (Helper.isValidContextForGlide(activity != null ? activity : context)) { if (account == null) { - Glide.with(view.getContext()) + Glide.with(activity != null ? activity : context) .asDrawable() .load(placeholder) .thumbnail(0.1f) @@ -239,14 +243,14 @@ public class MastodonHelper { String targetedUrl = disableGif ? (type == MediaAccountType.AVATAR ? account.avatar_static : account.header_static) : (type == MediaAccountType.AVATAR ? account.avatar : account.header); if (targetedUrl != null) { if (disableGif || (!targetedUrl.endsWith(".gif"))) { - Glide.with(view.getContext()) + Glide.with(activity != null ? activity : context) .asDrawable() .load(targetedUrl) .thumbnail(0.1f) .placeholder(placeholder) .into(view); } else { - Glide.with(view.getContext()) + Glide.with(activity != null ? activity : context) .asGif() .load(targetedUrl) .thumbnail(0.1f) @@ -254,7 +258,7 @@ public class MastodonHelper { .into(view); } } else { - Glide.with(view.getContext()) + Glide.with(activity != null ? activity : context) .asDrawable() .load(placeholder) .thumbnail(0.1f) diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/FieldAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/FieldAdapter.java index 3513525e..ec3587d6 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/FieldAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/FieldAdapter.java @@ -77,7 +77,7 @@ public class FieldAdapter extends RecyclerView.Adapter(holder.binding.label)), TextView.BufferType.SPANNABLE); holder.binding.label.setMovementMethod(LinkMovementMethod.getInstance()); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java b/app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java index 6ec7e0da..39677e9f 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java @@ -160,6 +160,7 @@ public class FragmentLoginMain extends Fragment { case "PIXELFED": apiLogin = Account.API.PIXELFED; break; + case "AKKOMA": case "PLEROMA": apiLogin = Account.API.PLEROMA; break; From d96c83a282b3f167cb886bf5db5042ba95c3ead7 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 26 Nov 2022 16:46:26 +0100 Subject: [PATCH 002/111] Muted tags --- .../android/activities/HashTagActivity.java | 43 +++++++++++ .../app/fedilab/android/helper/Helper.java | 2 +- .../android/helper/SpannableHelper.java | 76 ++++++++++++++++++- .../drawable/ic_baseline_volume_mute_24.xml | 2 +- app/src/main/res/menu/menu_hashtag.xml | 5 ++ app/src/main/res/values/strings.xml | 1 + 6 files changed, 126 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java b/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java index 82caadc7..14008d15 100644 --- a/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java @@ -34,7 +34,9 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager; import java.util.ArrayList; import java.util.List; +import app.fedilab.android.BaseMainActivity; import app.fedilab.android.R; +import app.fedilab.android.client.entities.api.Filter; import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.client.entities.app.Pinned; import app.fedilab.android.client.entities.app.PinnedTimeline; @@ -46,6 +48,7 @@ import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTimeline; +import app.fedilab.android.viewmodel.mastodon.FiltersVM; import app.fedilab.android.viewmodel.mastodon.ReorderVM; import app.fedilab.android.viewmodel.mastodon.TagVM; import es.dmoral.toasty.Toasty; @@ -58,7 +61,9 @@ public class HashTagActivity extends BaseActivity { private String tag; private boolean pinnedTag; private boolean followedTag; + private boolean mutedTag; private TagVM tagVM; + private Filter fedilabFilter; @Override protected void onCreate(Bundle savedInstanceState) { @@ -75,6 +80,7 @@ public class HashTagActivity extends BaseActivity { finish(); pinnedTag = false; followedTag = false; + mutedTag = true; setSupportActionBar(binding.toolbar); ActionBar actionBar = getSupportActionBar(); //Remove title @@ -110,6 +116,26 @@ public class HashTagActivity extends BaseActivity { } } }); + if (MainActivity.filterFetched && MainActivity.mainFilters != null) { + for (Filter filter : MainActivity.mainFilters) { + if (filter.title.equalsIgnoreCase(Helper.FEDILAB_MUTED_HASHTAGS)) { + fedilabFilter = filter; + String fetch = tag.startsWith("#") ? tag : "#" + tag; + for (Filter.KeywordsAttributes keywordsAttributes : filter.keywords) { + if (fetch.equalsIgnoreCase(keywordsAttributes.keyword)) { + mutedTag = true; + invalidateOptionsMenu(); + break; + } + } + mutedTag = false; + invalidateOptionsMenu(); + break; + } + } + } else { + mutedTag = true; + } Bundle bundle = new Bundle(); bundle.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.TAG); @@ -194,6 +220,21 @@ public class HashTagActivity extends BaseActivity { invalidateOptionsMenu(); } }); + } else if (item.getItemId() == R.id.action_mute) { + Filter.FilterParams filterParams = new Filter.FilterParams(); + filterParams.id = fedilabFilter.id; + filterParams.keywords = new ArrayList<>(); + Filter.KeywordsParams keywordsParams = new Filter.KeywordsParams(); + keywordsParams.whole_word = true; + keywordsParams.keyword = tag.startsWith("#") ? tag : "#" + tag; + filterParams.keywords.add(keywordsParams); + filterParams.context = fedilabFilter.context; + FiltersVM filtersVM = new ViewModelProvider(HashTagActivity.this).get(FiltersVM.class); + filtersVM.editFilter(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, filterParams) + .observe(HashTagActivity.this, filter -> { + mutedTag = true; + invalidateOptionsMenu(); + }); } return super.onOptionsItemSelected(item); @@ -205,12 +246,14 @@ public class HashTagActivity extends BaseActivity { getMenuInflater().inflate(R.menu.menu_hashtag, menu); MenuItem pin = menu.findItem(R.id.action_add_timeline); MenuItem follow = menu.findItem(R.id.action_follow_tag); + MenuItem mute = menu.findItem(R.id.action_mute); if (pinnedTag && pin != null) { pin.setVisible(false); } if (followedTag && follow != null) { follow.setVisible(false); } + mute.setVisible(!mutedTag); return super.onCreateOptionsMenu(menu); } diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index 0c816eeb..5eebc79d 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -240,7 +240,7 @@ public class Helper { public static final String ARG_ACCOUNT_ID = "ARG_ACCOUNT_ID"; public static final String ARG_ADMIN_DOMAINBLOCK = "ARG_ADMIN_DOMAINBLOCK"; public static final String ARG_ADMIN_DOMAINBLOCK_DELETE = "ARG_ADMIN_DOMAINBLOCK_DELETE"; - + public static final String FEDILAB_MUTED_HASHTAGS = "Fedilab muted hashtags"; public static final String ARG_REPORT = "ARG_REPORT"; public static final String ARG_ACCOUNT_MENTION = "ARG_ACCOUNT_MENTION"; public static final String ARG_MINIFIED = "ARG_MINIFIED"; diff --git a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java index 3da822cd..c14b3c66 100644 --- a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java @@ -46,6 +46,9 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; +import androidx.lifecycle.LifecycleOwner; +import androidx.lifecycle.ViewModelProvider; +import androidx.lifecycle.ViewModelStoreOwner; import androidx.preference.PreferenceManager; import com.bumptech.glide.Glide; @@ -65,17 +68,21 @@ import java.util.regex.Pattern; import javax.net.ssl.HttpsURLConnection; +import app.fedilab.android.BaseMainActivity; import app.fedilab.android.R; import app.fedilab.android.activities.ContextActivity; import app.fedilab.android.activities.HashTagActivity; +import app.fedilab.android.activities.MainActivity; import app.fedilab.android.activities.ProfileActivity; import app.fedilab.android.client.entities.api.Account; import app.fedilab.android.client.entities.api.Announcement; import app.fedilab.android.client.entities.api.Attachment; import app.fedilab.android.client.entities.api.Emoji; +import app.fedilab.android.client.entities.api.Filter; import app.fedilab.android.client.entities.api.Mention; import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.databinding.PopupLinksBinding; +import app.fedilab.android.viewmodel.mastodon.FiltersVM; import es.dmoral.toasty.Toasty; public class SpannableHelper { @@ -764,7 +771,47 @@ public class SpannableHelper { if (matchStart >= 0 && matchEnd <= content.toString().length() && matchEnd >= matchStart) { URLSpan[] span = content.getSpans(matchStart, matchEnd, URLSpan.class); content.removeSpan(span); - content.setSpan(new ClickableSpan() { + content.setSpan(new LongClickableSpan() { + @Override + public void onLongClick(View textView) { + textView.setTag(CLICKABLE_SPAN); + if (patternType == Helper.PatternType.TAG && BaseMainActivity.filterFetched && MainActivity.mainFilters != null) { + String tag = word.trim(); + if (!tag.startsWith("#")) { + tag = "#" + tag; + } + Filter fedilabFilter = null; + for (Filter filter : MainActivity.mainFilters) { + if (filter.title.equals(Helper.FEDILAB_MUTED_HASHTAGS)) { + fedilabFilter = filter; + break; + } + } + //Filter for Fedilab doesn't exist we have to create it + if (fedilabFilter == null) { + Filter.FilterParams filterParams = new Filter.FilterParams(); + filterParams.title = Helper.FEDILAB_MUTED_HASHTAGS; + filterParams.filter_action = "hide"; + filterParams.context = new ArrayList<>(); + filterParams.context.add("home"); + filterParams.context.add("public"); + filterParams.context.add("thread"); + filterParams.context.add("account"); + String finalTag = tag; + FiltersVM filtersVM = new ViewModelProvider((ViewModelStoreOwner) context).get(FiltersVM.class); + filtersVM.addFilter(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, filterParams) + .observe((LifecycleOwner) context, filter -> { + if (filter != null) { + MainActivity.mainFilters.add(filter); + addTagToFilter(context, finalTag, filter); + } + }); + } else { + addTagToFilter(context, tag, fedilabFilter); + } + } + } + @Override public void onClick(@NonNull View textView) { textView.setTag(CLICKABLE_SPAN); @@ -848,12 +895,39 @@ public class SpannableHelper { ds.setUnderlineText(false); ds.setColor(linkColor); } + }, matchStart, matchEnd, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); } } } } + public static void addTagToFilter(Context context, String tag, Filter filter) { + for (Filter.KeywordsAttributes keywords : filter.keywords) { + if (keywords.keyword.equalsIgnoreCase(tag)) { + return; + } + } + AlertDialog.Builder builder = new AlertDialog.Builder(context, Helper.dialogStyle()); + builder.setMessage(context.getString(R.string.mute_tag, tag)); + builder + .setPositiveButton(R.string.yes, (dialog, which) -> { + Filter.FilterParams filterParams = new Filter.FilterParams(); + filterParams.id = filter.id; + filterParams.keywords = new ArrayList<>(); + Filter.KeywordsParams keywordsParams = new Filter.KeywordsParams(); + keywordsParams.whole_word = true; + keywordsParams.keyword = tag; + filterParams.keywords.add(keywordsParams); + filterParams.context = filter.context; + FiltersVM filtersVM = new ViewModelProvider((ViewModelStoreOwner) context).get(FiltersVM.class); + filtersVM.editFilter(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, filterParams); + dialog.dismiss(); + }) + .setNegativeButton(R.string.no, (dialog, which) -> dialog.dismiss()) + .show(); + } + /** * Convert HTML content to text. Also, it handles click on link * This needs to be run asynchronously diff --git a/app/src/main/res/drawable/ic_baseline_volume_mute_24.xml b/app/src/main/res/drawable/ic_baseline_volume_mute_24.xml index 3f223385..60aa7c4e 100644 --- a/app/src/main/res/drawable/ic_baseline_volume_mute_24.xml +++ b/app/src/main/res/drawable/ic_baseline_volume_mute_24.xml @@ -2,7 +2,7 @@ android:width="24dp" android:height="24dp" android:autoMirrored="true" - android:tint="?attr/colorControlNormal" + android:tint="#FFFFFF" android:viewportWidth="24" android:viewportHeight="24"> + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8741ba6a..6b6885f3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1956,4 +1956,5 @@ Comment about this domain limitation for the general public, if advertising the list of domain limitations is enabled. Changes have been saved! Create domain block + Are you sure to mute the tag %1$s? \ No newline at end of file From c0f556290d4699ca679ff5c520e14b3d31c52ff9 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 26 Nov 2022 17:56:56 +0100 Subject: [PATCH 003/111] Fix issue go to top on profiles --- .../ui/fragment/timeline/FragmentMastodonTimeline.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java index fd78dab4..cb276595 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java @@ -212,7 +212,9 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. router(null); } if (timelineStatuses != null && timelineStatuses.size() > 0) { - route(DIRECTION.FETCH_NEW, true); + if (timelineType != Timeline.TimeLineEnum.ACCOUNT_TIMELINE) { + route(DIRECTION.FETCH_NEW, true); + } } } From 487057bbc86f50d8205b862eaff179d0afb076bd Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 26 Nov 2022 18:10:47 +0100 Subject: [PATCH 004/111] Fix issue #544 - Jump in profiles --- .../timeline/FragmentMastodonTimeline.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java index cb276595..8727bb7f 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java @@ -172,6 +172,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. private boolean canBeFederated; private boolean rememberPosition; private String publicTrendsDomain; + private int lockForResumeCall; //Allow to recreate data when detaching/attaching fragment public void recreate() { @@ -206,15 +207,19 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. if (initialStatuses != null) { initializeStatusesCommonView(initialStatuses); } else { + router(null); } } else { - router(null); + if (timelineType == Timeline.TimeLineEnum.ACCOUNT_TIMELINE && lockForResumeCall == 0) { + router(null); + lockForResumeCall++; + } else if (timelineType != Timeline.TimeLineEnum.ACCOUNT_TIMELINE) { + router(null); + } } if (timelineStatuses != null && timelineStatuses.size() > 0) { - if (timelineType != Timeline.TimeLineEnum.ACCOUNT_TIMELINE) { - route(DIRECTION.FETCH_NEW, true); - } + route(DIRECTION.FETCH_NEW, true); } } @@ -269,6 +274,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. timelinesVM = new ViewModelProvider(FragmentMastodonTimeline.this).get(viewModelKey, TimelinesVM.class); accountsVM = new ViewModelProvider(FragmentMastodonTimeline.this).get(viewModelKey, AccountsVM.class); initialStatuses = null; + lockForResumeCall = 0; binding.loader.setVisibility(View.VISIBLE); binding.recyclerView.setVisibility(View.GONE); max_id = statusReport != null ? statusReport.id : null; From c1472403845b4f2250ffd19c3fd12639038e0061 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 26 Nov 2022 18:28:00 +0100 Subject: [PATCH 005/111] Fix issue #544 - Jump in profiles --- .../android/activities/HashTagActivity.java | 60 ++++++++++++++----- 1 file changed, 45 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java b/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java index 14008d15..e5d8a1fe 100644 --- a/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java @@ -80,7 +80,7 @@ public class HashTagActivity extends BaseActivity { finish(); pinnedTag = false; followedTag = false; - mutedTag = true; + mutedTag = false; setSupportActionBar(binding.toolbar); ActionBar actionBar = getSupportActionBar(); //Remove title @@ -221,26 +221,56 @@ public class HashTagActivity extends BaseActivity { } }); } else if (item.getItemId() == R.id.action_mute) { - Filter.FilterParams filterParams = new Filter.FilterParams(); - filterParams.id = fedilabFilter.id; - filterParams.keywords = new ArrayList<>(); - Filter.KeywordsParams keywordsParams = new Filter.KeywordsParams(); - keywordsParams.whole_word = true; - keywordsParams.keyword = tag.startsWith("#") ? tag : "#" + tag; - filterParams.keywords.add(keywordsParams); - filterParams.context = fedilabFilter.context; - FiltersVM filtersVM = new ViewModelProvider(HashTagActivity.this).get(FiltersVM.class); - filtersVM.editFilter(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, filterParams) - .observe(HashTagActivity.this, filter -> { - mutedTag = true; - invalidateOptionsMenu(); - }); + + if (MainActivity.mainFilters == null || fedilabFilter == null) { + MainActivity.mainFilters = new ArrayList<>(); + Filter.FilterParams filterParams = new Filter.FilterParams(); + filterParams.title = Helper.FEDILAB_MUTED_HASHTAGS; + filterParams.filter_action = "hide"; + filterParams.context = new ArrayList<>(); + filterParams.context.add("home"); + filterParams.context.add("public"); + filterParams.context.add("thread"); + filterParams.context.add("account"); + String finalTag = tag; + FiltersVM filtersVM = new ViewModelProvider(HashTagActivity.this).get(FiltersVM.class); + filtersVM.addFilter(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, filterParams) + .observe(HashTagActivity.this, filter -> { + if (filter != null) { + MainActivity.mainFilters.add(filter); + mutedTag = false; + fedilabFilter = filter; + muteTags(); + invalidateOptionsMenu(); + } + }); + } else { + muteTags(); + } + } return super.onOptionsItemSelected(item); } + private void muteTags() { + Filter.FilterParams filterParams = new Filter.FilterParams(); + filterParams.id = fedilabFilter.id; + filterParams.keywords = new ArrayList<>(); + Filter.KeywordsParams keywordsParams = new Filter.KeywordsParams(); + keywordsParams.whole_word = true; + keywordsParams.keyword = tag.startsWith("#") ? tag : "#" + tag; + filterParams.keywords.add(keywordsParams); + filterParams.context = fedilabFilter.context; + FiltersVM filtersVM = new ViewModelProvider(HashTagActivity.this).get(FiltersVM.class); + filtersVM.editFilter(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, filterParams) + .observe(HashTagActivity.this, filter -> { + mutedTag = true; + invalidateOptionsMenu(); + }); + } + @Override public boolean onCreateOptionsMenu(@NonNull Menu menu) { getMenuInflater().inflate(R.menu.menu_hashtag, menu); From ccf11c29c6cc42f7dbf92a69da2a6dc75947d4c4 Mon Sep 17 00:00:00 2001 From: dtalens Date: Sat, 26 Nov 2022 18:11:16 +0100 Subject: [PATCH 006/111] Translated using Weblate (Catalan) Currently translated at 87.0% (812 of 933 strings) Co-authored-by: dtalens Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/ca/ Translation: Fedilab/Strings --- app/src/main/res/values-ca/strings.xml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 2dd8a6d9..76838bf0 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -24,8 +24,8 @@ Instància: mastodon.social Ara funciona amb el compte %1$s Afegeix un compte - El contingut del bram s\'ha copiat al porta-retalls - L\'adreça web del bram s\'ha copiat al porta-retalls + El contingut de la publicació s\'ha copiat al porta-retalls + L\'adreça web de la publicació s\'ha copiat al porta-retalls Càmera Suprimeix-ho tot Temporitza @@ -57,16 +57,16 @@ Peticions de seguiment Configuració Envia un correu electrònic - Brams temporitzats + Publicacions programades Aquesta informació d\'usuària pot estar incompleta. Inserir emoji L\'app no ha recollit emojis personalitzats de moment. Estàs segura que vols tancar la sessió @%1$s@%2$s? - Cap bram per mostrar - Afegir aquest bram als preferits\? - Eliminar aquest bram d\'entre els preferits\? - Vols difondre aquest bram\? + No hi ha cap publicació per mostrar + Voleu afegir aquesta publicació als teus preferits\? + Voleu suprimir aquesta publicació dels teus preferits\? + Voleu impulsar aquesta publicació\? Desdifondre el bram\? Silencia Bloca @@ -771,4 +771,7 @@ Ara ja pots connectar-te al compte escrivint %1$s en el primer camp i fen Configuració d\'importació L\'aplicació no ha pogut obtenir una mostra Permís denegat! + Nou registre + Nova actualització + Nova incidència \ No newline at end of file From 3868bd83c986801d7d54f752b2625e5417271814 Mon Sep 17 00:00:00 2001 From: Murat H Date: Sat, 26 Nov 2022 18:11:16 +0100 Subject: [PATCH 007/111] Translated using Weblate (German) Currently translated at 99.2% (926 of 933 strings) Co-authored-by: Murat H Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/de/ Translation: Fedilab/Strings --- app/src/main/res/values-de/strings.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 7f0a8576..ae87e914 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -870,4 +870,20 @@ Sprachen in der Auswahl Erlaube die Liste der Sprachen in der Auswahl beim Verfassen einer Nachricht zu reduzieren. Bezeichnung des Tags ist nicht zulässig! + Schweregrad + Medien ablehnen + Mediendateien ablehnen + Ignoriere alle Meldungen die von dieser Domäne kommen. Für Suspendierungen irrelevant + Berichte ablehnen + Namen der Domäne verschleiern + Privater Kommentar + Kommentar zu dieser Domänen-Beschränkung für den internen Gebrauch durch Moderatoren. + Öffentlicher Kommentar + Änderungen wurden gespeichert! + Domänen-Blockierung erstellen + Mit einem anderen Konto öffnen + Berichte ablehnen + Die Sperrung der Domäne verhindert nicht die Erstellung von Konto-Einträgen in der Datenbank, sondern wendet rückwirkend und automatisch bestimmte Moderations-Methoden auf diese Konten an. + Ignoriere alle Meldungen die von dieser Domäne kommen. Für Suspendierungen irrelevant + Stummschalten macht die Beiträge des Kontos für alle die ihm nicht folgen unsichtbar. Suspendierung entfernt alle Inhalte, Medien und Profildaten des Kontos. Verwende Keine, wenn Du nur Mediendateien ablehnen möchtest. \ No newline at end of file From 28637fb03501e5f466b45f8bd86d4efa56ee78f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Sat, 26 Nov 2022 18:11:16 +0100 Subject: [PATCH 008/111] Translated using Weblate (Turkish) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (934 of 934 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (933 of 933 strings) Co-authored-by: Oğuz Ersen Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/tr/ Translation: Fedilab/Strings --- app/src/main/res/values-tr/strings.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 1661cd33..27cf9be3 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -882,4 +882,22 @@ Kayıtlar Başka bir hesapla aç Listeleri sırala + Raporları reddet + Önem derecesi + Medya dosyalarını reddet + Bu etki alanından gelen tüm raporları yoksay. Askıya almalar için önemi yoktur + Raporları reddet + Bu etki alanından gelen tüm raporları yoksay. Askıya almalar için önemi yoktur + Etki alanı adını gizle + Özel yorum + Herkese açık yorum + Değişiklikler kaydedildi! + Etki alanı engellemesi oluştur + Medyayı reddet + Etki alanı engeli, veri tabanında hesap girdilerinin oluşturulmasını engellemeyecek, ancak bu hesaplara geriye dönük ve otomatik olarak belirli denetleme yöntemleri uygulayacaktır. + Sustur, hesabın gönderilerini onları takip etmeyen herkes için görünmez hale getirecektir. Askıya al, hesabın tüm içeriğini, medyasını ve profil verilerini kaldıracaktır. Yalnızca medya dosyalarını reddetmek istiyorsanız Yok seçeneğini kullanın. + Moderatörler tarafından özel kullanım için bu etki alanı sınırlaması hakkında yorum yapın. + Etki alanı sınırlamaları listesinin tanıtılması etkinleştirilmişse listedeki etki alanı adını kısmen gizleyin + Etki alanı sınırlamaları listesinin tanıtılması etkinleştirilmişse, bu etki alanı sınırlaması hakkında herkese açık yorum yapın. + %1$s etiketini sessize almak istediğinizden emin misiniz\? \ No newline at end of file From e6b00984271445e88ad955b1a6933d35a17fc683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vri=20=F0=9F=8C=88?= Date: Sat, 26 Nov 2022 18:11:17 +0100 Subject: [PATCH 009/111] Translated using Weblate (German) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 99.1% (926 of 934 strings) Co-authored-by: Vri 🌈 Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/de/ Translation: Fedilab/Strings --- app/src/main/res/values-de/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ae87e914..b0dce969 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -581,7 +581,7 @@ Z. B.: Sensibler Inhalt Status hinzufügen Status entfernen - Überprüft um: %s + Überprüft am: %s Inhalt anzeigen > Aufnahme anhalten Ich mag es nicht @@ -659,7 +659,7 @@ Ist derzeit nicht erreichbar! Versende Nachricht… Version: %s -\n%s Benutzer - %s Statuse +\n%s Benutzer – %s Status Bösartige Links, gefälschtes Engagement oder sich wiederholende Antworten Sage uns, was es mit diesem Beitrag auf sich hat Stummschalten %1$s From 03725c6072b3cf7741736ee12cf68513eacabc78 Mon Sep 17 00:00:00 2001 From: Murat H Date: Sat, 26 Nov 2022 19:48:26 +0100 Subject: [PATCH 010/111] Translated using Weblate (German) Currently translated at 16.2% (7 of 43 strings) Co-authored-by: Murat H Translate-URL: https://hosted.weblate.org/projects/fedilab/description/de/ Translation: Fedilab/description --- src/fdroid/fastlane/metadata/android/de/changelogs/394.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/fdroid/fastlane/metadata/android/de/changelogs/394.txt diff --git a/src/fdroid/fastlane/metadata/android/de/changelogs/394.txt b/src/fdroid/fastlane/metadata/android/de/changelogs/394.txt new file mode 100644 index 00000000..2fccab37 --- /dev/null +++ b/src/fdroid/fastlane/metadata/android/de/changelogs/394.txt @@ -0,0 +1 @@ +- Behebung von Abstürzen bei einigen Pleroma-Instanzen From 88b6093a539e94726f82dc497e26b0c85138cedf Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 27 Nov 2022 08:18:45 +0100 Subject: [PATCH 011/111] Fix issue #545 - Open with does not work --- .../java/app/fedilab/android/ui/drawer/StatusAdapter.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java index af62860f..755047c9 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java @@ -24,6 +24,8 @@ import static app.fedilab.android.BaseMainActivity.regex_public; import static app.fedilab.android.BaseMainActivity.show_boosts; import static app.fedilab.android.BaseMainActivity.show_replies; import static app.fedilab.android.activities.ContextActivity.expand; +import static app.fedilab.android.helper.Helper.PREF_USER_ID; +import static app.fedilab.android.helper.Helper.PREF_USER_INSTANCE; import static app.fedilab.android.helper.Helper.PREF_USER_TOKEN; import android.annotation.SuppressLint; @@ -2047,9 +2049,12 @@ public class StatusAdapter extends RecyclerView.Adapter MainActivity.currentAccount = account; SharedPreferences.Editor editor = sharedpreferences.edit(); editor.putString(PREF_USER_TOKEN, account.token); + editor.putString(PREF_USER_INSTANCE, account.instance); + editor.putString(PREF_USER_ID, account.user_id); editor.commit(); Intent mainActivity = new Intent(context, MainActivity.class); mainActivity.putExtra(Helper.INTENT_ACTION, Helper.OPEN_WITH_ANOTHER_ACCOUNT); + mainActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); mainActivity.putExtra(Helper.PREF_MESSAGE_URL, statusToDeal.url); context.startActivity(mainActivity); ((Activity) context).finish(); From 4398873c087a968312a521499c1aadfdd45bad9a Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 27 Nov 2022 09:03:47 +0100 Subject: [PATCH 012/111] Inverse display name and acct for art --- .../java/app/fedilab/android/ui/drawer/StatusAdapter.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java index 755047c9..c583b75c 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java @@ -2295,11 +2295,11 @@ public class StatusAdapter extends RecyclerView.Adapter .apply(new RequestOptions().transform(new RoundedCorners((int) Helper.convertDpToPixel(3, context)))) .into(holder.bindingArt.artMedia); } - holder.bindingArt.artAcct.setText( + holder.bindingArt.artUsername.setText( status.account.getSpanDisplayName(context, - new WeakReference<>(holder.bindingArt.artAcct)), + new WeakReference<>(holder.bindingArt.artUsername)), TextView.BufferType.SPANNABLE); - holder.bindingArt.artUsername.setText(String.format(Locale.getDefault(), "@%s", status.account.acct)); + holder.bindingArt.artAcct.setText(String.format(Locale.getDefault(), "@%s", status.account.acct)); holder.bindingArt.artPp.setOnClickListener(v -> { Intent intent = new Intent(context, ProfileActivity.class); Bundle b = new Bundle(); From 58dcdbf0501771ddde6218fa674a144620d71a91 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 27 Nov 2022 09:28:33 +0100 Subject: [PATCH 013/111] Fix issue #517 - Media not displayed in public gallery for some devices --- app/src/main/java/app/fedilab/android/helper/MediaHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/app/fedilab/android/helper/MediaHelper.java b/app/src/main/java/app/fedilab/android/helper/MediaHelper.java index 722cf3dd..3d90be2d 100644 --- a/app/src/main/java/app/fedilab/android/helper/MediaHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/MediaHelper.java @@ -154,7 +154,7 @@ public class MediaHelper { FileChannel in = null; FileChannel out = null; try { - File backupFile = new File(targeted_folder + "/" + fileName); + File backupFile = new File(targeted_folder.getAbsolutePath() + "/" + fileName); //noinspection ResultOfMethodCallIgnored backupFile.createNewFile(); fis = new FileInputStream(file); From 72f123d26b1168253a2f549bd354d07a6b79c607 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 27 Nov 2022 09:53:06 +0100 Subject: [PATCH 014/111] Fix authentication with external browser does not grant admin scope --- .../fedilab/android/activities/LoginActivity.java | 10 +--------- .../android/activities/WebviewConnectActivity.java | 2 +- .../ui/fragment/login/FragmentLoginMain.java | 14 +++++++------- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/activities/LoginActivity.java b/app/src/main/java/app/fedilab/android/activities/LoginActivity.java index 8d0fc38a..d76d8810 100644 --- a/app/src/main/java/app/fedilab/android/activities/LoginActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/LoginActivity.java @@ -49,7 +49,7 @@ public class LoginActivity extends BaseActivity { public static Account.API apiLogin; public static String currentInstanceLogin, client_idLogin, client_secretLogin, softwareLogin; private final int PICK_IMPORT = 5557; - private boolean requestedAdmin; + public static boolean requestedAdmin; private void manageItent(Intent intent) { @@ -114,19 +114,11 @@ public class LoginActivity extends BaseActivity { setContentView(new FrameLayout(this)); FragmentLoginMain fragmentLoginMain = new FragmentLoginMain(); Helper.addFragment(getSupportFragmentManager(), android.R.id.content, fragmentLoginMain, null, null, null); - requestedAdmin = false; //The activity handles a redirect URI, it will extract token code and will proceed to authentication //That happens when the user wants to use an external browser manageItent(getIntent()); } - public boolean requestedAdmin() { - return requestedAdmin; - } - - public boolean setAdmin(boolean askAdmin) { - return requestedAdmin = askAdmin; - } @Override protected void onResume() { diff --git a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java index faa2e44a..23c0e456 100644 --- a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java @@ -20,6 +20,7 @@ import static app.fedilab.android.activities.LoginActivity.apiLogin; import static app.fedilab.android.activities.LoginActivity.client_idLogin; import static app.fedilab.android.activities.LoginActivity.client_secretLogin; import static app.fedilab.android.activities.LoginActivity.currentInstanceLogin; +import static app.fedilab.android.activities.LoginActivity.requestedAdmin; import static app.fedilab.android.activities.LoginActivity.softwareLogin; import static app.fedilab.android.helper.Helper.PREF_USER_TOKEN; @@ -69,7 +70,6 @@ public class WebviewConnectActivity extends BaseActivity { private ActivityWebviewConnectBinding binding; private AlertDialog alert; private String login_url; - private boolean requestedAdmin; @SuppressWarnings("deprecation") diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java b/app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java index 39677e9f..5bfabb07 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/login/FragmentLoginMain.java @@ -19,6 +19,7 @@ import static app.fedilab.android.activities.LoginActivity.apiLogin; import static app.fedilab.android.activities.LoginActivity.client_idLogin; import static app.fedilab.android.activities.LoginActivity.client_secretLogin; import static app.fedilab.android.activities.LoginActivity.currentInstanceLogin; +import static app.fedilab.android.activities.LoginActivity.requestedAdmin; import static app.fedilab.android.activities.LoginActivity.softwareLogin; import android.content.Intent; @@ -49,7 +50,6 @@ import java.net.URLEncoder; import app.fedilab.android.BaseMainActivity; import app.fedilab.android.R; -import app.fedilab.android.activities.LoginActivity; import app.fedilab.android.activities.ProxyActivity; import app.fedilab.android.activities.WebviewConnectActivity; import app.fedilab.android.client.entities.app.Account; @@ -190,7 +190,7 @@ public class FragmentLoginMain extends Fragment { SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); boolean embedded_browser = sharedpreferences.getBoolean(getString(R.string.SET_EMBEDDED_BROWSER), true); customTabItem.setChecked(!embedded_browser); - adminTabItem.setChecked(((LoginActivity) requireActivity()).requestedAdmin()); + adminTabItem.setChecked(requestedAdmin); popupMenu.setOnMenuItemClickListener(item -> { int itemId = item.getItemId(); if (itemId == R.id.action_proxy) { @@ -216,9 +216,9 @@ public class FragmentLoginMain extends Fragment { }); editor.apply(); } else if (itemId == R.id.action_request_admin) { - boolean checked = !((LoginActivity) requireActivity()).requestedAdmin(); - ((LoginActivity) requireActivity()).setAdmin(checked); + item.setChecked(!item.isChecked()); + requestedAdmin = item.isChecked(); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); item.setActionView(new View(requireContext())); item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() { @@ -257,7 +257,7 @@ public class FragmentLoginMain extends Fragment { } catch (UnsupportedEncodingException e) { currentInstanceLogin = host; } - String scopes = ((LoginActivity) requireActivity()).requestedAdmin() ? Helper.OAUTH_SCOPES_ADMIN : Helper.OAUTH_SCOPES; + String scopes = requestedAdmin ? Helper.OAUTH_SCOPES_ADMIN : Helper.OAUTH_SCOPES; AppsVM appsVM = new ViewModelProvider(requireActivity()).get(AppsVM.class); appsVM.createApp(currentInstanceLogin, getString(R.string.app_name), Helper.REDIRECT_CONTENT_WEB, @@ -267,13 +267,13 @@ public class FragmentLoginMain extends Fragment { if (app != null) { client_idLogin = app.client_id; client_secretLogin = app.client_secret; - String redirectUrl = MastodonHelper.authorizeURL(currentInstanceLogin, client_idLogin, ((LoginActivity) requireActivity()).requestedAdmin()); + String redirectUrl = MastodonHelper.authorizeURL(currentInstanceLogin, client_idLogin, requestedAdmin); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); boolean embedded_browser = sharedpreferences.getBoolean(getString(R.string.SET_EMBEDDED_BROWSER), true); if (embedded_browser) { Intent i = new Intent(requireActivity(), WebviewConnectActivity.class); i.putExtra("login_url", redirectUrl); - i.putExtra("requestedAdmin", ((LoginActivity) requireActivity()).requestedAdmin()); + i.putExtra("requestedAdmin", requestedAdmin); startActivity(i); requireActivity().finish(); } else { From 6f8ca561bfbcee2538f59c3e15a37dca2e1ef620 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 27 Nov 2022 11:47:14 +0100 Subject: [PATCH 015/111] Fix #517 - force to rescan --- app/src/main/java/app/fedilab/android/helper/MediaHelper.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/app/fedilab/android/helper/MediaHelper.java b/app/src/main/java/app/fedilab/android/helper/MediaHelper.java index 3d90be2d..93c1b8d3 100644 --- a/app/src/main/java/app/fedilab/android/helper/MediaHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/MediaHelper.java @@ -27,6 +27,7 @@ import android.content.SharedPreferences; import android.graphics.BitmapFactory; import android.graphics.drawable.Drawable; import android.media.MediaRecorder; +import android.media.MediaScannerConnection; import android.net.Uri; import android.os.Build; import android.os.Environment; @@ -168,6 +169,7 @@ public class MediaHelper { intent.setAction(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(backupFile); intent.setDataAndType(uri, mime); + MediaScannerConnection.scanFile(context, new String[]{backupFile.getAbsolutePath()}, null, null); if (!share) { notify_user(context, currentAccount, intent, BitmapFactory.decodeResource(context.getResources(), getMainLogo(context)), Helper.NotifType.STORE, context.getString(R.string.save_over), context.getString(R.string.download_from, fileName)); From 6f288acbc9b4ef515c0e30f5a4b552d233c13bb9 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 27 Nov 2022 11:48:14 +0100 Subject: [PATCH 016/111] Remove fake user agent --- .../android/activities/WebviewConnectActivity.java | 4 ++-- app/src/main/java/app/fedilab/android/helper/Helper.java | 8 ++++---- .../java/app/fedilab/android/helper/SpannableHelper.java | 5 ++--- .../fedilab/android/ui/fragment/media/FragmentMedia.java | 4 ++-- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java index 23c0e456..89f0972f 100644 --- a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java @@ -136,8 +136,8 @@ public class WebviewConnectActivity extends BaseActivity { clearCookies(WebviewConnectActivity.this); binding.webviewConnect.getSettings().setJavaScriptEnabled(true); - String user_agent = sharedpreferences.getString(getString(R.string.SET_CUSTOM_USER_AGENT), Helper.USER_AGENT); - binding.webviewConnect.getSettings().setUserAgentString(user_agent); + // String user_agent = sharedpreferences.getString(getString(R.string.SET_CUSTOM_USER_AGENT), Helper.USER_AGENT); + // binding.webviewConnect.getSettings().setUserAgentString(user_agent); binding.webviewConnect.getSettings().setDomStorageEnabled(true); CookieManager.getInstance().setAcceptThirdPartyCookies(binding.webviewConnect, true); diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index 5eebc79d..fd2ba59a 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -287,7 +287,7 @@ public class Helper { public static final String VALUE_TRENDS = "VALUE_TRENDS"; - public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"; + //public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"; public static final String REDIRECT_CONTENT_WEB = "fedilab://backtofedilab"; public static final String REDIRECT_CONTENT = "urn:ietf:wg:oauth:2.0:oob"; public static final String APP_OAUTH_SCOPES = "read write"; @@ -439,8 +439,8 @@ public class Helper { webView.getSettings().setLoadsImagesAutomatically(true); webView.getSettings().setSupportMultipleWindows(false); webView.getSettings().setMediaPlaybackRequiresUserGesture(true); - String user_agent = sharedpreferences.getString(activity.getString(R.string.SET_CUSTOM_USER_AGENT), USER_AGENT); - webView.getSettings().setUserAgentString(user_agent); + //String user_agent = sharedpreferences.getString(activity.getString(R.string.SET_CUSTOM_USER_AGENT), USER_AGENT); + // webView.getSettings().setUserAgentString(user_agent); boolean cookies = sharedpreferences.getBoolean(activity.getString(R.string.SET_COOKIES), false); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptThirdPartyCookies(webView, cookies); @@ -1761,7 +1761,7 @@ public class Helper { httpURLConnection = (HttpURLConnection) url.openConnection(proxy); else httpURLConnection = (HttpURLConnection) url.openConnection(); - httpURLConnection.setRequestProperty("User-Agent", USER_AGENT); + // httpURLConnection.setRequestProperty("User-Agent", USER_AGENT); int responseCode = httpURLConnection.getResponseCode(); // always check HTTP response code first diff --git a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java index c14b3c66..68dd7653 100644 --- a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java @@ -16,7 +16,6 @@ package app.fedilab.android.helper; import static app.fedilab.android.BaseMainActivity.currentAccount; -import static app.fedilab.android.helper.Helper.USER_AGENT; import static app.fedilab.android.helper.ThemeHelper.linkColor; import android.content.ClipData; @@ -321,7 +320,7 @@ public class SpannableHelper { HttpsURLConnection httpsURLConnection = (HttpsURLConnection) finalUrlCheck.openConnection(); httpsURLConnection.setConnectTimeout(10 * 1000); httpsURLConnection.setRequestProperty("http.keepAlive", "false"); - httpsURLConnection.setRequestProperty("User-Agent", USER_AGENT); + // httpsURLConnection.setRequestProperty("User-Agent", USER_AGENT); httpsURLConnection.setRequestMethod("HEAD"); httpsURLConnection.setInstanceFollowRedirects(false); if (httpsURLConnection.getResponseCode() == 301 || httpsURLConnection.getResponseCode() == 302) { @@ -550,7 +549,7 @@ public class SpannableHelper { HttpsURLConnection httpsURLConnection = (HttpsURLConnection) finalUrlCheck.openConnection(); httpsURLConnection.setConnectTimeout(10 * 1000); httpsURLConnection.setRequestProperty("http.keepAlive", "false"); - httpsURLConnection.setRequestProperty("User-Agent", USER_AGENT); + //httpsURLConnection.setRequestProperty("User-Agent", USER_AGENT); httpsURLConnection.setRequestMethod("HEAD"); httpsURLConnection.setInstanceFollowRedirects(false); if (httpsURLConnection.getResponseCode() == 301 || httpsURLConnection.getResponseCode() == 302) { diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/media/FragmentMedia.java b/app/src/main/java/app/fedilab/android/ui/fragment/media/FragmentMedia.java index 277d75cf..fdf980f1 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/media/FragmentMedia.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/media/FragmentMedia.java @@ -245,8 +245,8 @@ public class FragmentMedia extends Fragment { webview_video.setWebChromeClient(fedilabWebChromeClient); webview_video.getSettings().setDomStorageEnabled(true); webview_video.getSettings().setAppCacheEnabled(true); - String user_agent = sharedpreferences.getString(getString(R.string.SET_CUSTOM_USER_AGENT), Helper.USER_AGENT); - webview_video.getSettings().setUserAgentString(user_agent); + // String user_agent = sharedpreferences.getString(getString(R.string.SET_CUSTOM_USER_AGENT), Helper.USER_AGENT); + // webview_video.getSettings().setUserAgentString(user_agent); webview_video.getSettings().setMediaPlaybackRequiresUserGesture(false); webview_video.setWebViewClient(new FedilabWebViewClient(requireActivity())); webview_video.loadUrl(attachment.url); From ab9b367a38c33d2fbdee5f470144ee0225d186b0 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 27 Nov 2022 12:27:31 +0100 Subject: [PATCH 017/111] Hide messages instead of removing them and add fetch more support --- .../android/helper/TimelineHelper.java | 18 +--- .../android/ui/drawer/StatusAdapter.java | 91 ++++++++++++++++++- .../res/layout/drawer_status_filtered.xml | 23 ++++- .../layout/drawer_status_filtered_hide.xml | 46 ++++++++++ 4 files changed, 157 insertions(+), 21 deletions(-) create mode 100644 app/src/main/res/layout/drawer_status_filtered_hide.xml diff --git a/app/src/main/java/app/fedilab/android/helper/TimelineHelper.java b/app/src/main/java/app/fedilab/android/helper/TimelineHelper.java index 02ce2b2f..2f0366d7 100644 --- a/app/src/main/java/app/fedilab/android/helper/TimelineHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/TimelineHelper.java @@ -73,7 +73,6 @@ public class TimelineHelper { */ public static List filterStatus(Context context, List statuses, Timeline.TimeLineEnum filterTimeLineType) { //A security to make sure filters have been fetched before displaying messages - List statusesToRemove = new ArrayList<>(); if (!BaseMainActivity.filterFetched) { MastodonFiltersService mastodonFiltersService = initv2(context); List filterList; @@ -132,12 +131,7 @@ public class TimelineHelper { content = Html.fromHtml(status.reblog != null ? status.reblog.content : status.content).toString(); Matcher m = p.matcher(content); if (m.find()) { - - if (filter.filter_action.equalsIgnoreCase("warn")) { - status.filteredByApp = filter; - } else { - statusesToRemove.add(status); - } + status.filteredByApp = filter; continue; } if (status.spoiler_text != null) { @@ -148,22 +142,14 @@ public class TimelineHelper { spoilerText = Html.fromHtml(status.reblog != null ? status.reblog.spoiler_text : status.spoiler_text).toString(); Matcher ms = p.matcher(spoilerText); if (ms.find()) { - if (filter.filter_action.equalsIgnoreCase("warn")) { - status.filteredByApp = filter; - } else { - statusesToRemove.add(status); - } + status.filteredByApp = filter; } } } } } - } } - if (statuses != null) { - statuses.removeAll(statusesToRemove); - } return statuses; } diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java index c583b75c..c258ca1a 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java @@ -127,6 +127,7 @@ import app.fedilab.android.client.entities.app.Timeline; import app.fedilab.android.databinding.DrawerStatusArtBinding; import app.fedilab.android.databinding.DrawerStatusBinding; import app.fedilab.android.databinding.DrawerStatusFilteredBinding; +import app.fedilab.android.databinding.DrawerStatusFilteredHideBinding; import app.fedilab.android.databinding.DrawerStatusHiddenBinding; import app.fedilab.android.databinding.DrawerStatusNotificationBinding; import app.fedilab.android.databinding.DrawerStatusReportBinding; @@ -156,6 +157,7 @@ public class StatusAdapter extends RecyclerView.Adapter public static final int STATUS_VISIBLE = 1; public static final int STATUS_ART = 2; public static final int STATUS_FILTERED = 3; + public static final int STATUS_FILTERED_HIDE = 4; private final List statusList; private final boolean minified; private final Timeline.TimeLineEnum timelineType; @@ -2188,7 +2190,15 @@ public class StatusAdapter extends RecyclerView.Adapter return STATUS_ART; } else { if (statusList.get(position).filteredByApp != null) { - return STATUS_FILTERED; + if (statusList.get(position).filteredByApp.filter_action.equals("warn")) { + return STATUS_FILTERED; + } else { //These messages should not be displayed unless they contain a fetch more button + if (!statusList.get(position).isFetchMore) { + return STATUS_HIDDEN; + } else { + return STATUS_FILTERED_HIDE; + } + } } else { return isVisible(timelineType, statusList.get(position)) ? STATUS_VISIBLE : STATUS_HIDDEN; } @@ -2206,9 +2216,12 @@ public class StatusAdapter extends RecyclerView.Adapter } else if (viewType == STATUS_ART) { //Art statuses DrawerStatusArtBinding itemBinding = DrawerStatusArtBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false); return new StatusViewHolder(itemBinding); - } else if (viewType == STATUS_FILTERED) { //Art statuses + } else if (viewType == STATUS_FILTERED) { //Filtered warn DrawerStatusFilteredBinding itemBinding = DrawerStatusFilteredBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false); return new StatusViewHolder(itemBinding); + } else if (viewType == STATUS_FILTERED_HIDE) { //Filtered hide + DrawerStatusFilteredHideBinding itemBinding = DrawerStatusFilteredHideBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false); + return new StatusViewHolder(itemBinding); } else { //Classic statuses if (!minified) { DrawerStatusBinding itemBinding = DrawerStatusBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false); @@ -2245,13 +2258,80 @@ public class StatusAdapter extends RecyclerView.Adapter StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class); SearchVM searchVM = new ViewModelProvider((ViewModelStoreOwner) context).get(SearchVM.class); statusManagement(context, statusesVM, searchVM, holder, this, statusList, status, timelineType, minified, canBeFederated, checkRemotely, fetchMoreCallBack); + } else if (viewHolder.getItemViewType() == STATUS_FILTERED_HIDE) { + StatusViewHolder holder = (StatusViewHolder) viewHolder; + + if (status.isFetchMore && fetchMoreCallBack != null) { + holder.bindingFilteredHide.layoutFetchMore.fetchMoreContainer.setVisibility(View.VISIBLE); + holder.bindingFilteredHide.layoutFetchMore.fetchMoreMin.setOnClickListener(v -> { + status.isFetchMore = false; + notifyItemChanged(holder.getBindingAdapterPosition()); + if (holder.getBindingAdapterPosition() < statusList.size() - 1) { + String fromId; + if (status.positionFetchMore == Status.PositionFetchMore.TOP) { + fromId = statusList.get(holder.getBindingAdapterPosition() + 1).id; + } else { + fromId = status.id; + } + fetchMoreCallBack.onClickMinId(fromId, status); + } + }); + holder.bindingFilteredHide.layoutFetchMore.fetchMoreMax.setOnClickListener(v -> { + //We hide the button + status.isFetchMore = false; + String fromId; + if (status.positionFetchMore == Status.PositionFetchMore.TOP) { + fromId = statusList.get(holder.getBindingAdapterPosition()).id; + } else { + fromId = statusList.get(holder.getBindingAdapterPosition() - 1).id; + } + fetchMoreCallBack.onClickMaxId(fromId, status); + notifyItemChanged(holder.getBindingAdapterPosition()); + }); + } else { + holder.bindingFilteredHide.layoutFetchMore.fetchMoreContainer.setVisibility(View.GONE); + } + } else if (viewHolder.getItemViewType() == STATUS_FILTERED) { StatusViewHolder holder = (StatusViewHolder) viewHolder; + holder.bindingFiltered.filteredText.setText(context.getString(R.string.filtered_by, status.filteredByApp.title)); holder.bindingFiltered.displayButton.setOnClickListener(v -> { status.filteredByApp = null; notifyItemChanged(position); }); + + if (status.isFetchMore && fetchMoreCallBack != null) { + holder.bindingFiltered.layoutFetchMore.fetchMoreContainer.setVisibility(View.VISIBLE); + holder.bindingFiltered.layoutFetchMore.fetchMoreMin.setOnClickListener(v -> { + status.isFetchMore = false; + notifyItemChanged(holder.getBindingAdapterPosition()); + if (holder.getBindingAdapterPosition() < statusList.size() - 1) { + String fromId; + if (status.positionFetchMore == Status.PositionFetchMore.TOP) { + fromId = statusList.get(holder.getBindingAdapterPosition() + 1).id; + } else { + fromId = status.id; + } + fetchMoreCallBack.onClickMinId(fromId, status); + } + }); + holder.bindingFiltered.layoutFetchMore.fetchMoreMax.setOnClickListener(v -> { + //We hide the button + status.isFetchMore = false; + String fromId; + if (status.positionFetchMore == Status.PositionFetchMore.TOP) { + fromId = statusList.get(holder.getBindingAdapterPosition()).id; + } else { + fromId = statusList.get(holder.getBindingAdapterPosition() - 1).id; + } + fetchMoreCallBack.onClickMaxId(fromId, status); + notifyItemChanged(holder.getBindingAdapterPosition()); + }); + } else { + holder.bindingFiltered.layoutFetchMore.fetchMoreContainer.setVisibility(View.GONE); + } + } else if (viewHolder.getItemViewType() == STATUS_ART) { StatusViewHolder holder = (StatusViewHolder) viewHolder; MastodonHelper.loadPPMastodon(holder.bindingArt.artPp, status.account); @@ -2352,7 +2432,7 @@ public class StatusAdapter extends RecyclerView.Adapter DrawerStatusNotificationBinding bindingNotification; DrawerStatusArtBinding bindingArt; DrawerStatusFilteredBinding bindingFiltered; - + DrawerStatusFilteredHideBinding bindingFilteredHide; StatusViewHolder(DrawerStatusBinding itemView) { super(itemView.getRoot()); binding = itemView; @@ -2385,6 +2465,11 @@ public class StatusAdapter extends RecyclerView.Adapter super(itemView.getRoot()); bindingFiltered = itemView; } + + StatusViewHolder(DrawerStatusFilteredHideBinding itemView) { + super(itemView.getRoot()); + bindingFilteredHide = itemView; + } } diff --git a/app/src/main/res/layout/drawer_status_filtered.xml b/app/src/main/res/layout/drawer_status_filtered.xml index 5bf1f85c..b8b490dc 100644 --- a/app/src/main/res/layout/drawer_status_filtered.xml +++ b/app/src/main/res/layout/drawer_status_filtered.xml @@ -38,7 +38,7 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:textSize="16sp" - app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintBottom_toTopOf="@+id/container_fetchmore" app:layout_constraintEnd_toStartOf="@+id/display_button" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" @@ -51,10 +51,29 @@ android:layout_height="wrap_content" android:text="@string/show_anyway" android:textColor="@color/cyanea_accent_dark_reference" - app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintBottom_toTopOf="@+id/container_fetchmore" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/filtered_text" app:layout_constraintTop_toTopOf="parent" app:strokeColor="@color/cyanea_accent_dark_reference" /> + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_status_filtered_hide.xml b/app/src/main/res/layout/drawer_status_filtered_hide.xml new file mode 100644 index 00000000..0cf9ff4e --- /dev/null +++ b/app/src/main/res/layout/drawer_status_filtered_hide.xml @@ -0,0 +1,46 @@ + + + + + + + + \ No newline at end of file From c7420a876053141273e4d8eda6a84702fb1960bb Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 27 Nov 2022 16:30:51 +0100 Subject: [PATCH 018/111] Fix some crashes --- .../java/app/fedilab/android/BaseMainActivity.java | 5 ++++- .../ui/drawer/AccountFollowRequestAdapter.java | 13 +++++++++---- .../fedilab/android/ui/drawer/ComposeAdapter.java | 5 +++++ .../fedilab/android/ui/drawer/StatusAdapter.java | 4 ++-- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java index a4ec704c..c5ac5ab6 100644 --- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java @@ -586,7 +586,10 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt } Handler mainHandler = new Handler(Looper.getMainLooper()); Runnable myRunnable = () -> { - if (currentAccount == null || currentAccount.mastodon_account == null) { + if (currentToken == null) { + currentToken = sharedpreferences.getString(Helper.PREF_USER_TOKEN, null); + } + if (currentAccount == null) { //It is not, the user is redirected to the login page Intent myIntent = new Intent(BaseMainActivity.this, LoginActivity.class); startActivity(myIntent); diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/AccountFollowRequestAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/AccountFollowRequestAdapter.java index 0a38f89f..5ccc677d 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/AccountFollowRequestAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/AccountFollowRequestAdapter.java @@ -78,13 +78,18 @@ public class AccountFollowRequestAdapter extends RecyclerView.Adapter accountsVM.acceptFollow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id) .observe((LifecycleOwner) context, relationShip -> { - accountList.remove(position); - notifyItemRemoved(position); + if (accountList.size() > position) { + accountList.remove(position); + notifyItemRemoved(position); + } })); holderFollow.binding.rejectButton.setOnClickListener(v -> accountsVM.rejectFollow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id) .observe((LifecycleOwner) context, relationShip -> { - accountList.remove(position); - notifyItemRemoved(position); + if (accountList.size() > position) { + accountList.remove(position); + notifyItemRemoved(position); + } + })); holderFollow.binding.avatar.setOnClickListener(v -> { Intent intent = new Intent(context, ProfileActivity.class); diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java index dff83d9b..8cacbff2 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java @@ -941,6 +941,11 @@ public class ComposeAdapter extends RecyclerView.Adapter { Intent intent = new Intent(context, EditImageActivity.class); Bundle b = new Bundle(); diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java index c258ca1a..b671b040 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java @@ -2341,7 +2341,7 @@ public class StatusAdapter extends RecyclerView.Adapter @Override public void onGlobalLayout() { holder.bindingArt.artMedia.getViewTreeObserver().removeOnGlobalLayoutListener(this); - if (status.art_attachment.meta != null) { + if (status.art_attachment.meta != null && status.art_attachment.meta.small != null) { float viewWidth = holder.bindingArt.artMedia.getWidth(); ConstraintLayout.LayoutParams lp; float mediaH = status.art_attachment.meta.small.height; @@ -2357,7 +2357,7 @@ public class StatusAdapter extends RecyclerView.Adapter } }); - if (status.art_attachment.meta != null) { + if (status.art_attachment.meta != null && status.art_attachment.meta.small != null) { float viewWidth = holder.bindingArt.artMedia.getWidth(); ConstraintLayout.LayoutParams lp; float mediaH = status.art_attachment.meta.small.height; From a796d5416654f1001f7b866b8780098c0de3d27a Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 27 Nov 2022 16:47:28 +0100 Subject: [PATCH 019/111] Live remove when muting tags --- .../java/app/fedilab/android/helper/Helper.java | 1 + .../fedilab/android/helper/SpannableHelper.java | 15 ++++++++++----- .../fedilab/android/ui/drawer/StatusAdapter.java | 4 ++++ .../timeline/FragmentMastodonTimeline.java | 3 +++ 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index fd2ba59a..57e1ce80 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -218,6 +218,7 @@ public class Helper { public static final String ARG_NOTIFICATION_TYPE = "ARG_NOTIFICATION_TYPE"; public static final String ARG_EXCLUDED_NOTIFICATION_TYPE = "ARG_EXCLUDED_NOTIFICATION_TYPE"; public static final String ARG_STATUS = "ARG_STATUS"; + public static final String ARG_TIMELINE_REFRESH_ALL = "ARG_TIMELINE_REFRESH_ALL"; public static final String ARG_STATUS_DELETED = "ARG_STATUS_DELETED"; public static final String ARG_STATUS_UPDATED = "ARG_STATUS_UPDATED"; diff --git a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java index 68dd7653..46df2e4e 100644 --- a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java @@ -17,6 +17,7 @@ package app.fedilab.android.helper; import static app.fedilab.android.BaseMainActivity.currentAccount; import static app.fedilab.android.helper.ThemeHelper.linkColor; +import static app.fedilab.android.ui.drawer.StatusAdapter.sendAction; import android.content.ClipData; import android.content.ClipboardManager; @@ -148,7 +149,7 @@ public class SpannableHelper { content.removeSpan(span); } //Make tags, mentions, groups - interaction(context, content, mentionList); + interaction(context, content, status, mentionList); //Make all links linkify(context, content, urlDetails); linkifyURL(context, content, urlDetails); @@ -751,7 +752,7 @@ public class SpannableHelper { } } - private static void interaction(Context context, Spannable content, List mentions) { + private static void interaction(Context context, Spannable content, Status status, List mentions) { // --- For all patterns defined in Helper class --- for (Map.Entry entry : Helper.patternHashMap.entrySet()) { Helper.PatternType patternType = entry.getKey(); @@ -802,11 +803,11 @@ public class SpannableHelper { .observe((LifecycleOwner) context, filter -> { if (filter != null) { MainActivity.mainFilters.add(filter); - addTagToFilter(context, finalTag, filter); + addTagToFilter(context, finalTag, status, filter); } }); } else { - addTagToFilter(context, tag, fedilabFilter); + addTagToFilter(context, tag, status, fedilabFilter); } } } @@ -901,7 +902,7 @@ public class SpannableHelper { } } - public static void addTagToFilter(Context context, String tag, Filter filter) { + public static void addTagToFilter(Context context, String tag, Status status, Filter filter) { for (Filter.KeywordsAttributes keywords : filter.keywords) { if (keywords.keyword.equalsIgnoreCase(tag)) { return; @@ -921,6 +922,10 @@ public class SpannableHelper { filterParams.context = filter.context; FiltersVM filtersVM = new ViewModelProvider((ViewModelStoreOwner) context).get(FiltersVM.class); filtersVM.editFilter(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, filterParams); + if (status != null) { + status.filteredByApp = filter; + } + sendAction(context, Helper.ARG_TIMELINE_REFRESH_ALL, null, null); dialog.dismiss(); }) .setNegativeButton(R.string.no, (dialog, which) -> dialog.dismiss()) diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java index b671b040..43d2a498 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java @@ -24,6 +24,7 @@ import static app.fedilab.android.BaseMainActivity.regex_public; import static app.fedilab.android.BaseMainActivity.show_boosts; import static app.fedilab.android.BaseMainActivity.show_replies; import static app.fedilab.android.activities.ContextActivity.expand; +import static app.fedilab.android.helper.Helper.ARG_TIMELINE_REFRESH_ALL; import static app.fedilab.android.helper.Helper.PREF_USER_ID; import static app.fedilab.android.helper.Helper.PREF_USER_INSTANCE; import static app.fedilab.android.helper.Helper.PREF_USER_TOKEN; @@ -2178,6 +2179,9 @@ public class StatusAdapter extends RecyclerView.Adapter if (id != null) { b.putSerializable(type, id); } + if (type == ARG_TIMELINE_REFRESH_ALL) { + b.putSerializable(ARG_TIMELINE_REFRESH_ALL, true); + } Intent intentBC = new Intent(Helper.RECEIVE_STATUS_ACTION); intentBC.putExtras(b); LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java index 8727bb7f..e23efb62 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java @@ -98,6 +98,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. Status status_to_delete = (Status) b.getSerializable(Helper.ARG_STATUS_DELETED); Status status_to_update = (Status) b.getSerializable(Helper.ARG_STATUS_UPDATED); Status statusPosted = (Status) b.getSerializable(Helper.ARG_STATUS_DELETED); + boolean refreshAll = b.getBoolean(Helper.ARG_TIMELINE_REFRESH_ALL, false); if (receivedStatus != null && statusAdapter != null) { int position = getPosition(receivedStatus); if (position >= 0) { @@ -154,6 +155,8 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. statusAdapter.notifyItemRemoved(position); } } + } else if (refreshAll) { + refreshAllAdapters(); } } } From 8307cb8e756d092322ecfef3f5e8d0d25687617f Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 27 Nov 2022 16:52:26 +0100 Subject: [PATCH 020/111] Remove cache messages when muting --- .../java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java index f3ba0615..f56a120b 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java @@ -703,6 +703,8 @@ public class AccountsVM extends AndroidViewModel { Response muteResponse = muteCall.execute(); if (muteResponse.isSuccessful()) { relationShip = muteResponse.body(); + sendAction(getApplication().getApplicationContext(), Helper.ARG_DELETE_ALL_FOR_ACCOUNT_ID, null, id); + new StatusCache(getApplication().getApplicationContext()).deleteStatusForTargetedAccount(MainActivity.currentInstance, MainActivity.currentUserID, id); } } catch (Exception e) { e.printStackTrace(); From 2e3d5b6b94e6ba26fdc4de9d1ee3f85e50578a94 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 27 Nov 2022 17:10:51 +0100 Subject: [PATCH 021/111] Release notes for 3.8.1 --- app/build.gradle | 4 ++-- app/src/main/assets/release_notes/notes.json | 5 +++++ .../fastlane/metadata/android/en/changelogs/434.txt | 9 +++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 src/fdroid/fastlane/metadata/android/en/changelogs/434.txt diff --git a/app/build.gradle b/app/build.gradle index df57002d..bb994c69 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { defaultConfig { minSdk 21 targetSdk 31 - versionCode 433 - versionName "3.8.0" + versionCode 434 + versionName "3.8.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } flavorDimensions "default" diff --git a/app/src/main/assets/release_notes/notes.json b/app/src/main/assets/release_notes/notes.json index ce67924f..e8042436 100644 --- a/app/src/main/assets/release_notes/notes.json +++ b/app/src/main/assets/release_notes/notes.json @@ -1,4 +1,9 @@ [ + { + "version": "3.8.1", + "code": "434", + "note": "Added:\n- Mute tags with long press in timelines\n\nFixed:\n- Open with another account\n- Fix jumps in profiles\n- Media not displayed in album -> force indexation\n- Built-in browser does not give admin scope\n- Some crashes" + }, { "version": "3.8.0", "code": "433", diff --git a/src/fdroid/fastlane/metadata/android/en/changelogs/434.txt b/src/fdroid/fastlane/metadata/android/en/changelogs/434.txt new file mode 100644 index 00000000..6324805a --- /dev/null +++ b/src/fdroid/fastlane/metadata/android/en/changelogs/434.txt @@ -0,0 +1,9 @@ +Added: +- Mute tags with long press in timelines + +Fixed: +- Open with another account +- Fix jumps in profiles +- Media not displayed in album -> force indexation +- Built-in browser does not give admin scope +- Some crashes \ No newline at end of file From da4ed393a9e3b5098d5527d17cbdddc0914606f1 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 27 Nov 2022 17:14:23 +0100 Subject: [PATCH 022/111] Add a note --- app/src/main/assets/release_notes/notes.json | 2 +- src/fdroid/fastlane/metadata/android/en/changelogs/434.txt | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/assets/release_notes/notes.json b/app/src/main/assets/release_notes/notes.json index e8042436..a3a280d2 100644 --- a/app/src/main/assets/release_notes/notes.json +++ b/app/src/main/assets/release_notes/notes.json @@ -2,7 +2,7 @@ { "version": "3.8.1", "code": "434", - "note": "Added:\n- Mute tags with long press in timelines\n\nFixed:\n- Open with another account\n- Fix jumps in profiles\n- Media not displayed in album -> force indexation\n- Built-in browser does not give admin scope\n- Some crashes" + "note": "Added:\n- Mute tags with long press in timelines\n\nChanged:\n- Muted account messages are now removed from cache\n\nFixed:\n- Open with another account\n- Fix jumps in profiles\n- Media not displayed in album -> force indexation\n- Built-in browser does not give admin scope\n- Some crashes" }, { "version": "3.8.0", diff --git a/src/fdroid/fastlane/metadata/android/en/changelogs/434.txt b/src/fdroid/fastlane/metadata/android/en/changelogs/434.txt index 6324805a..bcbe3165 100644 --- a/src/fdroid/fastlane/metadata/android/en/changelogs/434.txt +++ b/src/fdroid/fastlane/metadata/android/en/changelogs/434.txt @@ -1,6 +1,9 @@ Added: - Mute tags with long press in timelines +Changed: +- Muted account messages are now removed from cache + Fixed: - Open with another account - Fix jumps in profiles From ccf7ac5cffebd25cbbde921a14aa3b51a474845c Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 28 Nov 2022 10:37:57 +0100 Subject: [PATCH 023/111] Remove cyanea --- app/build.gradle | 1 - app/src/main/AndroidManifest.xml | 8 +- .../app/fedilab/android/BaseMainActivity.java | 42 +--- .../app/fedilab/android/MainApplication.java | 9 - .../android/activities/AboutActivity.java | 7 +- .../activities/AccountReportActivity.java | 5 +- .../android/activities/ActionActivity.java | 5 +- .../activities/AnnouncementActivity.java | 6 +- .../android/activities/BaseActivity.java | 4 +- .../activities/BaseFragmentActivity.java | 5 +- .../android/activities/CacheActivity.java | 10 +- .../android/activities/ComposeActivity.java | 10 +- .../android/activities/ContextActivity.java | 7 +- .../activities/CustomSharingActivity.java | 6 +- .../android/activities/DraftActivity.java | 12 +- .../activities/EditProfileActivity.java | 20 +- .../android/activities/FilterActivity.java | 9 +- .../activities/FollowRequestActivity.java | 6 +- .../activities/FollowedTagActivity.java | 9 +- .../android/activities/HashTagActivity.java | 7 +- .../android/activities/InstanceActivity.java | 6 +- .../activities/InstanceHealthActivity.java | 2 - .../activities/InstanceProfileActivity.java | 3 +- .../android/activities/LoginActivity.java | 3 +- .../activities/MastodonListActivity.java | 13 +- .../android/activities/MediaActivity.java | 5 +- .../activities/PartnerShipActivity.java | 5 +- .../android/activities/ProfileActivity.java | 27 +-- .../activities/ReorderTimelinesActivity.java | 8 +- .../android/activities/ReportActivity.java | 6 +- .../android/activities/ScheduledActivity.java | 9 +- .../activities/SearchResultTabActivity.java | 8 +- .../android/activities/SettingsActivity.kt | 19 +- .../activities/StatusHistoryActivity.java | 6 +- .../activities/StatusInfoActivity.java | 6 +- .../activities/SuggestionActivity.java | 7 +- .../android/activities/TrendsActivity.java | 8 +- .../android/activities/WebviewActivity.java | 7 +- .../activities/WebviewConnectActivity.java | 3 +- .../admin/AdminAccountActivity.java | 8 +- .../activities/admin/AdminActionActivity.java | 9 +- .../admin/AdminDomainBlockActivity.java | 8 +- .../activities/admin/AdminReportActivity.java | 8 +- .../android/helper/CirclesDrawingView.java | 2 +- .../android/helper/CrossActionHelper.java | 6 +- .../app/fedilab/android/helper/Helper.java | 12 +- .../android/helper/MastodonHelper.java | 2 +- .../fedilab/android/helper/MediaHelper.java | 4 +- .../android/helper/PinnedTimelineHelper.java | 23 +- .../fedilab/android/helper/PushHelper.java | 4 +- .../android/helper/SpannableHelper.java | 16 +- .../fedilab/android/helper/ThemeHelper.java | 209 ++---------------- .../android/ui/drawer/AccountAdapter.java | 9 +- .../android/ui/drawer/AccountListAdapter.java | 1 - .../ui/drawer/AnnouncementAdapter.java | 2 +- .../android/ui/drawer/ComposeAdapter.java | 24 +- .../android/ui/drawer/DomainBlockAdapter.java | 3 +- .../android/ui/drawer/FilterAdapter.java | 3 +- .../android/ui/drawer/ReorderTabAdapter.java | 3 +- .../android/ui/drawer/StatusAdapter.java | 29 +-- .../android/ui/drawer/StatusDraftAdapter.java | 2 +- .../ui/drawer/StatusHistoryAdapter.java | 3 - .../ui/drawer/StatusScheduledAdapter.java | 2 +- .../android/ui/drawer/SuggestionAdapter.java | 3 - .../fedilab/android/ui/drawer/TagAdapter.java | 4 - .../android/ui/drawer/TopMenuAdapter.java | 2 +- .../fragment/admin/FragmentAdminAccount.java | 4 +- .../fragment/admin/FragmentAdminDomain.java | 4 +- .../fragment/admin/FragmentAdminReport.java | 4 +- .../ui/fragment/login/FragmentLoginMain.java | 3 +- .../login/FragmentLoginRegisterMastodon.java | 2 +- .../settings/FragmentComposeSettings.java | 6 - .../settings/FragmentInterfaceSettings.java | 1 - .../settings/FragmentLanguageSettings.java | 3 - .../FragmentNotificationsSettings.java | 10 +- .../settings/FragmentPrivacySettings.java | 4 - .../settings/FragmentThemingSettings.java | 56 +---- .../settings/FragmentTimelinesSettings.java | 2 - .../timeline/FragmentMastodonAccount.java | 4 +- .../FragmentMastodonAnnouncement.java | 4 +- .../timeline/FragmentMastodonContext.java | 4 +- .../FragmentMastodonConversation.java | 4 +- .../timeline/FragmentMastodonDomainBlock.java | 4 +- .../FragmentMastodonNotification.java | 4 +- .../timeline/FragmentMastodonSuggestion.java | 4 +- .../timeline/FragmentMastodonTag.java | 4 +- .../timeline/FragmentMastodonTimeline.java | 4 +- .../FragmentNotificationContainer.java | 21 +- .../timeline/FragmentProfileTimeline.java | 4 - .../drawable/ic_compose_attachment_play.xml | 2 +- app/src/main/res/drawable/ic_display_less.xml | 2 +- app/src/main/res/drawable/ic_display_more.xml | 2 +- .../main/res/drawable/menu_selector_dark.xml | 6 +- .../main/res/drawable/menu_selector_light.xml | 6 +- app/src/main/res/drawable/shape_counter.xml | 2 +- .../main/res/drawable/translation_border.xml | 2 +- app/src/main/res/layout/activity_about.xml | 8 +- app/src/main/res/layout/activity_actions.xml | 30 +-- .../res/layout/activity_admin_account.xml | 18 +- .../res/layout/activity_admin_actions.xml | 15 +- .../res/layout/activity_admin_domainblock.xml | 14 +- .../main/res/layout/activity_admin_report.xml | 32 +-- .../main/res/layout/activity_announcement.xml | 3 +- app/src/main/res/layout/activity_cache.xml | 1 - .../main/res/layout/activity_conversation.xml | 3 +- .../res/layout/activity_custom_sharing.xml | 1 - app/src/main/res/layout/activity_drafts.xml | 4 +- .../main/res/layout/activity_edit_profile.xml | 35 +-- app/src/main/res/layout/activity_filters.xml | 5 +- app/src/main/res/layout/activity_hashtag.xml | 6 +- app/src/main/res/layout/activity_instance.xml | 6 +- .../res/layout/activity_instance_profile.xml | 1 - .../res/layout/activity_instance_social.xml | 1 - app/src/main/res/layout/activity_main.xml | 7 - .../main/res/layout/activity_media_pager.xml | 3 +- .../main/res/layout/activity_pagination.xml | 3 +- app/src/main/res/layout/activity_profile.xml | 5 - app/src/main/res/layout/activity_proxy.xml | 1 - .../main/res/layout/activity_reorder_tabs.xml | 4 +- .../main/res/layout/activity_scheduled.xml | 3 - .../layout/activity_search_result_tabs.xml | 2 - .../res/layout/activity_status_history.xml | 3 +- .../main/res/layout/activity_status_info.xml | 4 +- app/src/main/res/layout/activity_trends.xml | 2 - app/src/main/res/layout/activity_webview.xml | 4 +- .../res/layout/activity_webview_connect.xml | 1 - app/src/main/res/layout/compose_poll.xml | 1 - app/src/main/res/layout/datetime_picker.xml | 1 - app/src/main/res/layout/drawer_account.xml | 9 +- .../main/res/layout/drawer_account_reply.xml | 4 +- .../main/res/layout/drawer_admin_account.xml | 1 - .../main/res/layout/drawer_announcement.xml | 1 - app/src/main/res/layout/drawer_cache.xml | 3 - app/src/main/res/layout/drawer_checkbox.xml | 4 +- .../main/res/layout/drawer_conversation.xml | 1 - .../main/res/layout/drawer_domain_block.xml | 7 +- app/src/main/res/layout/drawer_fetch_more.xml | 12 +- app/src/main/res/layout/drawer_filter.xml | 8 +- app/src/main/res/layout/drawer_follow.xml | 5 +- .../main/res/layout/drawer_instance_reg.xml | 5 +- app/src/main/res/layout/drawer_keyword.xml | 3 +- app/src/main/res/layout/drawer_list.xml | 4 +- .../main/res/layout/drawer_release_note.xml | 3 +- app/src/main/res/layout/drawer_reorder.xml | 1 - app/src/main/res/layout/drawer_status.xml | 18 +- .../main/res/layout/drawer_status_compose.xml | 4 - .../main/res/layout/drawer_status_draft.xml | 1 - .../res/layout/drawer_status_filtered.xml | 4 +- .../main/res/layout/drawer_status_report.xml | 1 - app/src/main/res/layout/drawer_suggestion.xml | 5 +- app/src/main/res/layout/drawer_tag.xml | 1 - .../main/res/layout/drawer_top_menu_item.xml | 1 - .../main/res/layout/fragment_login_join.xml | 1 - .../main/res/layout/fragment_login_main.xml | 1 - .../fragment_login_register_mastodon.xml | 4 +- .../fragment_notification_container.xml | 3 - .../main/res/layout/fragment_pagination.xml | 3 - .../res/layout/fragment_profile_timelines.xml | 2 - .../main/res/layout/fragment_scheduled.xml | 1 - .../main/res/layout/fragment_slide_media.xml | 1 - app/src/main/res/layout/layout_poll.xml | 1 - app/src/main/res/layout/layout_poll_item.xml | 1 - app/src/main/res/layout/popup_add_filter.xml | 24 +- app/src/main/res/layout/popup_contact.xml | 1 - app/src/main/res/layout/popup_links.xml | 20 +- .../res/layout/popup_manage_accounts_list.xml | 1 - .../layout/popup_notification_settings.xml | 20 +- app/src/main/res/layout/popup_record.xml | 1 - .../main/res/layout/popup_release_notes.xml | 6 +- .../main/res/layout/popup_status_theme.xml | 5 +- app/src/main/res/layout/simple_bar.xml | 1 - app/src/main/res/values/colors.xml | 4 +- app/src/main/res/values/styles.xml | 146 +++--------- 173 files changed, 343 insertions(+), 1159 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index bb994c69..2b854be5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -88,7 +88,6 @@ dependencies { implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' implementation 'androidx.preference:preference:1.2.0' implementation "org.conscrypt:conscrypt-android:2.5.2" - implementation 'com.github.evozi:Cyanea:1.0.7' implementation 'com.vanniktech:emoji-one:0.6.0' implementation 'com.github.GrenderG:Toasty:1.5.2' implementation 'org.framagit.tom79:SparkButton:1.0.13' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index be259dfd..cbb97072 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -287,15 +287,15 @@ android:name=".activities.InstanceActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/action_about_instance" - android:theme="@style/DialogDark" /> + android:theme="@style/MaterialAlertDialog.Material3" /> + android:theme="@style/MaterialAlertDialog.Material3" /> + android:theme="@style/MaterialAlertDialog.Material3" /> @@ -310,7 +310,7 @@ + android:theme="@style/MaterialAlertDialog.Material3" /> startActivity(new Intent(this, ComposeActivity.class))); headerMenuOpen = false; - binding.bottomNavView.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); - binding.navView.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); + // Passing each menu ID as a set of Ids because each @@ -537,14 +525,14 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt }); headerMainBinding.headerOptionInfo.setOnClickListener(v -> { - PopupMenu popup = new PopupMenu(new ContextThemeWrapper(BaseMainActivity.this, Helper.popupStyle()), headerMainBinding.headerOptionInfo); + PopupMenu popup = new PopupMenu(BaseMainActivity.this, headerMainBinding.headerOptionInfo); popup.getMenuInflater() .inflate(R.menu.main, popup.getMenu()); popup.setOnMenuItemClickListener(item -> { int itemId = item.getItemId(); if (itemId == R.id.action_logout_account) { - AlertDialog.Builder alt_bld = new AlertDialog.Builder(BaseMainActivity.this, Helper.dialogStyle()); + AlertDialog.Builder alt_bld = new AlertDialog.Builder(BaseMainActivity.this); alt_bld.setTitle(R.string.action_logout); if (currentAccount.mastodon_account != null && currentAccount.mastodon_account.username != null && currentAccount.instance != null) { alt_bld.setMessage(getString(R.string.logout_account_confirmation, currentAccount.mastodon_account.username, currentAccount.instance)); @@ -1123,7 +1111,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt view = binding.bottomNavView.findViewById(R.id.nav_public); showExtendedFilter = false; } - PopupMenu popup = new PopupMenu(new ContextThemeWrapper(BaseMainActivity.this, Helper.popupStyle()), view, Gravity.TOP); + PopupMenu popup = new PopupMenu(BaseMainActivity.this, view, Gravity.TOP); popup.getMenuInflater() .inflate(R.menu.option_filter_toots, popup.getMenu()); Menu menu = popup.getMenu(); @@ -1190,7 +1178,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt itemShowReplies.setChecked(show_replies); editor.apply(); } else if (itemId == R.id.action_filter) { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(BaseMainActivity.this, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(BaseMainActivity.this); LayoutInflater inflater = getLayoutInflater(); View dialogView = inflater.inflate(R.layout.popup_filter_regex, new LinearLayout(BaseMainActivity.this), false); dialogBuilder.setView(dialogView); @@ -1269,8 +1257,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt if (!singleBar) { if (count > 0) { binding.bottomNavView.getOrCreateBadge(R.id.nav_privates).setNumber(count); - binding.bottomNavView.getBadge(R.id.nav_privates).setBackgroundColor(ContextCompat.getColor(BaseMainActivity.this, R.color.cyanea_accent_reference)); - binding.bottomNavView.getBadge(R.id.nav_privates).setBadgeTextColor(ThemeHelper.getAttColor(BaseMainActivity.this, R.attr.mTextColor)); } else { binding.bottomNavView.removeBadge(R.id.nav_privates); } @@ -1289,8 +1275,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt if (!singleBar) { if (count > 0) { binding.bottomNavView.getOrCreateBadge(R.id.nav_notifications).setNumber(count); - binding.bottomNavView.getBadge(R.id.nav_notifications).setBackgroundColor(ContextCompat.getColor(BaseMainActivity.this, R.color.cyanea_accent_reference)); - binding.bottomNavView.getBadge(R.id.nav_notifications).setBadgeTextColor(ThemeHelper.getAttColor(BaseMainActivity.this, R.attr.mTextColor)); } else { binding.bottomNavView.removeBadge(R.id.nav_notifications); } @@ -1355,8 +1339,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt case HOME: if (count > 0) { binding.bottomNavView.getOrCreateBadge(R.id.nav_home).setNumber(count); - binding.bottomNavView.getBadge(R.id.nav_home).setBackgroundColor(ContextCompat.getColor(BaseMainActivity.this, R.color.cyanea_accent_reference)); - binding.bottomNavView.getBadge(R.id.nav_home).setBadgeTextColor(ThemeHelper.getAttColor(BaseMainActivity.this, R.attr.mTextColor)); } else { binding.bottomNavView.removeBadge(R.id.nav_home); } @@ -1364,8 +1346,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt case LOCAL: if (count > 0) { binding.bottomNavView.getOrCreateBadge(R.id.nav_local).setNumber(count); - binding.bottomNavView.getBadge(R.id.nav_local).setBackgroundColor(ContextCompat.getColor(BaseMainActivity.this, R.color.cyanea_accent_reference)); - binding.bottomNavView.getBadge(R.id.nav_local).setBadgeTextColor(ThemeHelper.getAttColor(BaseMainActivity.this, R.attr.mTextColor)); } else { binding.bottomNavView.removeBadge(R.id.nav_local); } @@ -1373,8 +1353,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt case PUBLIC: if (count > 0) { binding.bottomNavView.getOrCreateBadge(R.id.nav_public).setNumber(count); - binding.bottomNavView.getBadge(R.id.nav_public).setBackgroundColor(ContextCompat.getColor(BaseMainActivity.this, R.color.cyanea_accent_reference)); - binding.bottomNavView.getBadge(R.id.nav_public).setBadgeTextColor(ThemeHelper.getAttColor(BaseMainActivity.this, R.attr.mTextColor)); } else { binding.bottomNavView.removeBadge(R.id.nav_public); } @@ -1382,8 +1360,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt case NOTIFICATION: if (count > 0) { binding.bottomNavView.getOrCreateBadge(R.id.nav_notifications).setNumber(count); - binding.bottomNavView.getBadge(R.id.nav_notifications).setBackgroundColor(ContextCompat.getColor(BaseMainActivity.this, R.color.cyanea_accent_reference)); - binding.bottomNavView.getBadge(R.id.nav_notifications).setBadgeTextColor(ThemeHelper.getAttColor(BaseMainActivity.this, R.attr.mTextColor)); } else { binding.bottomNavView.removeBadge(R.id.nav_notifications); } @@ -1391,8 +1367,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt case DIRECT: if (count > 0) { binding.bottomNavView.getOrCreateBadge(R.id.nav_privates).setNumber(count); - binding.bottomNavView.getBadge(R.id.nav_privates).setBackgroundColor(ContextCompat.getColor(BaseMainActivity.this, R.color.cyanea_accent_reference)); - binding.bottomNavView.getBadge(R.id.nav_privates).setBadgeTextColor(ThemeHelper.getAttColor(BaseMainActivity.this, R.attr.mTextColor)); } else { binding.bottomNavView.removeBadge(R.id.nav_privates); } @@ -1525,7 +1499,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.action_logout) { - AlertDialog.Builder alt_bld = new AlertDialog.Builder(BaseMainActivity.this, Helper.dialogStyle()); + AlertDialog.Builder alt_bld = new AlertDialog.Builder(BaseMainActivity.this); alt_bld.setTitle(R.string.action_logout); alt_bld.setMessage(getString(R.string.logout_account_confirmation, account.mastodon_account.username, account.instance)); alt_bld.setPositiveButton(R.string.action_logout, (dialog, id) -> { diff --git a/app/src/main/java/app/fedilab/android/MainApplication.java b/app/src/main/java/app/fedilab/android/MainApplication.java index a2d40e7d..0f699a8e 100644 --- a/app/src/main/java/app/fedilab/android/MainApplication.java +++ b/app/src/main/java/app/fedilab/android/MainApplication.java @@ -23,9 +23,6 @@ import androidx.multidex.MultiDex; import androidx.multidex.MultiDexApplication; import androidx.preference.PreferenceManager; -import com.jaredrummler.cyanea.Cyanea; -import com.jaredrummler.cyanea.prefs.CyaneaTheme; - import org.acra.ACRA; import org.acra.ReportField; import org.acra.config.CoreConfigurationBuilder; @@ -33,8 +30,6 @@ import org.acra.config.DialogConfigurationBuilder; import org.acra.config.MailSenderConfigurationBuilder; import org.acra.data.StringFormat; -import java.util.List; - import es.dmoral.toasty.Toasty; @@ -54,12 +49,9 @@ public class MainApplication extends MultiDexApplication { SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(MainApplication.this); - Cyanea.init(this, super.getResources()); - List list = CyaneaTheme.Companion.from(getAssets(), "themes/cyanea_themes.json"); boolean custom_theme = sharedpreferences.getBoolean("use_custom_theme", false); boolean no_theme_set = sharedpreferences.getBoolean("no_theme_set", true); if (no_theme_set && !custom_theme) { - list.get(0).apply(Cyanea.getInstance()); SharedPreferences.Editor editor = sharedpreferences.edit(); editor.putBoolean("no_theme_set", false); editor.apply(); @@ -92,7 +84,6 @@ public class MainApplication extends MultiDexApplication { .withResIcon(R.mipmap.ic_launcher) .withText(getString(R.string.crash_title)) .withCommentPrompt(getString(R.string.crash_message)) - .withResTheme(R.style.DialogDark) .withPositiveButtonText(getString(R.string.send_email)) .withNegativeButtonText(getString(R.string.cancel)) .build() diff --git a/app/src/main/java/app/fedilab/android/activities/AboutActivity.java b/app/src/main/java/app/fedilab/android/activities/AboutActivity.java index 54974a2c..78df3fe8 100644 --- a/app/src/main/java/app/fedilab/android/activities/AboutActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/AboutActivity.java @@ -18,13 +18,11 @@ package app.fedilab.android.activities; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.MenuItem; import android.view.View; import androidx.core.app.ActivityOptionsCompat; -import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; import java.util.ArrayList; @@ -39,7 +37,6 @@ import app.fedilab.android.databinding.ActivityAboutBinding; import app.fedilab.android.helper.CrossActionHelper; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.AccountsVM; @@ -52,13 +49,12 @@ public class AboutActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivityAboutBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } try { @@ -79,7 +75,6 @@ public class AboutActivity extends BaseActivity { } binding.aboutSupportPaypal.setOnClickListener(v -> Helper.openBrowser(AboutActivity.this, "https://www.paypal.me/Mastalab")); - binding.accountFollow.setBackgroundTintList(ThemeHelper.getButtonActionColorStateList(AboutActivity.this)); if (BuildConfig.DONATIONS) { binding.aboutSupportPaypal.setVisibility(View.VISIBLE); } else { diff --git a/app/src/main/java/app/fedilab/android/activities/AccountReportActivity.java b/app/src/main/java/app/fedilab/android/activities/AccountReportActivity.java index 63257fed..cca0b073 100644 --- a/app/src/main/java/app/fedilab/android/activities/AccountReportActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/AccountReportActivity.java @@ -17,7 +17,6 @@ package app.fedilab.android.activities; import android.app.Activity; import android.graphics.PorterDuff; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.MenuItem; import android.view.View; @@ -36,7 +35,6 @@ import app.fedilab.android.client.entities.api.admin.AdminAccount; import app.fedilab.android.client.entities.api.admin.AdminReport; import app.fedilab.android.databinding.ActivityAdminReportBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.StatusReportAdapter; import app.fedilab.android.viewmodel.mastodon.AdminVM; import es.dmoral.toasty.Toasty; @@ -52,13 +50,12 @@ public class AccountReportActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivityAdminReportBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } report = null; diff --git a/app/src/main/java/app/fedilab/android/activities/ActionActivity.java b/app/src/main/java/app/fedilab/android/activities/ActionActivity.java index 0088f7c3..a452c1b2 100644 --- a/app/src/main/java/app/fedilab/android/activities/ActionActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ActionActivity.java @@ -14,12 +14,10 @@ package app.fedilab.android.activities; * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see . */ -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.MenuItem; import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; @@ -43,13 +41,12 @@ public class ActionActivity extends BaseActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivityActionsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } canGoBack = false; binding.favourites.setOnClickListener(v -> displayTimeline(Timeline.TimeLineEnum.FAVOURITE_TIMELINE)); diff --git a/app/src/main/java/app/fedilab/android/activities/AnnouncementActivity.java b/app/src/main/java/app/fedilab/android/activities/AnnouncementActivity.java index fca3e910..6197235f 100644 --- a/app/src/main/java/app/fedilab/android/activities/AnnouncementActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/AnnouncementActivity.java @@ -19,13 +19,11 @@ import static app.fedilab.android.BaseMainActivity.currentInstance; import static app.fedilab.android.BaseMainActivity.emojis; import android.content.SharedPreferences; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.util.TypedValue; import android.view.MenuItem; import androidx.appcompat.app.ActionBar; -import androidx.core.content.ContextCompat; import androidx.preference.PreferenceManager; import app.fedilab.android.R; @@ -33,7 +31,6 @@ import app.fedilab.android.client.entities.api.EmojiInstance; import app.fedilab.android.databinding.ActivityAnnouncementBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonAnnouncement; @@ -43,7 +40,7 @@ public class AnnouncementActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + ActivityAnnouncementBinding binding = ActivityAnnouncementBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); @@ -53,7 +50,6 @@ public class AnnouncementActivity extends BaseActivity { //Remove title if (actionBar != null) { actionBar.setDisplayShowTitleEnabled(false); - actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } binding.title.setText(R.string.action_announcements); if (getSupportActionBar() != null) { diff --git a/app/src/main/java/app/fedilab/android/activities/BaseActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseActivity.java index a61b0665..102d0f98 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseActivity.java @@ -19,8 +19,8 @@ import android.annotation.SuppressLint; import android.os.Bundle; import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; -import com.jaredrummler.cyanea.app.CyaneaAppCompatActivity; import com.vanniktech.emoji.EmojiManager; import com.vanniktech.emoji.one.EmojiOneProvider; @@ -29,7 +29,7 @@ import app.fedilab.android.helper.ThemeHelper; @SuppressLint("Registered") -public class BaseActivity extends CyaneaAppCompatActivity { +public class BaseActivity extends AppCompatActivity { static { Helper.installProvider(); diff --git a/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java index e5364165..a4170406 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java @@ -16,7 +16,8 @@ package app.fedilab.android.activities; import android.annotation.SuppressLint; -import com.jaredrummler.cyanea.app.CyaneaFragmentActivity; +import androidx.fragment.app.FragmentActivity; + import com.vanniktech.emoji.EmojiManager; import com.vanniktech.emoji.one.EmojiOneProvider; @@ -24,7 +25,7 @@ import app.fedilab.android.helper.Helper; @SuppressLint("Registered") -public class BaseFragmentActivity extends CyaneaFragmentActivity { +public class BaseFragmentActivity extends FragmentActivity { static { diff --git a/app/src/main/java/app/fedilab/android/activities/CacheActivity.java b/app/src/main/java/app/fedilab/android/activities/CacheActivity.java index 19cc67d4..58c18468 100644 --- a/app/src/main/java/app/fedilab/android/activities/CacheActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/CacheActivity.java @@ -15,7 +15,6 @@ package app.fedilab.android.activities; * see . */ -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -25,7 +24,6 @@ import android.view.MenuItem; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.LinearLayoutManager; import java.util.ArrayList; @@ -42,7 +40,6 @@ import app.fedilab.android.databinding.ActivityCacheBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.CacheHelper; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.CacheAdapter; public class CacheActivity extends BaseActivity { @@ -54,12 +51,11 @@ public class CacheActivity extends BaseActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivityCacheBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } CacheHelper.getCacheValues(CacheActivity.this, size -> { if (size > 0) { @@ -123,7 +119,7 @@ public class CacheActivity extends BaseActivity { finish(); return true; } else if (item.getItemId() == R.id.action_clear) { - AlertDialog.Builder deleteConfirm = new AlertDialog.Builder(CacheActivity.this, Helper.dialogStyle()); + AlertDialog.Builder deleteConfirm = new AlertDialog.Builder(CacheActivity.this); deleteConfirm.setTitle(getString(R.string.delete_cache)); deleteConfirm.setMessage(getString(R.string.delete_cache_message)); deleteConfirm.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); @@ -133,7 +129,7 @@ public class CacheActivity extends BaseActivity { size = size / 1000000.0f; } binding.fileCacheSize.setText(String.format("%s %s", String.format(Locale.getDefault(), "%.2f", size), getString(R.string.cache_units))); - AlertDialog.Builder restartBuilder = new AlertDialog.Builder(CacheActivity.this, Helper.dialogStyle()); + AlertDialog.Builder restartBuilder = new AlertDialog.Builder(CacheActivity.this); restartBuilder.setMessage(getString(R.string.restart_the_app)); restartBuilder.setNegativeButton(R.string.no, (dialogRestart, whichRestart) -> { recreate(); diff --git a/app/src/main/java/app/fedilab/android/activities/ComposeActivity.java b/app/src/main/java/app/fedilab/android/activities/ComposeActivity.java index 78e2eb78..276a26f8 100644 --- a/app/src/main/java/app/fedilab/android/activities/ComposeActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ComposeActivity.java @@ -28,7 +28,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.PackageManager; -import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -86,7 +85,6 @@ import app.fedilab.android.helper.DividerDecorationSimple; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; import app.fedilab.android.helper.MediaHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.interfaces.OnDownloadInterface; import app.fedilab.android.jobs.ComposeWorker; import app.fedilab.android.jobs.ScheduleThreadWorker; @@ -216,7 +214,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana } if (canBeSent(statusDraft)) { if (promptSaveDraft) { - AlertDialog.Builder alt_bld = new AlertDialog.Builder(ComposeActivity.this, Helper.dialogStyle()); + AlertDialog.Builder alt_bld = new AlertDialog.Builder(ComposeActivity.this); alt_bld.setMessage(R.string.save_draft); alt_bld.setPositiveButton(R.string.save, (dialog, id) -> { dialog.dismiss(); @@ -317,7 +315,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana } else if (item.getItemId() == R.id.action_photo_camera) { photoFileUri = MediaHelper.dispatchTakePictureIntent(ComposeActivity.this); } else if (item.getItemId() == R.id.action_contacts) { - AlertDialog.Builder builderSingle = new AlertDialog.Builder(ComposeActivity.this, Helper.dialogStyle()); + AlertDialog.Builder builderSingle = new AlertDialog.Builder(ComposeActivity.this); builderSingle.setTitle(getString(R.string.select_accounts)); PopupContactBinding popupContactBinding = PopupContactBinding.inflate(getLayoutInflater(), new LinearLayout(ComposeActivity.this), false); @@ -444,7 +442,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + binding = ActivityPaginationBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); @@ -454,7 +452,6 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana //Remove title if (actionBar != null) { actionBar.setDisplayShowTitleEnabled(false); - actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); @@ -500,7 +497,6 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana if (sharedTitle != null && sharedSubject != null && sharedSubject.length() > sharedTitle.length()) { sharedTitle = sharedSubject; } - binding.toolbar.setPopupTheme(Helper.popupStyle()); //Edit a scheduled status from server if (scheduledStatus != null) { statusDraft = new StatusDraft(); diff --git a/app/src/main/java/app/fedilab/android/activities/ContextActivity.java b/app/src/main/java/app/fedilab/android/activities/ContextActivity.java index 75def795..243e90b0 100644 --- a/app/src/main/java/app/fedilab/android/activities/ContextActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ContextActivity.java @@ -20,7 +20,6 @@ import static app.fedilab.android.ui.drawer.StatusAdapter.sendAction; import android.content.SharedPreferences; import android.content.res.Resources; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -30,7 +29,6 @@ import android.view.MenuItem; import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.preference.PreferenceManager; @@ -43,7 +41,6 @@ import app.fedilab.android.databinding.ActivityConversationBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonContext; import app.fedilab.android.viewmodel.mastodon.StatusesVM; @@ -57,7 +54,7 @@ public class ContextActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + app.fedilab.android.databinding.ActivityConversationBinding binding = ActivityConversationBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); @@ -65,7 +62,6 @@ public class ContextActivity extends BaseActivity { //Remove title if (actionBar != null) { actionBar.setDisplayShowTitleEnabled(false); - actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } binding.title.setText(R.string.context_conversation); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); @@ -76,7 +72,6 @@ public class ContextActivity extends BaseActivity { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); } - binding.toolbar.setPopupTheme(Helper.popupStyle()); Bundle b = getIntent().getExtras(); displayCW = sharedpreferences.getBoolean(getString(R.string.SET_EXPAND_CW), false); Status focusedStatus = null; // or other values diff --git a/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java b/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java index f64786df..635386e3 100644 --- a/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java @@ -17,7 +17,6 @@ package app.fedilab.android.activities; import static app.fedilab.android.BaseMainActivity.currentAccount; import android.content.SharedPreferences; -import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -26,7 +25,6 @@ import android.text.TextUtils; import android.view.MenuItem; import android.widget.Toast; -import androidx.core.content.ContextCompat; import androidx.preference.PreferenceManager; import java.util.List; @@ -39,7 +37,6 @@ import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.client.entities.api.Tag; import app.fedilab.android.databinding.ActivityCustomSharingBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.helper.customsharing.CustomSharingAsyncTask; import app.fedilab.android.helper.customsharing.CustomSharingResponse; import app.fedilab.android.helper.customsharing.OnCustomSharingInterface; @@ -66,14 +63,13 @@ public class CustomSharingActivity extends BaseActivity implements OnCustomShari @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(CustomSharingActivity.this); binding = ActivityCustomSharingBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } Bundle b = getIntent().getExtras(); status = null; diff --git a/app/src/main/java/app/fedilab/android/activities/DraftActivity.java b/app/src/main/java/app/fedilab/android/activities/DraftActivity.java index ccfe83a8..ed41a6e1 100644 --- a/app/src/main/java/app/fedilab/android/activities/DraftActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/DraftActivity.java @@ -17,7 +17,6 @@ package app.fedilab.android.activities; import static app.fedilab.android.BaseMainActivity.currentAccount; import android.content.SharedPreferences; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -30,7 +29,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.LinearLayoutManager; @@ -45,8 +43,6 @@ import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.client.entities.app.StatusDraft; import app.fedilab.android.databinding.ActivityDraftsBinding; import app.fedilab.android.exception.DBException; -import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.StatusDraftAdapter; import app.fedilab.android.viewmodel.mastodon.TimelinesVM; @@ -62,20 +58,16 @@ public class DraftActivity extends BaseActivity implements StatusDraftAdapter.Dr @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + binding = ActivityDraftsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); - } //Remove title if (actionBar != null) { actionBar.setDisplayShowTitleEnabled(false); } - binding.toolbar.setPopupTheme(Helper.popupStyle()); binding.title.setText(R.string.drafts); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); float scale = sharedpreferences.getFloat(getString(R.string.SET_FONT_SCALE), 1.1f); @@ -105,7 +97,7 @@ public class DraftActivity extends BaseActivity implements StatusDraftAdapter.Dr finish(); return true; } else if (item.getItemId() == R.id.action_delete) { - AlertDialog.Builder unfollowConfirm = new AlertDialog.Builder(DraftActivity.this, Helper.dialogStyle()); + AlertDialog.Builder unfollowConfirm = new AlertDialog.Builder(DraftActivity.this); unfollowConfirm.setTitle(getString(R.string.delete_all)); unfollowConfirm.setMessage(getString(R.string.remove_draft)); unfollowConfirm.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); diff --git a/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java index 8efe171b..8c210d9f 100644 --- a/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java @@ -18,7 +18,6 @@ import static app.fedilab.android.BaseMainActivity.currentAccount; import static app.fedilab.android.BaseMainActivity.instanceInfo; import android.content.Intent; -import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -31,8 +30,6 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; -import androidx.core.graphics.drawable.DrawableCompat; import androidx.lifecycle.ViewModelProvider; import androidx.localbroadcastmanager.content.LocalBroadcastManager; @@ -52,7 +49,6 @@ import app.fedilab.android.databinding.ActivityEditProfileBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.AccountsVM; import es.dmoral.toasty.Toasty; @@ -66,12 +62,11 @@ public class EditProfileActivity extends BaseActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivityEditProfileBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } new ViewModelProvider(EditProfileActivity.this).get(AccountsVM.class).getConnectedAccount(BaseMainActivity.currentInstance, BaseMainActivity.currentToken) @@ -140,7 +135,7 @@ public class EditProfileActivity extends BaseActivity { value = Html.fromHtml(field.value).toString(); fieldItemBinding.value.setText(value); fieldItemBinding.remove.setOnClickListener(v -> { - AlertDialog.Builder deleteConfirm = new AlertDialog.Builder(EditProfileActivity.this, Helper.dialogStyle()); + AlertDialog.Builder deleteConfirm = new AlertDialog.Builder(EditProfileActivity.this); deleteConfirm.setTitle(getString(R.string.delete_field)); deleteConfirm.setMessage(getString(R.string.delete_field_confirm)); deleteConfirm.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); @@ -162,7 +157,7 @@ public class EditProfileActivity extends BaseActivity { binding.addField.setOnClickListener(view -> { AccountFieldItemBinding fieldItemBinding = AccountFieldItemBinding.inflate(getLayoutInflater()); fieldItemBinding.remove.setOnClickListener(v -> { - AlertDialog.Builder deleteConfirm = new AlertDialog.Builder(EditProfileActivity.this, Helper.dialogStyle()); + AlertDialog.Builder deleteConfirm = new AlertDialog.Builder(EditProfileActivity.this); deleteConfirm.setTitle(getString(R.string.delete_field)); deleteConfirm.setMessage(getString(R.string.delete_field_confirm)); deleteConfirm.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); @@ -183,15 +178,6 @@ public class EditProfileActivity extends BaseActivity { } }); - ThemeHelper.changeColorOutlineButton(EditProfileActivity.this, binding.visibilityPublic); - ThemeHelper.changeColorOutlineButton(EditProfileActivity.this, binding.visibilityUnlisted); - ThemeHelper.changeColorOutlineButton(EditProfileActivity.this, binding.visibilityPrivate); - ThemeHelper.changeColorOutlineButton(EditProfileActivity.this, binding.visibilityDirect); - DrawableCompat.setTintList(DrawableCompat.wrap(binding.bot.getThumbDrawable()), ThemeHelper.getSwitchCompatThumbDrawable(EditProfileActivity.this)); - DrawableCompat.setTintList(DrawableCompat.wrap(binding.discoverable.getThumbDrawable()), ThemeHelper.getSwitchCompatThumbDrawable(EditProfileActivity.this)); - DrawableCompat.setTintList(DrawableCompat.wrap(binding.sensitive.getThumbDrawable()), ThemeHelper.getSwitchCompatThumbDrawable(EditProfileActivity.this)); - ThemeHelper.changeColorOutlineButton(EditProfileActivity.this, binding.locked); - ThemeHelper.changeColorOutlineButton(EditProfileActivity.this, binding.unlocked); //Actions with the activity accountsVM = new ViewModelProvider(EditProfileActivity.this).get(AccountsVM.class); diff --git a/app/src/main/java/app/fedilab/android/activities/FilterActivity.java b/app/src/main/java/app/fedilab/android/activities/FilterActivity.java index ed8d616a..34dc9d0e 100644 --- a/app/src/main/java/app/fedilab/android/activities/FilterActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/FilterActivity.java @@ -15,7 +15,6 @@ package app.fedilab.android.activities; * see . */ import android.content.Context; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.MenuItem; @@ -28,7 +27,6 @@ import android.widget.Button; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelStoreOwner; @@ -43,8 +41,6 @@ import app.fedilab.android.R; import app.fedilab.android.client.entities.api.Filter; import app.fedilab.android.databinding.ActivityFiltersBinding; import app.fedilab.android.databinding.PopupAddFilterBinding; -import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.FilterAdapter; import app.fedilab.android.ui.drawer.KeywordAdapter; import app.fedilab.android.viewmodel.mastodon.FiltersVM; @@ -63,7 +59,7 @@ public class FilterActivity extends BaseActivity implements FilterAdapter.Delete * @param listener - {@link FilterAdapter.FilterAction} */ public static void addEditFilter(Context context, Filter filter, FilterAdapter.FilterAction listener) { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context); PopupAddFilterBinding popupAddFilterBinding = PopupAddFilterBinding.inflate(LayoutInflater.from(context)); FiltersVM filtersVM = new ViewModelProvider((ViewModelStoreOwner) context).get(FiltersVM.class); dialogBuilder.setView(popupAddFilterBinding.getRoot()); @@ -250,13 +246,12 @@ public class FilterActivity extends BaseActivity implements FilterAdapter.Delete @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivityFiltersBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); filterList = new ArrayList<>(); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } FiltersVM filtersVM = new ViewModelProvider(FilterActivity.this).get(FiltersVM.class); diff --git a/app/src/main/java/app/fedilab/android/activities/FollowRequestActivity.java b/app/src/main/java/app/fedilab/android/activities/FollowRequestActivity.java index 54414374..21a208ec 100644 --- a/app/src/main/java/app/fedilab/android/activities/FollowRequestActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/FollowRequestActivity.java @@ -15,13 +15,11 @@ package app.fedilab.android.activities; * see . */ -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.MenuItem; import android.view.View; import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -35,7 +33,6 @@ import app.fedilab.android.client.entities.api.Account; import app.fedilab.android.client.entities.api.Accounts; import app.fedilab.android.databinding.ActivityStatusInfoBinding; import app.fedilab.android.helper.MastodonHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.AccountFollowRequestAdapter; import app.fedilab.android.viewmodel.mastodon.AccountsVM; @@ -51,14 +48,13 @@ public class FollowRequestActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + binding = ActivityStatusInfoBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } accountList = new ArrayList<>(); flagLoading = false; diff --git a/app/src/main/java/app/fedilab/android/activities/FollowedTagActivity.java b/app/src/main/java/app/fedilab/android/activities/FollowedTagActivity.java index cf9c3207..5e7aef20 100644 --- a/app/src/main/java/app/fedilab/android/activities/FollowedTagActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/FollowedTagActivity.java @@ -15,7 +15,6 @@ package app.fedilab.android.activities; * see . */ -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.text.InputFilter; import android.view.Menu; @@ -24,7 +23,6 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import androidx.lifecycle.ViewModelProvider; @@ -60,14 +58,13 @@ public class FollowedTagActivity extends BaseActivity implements FollowedTagAdap @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivityFollowedTagsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); canGoBack = false; if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } tagVM = new ViewModelProvider(FollowedTagActivity.this).get(TagVM.class); tagVM.followedTags(BaseMainActivity.currentInstance, BaseMainActivity.currentToken) @@ -91,7 +88,7 @@ public class FollowedTagActivity extends BaseActivity implements FollowedTagAdap onBackPressed(); return true; } else if (item.getItemId() == R.id.action_unfollow && tag != null) { - AlertDialog.Builder alt_bld = new AlertDialog.Builder(FollowedTagActivity.this, Helper.dialogStyle()); + AlertDialog.Builder alt_bld = new AlertDialog.Builder(FollowedTagActivity.this); alt_bld.setTitle(R.string.action_unfollow_tag); alt_bld.setMessage(R.string.action_unfollow_tag_confirm); alt_bld.setPositiveButton(R.string.unfollow, (dialog, id) -> { @@ -123,7 +120,7 @@ public class FollowedTagActivity extends BaseActivity implements FollowedTagAdap AlertDialog alert = alt_bld.create(); alert.show(); } else if (item.getItemId() == R.id.action_follow_tag) { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(FollowedTagActivity.this, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(FollowedTagActivity.this); PopupAddFollowedTagtBinding popupAddFollowedTagtBinding = PopupAddFollowedTagtBinding.inflate(getLayoutInflater()); dialogBuilder.setView(popupAddFollowedTagtBinding.getRoot()); popupAddFollowedTagtBinding.addTag.setFilters(new InputFilter[]{new InputFilter.LengthFilter(255)}); diff --git a/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java b/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java index e5d8a1fe..d2b5d1c9 100644 --- a/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java @@ -18,7 +18,6 @@ package app.fedilab.android.activities; import static app.fedilab.android.BaseMainActivity.currentAccount; import android.content.Intent; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -27,7 +26,6 @@ import android.view.MenuItem; import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; -import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; import androidx.localbroadcastmanager.content.LocalBroadcastManager; @@ -46,7 +44,6 @@ import app.fedilab.android.client.entities.app.Timeline; import app.fedilab.android.databinding.ActivityHashtagBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTimeline; import app.fedilab.android.viewmodel.mastodon.FiltersVM; import app.fedilab.android.viewmodel.mastodon.ReorderVM; @@ -68,7 +65,7 @@ public class HashTagActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + ActivityHashtagBinding binding = ActivityHashtagBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); @@ -86,7 +83,6 @@ public class HashTagActivity extends BaseActivity { //Remove title if (actionBar != null) { actionBar.setDisplayShowTitleEnabled(false); - actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } binding.title.setText(tag); if (getSupportActionBar() != null) { @@ -141,7 +137,6 @@ public class HashTagActivity extends BaseActivity { bundle.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.TAG); bundle.putString(Helper.ARG_SEARCH_KEYWORD, tag); Helper.addFragment(getSupportFragmentManager(), R.id.nav_host_fragment_tags, new FragmentMastodonTimeline(), bundle, null, null); - binding.toolbar.setPopupTheme(Helper.popupStyle()); binding.compose.setOnClickListener(v -> { Intent intentToot = new Intent(HashTagActivity.this, ComposeActivity.class); StatusDraft statusDraft = new StatusDraft(); diff --git a/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java b/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java index 0f8e3a91..7fb93935 100644 --- a/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java @@ -45,7 +45,6 @@ import app.fedilab.android.R; import app.fedilab.android.client.entities.api.Instance; import app.fedilab.android.databinding.ActivityInstanceBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.InstancesVM; @@ -58,7 +57,6 @@ public class InstanceActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeDialog(this); binding = ActivityInstanceBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); @@ -71,13 +69,13 @@ public class InstanceActivity extends BaseActivity { final SpannableString contentAbout = new SpannableString(getString(R.string.action_about_instance)); contentAbout.setSpan(new UnderlineSpan(), 0, contentAbout.length(), 0); - contentAbout.setSpan(new ForegroundColorSpan(ContextCompat.getColor(InstanceActivity.this, R.color.cyanea_accent_reference)), 0, contentAbout.length(), + contentAbout.setSpan(new ForegroundColorSpan(ContextCompat.getColor(InstanceActivity.this, R.color.colorAccent)), 0, contentAbout.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); binding.tos.setText(contentAbout); final SpannableString contentPrivacy = new SpannableString(getString(R.string.action_privacy_policy)); contentPrivacy.setSpan(new UnderlineSpan(), 0, contentPrivacy.length(), 0); - contentPrivacy.setSpan(new ForegroundColorSpan(ContextCompat.getColor(InstanceActivity.this, R.color.cyanea_accent_reference)), 0, contentPrivacy.length(), + contentPrivacy.setSpan(new ForegroundColorSpan(ContextCompat.getColor(InstanceActivity.this, R.color.colorAccent)), 0, contentPrivacy.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); binding.privacy.setText(contentPrivacy); diff --git a/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java b/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java index f4a44a25..1efe1a9c 100644 --- a/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java @@ -34,7 +34,6 @@ import app.fedilab.android.R; import app.fedilab.android.client.entities.app.InstanceSocial; import app.fedilab.android.databinding.ActivityInstanceSocialBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.InstanceSocialVM; @@ -45,7 +44,6 @@ public class InstanceHealthActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeDialog(this); binding = ActivityInstanceSocialBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); diff --git a/app/src/main/java/app/fedilab/android/activities/InstanceProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/InstanceProfileActivity.java index 934127de..cc2ea674 100644 --- a/app/src/main/java/app/fedilab/android/activities/InstanceProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/InstanceProfileActivity.java @@ -28,7 +28,6 @@ import androidx.lifecycle.ViewModelProvider; import app.fedilab.android.R; import app.fedilab.android.databinding.ActivityInstanceProfileBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.NodeInfoVM; import es.dmoral.toasty.Toasty; @@ -41,7 +40,7 @@ public class InstanceProfileActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeDialog(this); + binding = ActivityInstanceProfileBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); getWindow().setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); diff --git a/app/src/main/java/app/fedilab/android/activities/LoginActivity.java b/app/src/main/java/app/fedilab/android/activities/LoginActivity.java index d76d8810..b4dc2c00 100644 --- a/app/src/main/java/app/fedilab/android/activities/LoginActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/LoginActivity.java @@ -35,7 +35,6 @@ import java.util.regex.Matcher; import app.fedilab.android.R; import app.fedilab.android.client.entities.app.Account; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.fragment.login.FragmentLoginMain; import app.fedilab.android.viewmodel.mastodon.AccountsVM; import app.fedilab.android.viewmodel.mastodon.AdminVM; @@ -109,7 +108,7 @@ public class LoginActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this); setContentView(new FrameLayout(this)); FragmentLoginMain fragmentLoginMain = new FragmentLoginMain(); diff --git a/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java b/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java index 4b9d35d7..8e899c68 100644 --- a/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java @@ -16,7 +16,6 @@ package app.fedilab.android.activities; import android.content.Intent; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.text.Editable; import android.text.InputFilter; @@ -28,7 +27,6 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import androidx.lifecycle.ViewModelProvider; @@ -82,14 +80,13 @@ public class MastodonListActivity extends BaseActivity implements MastodonListAd @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivityListBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); canGoBack = false; if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } flagLoading = false; orderASC = true; @@ -147,7 +144,7 @@ public class MastodonListActivity extends BaseActivity implements MastodonListAd onBackPressed(); return true; } else if (item.getItemId() == R.id.action_manage_users) { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MastodonListActivity.this, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MastodonListActivity.this); PopupManageAccountsListBinding popupManageAccountsListBinding = PopupManageAccountsListBinding.inflate(getLayoutInflater()); dialogBuilder.setView(popupManageAccountsListBinding.getRoot()); popupManageAccountsListBinding.loader.setVisibility(View.VISIBLE); @@ -244,7 +241,7 @@ public class MastodonListActivity extends BaseActivity implements MastodonListAd dialogBuilder.setPositiveButton(R.string.close, (dialog, id) -> dialog.dismiss()); dialogBuilder.create().show(); } else if (item.getItemId() == R.id.action_delete && mastodonList != null) { - AlertDialog.Builder alt_bld = new AlertDialog.Builder(MastodonListActivity.this, Helper.dialogStyle()); + AlertDialog.Builder alt_bld = new AlertDialog.Builder(MastodonListActivity.this); alt_bld.setTitle(R.string.action_lists_delete); alt_bld.setMessage(R.string.action_lists_confirm_delete); alt_bld.setPositiveButton(R.string.delete, (dialog, id) -> { @@ -282,7 +279,7 @@ public class MastodonListActivity extends BaseActivity implements MastodonListAd AlertDialog alert = alt_bld.create(); alert.show(); } else if (item.getItemId() == R.id.action_add_list) { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MastodonListActivity.this, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MastodonListActivity.this); PopupAddListBinding popupAddListBinding = PopupAddListBinding.inflate(getLayoutInflater()); dialogBuilder.setView(popupAddListBinding.getRoot()); popupAddListBinding.addList.setFilters(new InputFilter[]{new InputFilter.LengthFilter(255)}); @@ -322,7 +319,7 @@ public class MastodonListActivity extends BaseActivity implements MastodonListAd dialogBuilder.setNegativeButton(R.string.cancel, (dialog, id) -> dialog.dismiss()); dialogBuilder.create().show(); } else if (item.getItemId() == R.id.action_edit) { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MastodonListActivity.this, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MastodonListActivity.this); PopupAddListBinding popupAddListBinding = PopupAddListBinding.inflate(getLayoutInflater()); dialogBuilder.setView(popupAddListBinding.getRoot()); popupAddListBinding.addList.setFilters(new InputFilter[]{new InputFilter.LengthFilter(255)}); diff --git a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java index bb10f198..16a9f538 100644 --- a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java @@ -24,7 +24,6 @@ import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.Point; -import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -64,7 +63,6 @@ import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.databinding.ActivityMediaPagerBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MediaHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.interfaces.OnDownloadInterface; import app.fedilab.android.ui.fragment.media.FragmentMedia; import es.dmoral.toasty.Toasty; @@ -114,7 +112,7 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { @Override protected void onCreate(Bundle savedInstanceState) { getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY); - ThemeHelper.applyThemeBar(this); + super.onCreate(savedInstanceState); ActivityCompat.postponeEnterTransition(MediaActivity.this); binding = ActivityMediaPagerBinding.inflate(getLayoutInflater()); @@ -132,7 +130,6 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } if (attachments == null || attachments.size() == 0) diff --git a/app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java b/app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java index 353897f1..3d7955b0 100644 --- a/app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java @@ -16,7 +16,6 @@ package app.fedilab.android.activities; import android.content.Intent; -import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Bundle; import android.text.method.LinkMovementMethod; @@ -25,7 +24,6 @@ import android.view.View; import android.widget.TextView; import androidx.core.app.ActivityOptionsCompat; -import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; import java.util.ArrayList; @@ -49,13 +47,12 @@ public class PartnerShipActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + ActivityPartnershipBinding binding = ActivityPartnershipBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } TextView about_partnership = findViewById(R.id.about_partnership); diff --git a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java index edcd50c1..3cfa1a24 100644 --- a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java @@ -25,7 +25,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.res.ColorStateList; -import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.SpannableString; @@ -135,7 +134,7 @@ public class ProfileActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + binding = ActivityProfileBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); @@ -154,7 +153,6 @@ public class ProfileActivity extends BaseActivity { //Remove title if (actionBar != null) { actionBar.setDisplayShowTitleEnabled(false); - actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } if (getSupportActionBar() != null) { @@ -164,7 +162,6 @@ public class ProfileActivity extends BaseActivity { SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); float scale = sharedpreferences.getFloat(getString(R.string.SET_FONT_SCALE), 1.1f); binding.title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18 * 1.1f / scale); - binding.toolbar.setPopupTheme(Helper.popupStyle()); accountsVM = new ViewModelProvider(ProfileActivity.this).get(AccountsVM.class); if (account != null) { initializeView(account); @@ -263,8 +260,6 @@ public class ProfileActivity extends BaseActivity { public void onTabReselected(TabLayout.Tab tab) { } }); - binding.accountTabLayout.setTabTextColors(ThemeHelper.getAttColor(ProfileActivity.this, R.attr.mTextColor), ContextCompat.getColor(ProfileActivity.this, R.color.cyanea_accent_dark_reference)); - binding.accountTabLayout.setTabIconTint(ThemeHelper.getColorStateList(ProfileActivity.this)); boolean disableGif = sharedpreferences.getBoolean(getString(R.string.SET_DISABLE_GIF), false); String targetedUrl = disableGif ? account.avatar_static : account.avatar; Glide.with(ProfileActivity.this) @@ -314,7 +309,7 @@ public class ProfileActivity extends BaseActivity { final SpannableString content = new SpannableString(getString(R.string.disclaimer_full)); content.setSpan(new UnderlineSpan(), 0, content.length(), 0); - content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(ProfileActivity.this, R.color.cyanea_accent_reference)), 0, content.length(), + content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(ProfileActivity.this, R.color.colorAccent)), 0, content.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); binding.warningMessage.setText(content); binding.warningMessage.setOnClickListener(view -> { @@ -427,7 +422,7 @@ public class ProfileActivity extends BaseActivity { } else if (doAction == action.UNFOLLOW) { boolean confirm_unfollow = sharedpreferences.getBoolean(getString(R.string.SET_UNFOLLOW_VALIDATION), true); if (confirm_unfollow) { - AlertDialog.Builder unfollowConfirm = new AlertDialog.Builder(ProfileActivity.this, Helper.dialogStyle()); + AlertDialog.Builder unfollowConfirm = new AlertDialog.Builder(ProfileActivity.this); unfollowConfirm.setTitle(getString(R.string.unfollow_confirm)); unfollowConfirm.setMessage(account.acct); unfollowConfirm.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); @@ -512,7 +507,7 @@ public class ProfileActivity extends BaseActivity { //Recyclerview for identity proof has not been inflated yet if (identityProofsRecycler == null) { identity_proofs_indicator.setOnClickListener(v -> { - AlertDialog.Builder builder = new AlertDialog.Builder(ProfileActivity.this, Helper.dialogStyle()); + AlertDialog.Builder builder = new AlertDialog.Builder(ProfileActivity.this); identityProofsRecycler = new RecyclerView(ProfileActivity.this); LinearLayoutManager mLayoutManager = new LinearLayoutManager(ProfileActivity.this); identityProofsRecycler.setLayoutManager(mLayoutManager); @@ -603,7 +598,7 @@ public class ProfileActivity extends BaseActivity { binding.personalNote.setText(relationship.note); } binding.personalNote.setOnClickListener(view -> { - AlertDialog.Builder builderInner = new AlertDialog.Builder(ProfileActivity.this, Helper.dialogStyle()); + AlertDialog.Builder builderInner = new AlertDialog.Builder(ProfileActivity.this); builderInner.setTitle(R.string.note_for_account); EditText input = new EditText(ProfileActivity.this); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( @@ -778,7 +773,7 @@ public class ProfileActivity extends BaseActivity { }); return true; } else if (itemId == R.id.action_filter) { - AlertDialog.Builder filterTagDialog = new AlertDialog.Builder(ProfileActivity.this, Helper.dialogStyle()); + AlertDialog.Builder filterTagDialog = new AlertDialog.Builder(ProfileActivity.this); Set featuredTagsSet = sharedpreferences.getStringSet(getString(R.string.SET_FEATURED_TAGS), null); List tags = new ArrayList<>(); if (featuredTagsSet != null) { @@ -847,7 +842,7 @@ public class ProfileActivity extends BaseActivity { } accountsVM.getListContainingAccount(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id) .observe(ProfileActivity.this, mastodonListUserIs -> { - AlertDialog.Builder builderSingle = new AlertDialog.Builder(ProfileActivity.this, Helper.dialogStyle()); + AlertDialog.Builder builderSingle = new AlertDialog.Builder(ProfileActivity.this); builderSingle.setTitle(getString(R.string.action_lists_add_to)); builderSingle.setPositiveButton(R.string.close, (dialog, which) -> dialog.dismiss()); String[] listsId = new String[mastodonLists.size()]; @@ -935,7 +930,7 @@ public class ProfileActivity extends BaseActivity { }); return true; } - builderInner = new AlertDialog.Builder(ProfileActivity.this, Helper.dialogStyle()); + builderInner = new AlertDialog.Builder(ProfileActivity.this); builderInner.setTitle(stringArrayConf[0]); builderInner.setNeutralButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); @@ -963,7 +958,7 @@ public class ProfileActivity extends BaseActivity { }); return true; } else if (itemId == R.id.action_report) { - AlertDialog.Builder builderInner = new AlertDialog.Builder(ProfileActivity.this, Helper.dialogStyle()); + AlertDialog.Builder builderInner = new AlertDialog.Builder(ProfileActivity.this); builderInner.setTitle(R.string.report_account); //Text for report EditText input = new EditText(ProfileActivity.this); @@ -983,7 +978,7 @@ public class ProfileActivity extends BaseActivity { builderInner.show(); return true; } else if (itemId == R.id.action_block) { - AlertDialog.Builder builderInner = new AlertDialog.Builder(ProfileActivity.this, Helper.dialogStyle()); + AlertDialog.Builder builderInner = new AlertDialog.Builder(ProfileActivity.this); if (relationship != null) { if (relationship.blocking) { builderInner.setTitle(stringArrayConf[5]); @@ -1023,7 +1018,7 @@ public class ProfileActivity extends BaseActivity { }); builderInner.show(); } else if (itemId == R.id.action_block_instance) { - AlertDialog.Builder builderInner = new AlertDialog.Builder(ProfileActivity.this, Helper.dialogStyle()); + AlertDialog.Builder builderInner = new AlertDialog.Builder(ProfileActivity.this); String domain = account.acct.split("@")[1]; builderInner.setMessage(getString(R.string.block_domain_confirm_message, domain)); builderInner.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); diff --git a/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java b/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java index dc1eb145..3706cd97 100644 --- a/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java @@ -20,7 +20,6 @@ import static app.fedilab.android.helper.PinnedTimelineHelper.sortPositionAsc; import android.content.Intent; import android.content.SharedPreferences; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; @@ -34,7 +33,6 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import androidx.preference.PreferenceManager; @@ -57,7 +55,6 @@ import app.fedilab.android.databinding.ActivityReorderTabsBinding; import app.fedilab.android.databinding.PopupSearchInstanceBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.helper.itemtouchhelper.OnStartDragListener; import app.fedilab.android.helper.itemtouchhelper.SimpleItemTouchHelperCallback; import app.fedilab.android.ui.drawer.ReorderBottomMenuAdapter; @@ -100,13 +97,12 @@ public class ReorderTimelinesActivity extends BaseActivity implements OnStartDra @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivityReorderTabsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); searchInstanceRunning = false; if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(ReorderTimelinesActivity.this); @@ -174,7 +170,7 @@ public class ReorderTimelinesActivity extends BaseActivity implements OnStartDra } private void addInstance() { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(ReorderTimelinesActivity.this, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(ReorderTimelinesActivity.this); PopupSearchInstanceBinding popupSearchInstanceBinding = PopupSearchInstanceBinding.inflate(getLayoutInflater()); dialogBuilder.setView(popupSearchInstanceBinding.getRoot()); TextWatcher textWatcher = autoComplete(popupSearchInstanceBinding); diff --git a/app/src/main/java/app/fedilab/android/activities/ReportActivity.java b/app/src/main/java/app/fedilab/android/activities/ReportActivity.java index bff5392e..8fcfbf12 100644 --- a/app/src/main/java/app/fedilab/android/activities/ReportActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ReportActivity.java @@ -14,7 +14,6 @@ package app.fedilab.android.activities; * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see . */ -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.MenuItem; import android.view.View; @@ -22,7 +21,6 @@ import android.widget.RadioButton; import androidx.annotation.Nullable; import androidx.appcompat.widget.LinearLayoutCompat; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import androidx.lifecycle.ViewModelProvider; @@ -39,7 +37,6 @@ import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.client.entities.app.Timeline; import app.fedilab.android.databinding.ActivityReportBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.RulesAdapter; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTimeline; import app.fedilab.android.viewmodel.mastodon.AccountsVM; @@ -64,14 +61,13 @@ public class ReportActivity extends BaseActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivityReportBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } Bundle b = getIntent().getExtras(); diff --git a/app/src/main/java/app/fedilab/android/activities/ScheduledActivity.java b/app/src/main/java/app/fedilab/android/activities/ScheduledActivity.java index 527dd931..15b82002 100644 --- a/app/src/main/java/app/fedilab/android/activities/ScheduledActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ScheduledActivity.java @@ -17,14 +17,12 @@ package app.fedilab.android.activities; import static app.fedilab.android.BaseMainActivity.currentAccount; import android.content.SharedPreferences; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.util.TypedValue; import android.view.MenuItem; import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; -import androidx.core.content.ContextCompat; import androidx.preference.PreferenceManager; import com.google.android.material.tabs.TabLayout; @@ -32,7 +30,6 @@ import com.google.android.material.tabs.TabLayout; import app.fedilab.android.R; import app.fedilab.android.databinding.ActivityScheduledBinding; import app.fedilab.android.helper.MastodonHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.pageadapter.FedilabScheduledPageAdapter; public class ScheduledActivity extends BaseActivity { @@ -42,7 +39,7 @@ public class ScheduledActivity extends BaseActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + binding = ActivityScheduledBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); @@ -50,7 +47,6 @@ public class ScheduledActivity extends BaseActivity { //Remove title if (actionBar != null) { actionBar.setDisplayShowTitleEnabled(false); - actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); @@ -68,8 +64,7 @@ public class ScheduledActivity extends BaseActivity { binding.scheduleViewpager.setAdapter(new FedilabScheduledPageAdapter(getSupportFragmentManager())); binding.scheduleViewpager.setOffscreenPageLimit(3); binding.scheduleViewpager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(binding.scheduleTablayout)); - binding.scheduleTablayout.setTabTextColors(ThemeHelper.getAttColor(ScheduledActivity.this, R.attr.mTextColor), ContextCompat.getColor(ScheduledActivity.this, R.color.cyanea_accent_dark_reference)); - binding.scheduleTablayout.setTabIconTint(ThemeHelper.getColorStateList(ScheduledActivity.this)); + binding.scheduleTablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override diff --git a/app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java b/app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java index 90742677..a5ac039a 100644 --- a/app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java @@ -16,7 +16,6 @@ package app.fedilab.android.activities; import android.app.SearchManager; import android.content.Context; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; @@ -27,7 +26,6 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.widget.SearchView; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentStatePagerAdapter; @@ -41,7 +39,6 @@ import org.jetbrains.annotations.NotNull; import app.fedilab.android.R; import app.fedilab.android.databinding.ActivitySearchResultTabsBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonAccount; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTag; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTimeline; @@ -58,7 +55,7 @@ public class SearchResultTabActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivitySearchResultTabsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); @@ -75,7 +72,6 @@ public class SearchResultTabActivity extends BaseActivity { if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } setTitle(search); initial = binding.searchTabLayout.newTab(); @@ -83,8 +79,6 @@ public class SearchResultTabActivity extends BaseActivity { binding.searchTabLayout.addTab(binding.searchTabLayout.newTab().setText(getString(R.string.accounts))); binding.searchTabLayout.addTab(binding.searchTabLayout.newTab().setText(getString(R.string.toots))); binding.searchTabLayout.addTab(binding.searchTabLayout.newTab().setText(getString(R.string.action_cache))); - binding.searchTabLayout.setTabTextColors(ThemeHelper.getAttColor(SearchResultTabActivity.this, R.attr.mTextColor), ContextCompat.getColor(SearchResultTabActivity.this, R.color.cyanea_accent_dark_reference)); - binding.searchTabLayout.setTabIconTint(ThemeHelper.getColorStateList(SearchResultTabActivity.this)); binding.searchTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { diff --git a/app/src/main/java/app/fedilab/android/activities/SettingsActivity.kt b/app/src/main/java/app/fedilab/android/activities/SettingsActivity.kt index f80760e0..02a7aba5 100644 --- a/app/src/main/java/app/fedilab/android/activities/SettingsActivity.kt +++ b/app/src/main/java/app/fedilab/android/activities/SettingsActivity.kt @@ -16,24 +16,20 @@ package app.fedilab.android.activities import android.os.Bundle import android.view.MenuItem -import androidx.appcompat.app.AlertDialog import androidx.navigation.findNavController import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.navigateUp import androidx.navigation.ui.setupActionBarWithNavController import app.fedilab.android.R import app.fedilab.android.databinding.ActivitySettingsBinding -import app.fedilab.android.helper.Helper -import app.fedilab.android.helper.ThemeHelper -import app.fedilab.android.ui.fragment.settings.FragmentThemingSettings -class SettingsActivity : BaseActivity(), FragmentThemingSettings.ActionTheming { +class SettingsActivity : BaseActivity() { private lateinit var binding: ActivitySettingsBinding private lateinit var appBarConfiguration: AppBarConfiguration override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - ThemeHelper.applyThemeBar(this) + binding = ActivitySettingsBinding.inflate(layoutInflater) setContentView(binding.root) @@ -56,15 +52,4 @@ class SettingsActivity : BaseActivity(), FragmentThemingSettings.ActionTheming { return super.onOptionsItemSelected(item) } - override fun restart() { - val restartBuilder = AlertDialog.Builder(this, Helper.dialogStyle()) - restartBuilder.setTitle(getString(R.string.restart_the_app)) - restartBuilder.setMessage(getString(R.string.restart_the_app_theme)) - restartBuilder.setNegativeButton(R.string.no) { dialog, which -> dialog.dismiss() } - restartBuilder.setPositiveButton(R.string.restart) { dialog, which -> - dialog.dismiss() - Helper.restart(this) - } - restartBuilder.create().show() - } } diff --git a/app/src/main/java/app/fedilab/android/activities/StatusHistoryActivity.java b/app/src/main/java/app/fedilab/android/activities/StatusHistoryActivity.java index 24a9c6b7..0bce132b 100644 --- a/app/src/main/java/app/fedilab/android/activities/StatusHistoryActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/StatusHistoryActivity.java @@ -16,18 +16,15 @@ package app.fedilab.android.activities; import android.content.res.Resources; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.MenuItem; -import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import app.fedilab.android.R; import app.fedilab.android.databinding.ActivityStatusHistoryBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.StatusHistoryAdapter; import app.fedilab.android.viewmodel.mastodon.StatusesVM; import es.dmoral.toasty.Toasty; @@ -40,14 +37,13 @@ public class StatusHistoryActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + ActivityStatusHistoryBinding binding = ActivityStatusHistoryBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } Bundle b = getIntent().getExtras(); diff --git a/app/src/main/java/app/fedilab/android/activities/StatusInfoActivity.java b/app/src/main/java/app/fedilab/android/activities/StatusInfoActivity.java index 29f3b2dc..dc7047a0 100644 --- a/app/src/main/java/app/fedilab/android/activities/StatusInfoActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/StatusInfoActivity.java @@ -15,13 +15,11 @@ package app.fedilab.android.activities; * see . */ -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.MenuItem; import android.view.View; import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -37,7 +35,6 @@ import app.fedilab.android.client.entities.api.RelationShip; import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.databinding.ActivityStatusInfoBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.AccountAdapter; import app.fedilab.android.viewmodel.mastodon.AccountsVM; import app.fedilab.android.viewmodel.mastodon.StatusesVM; @@ -56,14 +53,13 @@ public class StatusInfoActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + binding = ActivityStatusInfoBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } accountList = new ArrayList<>(); Bundle b = getIntent().getExtras(); diff --git a/app/src/main/java/app/fedilab/android/activities/SuggestionActivity.java b/app/src/main/java/app/fedilab/android/activities/SuggestionActivity.java index b9175901..c6c12cec 100644 --- a/app/src/main/java/app/fedilab/android/activities/SuggestionActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/SuggestionActivity.java @@ -14,18 +14,14 @@ package app.fedilab.android.activities; * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see . */ -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.MenuItem; -import androidx.core.content.ContextCompat; - import org.jetbrains.annotations.NotNull; import app.fedilab.android.R; import app.fedilab.android.databinding.ActivitySuggestionsBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonSuggestion; @@ -35,14 +31,13 @@ public class SuggestionActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + ActivitySuggestionsBinding binding = ActivitySuggestionsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } Helper.addFragment(getSupportFragmentManager(), R.id.nav_host_fragment_suggestions, new FragmentMastodonSuggestion(), null, null, null); diff --git a/app/src/main/java/app/fedilab/android/activities/TrendsActivity.java b/app/src/main/java/app/fedilab/android/activities/TrendsActivity.java index ec520ce0..c234ae73 100644 --- a/app/src/main/java/app/fedilab/android/activities/TrendsActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/TrendsActivity.java @@ -14,13 +14,11 @@ package app.fedilab.android.activities; * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see . */ -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.MenuItem; import android.view.ViewGroup; import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentStatePagerAdapter; @@ -35,7 +33,6 @@ import app.fedilab.android.R; import app.fedilab.android.client.entities.app.Timeline; import app.fedilab.android.databinding.ActivityTrendsBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTag; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTimeline; @@ -48,20 +45,17 @@ public class TrendsActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivityTrendsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } binding.searchTabLayout.addTab(binding.searchTabLayout.newTab().setText(getString(R.string.tags))); binding.searchTabLayout.addTab(binding.searchTabLayout.newTab().setText(getString(R.string.toots))); - binding.searchTabLayout.setTabTextColors(ThemeHelper.getAttColor(TrendsActivity.this, R.attr.mTextColor), ContextCompat.getColor(TrendsActivity.this, R.color.cyanea_accent_dark_reference)); - binding.searchTabLayout.setTabIconTint(ThemeHelper.getColorStateList(TrendsActivity.this)); binding.searchTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { diff --git a/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java b/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java index 5c355ee6..ab216959 100644 --- a/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java @@ -20,7 +20,6 @@ import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; -import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; import android.net.Uri; @@ -46,7 +45,6 @@ import app.fedilab.android.R; import app.fedilab.android.databinding.ActivityWebviewBinding; import app.fedilab.android.helper.CountDrawable; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.webview.CustomWebview; import app.fedilab.android.webview.FedilabWebChromeClient; import app.fedilab.android.webview.FedilabWebViewClient; @@ -67,7 +65,7 @@ public class WebviewActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + binding = ActivityWebviewBinding.inflate(getLayoutInflater()); View view = binding.getRoot(); setContentView(view); @@ -80,7 +78,6 @@ public class WebviewActivity extends BaseActivity { if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } Bundle b = getIntent().getExtras(); if (b != null) { @@ -193,7 +190,7 @@ public class WebviewActivity extends BaseActivity { final ArrayAdapter arrayAdapter = new ArrayAdapter<>(WebviewActivity.this, R.layout.domains_blocked); arrayAdapter.addAll(domains); - AlertDialog.Builder builder = new AlertDialog.Builder(WebviewActivity.this, Helper.dialogStyle()); + AlertDialog.Builder builder = new AlertDialog.Builder(WebviewActivity.this); builder.setTitle(R.string.list_of_blocked_domains); builder.setNegativeButton(R.string.close, (dialog, which) -> dialog.dismiss()); diff --git a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java index 89f0972f..cf1e782c 100644 --- a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java @@ -57,7 +57,6 @@ import app.fedilab.android.client.entities.app.Account; import app.fedilab.android.databinding.ActivityWebviewConnectBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.AccountsVM; import app.fedilab.android.viewmodel.mastodon.AdminVM; import app.fedilab.android.viewmodel.mastodon.OauthVM; @@ -119,7 +118,7 @@ public class WebviewConnectActivity extends BaseActivity { @SuppressLint("SetJavaScriptEnabled") public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(WebviewConnectActivity.this); binding = ActivityWebviewConnectBinding.inflate(getLayoutInflater()); diff --git a/app/src/main/java/app/fedilab/android/activities/admin/AdminAccountActivity.java b/app/src/main/java/app/fedilab/android/activities/admin/AdminAccountActivity.java index 01a18ccd..ee6403ff 100644 --- a/app/src/main/java/app/fedilab/android/activities/admin/AdminAccountActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/admin/AdminAccountActivity.java @@ -19,7 +19,6 @@ import android.content.ClipData; import android.content.ClipboardManager; import android.content.Intent; import android.content.SharedPreferences; -import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.SpannableString; @@ -65,7 +64,6 @@ import app.fedilab.android.databinding.ActivityAdminAccountBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; import app.fedilab.android.helper.SpannableHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.AdminVM; import app.fedilab.android.viewmodel.mastodon.NodeInfoVM; import es.dmoral.toasty.Toasty; @@ -83,7 +81,7 @@ public class AdminAccountActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + binding = ActivityAdminAccountBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); @@ -99,7 +97,6 @@ public class AdminAccountActivity extends BaseActivity { //Remove title if (actionBar != null) { actionBar.setDisplayShowTitleEnabled(false); - actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); float scale = sharedpreferences.getFloat(getString(R.string.SET_FONT_SCALE), 1.1f); @@ -108,7 +105,6 @@ public class AdminAccountActivity extends BaseActivity { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); } - binding.toolbar.setPopupTheme(Helper.popupStyle()); adminVM = new ViewModelProvider(AdminAccountActivity.this).get(AdminVM.class); if (account_id != null) { adminVM.getAccount(MainActivity.currentInstance, MainActivity.currentToken, account_id).observe(this, this::initializeView); @@ -295,7 +291,7 @@ public class AdminAccountActivity extends BaseActivity { final SpannableString content = new SpannableString(getString(R.string.disclaimer_full)); content.setSpan(new UnderlineSpan(), 0, content.length(), 0); - content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(AdminAccountActivity.this, R.color.cyanea_accent_reference)), 0, content.length(), + content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(AdminAccountActivity.this, R.color.colorAccent)), 0, content.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); //This account was moved to another one diff --git a/app/src/main/java/app/fedilab/android/activities/admin/AdminActionActivity.java b/app/src/main/java/app/fedilab/android/activities/admin/AdminActionActivity.java index a703ff41..cca679db 100644 --- a/app/src/main/java/app/fedilab/android/activities/admin/AdminActionActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/admin/AdminActionActivity.java @@ -22,7 +22,6 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; @@ -30,7 +29,6 @@ import android.view.MenuItem; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import androidx.localbroadcastmanager.content.LocalBroadcastManager; @@ -81,13 +79,12 @@ public class AdminActionActivity extends BaseActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + binding = ActivityAdminActionsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver, new IntentFilter(Helper.BROADCAST_DATA)); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } canGoBack = false; binding.reports.setOnClickListener(v -> displayTimeline(REPORT)); @@ -167,7 +164,7 @@ public class AdminActionActivity extends BaseActivity { return true; } else if (item.getItemId() == R.id.action_filter) { if (getTitle().toString().equalsIgnoreCase(getString(R.string.accounts))) { - AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(AdminActionActivity.this, Helper.dialogStyle()); + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(AdminActionActivity.this); PopupAdminFilterAccountsBinding binding = PopupAdminFilterAccountsBinding.inflate(getLayoutInflater()); alertDialogBuilder.setView(binding.getRoot()); if (local != null && remote == null) { @@ -261,7 +258,7 @@ public class AdminActionActivity extends BaseActivity { AlertDialog alert = alertDialogBuilder.create(); alert.show(); } else { - AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(AdminActionActivity.this, Helper.dialogStyle()); + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(AdminActionActivity.this); PopupAdminFilterReportsBinding binding = PopupAdminFilterReportsBinding.inflate(getLayoutInflater()); alertDialogBuilder.setView(binding.getRoot()); if (resolved == null) { diff --git a/app/src/main/java/app/fedilab/android/activities/admin/AdminDomainBlockActivity.java b/app/src/main/java/app/fedilab/android/activities/admin/AdminDomainBlockActivity.java index c14affb4..169ff5d7 100644 --- a/app/src/main/java/app/fedilab/android/activities/admin/AdminDomainBlockActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/admin/AdminDomainBlockActivity.java @@ -18,7 +18,6 @@ package app.fedilab.android.activities.admin; import static app.fedilab.android.helper.Helper.BROADCAST_DATA; import android.content.Intent; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; @@ -28,7 +27,6 @@ import android.widget.ArrayAdapter; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; import androidx.localbroadcastmanager.content.LocalBroadcastManager; @@ -38,7 +36,6 @@ import app.fedilab.android.activities.MainActivity; import app.fedilab.android.client.entities.api.admin.AdminDomainBlock; import app.fedilab.android.databinding.ActivityAdminDomainblockBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.AdminVM; import es.dmoral.toasty.Toasty; @@ -52,12 +49,11 @@ public class AdminDomainBlockActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyThemeBar(this); + ActivityAdminDomainblockBinding binding = ActivityAdminDomainblockBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } Bundle b = getIntent().getExtras(); if (b != null) { @@ -133,7 +129,7 @@ public class AdminDomainBlockActivity extends BaseActivity { return true; } else if (itemId == R.id.action_delete) { if (adminDomainBlock.id != null) { - AlertDialog.Builder builder = new AlertDialog.Builder(AdminDomainBlockActivity.this, Helper.dialogStyle()); + AlertDialog.Builder builder = new AlertDialog.Builder(AdminDomainBlockActivity.this); builder.setMessage(getString(R.string.unblock_domain_confirm, adminDomainBlock.domain)); builder .setPositiveButton(R.string.unblock_domain, (dialog, which) -> { diff --git a/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java b/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java index 5ff001d0..ce841b7b 100644 --- a/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java @@ -19,7 +19,6 @@ import android.content.ClipData; import android.content.ClipboardManager; import android.content.Intent; import android.content.SharedPreferences; -import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.SpannableString; @@ -66,7 +65,6 @@ import app.fedilab.android.databinding.ActivityAdminAccountBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; import app.fedilab.android.helper.SpannableHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.AdminVM; import app.fedilab.android.viewmodel.mastodon.NodeInfoVM; import es.dmoral.toasty.Toasty; @@ -83,7 +81,7 @@ public class AdminReportActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ThemeHelper.applyTheme(this); + binding = ActivityAdminAccountBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); @@ -100,7 +98,6 @@ public class AdminReportActivity extends BaseActivity { //Remove title if (actionBar != null) { actionBar.setDisplayShowTitleEnabled(false); - actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary))); } SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); float scale = sharedpreferences.getFloat(getString(R.string.SET_FONT_SCALE), 1.1f); @@ -109,7 +106,6 @@ public class AdminReportActivity extends BaseActivity { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); } - binding.toolbar.setPopupTheme(Helper.popupStyle()); if (account != null) { initializeView(account); } else { @@ -314,7 +310,7 @@ public class AdminReportActivity extends BaseActivity { final SpannableString content = new SpannableString(getString(R.string.disclaimer_full)); content.setSpan(new UnderlineSpan(), 0, content.length(), 0); - content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(AdminReportActivity.this, R.color.cyanea_accent_reference)), 0, content.length(), + content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(AdminReportActivity.this, R.color.colorAccent)), 0, content.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); //This account was moved to another one diff --git a/app/src/main/java/app/fedilab/android/helper/CirclesDrawingView.java b/app/src/main/java/app/fedilab/android/helper/CirclesDrawingView.java index 33672f60..b85b9df2 100644 --- a/app/src/main/java/app/fedilab/android/helper/CirclesDrawingView.java +++ b/app/src/main/java/app/fedilab/android/helper/CirclesDrawingView.java @@ -63,7 +63,7 @@ public class CirclesDrawingView extends View { // Generate bitmap used for background mCirclePaint = new Paint(); - mCirclePaint.setColor(ResourcesCompat.getColor(getContext().getResources(), R.color.cyanea_accent, getContext().getTheme())); + mCirclePaint.setColor(ResourcesCompat.getColor(getContext().getResources(), R.color.colorAccent, getContext().getTheme())); mCirclePaint.setStrokeWidth(10); mCirclePaint.setStyle(Paint.Style.STROKE); } diff --git a/app/src/main/java/app/fedilab/android/helper/CrossActionHelper.java b/app/src/main/java/app/fedilab/android/helper/CrossActionHelper.java index 40e62117..cb63be28 100644 --- a/app/src/main/java/app/fedilab/android/helper/CrossActionHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/CrossActionHelper.java @@ -81,7 +81,7 @@ public class CrossActionHelper { } Handler mainHandler = new Handler(Looper.getMainLooper()); Runnable myRunnable = () -> { - AlertDialog.Builder builderSingle = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder builderSingle = new AlertDialog.Builder(context); builderSingle.setTitle(context.getString(R.string.choose_accounts)); final AccountsSearchAdapter accountsSearchAdapter = new AccountsSearchAdapter(context, accountList); final BaseAccount[] accountArray = new BaseAccount[accounts.size()]; @@ -96,7 +96,7 @@ public class CrossActionHelper { boolean confirmBoost = sharedpreferences.getBoolean(context.getString(R.string.SET_NOTIF_VALIDATION), true); BaseAccount selectedAccount = accountArray[which]; if ((actionType == TypeOfCrossAction.REBLOG_ACTION && confirmBoost) || (actionType == TypeOfCrossAction.FAVOURITE_ACTION && confirmFav)) { - AlertDialog.Builder alt_bld = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder alt_bld = new AlertDialog.Builder(context); if (actionType == TypeOfCrossAction.REBLOG_ACTION) { alt_bld.setMessage(context.getString(R.string.reblog_add)); } else { @@ -409,7 +409,7 @@ public class CrossActionHelper { context.startActivity(intentToot); ((BaseActivity) context).finish(); } else { - AlertDialog.Builder builderSingle = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder builderSingle = new AlertDialog.Builder(context); builderSingle.setTitle(context.getString(R.string.choose_accounts)); final AccountsSearchAdapter accountsSearchAdapter = new AccountsSearchAdapter(context, accountList); final BaseAccount[] accountArray = new BaseAccount[accounts.size()]; diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index 57e1ce80..41036d8f 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -107,7 +107,6 @@ import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; -import com.jaredrummler.cyanea.Cyanea; import org.conscrypt.Conscrypt; @@ -473,7 +472,7 @@ public class Helper { * @param url String download url */ public static void manageDownloads(final Context context, final String url) { - final AlertDialog.Builder builder = new AlertDialog.Builder(context, Helper.dialogStyle()); + final AlertDialog.Builder builder = new AlertDialog.Builder(context); final DownloadManager.Request request; try { request = new DownloadManager.Request(Uri.parse(url.trim())); @@ -941,13 +940,6 @@ public class Helper { return fragment; } - public static int dialogStyle() { - return Cyanea.getInstance().isDark() ? R.style.DialogDark : R.style.Dialog; - } - - public static int popupStyle() { - return Cyanea.getInstance().isDark() ? R.style.PopupDark : R.style.Popup; - } /** * Load a media into a view @@ -1832,7 +1824,7 @@ public class Helper { is.close(); String json = new String(buffer, StandardCharsets.UTF_8); Gson gson = new Gson(); - AlertDialog.Builder dialogBuilderOptin = new AlertDialog.Builder(activity, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilderOptin = new AlertDialog.Builder(activity); PopupReleaseNotesBinding binding = PopupReleaseNotesBinding.inflate(activity.getLayoutInflater()); dialogBuilderOptin.setView(binding.getRoot()); try { diff --git a/app/src/main/java/app/fedilab/android/helper/MastodonHelper.java b/app/src/main/java/app/fedilab/android/helper/MastodonHelper.java index 2a8b7584..4d7936d4 100644 --- a/app/src/main/java/app/fedilab/android/helper/MastodonHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/MastodonHelper.java @@ -357,7 +357,7 @@ public class MastodonHelper { * @param status {@link Status} */ public static void scheduleBoost(Context context, ScheduleType scheduleType, Status status, Account account, TimedMuted listener) { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context); DatetimePickerBinding binding = DatetimePickerBinding.inflate(((Activity) context).getLayoutInflater()); dialogBuilder.setView(binding.getRoot()); final AlertDialog alertDialogBoost = dialogBuilder.create(); diff --git a/app/src/main/java/app/fedilab/android/helper/MediaHelper.java b/app/src/main/java/app/fedilab/android/helper/MediaHelper.java index 93c1b8d3..1603b57d 100644 --- a/app/src/main/java/app/fedilab/android/helper/MediaHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/MediaHelper.java @@ -293,7 +293,7 @@ public class MediaHelper { AudioRecorder mAudioRecorder = AudioRecorder.getInstance(); File mAudioFile = new File(filePath); PopupRecordBinding binding = PopupRecordBinding.inflate(activity.getLayoutInflater()); - AlertDialog.Builder audioPopup = new AlertDialog.Builder(activity, Helper.dialogStyle()); + AlertDialog.Builder audioPopup = new AlertDialog.Builder(activity); audioPopup.setView(binding.getRoot()); AlertDialog alert = audioPopup.create(); alert.show(); @@ -341,7 +341,7 @@ public class MediaHelper { * @param listener - OnSchedule */ public static void scheduleMessage(Activity activity, OnSchedule listener) { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); DatetimePickerBinding binding = DatetimePickerBinding.inflate(activity.getLayoutInflater()); dialogBuilder.setView(binding.getRoot()); diff --git a/app/src/main/java/app/fedilab/android/helper/PinnedTimelineHelper.java b/app/src/main/java/app/fedilab/android/helper/PinnedTimelineHelper.java index d42b0ae6..6521c9dd 100644 --- a/app/src/main/java/app/fedilab/android/helper/PinnedTimelineHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/PinnedTimelineHelper.java @@ -28,7 +28,6 @@ import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.util.TypedValue; -import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; @@ -423,7 +422,7 @@ public class PinnedTimelineHelper { Pinned finalPinned = pinned; int finalToRemove1 = toRemove; activityMainBinding.moreTimelines.setOnClickListener(v -> { - PopupMenu popup = new PopupMenu(new ContextThemeWrapper(activity, Helper.popupStyle()), v); + PopupMenu popup = new PopupMenu(activity, v); try { @SuppressLint("PrivateApi") Method method = popup.getMenu().getClass().getDeclaredMethod("setOptionalIconsVisible", boolean.class); @@ -615,7 +614,7 @@ public class PinnedTimelineHelper { */ public static void defaultClick(BaseMainActivity activity, Timeline.TimeLineEnum timeLineEnum, View view, ActivityMainBinding activityMainBinding, int position) { boolean showExtendedFilter = timeLineEnum == Timeline.TimeLineEnum.HOME; - PopupMenu popup = new PopupMenu(new ContextThemeWrapper(activity, Helper.popupStyle()), view); + PopupMenu popup = new PopupMenu(activity, view); popup.getMenuInflater() .inflate(R.menu.option_filter_toots, popup.getMenu()); Menu menu = popup.getMenu(); @@ -681,7 +680,7 @@ public class PinnedTimelineHelper { itemShowReplies.setChecked(show_replies); editor.apply(); } else if (itemId == R.id.action_filter) { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); LayoutInflater inflater = activity.getLayoutInflater(); View dialogView = inflater.inflate(R.layout.popup_filter_regex, new LinearLayout(activity), false); dialogBuilder.setView(dialogView); @@ -770,7 +769,7 @@ public class PinnedTimelineHelper { */ public static void tagClick(BaseMainActivity activity, Pinned pinned, View view, ActivityMainBinding activityMainBinding, int position, String slug) { int toRemove = itemToRemoveInBottomMenu(activity); - PopupMenu popup = new PopupMenu(new ContextThemeWrapper(activity, Helper.popupStyle()), view); + PopupMenu popup = new PopupMenu(activity, view); int offSetPosition = position - (BOTTOM_TIMELINE_COUNT - toRemove); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(activity); boolean singleBar = sharedpreferences.getBoolean(activity.getString(R.string.SET_USE_SINGLE_TOPBAR), false); @@ -870,7 +869,7 @@ public class PinnedTimelineHelper { e.printStackTrace(); } } else if (itemId == R.id.action_any) { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); LayoutInflater inflater = activity.getLayoutInflater(); View dialogView = inflater.inflate(R.layout.tags_any, new LinearLayout(activity), false); dialogBuilder.setView(dialogView); @@ -899,7 +898,7 @@ public class PinnedTimelineHelper { LayoutInflater inflater; View dialogView; AlertDialog alertDialog; - dialogBuilder = new AlertDialog.Builder(activity, Helper.dialogStyle()); + dialogBuilder = new AlertDialog.Builder(activity); inflater = activity.getLayoutInflater(); dialogView = inflater.inflate(R.layout.tags_all, new LinearLayout(activity), false); dialogBuilder.setView(dialogView); @@ -928,7 +927,7 @@ public class PinnedTimelineHelper { LayoutInflater inflater; View dialogView; AlertDialog alertDialog; - dialogBuilder = new AlertDialog.Builder(activity, Helper.dialogStyle()); + dialogBuilder = new AlertDialog.Builder(activity); inflater = activity.getLayoutInflater(); dialogView = inflater.inflate(R.layout.tags_all, new LinearLayout(activity), false); dialogBuilder.setView(dialogView); @@ -957,7 +956,7 @@ public class PinnedTimelineHelper { LayoutInflater inflater; View dialogView; AlertDialog alertDialog; - dialogBuilder = new AlertDialog.Builder(activity, Helper.dialogStyle()); + dialogBuilder = new AlertDialog.Builder(activity); inflater = activity.getLayoutInflater(); dialogView = inflater.inflate(R.layout.tags_name, new LinearLayout(activity), false); dialogBuilder.setView(dialogView); @@ -997,7 +996,7 @@ public class PinnedTimelineHelper { */ public static void instanceClick(BaseMainActivity activity, Pinned pinned, View view, ActivityMainBinding activityMainBinding, int position, String slug) { - PopupMenu popup = new PopupMenu(new ContextThemeWrapper(activity, Helper.popupStyle()), view); + PopupMenu popup = new PopupMenu(activity, view); int toRemove = itemToRemoveInBottomMenu(activity); int offSetPosition = position - (BOTTOM_TIMELINE_COUNT - toRemove); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(activity); @@ -1145,7 +1144,7 @@ public class PinnedTimelineHelper { } }); changes[0] = true; - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); LayoutInflater inflater = activity.getLayoutInflater(); View dialogView = inflater.inflate(R.layout.tags_instance, new LinearLayout(activity), false); dialogBuilder.setView(dialogView); @@ -1229,7 +1228,7 @@ public class PinnedTimelineHelper { if (remoteInstance == null) return; String accounts = remoteInstance.host; - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); LayoutInflater inflater = activity.getLayoutInflater(); View dialogView = inflater.inflate(R.layout.tags_any, new LinearLayout(activity), false); dialogBuilder.setView(dialogView); diff --git a/app/src/main/java/app/fedilab/android/helper/PushHelper.java b/app/src/main/java/app/fedilab/android/helper/PushHelper.java index 2f32d517..419b6687 100644 --- a/app/src/main/java/app/fedilab/android/helper/PushHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/PushHelper.java @@ -57,7 +57,7 @@ public class PushHelper { Runnable myRunnable = () -> { List distributors = UnifiedPush.getDistributors(context, new ArrayList<>()); if (distributors.size() == 0) { - AlertDialog.Builder alert = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder alert = new AlertDialog.Builder(context); alert.setTitle(R.string.no_distributors_found); final TextView message = new TextView(context); String link = "https://fedilab.app/wiki/features/push-notifications/"; @@ -134,7 +134,7 @@ public class PushHelper { return; } - AlertDialog.Builder alert = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder alert = new AlertDialog.Builder(context); alert.setTitle(R.string.select_distributors); String[] distributorsStr = distributors.toArray(new String[0]); alert.setSingleChoiceItems(distributorsStr, -1, (dialog, item) -> { diff --git a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java index 46df2e4e..6db5b1ff 100644 --- a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java @@ -252,7 +252,7 @@ public class SpannableHelper { @Override public void onLongClick(View view) { Context mContext = view.getContext(); - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext); PopupLinksBinding popupLinksBinding = PopupLinksBinding.inflate(LayoutInflater.from(context)); dialogBuilder.setView(popupLinksBinding.getRoot()); AlertDialog alertDialog = dialogBuilder.create(); @@ -270,7 +270,7 @@ public class SpannableHelper { } String finalURl1 = finalURl; popupLinksBinding.displayFullLink.setOnClickListener(v -> { - AlertDialog.Builder builder = new AlertDialog.Builder(mContext, Helper.dialogStyle()); + AlertDialog.Builder builder = new AlertDialog.Builder(mContext); builder.setMessage(finalURl1); builder.setTitle(context.getString(R.string.display_full_link)); builder.setPositiveButton(R.string.close, (dialog, which) -> dialog.dismiss()) @@ -347,7 +347,7 @@ public class SpannableHelper { Handler mainHandler = new Handler(context.getMainLooper()); String finalRedirect = redirect; Runnable myRunnable = () -> { - AlertDialog.Builder builder1 = new AlertDialog.Builder(view.getContext(), Helper.dialogStyle()); + AlertDialog.Builder builder1 = new AlertDialog.Builder(view.getContext()); if (finalRedirect != null) { builder1.setMessage(context.getString(R.string.redirect_detected, finalURl1, finalRedirect)); builder1.setNegativeButton(R.string.copy_link, (dialog, which) -> { @@ -488,7 +488,7 @@ public class SpannableHelper { @Override public void onLongClick(View view) { Context mContext = view.getContext(); - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext, Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext); PopupLinksBinding popupLinksBinding = PopupLinksBinding.inflate(LayoutInflater.from(context)); dialogBuilder.setView(popupLinksBinding.getRoot()); AlertDialog alertDialog = dialogBuilder.create(); @@ -499,7 +499,7 @@ public class SpannableHelper { } String finalURl1 = finalURl; popupLinksBinding.displayFullLink.setOnClickListener(v -> { - AlertDialog.Builder builder = new AlertDialog.Builder(mContext, Helper.dialogStyle()); + AlertDialog.Builder builder = new AlertDialog.Builder(mContext); builder.setMessage(finalURl1); builder.setTitle(context.getString(R.string.display_full_link)); builder.setPositiveButton(R.string.close, (dialog, which) -> dialog.dismiss()) @@ -576,7 +576,7 @@ public class SpannableHelper { Handler mainHandler = new Handler(context.getMainLooper()); String finalRedirect = redirect; Runnable myRunnable = () -> { - AlertDialog.Builder builder1 = new AlertDialog.Builder(view.getContext(), Helper.dialogStyle()); + AlertDialog.Builder builder1 = new AlertDialog.Builder(view.getContext()); if (finalRedirect != null) { builder1.setMessage(context.getString(R.string.redirect_detected, finalURl1, finalRedirect)); builder1.setNegativeButton(R.string.copy_link, (dialog, which) -> { @@ -908,7 +908,7 @@ public class SpannableHelper { return; } } - AlertDialog.Builder builder = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setMessage(context.getString(R.string.mute_tag, tag)); builder .setPositiveButton(R.string.yes, (dialog, which) -> { @@ -977,7 +977,7 @@ public class SpannableHelper { int end = spannable.getSpanEnd(quoteSpan); int flags = spannable.getSpanFlags(quoteSpan); spannable.removeSpan(quoteSpan); - int colord = ContextCompat.getColor(context, R.color.cyanea_accent_reference); + int colord = ContextCompat.getColor(context, R.color.colorAccent); spannable.setSpan(new CustomQuoteSpan( ContextCompat.getColor(context, R.color.transparent), colord, diff --git a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java index 3a7f9937..088557a1 100644 --- a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java @@ -36,9 +36,6 @@ import androidx.core.content.ContextCompat; import androidx.core.graphics.ColorUtils; import androidx.preference.PreferenceManager; -import com.google.android.material.button.MaterialButton; -import com.jaredrummler.cyanea.Cyanea; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; @@ -49,7 +46,7 @@ import java.util.LinkedHashMap; import java.util.List; import app.fedilab.android.R; -import app.fedilab.android.activities.BaseActivity; + public class ThemeHelper { @@ -72,6 +69,25 @@ public class ThemeHelper { return color; } + + public static ColorStateList getButtonActionColorStateList(Context context) { + int[][] states = new int[][]{ + new int[]{android.R.attr.state_enabled}, // enabled + new int[]{-android.R.attr.state_enabled}, // disabled + new int[]{-android.R.attr.state_checked}, // unchecked + new int[]{android.R.attr.state_pressed} // pressed + }; + int alphaColor = ColorUtils.setAlphaComponent(ContextCompat.getColor(context, R.color.colorAccent), 0x33); + int color = ContextCompat.getColor(context, R.color.colorAccent); + int[] colors = new int[]{ + color, + alphaColor, + color, + color + }; + return new ColorStateList(states, colors); + } + /** * Initialize colors in a static variable * Currently link_color cannot be retrieved with getAttColor in ViewModel due to application and theme @@ -92,37 +108,7 @@ public class ThemeHelper { } } - public static void applyTheme(BaseActivity activity) { - if (Cyanea.getInstance().isDark()) { - activity.setTheme(R.style.AppThemeDark); - } else { - activity.setTheme(R.style.AppTheme); - } - } - public static void applyThemeDialog(BaseActivity activity) { - if (Cyanea.getInstance().isDark()) { - activity.setTheme(R.style.DialogDark); - } else { - activity.setTheme(R.style.Dialog); - } - } - - public static int getBackgroundColor(Context context) { - if (Cyanea.getInstance().isDark()) { - return ContextCompat.getColor(context, R.color.cyanea_background_dark); - } else { - return ContextCompat.getColor(context, R.color.cyanea_background_light); - } - } - - public static void applyThemeBar(BaseActivity activity) { - if (Cyanea.getInstance().isDark()) { - activity.setTheme(R.style.AppThemeBarDark); - } else { - activity.setTheme(R.style.AppThemeBar); - } - } /** * Animate two views, the current view will be hidden to left @@ -282,23 +268,6 @@ public class ThemeHelper { return new ColorStateList(states, colors); } - public static ColorStateList getButtonActionColorStateList(Context context) { - int[][] states = new int[][]{ - new int[]{android.R.attr.state_enabled}, // enabled - new int[]{-android.R.attr.state_enabled}, // disabled - new int[]{-android.R.attr.state_checked}, // unchecked - new int[]{android.R.attr.state_pressed} // pressed - }; - int alphaColor = ColorUtils.setAlphaComponent(ContextCompat.getColor(context, R.color.cyanea_accent_dark_reference), 0x33); - int color = ContextCompat.getColor(context, R.color.cyanea_accent_dark_reference); - int[] colors = new int[]{ - color, - alphaColor, - color, - color - }; - return new ColorStateList(states, colors); - } /** @@ -319,144 +288,6 @@ public class ThemeHelper { return new ColorStateList(states, colors); } - /** - * Allow to set colors for tablayout - * - * @param context - Context - * @return - ColorStateList - */ - public static ColorStateList getColorStateList(Context context) { - int[][] states = new int[][]{ - new int[]{android.R.attr.state_selected}, - new int[]{-android.R.attr.state_selected}, - }; - int[] colors = new int[]{ - ContextCompat.getColor(context, R.color.cyanea_accent_dark_reference), - getAttColor(context, R.attr.mTextColor) - }; - return new ColorStateList(states, colors); - } - - /** - * Change all color for a Material button - * - * @param context - Context - * @param materialButton - MaterialButton - */ - public static void changeButtonColor(Context context, MaterialButton materialButton) { - materialButton.setRippleColor(ThemeHelper.getButtonColorStateList(context)); - materialButton.setStrokeColor(ThemeHelper.getButtonColorStateList(context)); - materialButton.setTextColor(ThemeHelper.getButtonColorStateList(context)); - materialButton.setIconTint(ThemeHelper.getButtonColorStateList(context)); - materialButton.setBackgroundTintList(ThemeHelper.getBackgroundButtonColorStateList(context)); - } - - /** - * Allow to set ThumbDrawable colors for SwitchCompat - * - * @param context - Context - * @return - ColorStateList - */ - public static ColorStateList getSwitchCompatThumbDrawable(Context context) { - int[][] states = new int[][]{ - new int[]{android.R.attr.state_checked}, - new int[]{-android.R.attr.state_checked}, - }; - int alphaColor = ColorUtils.setAlphaComponent(ContextCompat.getColor(context, R.color.cyanea_accent_dark_reference), 0xee); - int alphaColorUnchecked = ColorUtils.setAlphaComponent(getAttColor(context, R.attr.mTextColor), 0xee); - int[] colors = new int[]{ - alphaColor, - alphaColorUnchecked - }; - return new ColorStateList(states, colors); - } - - /** - * Allow to set TrackDrawable colors for SwitchCompat - * - * @param context - Context - * @return - ColorStateList - */ - public static ColorStateList getSwitchCompatTrackDrawable(Context context) { - int[][] states = new int[][]{ - new int[]{android.R.attr.state_checked}, - new int[]{-android.R.attr.state_checked}, - }; - int alphaColor = ColorUtils.setAlphaComponent(ContextCompat.getColor(context, R.color.cyanea_accent_dark_reference), 0x33); - int alphaColorUnchecked = ColorUtils.setAlphaComponent(getAttColor(context, R.attr.mTextColor), 0x33); - int[] colors = new int[]{ - alphaColor, - alphaColorUnchecked - }; - return new ColorStateList(states, colors); - } - - /** - * Allow to set colors for Material buttons inside a toggle group - * - * @param context - Context - * @return - ColorStateList - */ - public static ColorStateList getButtonColorStateList(Context context) { - int[][] states = new int[][]{ - new int[]{android.R.attr.state_checked}, - new int[]{-android.R.attr.state_checked}, - }; - int[] colors = new int[]{ - ContextCompat.getColor(context, R.color.cyanea_accent_dark_reference), - getAttColor(context, R.attr.mTextColor) - }; - return new ColorStateList(states, colors); - } - - - public static void changeColorOutlineButton(Context context, MaterialButton materialButton) { - if (materialButton != null) { - materialButton.setStrokeColor(ThemeHelper.getButtonOutlineColorStateList(context)); - materialButton.setRippleColor(ThemeHelper.getButtonOutlineColorStateList(context)); - materialButton.setIconTint(ThemeHelper.getButtonOutlineColorStateList(context)); - materialButton.setTextColor(ThemeHelper.getButtonOutlineColorStateList(context)); - } - } - - /** - * Allow to set colors for Material buttons inside a toggle group - * - * @param context - Context - * @return - ColorStateList - */ - public static ColorStateList getButtonOutlineColorStateList(Context context) { - int[][] states = new int[][]{ - new int[]{android.R.attr.state_checked}, - new int[]{-android.R.attr.state_checked}, - }; - int alphaColorUnchecked = ColorUtils.setAlphaComponent(getAttColor(context, R.attr.mTextColor), 0xaa); - int[] colors = new int[]{ - ContextCompat.getColor(context, R.color.cyanea_accent_dark_reference), - alphaColorUnchecked - }; - return new ColorStateList(states, colors); - } - - - /** - * Allow to set background colors for Material buttons inside a toggle group - * - * @param context - Context - * @return - ColorStateList - */ - private static ColorStateList getBackgroundButtonColorStateList(Context context) { - int[][] states = new int[][]{ - new int[]{android.R.attr.state_checked}, - new int[]{-android.R.attr.state_checked}, - }; - int alphaColor = ColorUtils.setAlphaComponent(ContextCompat.getColor(context, R.color.cyanea_accent_dark_reference), 0x33); - int[] colors = new int[]{ - alphaColor, - ContextCompat.getColor(context, R.color.transparent) - }; - return new ColorStateList(states, colors); - } /** * Allow to change font scale in activities diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/AccountAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/AccountAdapter.java index a7cdcf67..ade37602 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/AccountAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/AccountAdapter.java @@ -48,7 +48,6 @@ import app.fedilab.android.client.entities.api.Account; import app.fedilab.android.databinding.DrawerAccountBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.AccountsVM; import es.dmoral.toasty.Toasty; @@ -79,12 +78,7 @@ public class AccountAdapter extends RecyclerView.Adapter dialog.dismiss()); diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/AccountListAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/AccountListAdapter.java index 356d880c..6d308693 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/AccountListAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/AccountListAdapter.java @@ -97,7 +97,6 @@ public class AccountListAdapter extends RecyclerView.Adapter { accountList.add(0, account); diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/AnnouncementAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/AnnouncementAdapter.java index 43f7a897..218f3a86 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/AnnouncementAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/AnnouncementAdapter.java @@ -147,7 +147,7 @@ public class AnnouncementAdapter extends RecyclerView.Adapter { - final AlertDialog.Builder builder = new AlertDialog.Builder(context, Helper.dialogStyle()); + final AlertDialog.Builder builder = new AlertDialog.Builder(context); int paddingPixel = 15; float density = context.getResources().getDisplayMetrics().density; int paddingDp = (int) (paddingPixel * density); diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java index 8cacbff2..b4860ef4 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java @@ -28,7 +28,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; -import android.content.res.ColorStateList; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.drawable.Drawable; @@ -61,7 +60,6 @@ import androidx.appcompat.widget.AppCompatEditText; import androidx.appcompat.widget.LinearLayoutCompat; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; -import androidx.core.widget.ImageViewCompat; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelStoreOwner; @@ -954,7 +952,7 @@ public class ComposeAdapter extends RecyclerView.Adapter { - AlertDialog.Builder builderInner = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder builderInner = new AlertDialog.Builder(context); builderInner.setTitle(R.string.upload_form_description); PopupMediaDescriptionBinding popupMediaDescriptionBinding = PopupMediaDescriptionBinding.inflate(LayoutInflater.from(context), null, false); builderInner.setView(popupMediaDescriptionBinding.getRoot()); @@ -1011,7 +1009,7 @@ public class ComposeAdapter extends RecyclerView.Adapter { - AlertDialog.Builder builderInner = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder builderInner = new AlertDialog.Builder(context); builderInner.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); builderInner.setPositiveButton(R.string.delete, (dialog, which) -> { attachmentList.remove(attachment); @@ -1142,8 +1140,6 @@ public class ComposeAdapter extends RecyclerView.Adapter { if (instanceInfo.configuration.media_attachments.supported_mime_types != null) { @@ -1395,11 +1387,7 @@ public class ComposeAdapter extends RecyclerView.Adapter { @@ -1456,7 +1444,7 @@ public class ComposeAdapter extends RecyclerView.Adapter { - AlertDialog.Builder alt_bld = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder alt_bld = new AlertDialog.Builder(context); alt_bld.setMessage(context.getString(R.string.unblock_domain_confirm, domain)); alt_bld.setPositiveButton(R.string.yes, (dialog, id) -> { accountsVM.removeDomainBlocks(MainActivity.currentInstance, MainActivity.currentToken, domain); diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/FilterAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/FilterAdapter.java index 954369d4..6bed3b33 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/FilterAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/FilterAdapter.java @@ -32,7 +32,6 @@ import app.fedilab.android.R; import app.fedilab.android.activities.FilterActivity; import app.fedilab.android.client.entities.api.Filter; import app.fedilab.android.databinding.DrawerFilterBinding; -import app.fedilab.android.helper.Helper; import app.fedilab.android.viewmodel.mastodon.FiltersVM; @@ -88,7 +87,7 @@ public class FilterAdapter extends RecyclerView.Adapter { - AlertDialog.Builder builder = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(R.string.action_filter_delete); builder.setMessage(R.string.action_lists_confirm_delete); builder.setIcon(android.R.drawable.ic_dialog_alert) diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ReorderTabAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ReorderTabAdapter.java index e85afc09..bef12491 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ReorderTabAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ReorderTabAdapter.java @@ -39,7 +39,6 @@ import app.fedilab.android.client.entities.app.PinnedTimeline; import app.fedilab.android.client.entities.app.Timeline; import app.fedilab.android.databinding.DrawerReorderBinding; import app.fedilab.android.exception.DBException; -import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.itemtouchhelper.ItemTouchHelperAdapter; import app.fedilab.android.helper.itemtouchhelper.ItemTouchHelperViewHolder; import app.fedilab.android.helper.itemtouchhelper.OnStartDragListener; @@ -170,7 +169,7 @@ public class ReorderTabAdapter extends RecyclerView.Adapter { if (item.type == Timeline.TimeLineEnum.TAG || item.type == Timeline.TimeLineEnum.REMOTE || item.type == Timeline.TimeLineEnum.LIST) { - AlertDialog.Builder alt_bld = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder alt_bld = new AlertDialog.Builder(context); String title = ""; String message = ""; alt_bld.setTitle(R.string.action_lists_delete); diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java index 43d2a498..f4e12e22 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java @@ -50,7 +50,6 @@ import android.text.Spanned; import android.text.TextUtils; import android.text.style.ForegroundColorSpan; import android.util.TypedValue; -import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; @@ -439,7 +438,7 @@ public class StatusAdapter extends RecyclerView.Adapter }); holder.binding.statusAddCustomEmoji.setOnClickListener(v -> { - final AlertDialog.Builder builder = new AlertDialog.Builder(context, Helper.dialogStyle()); + final AlertDialog.Builder builder = new AlertDialog.Builder(context); int paddingPixel = 15; float density = context.getResources().getDisplayMetrics().density; int paddingDp = (int) (paddingPixel * density); @@ -526,7 +525,6 @@ public class StatusAdapter extends RecyclerView.Adapter holder.binding.statusEmoji.setVisibility(View.VISIBLE); } - Helper.changeDrawableColor(context, R.drawable.ic_baseline_mode_edit_message_24, R.color.cyanea_accent_reference); if (theme_icons_color != -1) { Helper.changeDrawableColor(context, holder.binding.actionButtonReply, theme_icons_color); Helper.changeDrawableColor(context, holder.binding.cacheIndicator, theme_icons_color); @@ -600,9 +598,6 @@ public class StatusAdapter extends RecyclerView.Adapter if (theme_statuses_color != -1) { holder.binding.cardviewContainer.setBackgroundColor(theme_statuses_color); holder.binding.translationLabel.setBackgroundColor(theme_statuses_color); - } else { - holder.binding.cardviewContainer.setBackgroundColor(ThemeHelper.getBackgroundColor(context)); - holder.binding.translationLabel.setBackgroundColor(ThemeHelper.getBackgroundColor(context)); } if (theme_boost_header_color != -1 && status.reblog != null) { holder.binding.statusBoosterInfo.setBackgroundColor(theme_boost_header_color); @@ -818,7 +813,7 @@ public class StatusAdapter extends RecyclerView.Adapter }); holder.binding.actionButtonBoost.setOnClickListener(v -> { if (confirmBoost) { - AlertDialog.Builder alt_bld = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder alt_bld = new AlertDialog.Builder(context); if (statusToDeal.reblogged) { alt_bld.setMessage(context.getString(R.string.reblog_remove)); } else { @@ -888,7 +883,7 @@ public class StatusAdapter extends RecyclerView.Adapter }); holder.binding.actionButtonFavorite.setOnClickListener(v -> { if (confirmFav) { - AlertDialog.Builder alt_bld = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder alt_bld = new AlertDialog.Builder(context); if (status.favourited) { alt_bld.setMessage(context.getString(R.string.favourite_remove)); } else { @@ -1534,7 +1529,7 @@ public class StatusAdapter extends RecyclerView.Adapter if (ownvotes != null && ownvotes.contains(j)) { Drawable img = ContextCompat.getDrawable(context, R.drawable.ic_baseline_check_24); assert img != null; - img.setColorFilter(ContextCompat.getColor(context, R.color.cyanea_accent_reference), PorterDuff.Mode.SRC_IN); + img.setColorFilter(ContextCompat.getColor(context, R.color.colorAccent), PorterDuff.Mode.SRC_IN); img.setBounds(0, 0, (int) (20 * scale + 0.5f), (int) (20 * scale + 0.5f)); pollItemBinding.pollItemText.setCompoundDrawables(null, null, img, null); } @@ -1551,7 +1546,6 @@ public class StatusAdapter extends RecyclerView.Adapter (holder.binding.poll.multipleChoice).removeAllViews(); for (Poll.PollItem pollOption : statusToDeal.poll.options) { CheckBox cb = new CheckBox(context); - cb.setButtonTintList(ThemeHelper.getButtonColorStateList(context)); cb.setText( pollOption.getSpanTitle(context, statusToDeal, new WeakReference<>(cb)), @@ -1565,7 +1559,6 @@ public class StatusAdapter extends RecyclerView.Adapter (holder.binding.poll.singleChoiceRadioGroup).removeAllViews(); for (Poll.PollItem pollOption : statusToDeal.poll.options) { RadioButton rb = new RadioButton(context); - rb.setButtonTintList(ThemeHelper.getButtonColorStateList(context)); rb.setText( pollOption.getSpanTitle(context, statusToDeal, new WeakReference<>(rb)), @@ -1739,7 +1732,7 @@ public class StatusAdapter extends RecyclerView.Adapter } holder.binding.actionButtonMore.setOnClickListener(v -> { boolean isOwner = statusToDeal.account.id.compareTo(BaseMainActivity.currentUserID) == 0; - PopupMenu popup = new PopupMenu(new ContextThemeWrapper(context, Helper.popupStyle()), holder.binding.actionButtonMore); + PopupMenu popup = new PopupMenu(context, holder.binding.actionButtonMore); popup.getMenuInflater() .inflate(R.menu.option_toot, popup.getMenu()); if (statusToDeal.visibility.equals("private") || status.visibility.equals("direct")) { @@ -1786,7 +1779,7 @@ public class StatusAdapter extends RecyclerView.Adapter popup.setOnMenuItemClickListener(item -> { int itemId = item.getItemId(); if (itemId == R.id.action_redraft) { - AlertDialog.Builder builderInner = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder builderInner = new AlertDialog.Builder(context); builderInner.setTitle(stringArrayConf[1]); builderInner.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); builderInner.setPositiveButton(R.string.yes, (dialog, which) -> { @@ -1842,7 +1835,7 @@ public class StatusAdapter extends RecyclerView.Adapter } else if (itemId == R.id.action_open_browser) { Helper.openBrowser(context, statusToDeal.url); } else if (itemId == R.id.action_remove) { - AlertDialog.Builder builderInner = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder builderInner = new AlertDialog.Builder(context); builderInner.setTitle(stringArrayConf[0]); builderInner.setMessage(statusToDeal.content); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) @@ -1859,7 +1852,7 @@ public class StatusAdapter extends RecyclerView.Adapter })); builderInner.show(); } else if (itemId == R.id.action_block_domain) { - AlertDialog.Builder builderInner = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder builderInner = new AlertDialog.Builder(context); builderInner.setTitle(stringArrayConf[3]); String domain = statusToDeal.account.acct.split("@")[1]; builderInner.setMessage(context.getString(R.string.block_domain_confirm_message, domain)); @@ -1870,7 +1863,7 @@ public class StatusAdapter extends RecyclerView.Adapter }); builderInner.show(); } else if (itemId == R.id.action_mute) { - AlertDialog.Builder builderInner = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder builderInner = new AlertDialog.Builder(context); builderInner.setTitle(stringArrayConf[0]); builderInner.setMessage(statusToDeal.account.acct); builderInner.setNeutralButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); @@ -1909,7 +1902,7 @@ public class StatusAdapter extends RecyclerView.Adapter MastodonHelper.scheduleBoost(context, MastodonHelper.ScheduleType.TIMED_MUTED, statusToDeal, null, null); return true; } else if (itemId == R.id.action_block) { - AlertDialog.Builder builderInner = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder builderInner = new AlertDialog.Builder(context); builderInner.setTitle(stringArrayConf[1]); builderInner.setMessage(statusToDeal.account.acct); builderInner.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); @@ -2032,7 +2025,7 @@ public class StatusAdapter extends RecyclerView.Adapter } Handler mainHandler = new Handler(Looper.getMainLooper()); Runnable myRunnable = () -> { - AlertDialog.Builder builderSingle = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder builderSingle = new AlertDialog.Builder(context); builderSingle.setTitle(context.getString(R.string.choose_accounts)); final AccountsSearchAdapter accountsSearchAdapter = new AccountsSearchAdapter(context, accountList); final BaseAccount[] accountArray = new BaseAccount[accounts.size()]; diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusDraftAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusDraftAdapter.java index 13403016..1942e61c 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusDraftAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusDraftAdapter.java @@ -95,7 +95,7 @@ public class StatusDraftAdapter extends RecyclerView.Adapter { - AlertDialog.Builder unfollowConfirm = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder unfollowConfirm = new AlertDialog.Builder(context); unfollowConfirm.setMessage(context.getString(R.string.remove_draft)); unfollowConfirm.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); unfollowConfirm.setPositiveButton(R.string.delete, (dialog, which) -> { diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusHistoryAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusHistoryAdapter.java index f1fc2ff0..2d81d805 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusHistoryAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusHistoryAdapter.java @@ -22,7 +22,6 @@ import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.RecyclerView; @@ -93,8 +92,6 @@ public class StatusHistoryAdapter extends RecyclerView.Adapter { - AlertDialog.Builder unfollowConfirm = new AlertDialog.Builder(context, Helper.dialogStyle()); + AlertDialog.Builder unfollowConfirm = new AlertDialog.Builder(context); unfollowConfirm.setMessage(context.getString(R.string.remove_scheduled)); unfollowConfirm.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); unfollowConfirm.setPositiveButton(R.string.delete, (dialog, which) -> { diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/SuggestionAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/SuggestionAdapter.java index ced0db25..c1a817a4 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/SuggestionAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/SuggestionAdapter.java @@ -18,7 +18,6 @@ package app.fedilab.android.ui.drawer; import android.app.Activity; import android.content.Context; import android.content.Intent; -import android.content.res.ColorStateList; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -27,7 +26,6 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.core.app.ActivityOptionsCompat; -import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelStoreOwner; import androidx.recyclerview.widget.RecyclerView; @@ -92,7 +90,6 @@ public class SuggestionAdapter extends RecyclerView.Adapter { } tagViewHolder.binding.tagStats.setText(context.getString(R.string.talking_about, stat)); LineDataSet dataTrending = new LineDataSet(trendsEntry, context.getString(R.string.trending)); - dataTrending.setColor(ContextCompat.getColor(context, R.color.cyanea_accent_reference)); - dataTrending.setValueTextColor(ContextCompat.getColor(context, R.color.cyanea_accent_reference)); - dataTrending.setFillColor(ContextCompat.getColor(context, R.color.cyanea_accent_reference)); dataTrending.setDrawValues(false); dataTrending.setDrawFilled(true); dataTrending.setDrawCircles(false); diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/TopMenuAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/TopMenuAdapter.java index 439316e2..82f115a5 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/TopMenuAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/TopMenuAdapter.java @@ -83,7 +83,7 @@ public class TopMenuAdapter extends RecyclerView.Adapter { if (token != null) { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireActivity(), Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireActivity()); dialogBuilder.setCancelable(false); dialogBuilder.setPositiveButton(R.string.validate, (dialog, which) -> { dialog.dismiss(); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentComposeSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentComposeSettings.java index f40623d1..cf86ee08 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentComposeSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentComposeSettings.java @@ -25,7 +25,6 @@ import androidx.preference.SwitchPreferenceCompat; import app.fedilab.android.BaseMainActivity; import app.fedilab.android.R; -import app.fedilab.android.helper.Helper; public class FragmentComposeSettings extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { @@ -38,7 +37,6 @@ public class FragmentComposeSettings extends PreferenceFragmentCompat implements private void createPref() { SwitchPreferenceCompat SET_WATERMARK = findPreference(getString(R.string.SET_WATERMARK)); if (SET_WATERMARK != null) { - SET_WATERMARK.getContext().setTheme(Helper.dialogStyle()); } SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); EditTextPreference SET_WATERMARK_TEXT = findPreference(getString(R.string.SET_WATERMARK_TEXT)); @@ -47,10 +45,6 @@ public class FragmentComposeSettings extends PreferenceFragmentCompat implements SET_WATERMARK_TEXT.setText(val); } MultiSelectListPreference SET_SELECTED_LANGUAGE = findPreference(getString(R.string.SET_SELECTED_LANGUAGE)); - if (SET_SELECTED_LANGUAGE != null) { - SET_SELECTED_LANGUAGE.getContext().setTheme(Helper.dialogStyle()); - } - } @Override diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentInterfaceSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentInterfaceSettings.java index fcffbfb5..54ee23a2 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentInterfaceSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentInterfaceSettings.java @@ -64,7 +64,6 @@ public class FragmentInterfaceSettings extends PreferenceFragmentCompat implemen } ListPreference SET_LOGO_LAUNCHER = findPreference(getString(R.string.SET_LOGO_LAUNCHER)); if (SET_LOGO_LAUNCHER != null) { - SET_LOGO_LAUNCHER.getContext().setTheme(Helper.dialogStyle()); SET_LOGO_LAUNCHER.setIcon(LogoHelper.getDrawable(SET_LOGO_LAUNCHER.getValue())); } recreate = false; diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentLanguageSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentLanguageSettings.java index 1f99ccaf..8ccd462c 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentLanguageSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentLanguageSettings.java @@ -37,9 +37,6 @@ public class FragmentLanguageSettings extends PreferenceFragmentCompat implement @SuppressLint("ApplySharedPref") private void createPref() { ListPreference SET_DEFAULT_LOCALE_NEW = findPreference(getString(R.string.SET_DEFAULT_LOCALE_NEW)); - if (SET_DEFAULT_LOCALE_NEW != null) { - SET_DEFAULT_LOCALE_NEW.getContext().setTheme(Helper.dialogStyle()); - } Preference SET_TRANSLATE_VALUES_RESET = findPreference(getString(R.string.SET_TRANSLATE_VALUES_RESET)); SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentNotificationsSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentNotificationsSettings.java index 56427025..4cfd746d 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentNotificationsSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentNotificationsSettings.java @@ -36,7 +36,6 @@ import java.util.ArrayList; import java.util.List; import app.fedilab.android.R; -import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.PushHelper; import app.fedilab.android.helper.settings.TimePreference; import app.fedilab.android.helper.settings.TimePreferenceDialogFragment; @@ -80,9 +79,7 @@ public class FragmentNotificationsSettings extends PreferenceFragmentCompat impl ListPreference SET_NOTIFICATION_TYPE = findPreference(getString(R.string.SET_NOTIFICATION_TYPE)); - if (SET_NOTIFICATION_TYPE != null) { - SET_NOTIFICATION_TYPE.getContext().setTheme(Helper.dialogStyle()); - } + String[] notificationValues = getResources().getStringArray(R.array.SET_NOTIFICATION_TYPE_VALUE); if (SET_NOTIFICATION_TYPE != null && SET_NOTIFICATION_TYPE.getValue().equals(notificationValues[2])) { PreferenceCategory notification_sounds = findPreference("notification_sounds"); @@ -108,9 +105,7 @@ public class FragmentNotificationsSettings extends PreferenceFragmentCompat impl return; } else if (SET_NOTIFICATION_TYPE != null && SET_NOTIFICATION_TYPE.getValue().equals(notificationValues[1])) { ListPreference SET_NOTIFICATION_DELAY_VALUE = findPreference(getString(R.string.SET_NOTIFICATION_DELAY_VALUE)); - if (SET_NOTIFICATION_DELAY_VALUE != null) { - SET_NOTIFICATION_DELAY_VALUE.getContext().setTheme(Helper.dialogStyle()); - } + ListPreference SET_PUSH_DISTRIBUTOR = findPreference("SET_PUSH_DISTRIBUTOR"); if (SET_PUSH_DISTRIBUTOR != null) { preferenceScreen.removePreferenceRecursively("SET_PUSH_DISTRIBUTOR"); @@ -122,7 +117,6 @@ public class FragmentNotificationsSettings extends PreferenceFragmentCompat impl } ListPreference SET_PUSH_DISTRIBUTOR = findPreference(getString(R.string.SET_PUSH_DISTRIBUTOR)); if (SET_PUSH_DISTRIBUTOR != null) { - SET_PUSH_DISTRIBUTOR.getContext().setTheme(Helper.dialogStyle()); List distributors = UnifiedPush.getDistributors(requireActivity(), new ArrayList<>()); SET_PUSH_DISTRIBUTOR.setValue(UnifiedPush.getDistributor(requireActivity())); SET_PUSH_DISTRIBUTOR.setEntries(distributors.toArray(new String[0])); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentPrivacySettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentPrivacySettings.java index aa8be58f..c6de48b6 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentPrivacySettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentPrivacySettings.java @@ -22,7 +22,6 @@ import androidx.preference.EditTextPreference; import androidx.preference.PreferenceFragmentCompat; import app.fedilab.android.R; -import app.fedilab.android.helper.Helper; public class FragmentPrivacySettings extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { @@ -34,9 +33,6 @@ public class FragmentPrivacySettings extends PreferenceFragmentCompat implements private void createPref() { EditTextPreference SET_INVIDIOUS_HOST = findPreference(getString(R.string.SET_INVIDIOUS_HOST)); - if (SET_INVIDIOUS_HOST != null) { - SET_INVIDIOUS_HOST.getContext().setTheme(Helper.dialogStyle()); - } } @Override diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java index fa39d9cf..9816b48b 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java @@ -44,9 +44,6 @@ import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceManager; import com.bumptech.glide.Glide; -import com.jaredrummler.cyanea.Cyanea; -import com.jaredrummler.cyanea.prefs.CyaneaSettingsActivity; -import com.jaredrummler.cyanea.prefs.CyaneaTheme; import java.io.BufferedReader; import java.io.FileNotFoundException; @@ -63,7 +60,6 @@ import java.util.List; import app.fedilab.android.R; import app.fedilab.android.activities.ComposeActivity; -import app.fedilab.android.activities.SettingsActivity; import app.fedilab.android.databinding.PopupStatusThemeBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.ThemeHelper; @@ -76,7 +72,6 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements private List> listOfThemes; private SharedPreferences appPref; private SharedPreferences cyneaPref; - public ActionTheming actionTheming; private boolean shouldRestart; @Override @@ -86,7 +81,6 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements createPref(); listOfThemes = ThemeHelper.getContributorsTheme(requireActivity()); shouldRestart = false; - actionTheming = (SettingsActivity) requireActivity(); } @@ -106,9 +100,7 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements getPreferenceScreen().getSharedPreferences() .unregisterOnSharedPreferenceChangeListener(this); } - if (shouldRestart && actionTheming != null) { - actionTheming.restart(); - } + } @Override @@ -121,9 +113,6 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements Helper.recreateMainActivity(requireActivity()); } - public interface ActionTheming { - void restart(); - } @SuppressWarnings("deprecation") @@ -264,7 +253,7 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements br = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)); String sCurrentLine; SharedPreferences.Editor appEditor = appPref.edit(); - Cyanea.Editor cyaneaEditor = Cyanea.getInstance().edit(); + appEditor.putBoolean("use_custom_theme", true); while ((sCurrentLine = br.readLine()) != null) { String[] line = sCurrentLine.split(","); @@ -272,35 +261,15 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements String key = line[0]; String value = line[1]; if (key.compareTo("pref_color_navigation_bar") == 0) { - cyaneaEditor.shouldTintNavBar(Boolean.parseBoolean(value)); + } else if (key.compareTo("pref_color_background") == 0) { - cyaneaEditor.backgroundDarkLighter(Integer.parseInt(value)); - cyaneaEditor.backgroundLightDarker(Integer.parseInt(value)); - cyaneaEditor.backgroundDark(Integer.parseInt(value)); - cyaneaEditor.backgroundLightLighter(Integer.parseInt(value)); - cyaneaEditor.backgroundDarkDarker(Integer.parseInt(value)); - cyaneaEditor.background(Integer.parseInt(value)); - cyaneaEditor.backgroundDark(Integer.parseInt(value)); - cyaneaEditor.backgroundLight(Integer.parseInt(value)); + } else if (key.compareTo("base_theme") == 0) { - List list = CyaneaTheme.Companion.from(requireActivity().getAssets(), "themes/cyanea_themes.json"); - CyaneaTheme theme = list.get(Integer.parseInt(value)); - cyaneaEditor.baseTheme(theme.getBaseTheme()); - if (Integer.parseInt(value) == 0 || Integer.parseInt(value) == 2) { - cyaneaEditor.menuIconColor(ContextCompat.getColor(requireActivity(), R.color.dark_text)); - cyaneaEditor.subMenuIconColor(ContextCompat.getColor(requireActivity(), R.color.dark_text)); - } else { - cyaneaEditor.menuIconColor(ContextCompat.getColor(requireActivity(), R.color.black)); - cyaneaEditor.subMenuIconColor(ContextCompat.getColor(requireActivity(), R.color.black)); - } + } else if (key.compareTo("theme_accent") == 0) { - cyaneaEditor.accentLight(Integer.parseInt(value)); - cyaneaEditor.accent(Integer.parseInt(value)); - cyaneaEditor.accentDark(Integer.parseInt(value)); + } else if (key.compareTo("theme_primary") == 0) { - cyaneaEditor.primary(Integer.parseInt(value)); - cyaneaEditor.primaryLight(Integer.parseInt(value)); - cyaneaEditor.primaryDark(Integer.parseInt(value)); + } else { if (value != null && value.matches("-?\\d+")) { appEditor.putInt(key, Integer.parseInt(value)); @@ -311,7 +280,6 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements } } appEditor.commit(); - cyaneaEditor.apply().recreate(requireActivity()); Helper.recreateMainActivity(requireActivity()); } catch (IOException e) { e.printStackTrace(); @@ -337,7 +305,7 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements Preference launch_custom_theme = findPreference("launch_custom_theme"); if (launch_custom_theme != null) { launch_custom_theme.setOnPreferenceClickListener(preference -> { - startActivity(new Intent(requireActivity(), CyaneaSettingsActivity.class)); + shouldRestart = true; return false; }); @@ -347,7 +315,7 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements if (contributors_themes != null) { contributors_themes.setOnPreferenceClickListener(preference -> { final int[] currentPosition = {0}; - AlertDialog.Builder builderSingle = new AlertDialog.Builder(requireActivity(), Helper.dialogStyle()); + AlertDialog.Builder builderSingle = new AlertDialog.Builder(requireActivity()); builderSingle.setTitle(getString(R.string.select_a_theme)); PopupStatusThemeBinding binding = PopupStatusThemeBinding.inflate(getLayoutInflater(), new LinearLayout(requireActivity()), false); binding.selectTheme.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @@ -392,9 +360,7 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements } ListPreference settings_theme = findPreference("settings_theme"); - if (settings_theme != null) { - settings_theme.getContext().setTheme(Helper.dialogStyle()); - } + Preference theme_link_color = findPreference("theme_link_color"); Preference theme_boost_header_color = findPreference("theme_boost_header_color"); @@ -469,7 +435,7 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements } if (reset_pref != null) { reset_pref.setOnPreferenceClickListener(preference -> { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireActivity(), Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireActivity()); dialogBuilder.setMessage(R.string.reset_color); dialogBuilder.setPositiveButton(R.string.reset, (dialog, id) -> { reset(); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentTimelinesSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentTimelinesSettings.java index a8f2a5ee..a2420bb1 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentTimelinesSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentTimelinesSettings.java @@ -22,7 +22,6 @@ import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceManager; import app.fedilab.android.R; -import app.fedilab.android.helper.Helper; public class FragmentTimelinesSettings extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { @@ -35,7 +34,6 @@ public class FragmentTimelinesSettings extends PreferenceFragmentCompat implemen private void createPref() { ListPreference SET_LOAD_MEDIA_TYPE = findPreference(getString(R.string.SET_LOAD_MEDIA_TYPE)); if (SET_LOAD_MEDIA_TYPE != null) { - SET_LOAD_MEDIA_TYPE.getContext().setTheme(Helper.dialogStyle()); } } diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAccount.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAccount.java index 0d7f9694..e160e3f5 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAccount.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAccount.java @@ -74,15 +74,13 @@ public class FragmentMastodonAccount extends Fragment { } flagLoading = false; binding = FragmentPaginationBinding.inflate(inflater, container, false); - binding.getRoot().setBackgroundColor(ThemeHelper.getBackgroundColor(requireActivity())); return binding.getRoot(); } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - int c1 = getResources().getColor(R.color.cyanea_accent_reference); - binding.swipeContainer.setProgressBackgroundColorSchemeColor(getResources().getColor(R.color.cyanea_primary_reference)); + int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); binding.swipeContainer.setColorSchemeColors( c1, c1, c1 ); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAnnouncement.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAnnouncement.java index 9c7ee82e..8684584c 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAnnouncement.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAnnouncement.java @@ -47,9 +47,7 @@ public class FragmentMastodonAnnouncement extends Fragment { binding = FragmentPaginationBinding.inflate(inflater, container, false); View root = binding.getRoot(); - binding.getRoot().setBackgroundColor(ThemeHelper.getBackgroundColor(requireActivity())); - int c1 = getResources().getColor(R.color.cyanea_accent_reference); - binding.swipeContainer.setProgressBackgroundColorSchemeColor(getResources().getColor(R.color.cyanea_primary_reference)); + int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); binding.swipeContainer.setColorSchemeColors( c1, c1, c1 ); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonContext.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonContext.java index 2388ecc1..bd38e85d 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonContext.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonContext.java @@ -151,12 +151,10 @@ public class FragmentMastodonContext extends Fragment { getChildFragmentManager().beginTransaction().remove(this).commit(); } binding = FragmentPaginationBinding.inflate(inflater, container, false); - int c1 = getResources().getColor(R.color.cyanea_accent_reference); - binding.swipeContainer.setProgressBackgroundColorSchemeColor(getResources().getColor(R.color.cyanea_primary_reference)); + int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); binding.swipeContainer.setColorSchemeColors( c1, c1, c1 ); - binding.getRoot().setBackgroundColor(ThemeHelper.getBackgroundColor(requireActivity())); statusesVM = new ViewModelProvider(FragmentMastodonContext.this).get(StatusesVM.class); binding.recyclerView.setNestedScrollingEnabled(true); this.statuses = new ArrayList<>(); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonConversation.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonConversation.java index eddc97b7..5e2aecfb 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonConversation.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonConversation.java @@ -81,7 +81,6 @@ public class FragmentMastodonConversation extends Fragment implements Conversati ViewGroup container, Bundle savedInstanceState) { flagLoading = false; binding = FragmentPaginationBinding.inflate(inflater, container, false); - binding.getRoot().setBackgroundColor(ThemeHelper.getBackgroundColor(requireActivity())); isViewInitialized = false; return binding.getRoot(); } @@ -239,8 +238,7 @@ public class FragmentMastodonConversation extends Fragment implements Conversati super.onViewCreated(view, savedInstanceState); - int c1 = getResources().getColor(R.color.cyanea_accent_reference); - binding.swipeContainer.setProgressBackgroundColorSchemeColor(getResources().getColor(R.color.cyanea_primary_reference)); + int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); binding.swipeContainer.setColorSchemeColors( c1, c1, c1 ); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonDomainBlock.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonDomainBlock.java index 65209c2f..b255ca16 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonDomainBlock.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonDomainBlock.java @@ -53,15 +53,13 @@ public class FragmentMastodonDomainBlock extends Fragment { ViewGroup container, Bundle savedInstanceState) { binding = FragmentPaginationBinding.inflate(inflater, container, false); - binding.getRoot().setBackgroundColor(ThemeHelper.getBackgroundColor(requireActivity())); return binding.getRoot(); } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - int c1 = getResources().getColor(R.color.cyanea_accent_reference); - binding.swipeContainer.setProgressBackgroundColorSchemeColor(getResources().getColor(R.color.cyanea_primary_reference)); + int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); binding.swipeContainer.setColorSchemeColors( c1, c1, c1 ); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonNotification.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonNotification.java index 65bb4163..14b632e3 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonNotification.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonNotification.java @@ -190,9 +190,7 @@ public class FragmentMastodonNotification extends Fragment implements Notificati notificationType = (NotificationTypeEnum) getArguments().get(Helper.ARG_NOTIFICATION_TYPE); } aggregateNotification = false; - binding.getRoot().setBackgroundColor(ThemeHelper.getBackgroundColor(requireActivity())); - int c1 = getResources().getColor(R.color.cyanea_accent_reference); - binding.swipeContainer.setProgressBackgroundColorSchemeColor(getResources().getColor(R.color.cyanea_primary_reference)); + int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); binding.swipeContainer.setColorSchemeColors( c1, c1, c1 ); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonSuggestion.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonSuggestion.java index 417876cd..9448f4ec 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonSuggestion.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonSuggestion.java @@ -52,15 +52,13 @@ public class FragmentMastodonSuggestion extends Fragment { ViewGroup container, Bundle savedInstanceState) { flagLoading = false; binding = FragmentPaginationBinding.inflate(inflater, container, false); - binding.getRoot().setBackgroundColor(ThemeHelper.getBackgroundColor(requireActivity())); return binding.getRoot(); } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - int c1 = getResources().getColor(R.color.cyanea_accent_reference); - binding.swipeContainer.setProgressBackgroundColorSchemeColor(getResources().getColor(R.color.cyanea_primary_reference)); + int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); binding.swipeContainer.setColorSchemeColors( c1, c1, c1 ); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTag.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTag.java index 984c19eb..ff429c73 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTag.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTag.java @@ -59,15 +59,13 @@ public class FragmentMastodonTag extends Fragment { } binding = FragmentPaginationBinding.inflate(inflater, container, false); - binding.getRoot().setBackgroundColor(ThemeHelper.getBackgroundColor(requireActivity())); return binding.getRoot(); } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - int c1 = getResources().getColor(R.color.cyanea_accent_reference); - binding.swipeContainer.setProgressBackgroundColorSchemeColor(getResources().getColor(R.color.cyanea_primary_reference)); + int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); binding.swipeContainer.setColorSchemeColors( c1, c1, c1 ); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java index e23efb62..5289b647 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java @@ -364,10 +364,8 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. LocalBroadcastManager.getInstance(requireActivity()).registerReceiver(receive_action, new IntentFilter(Helper.RECEIVE_STATUS_ACTION)); binding = FragmentPaginationBinding.inflate(inflater, container, false); - binding.getRoot().setBackgroundColor(ThemeHelper.getBackgroundColor(requireActivity())); - int c1 = getResources().getColor(R.color.cyanea_accent_reference); - binding.swipeContainer.setProgressBackgroundColorSchemeColor(getResources().getColor(R.color.cyanea_primary_reference)); + int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); binding.swipeContainer.setColorSchemeColors( c1, c1, c1 ); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentNotificationContainer.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentNotificationContainer.java index 97e0b50f..2b466ff5 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentNotificationContainer.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentNotificationContainer.java @@ -27,9 +27,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; import androidx.core.content.res.ResourcesCompat; -import androidx.core.graphics.drawable.DrawableCompat; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.preference.PreferenceManager; @@ -45,8 +43,6 @@ import app.fedilab.android.BaseMainActivity; import app.fedilab.android.R; import app.fedilab.android.databinding.FragmentNotificationContainerBinding; import app.fedilab.android.databinding.PopupNotificationSettingsBinding; -import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.pageadapter.FedilabNotificationPageAdapter; import app.fedilab.android.viewmodel.mastodon.NotificationsVM; import es.dmoral.toasty.Toasty; @@ -89,24 +85,13 @@ public class FragmentNotificationContainer extends Fragment { } AtomicBoolean changes = new AtomicBoolean(false); binding.settings.setOnClickListener(v -> { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireActivity(), Helper.dialogStyle()); + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireActivity()); PopupNotificationSettingsBinding dialogView = PopupNotificationSettingsBinding.inflate(getLayoutInflater()); dialogBuilder.setView(dialogView.getRoot()); - ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayMentions); - ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayFavourites); - ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayReblogs); - ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayPollResults); - ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayUpdatesFromPeople); - ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayFollows); - ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayUpdates); - ThemeHelper.changeButtonColor(requireActivity(), dialogView.displaySignups); - ThemeHelper.changeButtonColor(requireActivity(), dialogView.displayReports); - DrawableCompat.setTintList(DrawableCompat.wrap(dialogView.displayAllCategories.getThumbDrawable()), ThemeHelper.getSwitchCompatThumbDrawable(requireActivity())); - DrawableCompat.setTintList(DrawableCompat.wrap(dialogView.displayAllCategories.getTrackDrawable()), ThemeHelper.getSwitchCompatTrackDrawable(requireActivity())); dialogView.clearAllNotif.setOnClickListener(v1 -> { - AlertDialog.Builder db = new AlertDialog.Builder(requireActivity(), Helper.dialogStyle()); + AlertDialog.Builder db = new AlertDialog.Builder(requireActivity()); db.setTitle(R.string.delete_notification_ask_all); db.setMessage(R.string.delete_notification_all_warning); db.setPositiveButton(R.string.delete_all, (dialog, id) -> { @@ -233,8 +218,6 @@ public class FragmentNotificationContainer extends Fragment { alertDialog.show(); }); - binding.tabLayout.setTabTextColors(ThemeHelper.getAttColor(requireActivity(), R.attr.mTextColor), ContextCompat.getColor(requireActivity(), R.color.cyanea_accent_dark_reference)); - binding.tabLayout.setTabIconTint(ThemeHelper.getColorStateList(requireActivity())); binding.viewpagerNotificationContainer.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(binding.tabLayout)); binding.tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentProfileTimeline.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentProfileTimeline.java index 03c76339..76bec3fb 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentProfileTimeline.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentProfileTimeline.java @@ -21,7 +21,6 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import com.google.android.material.tabs.TabLayout; @@ -30,7 +29,6 @@ import app.fedilab.android.R; import app.fedilab.android.client.entities.api.Account; import app.fedilab.android.databinding.FragmentProfileTimelinesBinding; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.pageadapter.FedilabProfilePageAdapter; public class FragmentProfileTimeline extends Fragment { @@ -56,8 +54,6 @@ public class FragmentProfileTimeline extends Fragment { binding.tabLayout.addTab(binding.tabLayout.newTab().setText(getString(R.string.toots))); binding.tabLayout.addTab(binding.tabLayout.newTab().setText(getString(R.string.replies))); binding.tabLayout.addTab(binding.tabLayout.newTab().setText(getString(R.string.media))); - binding.tabLayout.setTabTextColors(ThemeHelper.getAttColor(requireActivity(), R.attr.mTextColor), ContextCompat.getColor(requireActivity(), R.color.cyanea_accent_dark_reference)); - binding.tabLayout.setTabIconTint(ThemeHelper.getColorStateList(requireActivity())); binding.viewpager.setAdapter(new FedilabProfilePageAdapter(getChildFragmentManager(), account, checkRemotely)); binding.viewpager.setOffscreenPageLimit(3); binding.viewpager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(binding.tabLayout)); diff --git a/app/src/main/res/drawable/ic_compose_attachment_play.xml b/app/src/main/res/drawable/ic_compose_attachment_play.xml index 391d042b..9edb5960 100644 --- a/app/src/main/res/drawable/ic_compose_attachment_play.xml +++ b/app/src/main/res/drawable/ic_compose_attachment_play.xml @@ -4,7 +4,7 @@ android:viewportWidth="24" android:viewportHeight="24"> - - - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/menu_selector_light.xml b/app/src/main/res/drawable/menu_selector_light.xml index acb32c17..4ec5c80b 100644 --- a/app/src/main/res/drawable/menu_selector_light.xml +++ b/app/src/main/res/drawable/menu_selector_light.xml @@ -1,7 +1,7 @@ - - - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_counter.xml b/app/src/main/res/drawable/shape_counter.xml index 2356395e..ba8947a8 100644 --- a/app/src/main/res/drawable/shape_counter.xml +++ b/app/src/main/res/drawable/shape_counter.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/res/drawable/translation_border.xml b/app/src/main/res/drawable/translation_border.xml index f5c573b7..90d68440 100644 --- a/app/src/main/res/drawable/translation_border.xml +++ b/app/src/main/res/drawable/translation_border.xml @@ -2,6 +2,6 @@ + android:color="?attr/colorAccent" /> diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index 9914f29a..cee4597a 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -131,8 +131,7 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/support_the_app_on_liberapay" - android:textColor="@color/cyanea_accent_dark_reference" - app:strokeColor="@color/cyanea_accent_dark_reference" /> + /> @@ -177,7 +174,6 @@ + app:iconTint="?attr/colorAccent" + app:strokeColor="?attr/colorAccent" /> + app:iconTint="?attr/colorAccent" + app:strokeColor="?attr/colorAccent" /> + app:iconTint="?attr/colorAccent" + app:strokeColor="?attr/colorAccent" /> + app:iconTint="?attr/colorAccent" + app:strokeColor="?attr/colorAccent" /> + app:iconTint="?attr/colorAccent" + app:strokeColor="?attr/colorAccent" /> diff --git a/app/src/main/res/layout/activity_admin_account.xml b/app/src/main/res/layout/activity_admin_account.xml index 664fb531..d0eba40e 100644 --- a/app/src/main/res/layout/activity_admin_account.xml +++ b/app/src/main/res/layout/activity_admin_account.xml @@ -26,13 +26,11 @@ android:id="@+id/appBar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:backgroundTint="?backgroundColorLight" android:fitsSystemWindows="true"> + android:text="@string/approve" /> + android:text="@string/disable" /> + android:text="@string/silence" /> + android:text="@string/suspend" /> diff --git a/app/src/main/res/layout/activity_admin_actions.xml b/app/src/main/res/layout/activity_admin_actions.xml index 79ea3386..9f352c4b 100644 --- a/app/src/main/res/layout/activity_admin_actions.xml +++ b/app/src/main/res/layout/activity_admin_actions.xml @@ -20,11 +20,8 @@ android:paddingVertical="12dp" android:text="@string/reports" android:textAlignment="textStart" - android:textColor="@color/cyanea_accent_dark_reference" app:icon="@drawable/ic_baseline_navigate_next_24" - app:iconGravity="end" - app:iconTint="@color/cyanea_accent_dark_reference" - app:strokeColor="@color/cyanea_accent_dark_reference" /> + app:iconGravity="end" /> + app:iconGravity="end" /> + app:iconGravity="end" /> diff --git a/app/src/main/res/layout/activity_admin_domainblock.xml b/app/src/main/res/layout/activity_admin_domainblock.xml index 6e1e1caf..4c84c2f0 100644 --- a/app/src/main/res/layout/activity_admin_domainblock.xml +++ b/app/src/main/res/layout/activity_admin_domainblock.xml @@ -70,8 +70,7 @@ android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_weight="1" - android:text="@string/admin_reject_media" - app:buttonTint="@color/cyanea_accent_dark_reference" /> + android:text="@string/admin_reject_media" /> + android:text="@string/admin_reject_reports" /> + android:text="@string/admin_reject_obfuscate" /> + app:icon="@drawable/ic_check_white_24dp" /> diff --git a/app/src/main/res/layout/activity_admin_report.xml b/app/src/main/res/layout/activity_admin_report.xml index 1dd0f3f2..bee3888c 100644 --- a/app/src/main/res/layout/activity_admin_report.xml +++ b/app/src/main/res/layout/activity_admin_report.xml @@ -31,11 +31,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="5dp" - android:textColor="@color/cyanea_accent_dark_reference" app:layout_constraintEnd_toStartOf="@id/status" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:strokeColor="@color/cyanea_accent_dark_reference" /> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toBottomOf="@id/stats_bottom_barrier" /> + app:layout_constraintTop_toBottomOf="@id/stats_bottom_barrier" /> + app:layout_constraintTop_toBottomOf="@id/allow_reject_buttons_barrier" /> + app:layout_constraintTop_toBottomOf="@id/allow_reject_buttons_barrier" /> + app:layout_constraintTop_toBottomOf="@id/warn_disable_buttons_barrier" /> + app:layout_constraintTop_toBottomOf="@id/warn_disable_buttons_barrier" /> + android:layout_height="wrap_content"> diff --git a/app/src/main/res/layout/activity_conversation.xml b/app/src/main/res/layout/activity_conversation.xml index 4497d09b..21bb55f4 100644 --- a/app/src/main/res/layout/activity_conversation.xml +++ b/app/src/main/res/layout/activity_conversation.xml @@ -31,8 +31,7 @@ + android:layout_height="wrap_content"> + android:layout_height="wrap_content"> diff --git a/app/src/main/res/layout/activity_edit_profile.xml b/app/src/main/res/layout/activity_edit_profile.xml index 0bae2305..a0e42f0d 100644 --- a/app/src/main/res/layout/activity_edit_profile.xml +++ b/app/src/main/res/layout/activity_edit_profile.xml @@ -50,11 +50,9 @@ android:padding="1dp" android:scaleType="centerCrop" android:src="@drawable/default_banner" - app:strokeColor="@color/cyanea_accent_dark_reference" app:strokeWidth="1dp" /> + app:layout_constraintTop_toBottomOf="@id/banner_pp_container" /> + app:layout_constraintStart_toEndOf="@id/account_pp_container" /> + app:icon="@drawable/ic_baseline_add_24" /> @@ -221,42 +208,38 @@ @@ -309,7 +292,7 @@ @@ -37,7 +36,6 @@ android:visibility="gone"> @@ -52,6 +50,5 @@ android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:contentDescription="@string/add_filter" - android:src="@drawable/ic_baseline_add_24" - app:backgroundTint="@color/cyanea_accent_dark_reference" /> + android:src="@drawable/ic_baseline_add_24" /> diff --git a/app/src/main/res/layout/activity_hashtag.xml b/app/src/main/res/layout/activity_hashtag.xml index a8f10230..f3750296 100644 --- a/app/src/main/res/layout/activity_hashtag.xml +++ b/app/src/main/res/layout/activity_hashtag.xml @@ -30,8 +30,7 @@ + android:layout_height="wrap_content"> + android:src="@drawable/ic_baseline_mode_24" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_instance.xml b/app/src/main/res/layout/activity_instance.xml index d0a4aa4c..72076e86 100644 --- a/app/src/main/res/layout/activity_instance.xml +++ b/app/src/main/res/layout/activity_instance.xml @@ -126,7 +126,6 @@ tools:visibility="visible"> @@ -140,7 +139,6 @@ android:layout_margin="@dimen/fab_margin" android:contentDescription="@string/contact_instance_admin" android:src="@drawable/ic_baseline_mail_outline_24" - app:backgroundTint="@color/cyanea_accent_dark_reference" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" /> @@ -176,14 +174,12 @@ android:paddingVertical="12dp" android:text="@string/close" android:textAlignment="textStart" - android:textColor="@color/cyanea_accent_dark_reference" app:layout_constraintTop_toBottomOf="@+id/privacy" android:textAllCaps="false" android:textSize="16sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:strokeColor="@color/cyanea_accent_dark_reference" /> + app:layout_constraintStart_toStartOf="parent" /> diff --git a/app/src/main/res/layout/activity_instance_profile.xml b/app/src/main/res/layout/activity_instance_profile.xml index e7c6621e..445dae09 100644 --- a/app/src/main/res/layout/activity_instance_profile.xml +++ b/app/src/main/res/layout/activity_instance_profile.xml @@ -187,7 +187,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 603b54f1..1e002c16 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -60,7 +60,6 @@ android:layout_weight="1" android:background="@color/transparent" app:tabGravity="fill" - app:tabIndicatorColor="@color/cyanea_accent_dark_reference" app:tabMaxWidth="0dp" app:tabMode="scrollable" /> @@ -111,7 +110,6 @@ android:layout_margin="@dimen/fab_margin" android:contentDescription="@string/compose" android:src="@drawable/ic_baseline_mode_24" - app:backgroundTint="@color/cyanea_accent_dark_reference" app:layout_constraintBottom_toTopOf="@+id/bottom_nav_view" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -120,9 +118,6 @@ android:id="@+id/bottom_nav_view" android:layout_width="match_parent" android:layout_height="?actionBarSize" - app:backgroundTint="@color/cyanea_primary_reference" - app:itemIconTint="@color/cyanea_accent_dark_reference" - app:itemTextColor="@color/cyanea_accent_dark_reference" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> @@ -143,9 +138,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" - android:background="@color/cyanea_primary_dark_reference" android:fitsSystemWindows="false" - app:itemIconTint="?menuIconColor" app:menu="@menu/activity_main_drawer" /> diff --git a/app/src/main/res/layout/activity_media_pager.xml b/app/src/main/res/layout/activity_media_pager.xml index 510961f4..d4fdbd08 100644 --- a/app/src/main/res/layout/activity_media_pager.xml +++ b/app/src/main/res/layout/activity_media_pager.xml @@ -73,7 +73,7 @@ + android:layout_height="wrap_content"> @@ -395,8 +392,6 @@ android:id="@+id/account_tabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/cyanea_primary_dark_reference" - app:tabIndicatorColor="@color/cyanea_accent_dark_reference" app:tabGravity="fill" app:tabMode="fixed" /> diff --git a/app/src/main/res/layout/activity_proxy.xml b/app/src/main/res/layout/activity_proxy.xml index f1720dfd..daedaf7c 100644 --- a/app/src/main/res/layout/activity_proxy.xml +++ b/app/src/main/res/layout/activity_proxy.xml @@ -114,7 +114,6 @@ @@ -56,7 +56,7 @@ android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="@string/top_menu" - android:textColor="@color/cyanea_accent_reference" + android:textColor="?colorAccent" android:textSize="16sp" app:layout_constraintTop_toBottomOf="@+id/lv_reorder_bottom_container" /> diff --git a/app/src/main/res/layout/activity_scheduled.xml b/app/src/main/res/layout/activity_scheduled.xml index 8a556273..4d5b0b71 100644 --- a/app/src/main/res/layout/activity_scheduled.xml +++ b/app/src/main/res/layout/activity_scheduled.xml @@ -26,7 +26,6 @@ android:id="@+id/appBar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/cyanea_primary_dark_reference" android:fitsSystemWindows="true"> diff --git a/app/src/main/res/layout/activity_search_result_tabs.xml b/app/src/main/res/layout/activity_search_result_tabs.xml index 0ffca4bf..065e3476 100644 --- a/app/src/main/res/layout/activity_search_result_tabs.xml +++ b/app/src/main/res/layout/activity_search_result_tabs.xml @@ -25,9 +25,7 @@ android:id="@+id/search_tabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/cyanea_primary_dark_reference" app:tabGravity="fill" - app:tabIndicatorColor="@color/cyanea_accent_dark_reference" app:tabMode="scrollable" /> + android:indeterminate="true" /> diff --git a/app/src/main/res/layout/activity_status_info.xml b/app/src/main/res/layout/activity_status_info.xml index 0248c2d8..ce7c2cbb 100644 --- a/app/src/main/res/layout/activity_status_info.xml +++ b/app/src/main/res/layout/activity_status_info.xml @@ -31,8 +31,7 @@ + android:layout_height="wrap_content"> diff --git a/app/src/main/res/layout/activity_trends.xml b/app/src/main/res/layout/activity_trends.xml index c4fa4f4e..c68cb883 100644 --- a/app/src/main/res/layout/activity_trends.xml +++ b/app/src/main/res/layout/activity_trends.xml @@ -25,9 +25,7 @@ android:id="@+id/search_tabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/cyanea_primary_dark_reference" app:tabGravity="fill" - app:tabIndicatorColor="@color/cyanea_accent_dark_reference" app:tabMode="fixed" /> + android:layout_height="wrap_content"> . --> + android:layout_height="wrap_content" /> diff --git a/app/src/main/res/layout/drawer_cache.xml b/app/src/main/res/layout/drawer_cache.xml index 5b8ecb28..be24b045 100644 --- a/app/src/main/res/layout/drawer_cache.xml +++ b/app/src/main/res/layout/drawer_cache.xml @@ -45,7 +45,6 @@ android:layout_marginTop="10dp" android:checked="true" android:text="@string/messages_in_cache_for_home" - app:buttonTint="@color/cyanea_accent_dark_reference" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/pp" /> @@ -68,7 +67,6 @@ android:layout_marginTop="10dp" android:checked="true" android:text="@string/messages_in_cache_for_other_timelines" - app:buttonTint="@color/cyanea_accent_dark_reference" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/label_home_timeline_cache_count" /> @@ -91,7 +89,6 @@ android:layout_marginTop="10dp" android:checked="false" android:text="@string/messages_stored_in_drafts" - app:buttonTint="@color/cyanea_accent_dark_reference" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/label_timelines_cache_count" /> diff --git a/app/src/main/res/layout/drawer_checkbox.xml b/app/src/main/res/layout/drawer_checkbox.xml index 06ded683..43798ea1 100644 --- a/app/src/main/res/layout/drawer_checkbox.xml +++ b/app/src/main/res/layout/drawer_checkbox.xml @@ -1,7 +1,5 @@ + android:layout_height="wrap_content" /> diff --git a/app/src/main/res/layout/drawer_conversation.xml b/app/src/main/res/layout/drawer_conversation.xml index 722c67dd..7f07c14d 100644 --- a/app/src/main/res/layout/drawer_conversation.xml +++ b/app/src/main/res/layout/drawer_conversation.xml @@ -88,7 +88,6 @@ android:layout_marginHorizontal="6dp" android:layout_marginTop="6dp" android:textAppearance="@style/TextAppearance.AppCompat.Body2" - android:textColor="@color/cyanea_accent_dark_reference" tools:text="Show content >" /> + app:icon="@drawable/ic_baseline_delete_24" /> \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_fetch_more.xml b/app/src/main/res/layout/drawer_fetch_more.xml index 794f3581..10108a13 100644 --- a/app/src/main/res/layout/drawer_fetch_more.xml +++ b/app/src/main/res/layout/drawer_fetch_more.xml @@ -11,14 +11,11 @@ + app:icon="@drawable/ic_baseline_keyboard_double_arrow_down_24" /> + app:icon="@drawable/ic_baseline_keyboard_double_arrow_up_24" /> diff --git a/app/src/main/res/layout/drawer_filter.xml b/app/src/main/res/layout/drawer_filter.xml index b68cba97..4a057d61 100644 --- a/app/src/main/res/layout/drawer_filter.xml +++ b/app/src/main/res/layout/drawer_filter.xml @@ -40,25 +40,21 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_follow.xml b/app/src/main/res/layout/drawer_follow.xml index 37a41359..cf6fc94e 100644 --- a/app/src/main/res/layout/drawer_follow.xml +++ b/app/src/main/res/layout/drawer_follow.xml @@ -20,7 +20,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="6dp" - android:backgroundTint="@color/cyanea_primary_dark_reference" app:cardElevation="0dp"> + android:src="@drawable/ic_baseline_supervised_user_circle_24" /> @@ -123,7 +121,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" - android:backgroundTint="@color/cyanea_accent_dark_reference" android:src="@drawable/ic_check_white_24dp" /> diff --git a/app/src/main/res/layout/drawer_instance_reg.xml b/app/src/main/res/layout/drawer_instance_reg.xml index 44e53624..c78c6eb5 100644 --- a/app/src/main/res/layout/drawer_instance_reg.xml +++ b/app/src/main/res/layout/drawer_instance_reg.xml @@ -89,12 +89,9 @@ android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="@string/watch_trends_for_instance" - android:textColor="@color/cyanea_accent_dark_reference" app:icon="@drawable/ic_baseline_remove_red_eye_24" - app:iconTint="@color/cyanea_accent_dark_reference" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toBottomOf="@+id/instance_description" - app:strokeColor="@color/cyanea_accent_dark_reference" /> + app:layout_constraintTop_toBottomOf="@+id/instance_description" /> diff --git a/app/src/main/res/layout/drawer_keyword.xml b/app/src/main/res/layout/drawer_keyword.xml index 50829c52..8f9b12c9 100644 --- a/app/src/main/res/layout/drawer_keyword.xml +++ b/app/src/main/res/layout/drawer_keyword.xml @@ -1,6 +1,5 @@ + /> \ No newline at end of file + /> \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_release_note.xml b/app/src/main/res/layout/drawer_release_note.xml index 168d5db2..b45a01f8 100644 --- a/app/src/main/res/layout/drawer_release_note.xml +++ b/app/src/main/res/layout/drawer_release_note.xml @@ -24,7 +24,7 @@ diff --git a/app/src/main/res/layout/drawer_status.xml b/app/src/main/res/layout/drawer_status.xml index d6fce74a..576eeef8 100644 --- a/app/src/main/res/layout/drawer_status.xml +++ b/app/src/main/res/layout/drawer_status.xml @@ -198,7 +198,7 @@ android:layout_gravity="center_vertical|end" android:layout_marginStart="6dp" android:layout_marginEnd="6dp" - android:tint="@color/cyanea_accent_reference" + android:tint="?colorAccent" android:visibility="gone" /> @@ -224,8 +224,7 @@ android:layout_marginEnd="6dp" android:text="@string/show_content" android:textAppearance="@style/TextAppearance.AppCompat.Body2" - android:textSize="16sp" - android:textColor="@color/cyanea_accent_dark_reference" /> + android:textSize="16sp" /> + app:iconTint="?colorAccent" + app:strokeColor="?colorAccent" /> @@ -362,7 +358,6 @@ android:id="@+id/card_title" android:layout_width="match_parent" android:layout_height="wrap_content" - android:textColor="@color/cyanea_accent_dark_reference" tools:text="Title" /> @@ -465,7 +459,7 @@ android:alpha="0.8" android:gravity="center_vertical" android:padding="6dp" - android:textColor="@color/cyanea_accent_dark_reference" + android:textColor="?colorAccent" android:visibility="gone" tools:text="Fedilab" tools:visibility="visible" /> diff --git a/app/src/main/res/layout/drawer_status_compose.xml b/app/src/main/res/layout/drawer_status_compose.xml index a59feb41..a998c5ea 100644 --- a/app/src/main/res/layout/drawer_status_compose.xml +++ b/app/src/main/res/layout/drawer_status_compose.xml @@ -107,7 +107,6 @@ android:minHeight="36dp" android:text="@string/toot_sensitive" android:visibility="gone" - app:buttonTint="@color/cyanea_accent_dark_reference" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0" app:layout_constraintStart_toStartOf="parent" @@ -177,7 +176,6 @@ android:layout_height="wrap_content" android:gravity="center" android:textAlignment="center" - android:textColor="@color/cyanea_accent_dark_reference" android:textSize="16sp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="@+id/button_visibility" @@ -200,7 +198,6 @@ tools:ignore="HardcodedText" /> diff --git a/app/src/main/res/layout/drawer_status_draft.xml b/app/src/main/res/layout/drawer_status_draft.xml index 3f73d7c2..5889a576 100644 --- a/app/src/main/res/layout/drawer_status_draft.xml +++ b/app/src/main/res/layout/drawer_status_draft.xml @@ -21,7 +21,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="12dp" - android:backgroundTint="@color/cyanea_primary_dark_reference" app:cardElevation="0dp"> + app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/drawer_suggestion.xml b/app/src/main/res/layout/drawer_suggestion.xml index e12a5c1b..b4b109a2 100644 --- a/app/src/main/res/layout/drawer_suggestion.xml +++ b/app/src/main/res/layout/drawer_suggestion.xml @@ -21,7 +21,6 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="6dp" android:layout_marginTop="6dp" - android:backgroundTint="@color/cyanea_primary_dark_reference" app:cardElevation="0dp"> + app:layout_constraintTop_toBottomOf="@id/bio" /> + android:layout_height="wrap_content" /> diff --git a/app/src/main/res/layout/fragment_notification_container.xml b/app/src/main/res/layout/fragment_notification_container.xml index 748e890c..c83695ca 100644 --- a/app/src/main/res/layout/fragment_notification_container.xml +++ b/app/src/main/res/layout/fragment_notification_container.xml @@ -30,9 +30,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:background="@color/cyanea_primary_dark_reference" app:tabGravity="fill" - app:tabIndicatorColor="@color/cyanea_accent_dark_reference" app:tabMaxWidth="0dp" /> diff --git a/app/src/main/res/layout/fragment_pagination.xml b/app/src/main/res/layout/fragment_pagination.xml index f26f23ce..293002c7 100644 --- a/app/src/main/res/layout/fragment_pagination.xml +++ b/app/src/main/res/layout/fragment_pagination.xml @@ -68,7 +68,6 @@ android:visibility="gone"> @@ -86,7 +85,6 @@ android:visibility="gone"> @@ -103,7 +101,6 @@ android:contentDescription="@string/create_domain_block" android:src="@drawable/ic_baseline_add_24" android:visibility="gone" - app:backgroundTint="@color/cyanea_accent_dark_reference" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" /> diff --git a/app/src/main/res/layout/fragment_profile_timelines.xml b/app/src/main/res/layout/fragment_profile_timelines.xml index 3506aaa9..225f4072 100644 --- a/app/src/main/res/layout/fragment_profile_timelines.xml +++ b/app/src/main/res/layout/fragment_profile_timelines.xml @@ -24,8 +24,6 @@ android:id="@+id/tabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/cyanea_primary_dark_reference" - app:tabIndicatorColor="@color/cyanea_accent_dark_reference" app:tabGravity="fill" app:tabMaxWidth="0dp" /> diff --git a/app/src/main/res/layout/fragment_scheduled.xml b/app/src/main/res/layout/fragment_scheduled.xml index a107407b..8c3abdf4 100644 --- a/app/src/main/res/layout/fragment_scheduled.xml +++ b/app/src/main/res/layout/fragment_scheduled.xml @@ -58,7 +58,6 @@ android:visibility="gone"> diff --git a/app/src/main/res/layout/fragment_slide_media.xml b/app/src/main/res/layout/fragment_slide_media.xml index 0fd28e16..19a05ac3 100644 --- a/app/src/main/res/layout/fragment_slide_media.xml +++ b/app/src/main/res/layout/fragment_slide_media.xml @@ -26,7 +26,6 @@ android:gravity="center"> @@ -83,16 +83,14 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:text="@string/context_home_list" - app:buttonTint="@color/cyanea_accent_dark_reference" /> + android:text="@string/context_home_list" /> + android:text="@string/context_public" /> + android:text="@string/context_notification" /> + android:text="@string/context_conversation" /> + android:text="@string/profiles" /> @@ -144,7 +139,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/filter_action_explanations" - android:textColor="@color/cyanea_accent_dark_reference" + android:textColor="?colorAccent" android:textSize="12sp" /> + app:icon="@drawable/ic_baseline_add_24" /> diff --git a/app/src/main/res/layout/popup_contact.xml b/app/src/main/res/layout/popup_contact.xml index 2e01bb0c..b4440164 100644 --- a/app/src/main/res/layout/popup_contact.xml +++ b/app/src/main/res/layout/popup_contact.xml @@ -19,7 +19,6 @@ android:gravity="center"> diff --git a/app/src/main/res/layout/popup_links.xml b/app/src/main/res/layout/popup_links.xml index e6c5f789..b666231f 100644 --- a/app/src/main/res/layout/popup_links.xml +++ b/app/src/main/res/layout/popup_links.xml @@ -15,9 +15,9 @@ android:layout_marginBottom="10dp" android:drawableEnd="@drawable/ic_baseline_navigate_next_24" android:text="@string/display_full_link" - android:textColor="@color/cyanea_accent_reference" + android:textColor="?colorAccent" android:textSize="16sp" - app:drawableTint="@color/cyanea_accent_reference" /> + app:drawableTint="?colorAccent" /> + app:drawableTint="?colorAccent" /> + app:drawableTint="?colorAccent" /> + app:drawableTint="?colorAccent" /> + app:drawableTint="?colorAccent" /> diff --git a/app/src/main/res/layout/popup_manage_accounts_list.xml b/app/src/main/res/layout/popup_manage_accounts_list.xml index 0b25a38e..9610980a 100644 --- a/app/src/main/res/layout/popup_manage_accounts_list.xml +++ b/app/src/main/res/layout/popup_manage_accounts_list.xml @@ -32,7 +32,6 @@ android:gravity="center"> diff --git a/app/src/main/res/layout/popup_notification_settings.xml b/app/src/main/res/layout/popup_notification_settings.xml index 636f6fc0..3236022b 100644 --- a/app/src/main/res/layout/popup_notification_settings.xml +++ b/app/src/main/res/layout/popup_notification_settings.xml @@ -13,7 +13,7 @@ diff --git a/app/src/main/res/layout/popup_release_notes.xml b/app/src/main/res/layout/popup_release_notes.xml index 635615a1..bff3d88b 100644 --- a/app/src/main/res/layout/popup_release_notes.xml +++ b/app/src/main/res/layout/popup_release_notes.xml @@ -96,9 +96,7 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="10dp" - android:text="@string/support_the_app_on_liberapay" - android:textColor="@color/cyanea_accent_dark_reference" - app:strokeColor="@color/cyanea_accent_dark_reference" /> + android:text="@string/support_the_app_on_liberapay" /> diff --git a/app/src/main/res/layout/popup_status_theme.xml b/app/src/main/res/layout/popup_status_theme.xml index 2d52bcfb..4d6f6e20 100644 --- a/app/src/main/res/layout/popup_status_theme.xml +++ b/app/src/main/res/layout/popup_status_theme.xml @@ -147,8 +147,7 @@ android:text="@string/display_toot_truncate" android:textAllCaps="false" android:textSize="14sp" - android:visibility="gone" - app:strokeColor="@color/cyanea_accent_dark_reference" /> + android:visibility="gone" /> diff --git a/app/src/main/res/layout/simple_bar.xml b/app/src/main/res/layout/simple_bar.xml index c96d1203..2af01a10 100644 --- a/app/src/main/res/layout/simple_bar.xml +++ b/app/src/main/res/layout/simple_bar.xml @@ -20,7 +20,6 @@ android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/cyanea_primary_reference" android:contentInsetStart="0dp" android:contentInsetLeft="0dp" android:contentInsetEnd="0dp" diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 23c398ee..363caea0 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -6,7 +6,7 @@ #d9d9d9 - + @color/mastodonC4 #FFEA00 #42A5F5 @@ -70,8 +70,6 @@ #EF5350 - #0288D1 - #2b90d9 #f3f3f3 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index d012d1ad..11bf5ab8 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -5,47 +5,14 @@ - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - From 4ea542c1f87247addb512ef858c5750ba0428c4c Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 28 Nov 2022 11:46:48 +0100 Subject: [PATCH 024/111] Some changes --- app/build.gradle | 2 +- .../android/activities/AboutActivity.java | 2 +- .../activities/PartnerShipActivity.java | 2 +- .../android/activities/ProfileActivity.java | 14 ++--- .../activities/ThemeSettingsActivity.java | 53 +++++++++++++++++++ .../main/res/layout/account_field_item.xml | 2 +- app/src/main/res/layout/activity_about.xml | 10 ++-- app/src/main/res/layout/activity_actions.xml | 10 ++-- .../res/layout/activity_admin_account.xml | 8 +-- .../res/layout/activity_admin_actions.xml | 6 +-- .../res/layout/activity_admin_domainblock.xml | 2 +- .../main/res/layout/activity_admin_report.xml | 16 +++--- .../main/res/layout/activity_edit_profile.xml | 10 ++-- app/src/main/res/layout/activity_instance.xml | 2 +- .../main/res/layout/activity_partnership.xml | 6 +-- app/src/main/res/layout/activity_profile.xml | 24 ++++----- app/src/main/res/layout/activity_proxy.xml | 8 +-- .../res/layout/compose_attachment_item.xml | 46 ++++++++-------- app/src/main/res/layout/drawer_account.xml | 6 +-- .../main/res/layout/drawer_account_list.xml | 2 +- app/src/main/res/layout/drawer_fetch_more.xml | 2 +- .../main/res/layout/drawer_instance_reg.xml | 10 ++-- app/src/main/res/layout/drawer_list.xml | 2 +- app/src/main/res/layout/drawer_status.xml | 2 +- .../main/res/layout/drawer_status_compose.xml | 10 ++-- .../res/layout/drawer_status_filtered.xml | 2 +- app/src/main/res/layout/drawer_suggestion.xml | 8 +-- .../main/res/layout/fragment_login_join.xml | 14 ++--- .../main/res/layout/fragment_login_main.xml | 2 +- .../fragment_login_pick_instance_mastodon.xml | 6 +-- app/src/main/res/layout/popup_add_filter.xml | 2 +- .../layout/popup_notification_settings.xml | 6 +-- .../main/res/layout/popup_release_notes.xml | 4 +- .../main/res/layout/popup_status_theme.xml | 2 +- app/src/main/res/xml/pref_theming.xml | 4 +- 35 files changed, 181 insertions(+), 126 deletions(-) create mode 100644 app/src/main/java/app/fedilab/android/activities/ThemeSettingsActivity.java diff --git a/app/build.gradle b/app/build.gradle index 2b854be5..6d17f37f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -116,7 +116,7 @@ dependencies { implementation "ch.acra:acra-mail:5.9.6" implementation "ch.acra:acra-limiter:5.9.3" implementation "ch.acra:acra-dialog:5.9.6" - + implementation 'com.github.Dhaval2404:ColorPicker:2.3' implementation "com.madgag.spongycastle:bctls-jdk15on:1.58.0.0" implementation 'com.github.UnifiedPush:android-connector:2.0.1' // implementation 'com.github.UnifiedPush:android-foss_embedded_fcm_distributor:1.0.0-beta1' diff --git a/app/src/main/java/app/fedilab/android/activities/AboutActivity.java b/app/src/main/java/app/fedilab/android/activities/AboutActivity.java index 78df3fe8..24c3319b 100644 --- a/app/src/main/java/app/fedilab/android/activities/AboutActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/AboutActivity.java @@ -80,7 +80,7 @@ public class AboutActivity extends BaseActivity { } else { binding.aboutSupportPaypal.setVisibility(View.GONE); } - binding.accountFollow.setImageResource(R.drawable.ic_baseline_person_add_24); + binding.accountFollow.setIconResource(R.drawable.ic_baseline_person_add_24); binding.aboutWebsite.setOnClickListener(v -> Helper.openBrowser(AboutActivity.this, "https://fedilab.app")); CrossActionHelper.fetchRemoteAccount(AboutActivity.this, "@apps@toot.fedilab.app", new CrossActionHelper.Callback() { @Override diff --git a/app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java b/app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java index 3d7955b0..52a3de4c 100644 --- a/app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java @@ -64,7 +64,7 @@ public class PartnerShipActivity extends BaseActivity { }); binding.accountFollow.setBackgroundTintList(ThemeHelper.getButtonActionColorStateList(PartnerShipActivity.this)); setTitle(R.string.action_partnership); - binding.accountFollow.setImageResource(R.drawable.ic_baseline_person_add_24); + binding.accountFollow.setIconResource(R.drawable.ic_baseline_person_add_24); CrossActionHelper.fetchRemoteAccount(PartnerShipActivity.this, "@mastohost@mastodon.social", new CrossActionHelper.Callback() { @Override public void federatedStatus(Status status) { diff --git a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java index 3cfa1a24..2328bb29 100644 --- a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java @@ -527,7 +527,7 @@ public class ProfileActivity extends BaseActivity { //Visibility depending of the relationship if (relationship != null) { if (relationship.blocked_by) { - binding.accountFollow.setImageResource(R.drawable.ic_baseline_person_add_24); + binding.accountFollow.setIconResource(R.drawable.ic_baseline_person_add_24); binding.accountFollow.setVisibility(View.VISIBLE); binding.accountFollow.setEnabled(false); binding.accountFollow.setContentDescription(getString(R.string.action_disabled)); @@ -535,7 +535,7 @@ public class ProfileActivity extends BaseActivity { if (relationship.requested) { binding.accountFollowRequest.setVisibility(View.VISIBLE); - binding.accountFollow.setImageResource(R.drawable.ic_baseline_hourglass_full_24); + binding.accountFollow.setIconResource(R.drawable.ic_baseline_hourglass_full_24); binding.accountFollow.setVisibility(View.VISIBLE); binding.accountFollow.setContentDescription(getString(R.string.follow_request)); doAction = action.UNFOLLOW; @@ -546,19 +546,19 @@ public class ProfileActivity extends BaseActivity { binding.accountFollowedBy.setVisibility(View.GONE); } if (relationship.following) { - binding.accountFollow.setImageResource(R.drawable.ic_baseline_person_remove_24); + binding.accountFollow.setIconResource(R.drawable.ic_baseline_person_remove_24); binding.accountFollow.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(ProfileActivity.this, R.color.red_1))); doAction = action.UNFOLLOW; binding.accountFollow.setContentDescription(getString(R.string.action_unfollow)); binding.accountFollow.setVisibility(View.VISIBLE); } else if (relationship.blocking) { binding.accountFollow.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(ProfileActivity.this, R.color.red_1))); - binding.accountFollow.setImageResource(R.drawable.ic_baseline_lock_open_24); + binding.accountFollow.setIconResource(R.drawable.ic_baseline_lock_open_24); doAction = action.UNBLOCK; binding.accountFollow.setVisibility(View.VISIBLE); binding.accountFollow.setContentDescription(getString(R.string.action_unblock)); } else { - binding.accountFollow.setImageResource(R.drawable.ic_baseline_person_add_24); + binding.accountFollow.setIconResource(R.drawable.ic_baseline_person_add_24); doAction = action.FOLLOW; binding.accountFollow.setVisibility(View.VISIBLE); binding.accountFollow.setContentDescription(getString(R.string.action_follow)); @@ -577,9 +577,9 @@ public class ProfileActivity extends BaseActivity { binding.accountNotification.setVisibility(View.VISIBLE); } if (relationship.notifying) { - binding.accountNotification.setImageResource(R.drawable.ic_baseline_notifications_active_24); + binding.accountNotification.setIconResource(R.drawable.ic_baseline_notifications_active_24); } else { - binding.accountNotification.setImageResource(R.drawable.ic_baseline_notifications_off_24); + binding.accountNotification.setIconResource(R.drawable.ic_baseline_notifications_off_24); } binding.accountNotification.setOnClickListener(v -> { if (relationship != null && relationship.following) { diff --git a/app/src/main/java/app/fedilab/android/activities/ThemeSettingsActivity.java b/app/src/main/java/app/fedilab/android/activities/ThemeSettingsActivity.java new file mode 100644 index 00000000..6e885c3d --- /dev/null +++ b/app/src/main/java/app/fedilab/android/activities/ThemeSettingsActivity.java @@ -0,0 +1,53 @@ +package app.fedilab.android.activities; +/* Copyright 2022 Thomas Schneider + * + * This file is a part of Fedilab + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation; either version 3 of the + * License, or (at your option) any later version. + * + * Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * You should have received a copy of the GNU General Public License along with Fedilab; if not, + * see . */ + + +import android.os.Bundle; +import android.view.MenuItem; + +import app.fedilab.android.databinding.ActivityAboutBinding; + + +public class ThemeSettingsActivity extends BaseActivity { + + + private ActivityAboutBinding binding; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + binding = ActivityAboutBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + + if (getSupportActionBar() != null) { + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } + + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() == android.R.id.home) { + finish(); + return true; + } + return super.onOptionsItemSelected(item); + } + + +} diff --git a/app/src/main/res/layout/account_field_item.xml b/app/src/main/res/layout/account_field_item.xml index a7a46760..ce360d85 100644 --- a/app/src/main/res/layout/account_field_item.xml +++ b/app/src/main/res/layout/account_field_item.xml @@ -39,7 +39,7 @@ - @@ -126,7 +126,7 @@ - diff --git a/app/src/main/res/layout/activity_profile.xml b/app/src/main/res/layout/activity_profile.xml index 2f3ef9ee..88d37276 100644 --- a/app/src/main/res/layout/activity_profile.xml +++ b/app/src/main/res/layout/activity_profile.xml @@ -86,9 +86,9 @@ - - - - + android:icon="@drawable/ic_baseline_manage_search_24" /> diff --git a/app/src/main/res/layout/activity_proxy.xml b/app/src/main/res/layout/activity_proxy.xml index daedaf7c..86d65d8a 100644 --- a/app/src/main/res/layout/activity_proxy.xml +++ b/app/src/main/res/layout/activity_proxy.xml @@ -45,7 +45,7 @@ - - - - - diff --git a/app/src/main/res/layout/drawer_account.xml b/app/src/main/res/layout/drawer_account.xml index e3ea1d39..7e0c216e 100644 --- a/app/src/main/res/layout/drawer_account.xml +++ b/app/src/main/res/layout/drawer_account.xml @@ -43,7 +43,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="6dp" - android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" + android:textAppearance="@style/TextAppearance.Material3.BodyMedium" app:layout_constraintBottom_toTopOf="@id/username" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/avatar" @@ -71,7 +71,7 @@ android:layout_marginTop="6dp" android:ellipsize="end" android:maxLines="2" - android:textAppearance="@style/TextAppearance.MaterialComponents.Caption" + android:textAppearance="@style/TextAppearance.Material3.BodyMedium" app:layout_constraintTop_toBottomOf="@id/avatar" tools:text="@tools:sample/lorem/random" /> @@ -125,7 +125,7 @@ diff --git a/app/src/main/res/layout/drawer_instance_reg.xml b/app/src/main/res/layout/drawer_instance_reg.xml index c78c6eb5..abbfac51 100644 --- a/app/src/main/res/layout/drawer_instance_reg.xml +++ b/app/src/main/res/layout/drawer_instance_reg.xml @@ -45,7 +45,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="6dp" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6" + android:textAppearance="@style/TextAppearance.Material3.HeadlineMedium" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/instance_pp" app:layout_constraintTop_toTopOf="parent" @@ -56,7 +56,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" - android:textAppearance="@style/TextAppearance.MaterialComponents.Caption" + android:textAppearance="@style/TextAppearance.Material3.BodyMedium" app:layout_constraintStart_toEndOf="@id/instance_pp" app:layout_constraintTop_toBottomOf="@id/instance_host" tools:text="v3.4.1" /> @@ -66,7 +66,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" - android:textAppearance="@style/TextAppearance.MaterialComponents.Caption" + android:textAppearance="@style/TextAppearance.Material3.BodyMedium" app:layout_constraintStart_toEndOf="@id/instance_pp" app:layout_constraintTop_toBottomOf="@id/instance_version" tools:text="593.3K" /> @@ -76,7 +76,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="6dp" - android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" + android:textAppearance="@style/TextAppearance.Material3.BodyMedium" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/instance_pp" @@ -84,7 +84,7 @@ + android:textAppearance="@style/TextAppearance.Material3.BodyMedium" /> @@ -348,7 +348,7 @@ android:layout_marginStart="6dp" android:layout_weight="1" android:text="@string/followers_only" - android:textAppearance="@style/TextAppearance.MaterialComponents.Button" /> + android:textAppearance="@style/TextAppearance.Material3.BodyMedium" /> @@ -373,7 +373,7 @@ android:layout_marginStart="6dp" android:layout_weight="1" android:text="@string/v_unlisted" - android:textAppearance="@style/TextAppearance.MaterialComponents.Button" /> + android:textAppearance="@style/TextAppearance.Material3.BodyMedium" /> @@ -398,7 +398,7 @@ android:layout_marginStart="6dp" android:layout_weight="1" android:text="@string/v_public" - android:textAppearance="@style/TextAppearance.MaterialComponents.Button" /> + android:textAppearance="@style/TextAppearance.Material3.BodyMedium" /> diff --git a/app/src/main/res/layout/drawer_status_filtered.xml b/app/src/main/res/layout/drawer_status_filtered.xml index 4eeec06b..3fa54315 100644 --- a/app/src/main/res/layout/drawer_status_filtered.xml +++ b/app/src/main/res/layout/drawer_status_filtered.xml @@ -46,7 +46,7 @@ + android:textAppearance="@style/TextAppearance.Material3.HeadlineMedium" /> @@ -74,13 +74,13 @@ android:layout_height="wrap_content" android:layout_marginTop="12dp" android:text="@string/about_mastodon" - android:textAppearance="@style/TextAppearance.MaterialComponents.Caption" /> + android:textAppearance="@style/TextAppearance.Material3.BodyMedium" /> @@ -136,13 +136,13 @@ android:layout_height="wrap_content" android:layout_marginTop="12dp" android:text="@string/join_peertube_message" - android:textAppearance="@style/TextAppearance.MaterialComponents.Caption" /> + android:textAppearance="@style/TextAppearance.Material3.Caption" /> + android:textAppearance="@style/TextAppearance.Material3.BodyLarge" /> + android:textAppearance="@style/TextAppearance.Material3.BodyMedium" /> diff --git a/app/src/main/res/layout/popup_add_filter.xml b/app/src/main/res/layout/popup_add_filter.xml index a9788847..9dd4497d 100644 --- a/app/src/main/res/layout/popup_add_filter.xml +++ b/app/src/main/res/layout/popup_add_filter.xml @@ -221,7 +221,7 @@ - + Date: Mon, 28 Nov 2022 15:03:17 +0100 Subject: [PATCH 025/111] remove useless elements --- .../app/fedilab/android/BaseMainActivity.java | 4 -- .../fedilab/android/helper/ThemeHelper.java | 20 ------ .../settings/FragmentThemingSettings.java | 9 +-- .../timeline/FragmentMastodonAccount.java | 5 -- .../FragmentMastodonAnnouncement.java | 5 -- .../timeline/FragmentMastodonContext.java | 5 -- .../FragmentMastodonConversation.java | 6 -- .../timeline/FragmentMastodonDomainBlock.java | 5 -- .../FragmentMastodonNotification.java | 5 -- .../timeline/FragmentMastodonSuggestion.java | 5 -- .../timeline/FragmentMastodonTag.java | 5 -- .../timeline/FragmentMastodonTimeline.java | 8 --- .../res/drawable/ic_baseline_bookmark_24.xml | 4 +- .../ic_baseline_bookmark_border_24.xml | 4 +- app/src/main/res/drawable/ic_repeat.xml | 4 +- app/src/main/res/drawable/ic_star_outline.xml | 4 +- .../main/res/drawable/menu_selector_dark.xml | 7 -- .../main/res/drawable/menu_selector_light.xml | 7 -- app/src/main/res/layout/activity_main.xml | 2 +- .../main/res/layout/activity_reorder_tabs.xml | 4 +- app/src/main/res/layout/drawer_account.xml | 58 +++++++++------- .../main/res/layout/drawer_announcement.xml | 6 +- .../main/res/layout/drawer_conversation.xml | 4 -- app/src/main/res/layout/drawer_status.xml | 10 +-- .../main/res/layout/drawer_status_history.xml | 3 - .../main/res/layout/drawer_status_simple.xml | 3 - app/src/main/res/layout/nav_header_main.xml | 6 +- app/src/main/res/layout/popup_links.xml | 8 +-- .../main/res/layout/popup_status_theme.xml | 10 +-- .../res/layout/tab_custom_default_view.xml | 1 - app/src/main/res/layout/tab_custom_view.xml | 1 - app/src/main/res/values/colors.xml | 5 ++ app/src/main/res/values/styles.xml | 66 +++++++++++-------- 33 files changed, 105 insertions(+), 194 deletions(-) delete mode 100644 app/src/main/res/drawable/menu_selector_dark.xml delete mode 100644 app/src/main/res/drawable/menu_selector_light.xml diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java index c5f751e7..a68279d5 100644 --- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java @@ -139,7 +139,6 @@ import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; import app.fedilab.android.helper.PinnedTimelineHelper; import app.fedilab.android.helper.PushHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonConversation; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTimeline; import app.fedilab.android.ui.fragment.timeline.FragmentNotificationContainer; @@ -191,7 +190,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt intentCompose.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intentCompose); }) - .setTextColor(ThemeHelper.getAttColor(BaseMainActivity.this, R.attr.mTextColor)) .show(); } } @@ -264,7 +262,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt intentContext.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intentContext); }) - .setTextColor(ThemeHelper.getAttColor(BaseMainActivity.this, R.attr.mTextColor)) .show(); //The message was edited, we need to update the timeline if (statusEditId != null) { @@ -307,7 +304,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt mamageNewIntent(getIntent()); - ThemeHelper.initiliazeColors(BaseMainActivity.this); filterFetched = false; networkStateReceiver = new NetworkStateReceiver(); networkStateReceiver.addListener(this); diff --git a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java index 088557a1..3ce1b2d6 100644 --- a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java @@ -88,26 +88,6 @@ public class ThemeHelper { return new ColorStateList(states, colors); } - /** - * Initialize colors in a static variable - * Currently link_color cannot be retrieved with getAttColor in ViewModel due to application and theme - * - * @param activity Activity - */ - public static void initiliazeColors(Activity activity) { - TypedValue typedValue = new TypedValue(); - Resources.Theme theme = activity.getTheme(); - theme.resolveAttribute(R.attr.linkColor, typedValue, true); - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity); - linkColor = -1; - if (prefs.getBoolean("use_custom_theme", false)) { - linkColor = prefs.getInt("theme_link_color", -1); - } - if (linkColor == -1) { - linkColor = typedValue.data; - } - } - /** diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java index 9816b48b..0ca7432c 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java @@ -209,10 +209,10 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements if (linksColor != -1) { binding.cardUrl.setTextColor(linksColor); } else { - binding.cardUrl.setTextColor(ThemeHelper.getAttColor(requireActivity(), R.attr.linkColor)); + binding.cardUrl.setTextColor(ThemeHelper.getAttColor(requireActivity(), R.attr.colorPrimary)); } if (iconsColor == -1) { - iconsColor = ThemeHelper.getAttColor(requireActivity(), R.attr.iconColor); + iconsColor = ThemeHelper.getAttColor(requireActivity(), R.attr.colorControlNormal); } Helper.changeDrawableColor(requireActivity(), binding.actionButtonReply, iconsColor); Helper.changeDrawableColor(requireActivity(), binding.actionButtonMore, iconsColor); @@ -221,15 +221,10 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements Helper.changeDrawableColor(requireActivity(), R.drawable.ic_person, iconsColor); if (displayNameColor != -1) { binding.displayName.setTextColor(displayNameColor); - } else { - binding.displayName.setTextColor(ThemeHelper.getAttColor(requireActivity(), R.attr.statusTextColor)); } if (userNameColor != -1) { binding.username.setTextColor(userNameColor); Helper.changeDrawableColor(requireActivity(), binding.statusBoostIcon, userNameColor); - } else { - binding.username.setTextColor(ThemeHelper.getAttColor(requireActivity(), R.attr.statusTextColor)); - Helper.changeDrawableColor(requireActivity(), binding.statusBoostIcon, ThemeHelper.getAttColor(requireActivity(), R.attr.statusTextColor)); } Glide.with(binding.getRoot().getContext()) .load(R.drawable.fedilab_logo_bubbles) diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAccount.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAccount.java index e160e3f5..988aab25 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAccount.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAccount.java @@ -40,7 +40,6 @@ import app.fedilab.android.client.entities.app.Timeline; import app.fedilab.android.databinding.FragmentPaginationBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.AccountAdapter; import app.fedilab.android.ui.pageadapter.FedilabProfileTLPageAdapter; import app.fedilab.android.viewmodel.mastodon.AccountsVM; @@ -80,10 +79,6 @@ public class FragmentMastodonAccount extends Fragment { @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); - binding.swipeContainer.setColorSchemeColors( - c1, c1, c1 - ); binding.loader.setVisibility(View.VISIBLE); binding.recyclerView.setVisibility(View.GONE); accountsVM = new ViewModelProvider(FragmentMastodonAccount.this).get(viewModelKey, AccountsVM.class); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAnnouncement.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAnnouncement.java index 8684584c..d2407698 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAnnouncement.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonAnnouncement.java @@ -30,7 +30,6 @@ import app.fedilab.android.BaseMainActivity; import app.fedilab.android.R; import app.fedilab.android.client.entities.api.Announcement; import app.fedilab.android.databinding.FragmentPaginationBinding; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.AnnouncementAdapter; import app.fedilab.android.viewmodel.mastodon.AnnouncementsVM; @@ -47,10 +46,6 @@ public class FragmentMastodonAnnouncement extends Fragment { binding = FragmentPaginationBinding.inflate(inflater, container, false); View root = binding.getRoot(); - int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); - binding.swipeContainer.setColorSchemeColors( - c1, c1, c1 - ); announcementsVM = new ViewModelProvider(FragmentMastodonAnnouncement.this).get(AnnouncementsVM.class); binding.loader.setVisibility(View.VISIBLE); binding.recyclerView.setVisibility(View.GONE); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonContext.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonContext.java index bd38e85d..b3fd472d 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonContext.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonContext.java @@ -43,7 +43,6 @@ import app.fedilab.android.client.entities.app.Timeline; import app.fedilab.android.databinding.FragmentPaginationBinding; import app.fedilab.android.helper.DividerDecoration; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.StatusAdapter; import app.fedilab.android.viewmodel.mastodon.StatusesVM; @@ -151,10 +150,6 @@ public class FragmentMastodonContext extends Fragment { getChildFragmentManager().beginTransaction().remove(this).commit(); } binding = FragmentPaginationBinding.inflate(inflater, container, false); - int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); - binding.swipeContainer.setColorSchemeColors( - c1, c1, c1 - ); statusesVM = new ViewModelProvider(FragmentMastodonContext.this).get(StatusesVM.class); binding.recyclerView.setNestedScrollingEnabled(true); this.statuses = new ArrayList<>(); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonConversation.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonConversation.java index 5e2aecfb..2262edd1 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonConversation.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonConversation.java @@ -42,7 +42,6 @@ import app.fedilab.android.databinding.FragmentPaginationBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.ConversationAdapter; import app.fedilab.android.viewmodel.mastodon.TimelinesVM; @@ -237,11 +236,6 @@ public class FragmentMastodonConversation extends Fragment implements Conversati public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - - int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); - binding.swipeContainer.setColorSchemeColors( - c1, c1, c1 - ); initialConversations = null; binding.loader.setVisibility(View.VISIBLE); binding.recyclerView.setVisibility(View.GONE); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonDomainBlock.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonDomainBlock.java index b255ca16..038ccaf2 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonDomainBlock.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonDomainBlock.java @@ -34,7 +34,6 @@ import app.fedilab.android.R; import app.fedilab.android.activities.MainActivity; import app.fedilab.android.client.entities.api.Domains; import app.fedilab.android.databinding.FragmentPaginationBinding; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.DomainBlockAdapter; import app.fedilab.android.viewmodel.mastodon.AccountsVM; @@ -59,10 +58,6 @@ public class FragmentMastodonDomainBlock extends Fragment { @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); - binding.swipeContainer.setColorSchemeColors( - c1, c1, c1 - ); binding.loader.setVisibility(View.VISIBLE); binding.recyclerView.setVisibility(View.GONE); accountsVM = new ViewModelProvider(FragmentMastodonDomainBlock.this).get(AccountsVM.class); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonNotification.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonNotification.java index 14b632e3..3a07d55e 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonNotification.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonNotification.java @@ -50,7 +50,6 @@ import app.fedilab.android.databinding.FragmentPaginationBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.NotificationAdapter; import app.fedilab.android.viewmodel.mastodon.NotificationsVM; import app.fedilab.android.viewmodel.mastodon.TimelinesVM; @@ -190,10 +189,6 @@ public class FragmentMastodonNotification extends Fragment implements Notificati notificationType = (NotificationTypeEnum) getArguments().get(Helper.ARG_NOTIFICATION_TYPE); } aggregateNotification = false; - int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); - binding.swipeContainer.setColorSchemeColors( - c1, c1, c1 - ); LocalBroadcastManager.getInstance(requireActivity()).registerReceiver(receive_action, new IntentFilter(Helper.RECEIVE_STATUS_ACTION)); return root; diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonSuggestion.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonSuggestion.java index 9448f4ec..f82eb52c 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonSuggestion.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonSuggestion.java @@ -34,7 +34,6 @@ import app.fedilab.android.R; import app.fedilab.android.client.entities.api.Suggestion; import app.fedilab.android.client.entities.api.Suggestions; import app.fedilab.android.databinding.FragmentPaginationBinding; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.SuggestionAdapter; import app.fedilab.android.viewmodel.mastodon.AccountsVM; @@ -58,10 +57,6 @@ public class FragmentMastodonSuggestion extends Fragment { @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); - binding.swipeContainer.setColorSchemeColors( - c1, c1, c1 - ); binding.loader.setVisibility(View.VISIBLE); binding.recyclerView.setVisibility(View.GONE); accountsVM = new ViewModelProvider(FragmentMastodonSuggestion.this).get(AccountsVM.class); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTag.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTag.java index ff429c73..45f9d33d 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTag.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTag.java @@ -37,7 +37,6 @@ import app.fedilab.android.client.entities.app.Timeline; import app.fedilab.android.databinding.FragmentPaginationBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.TagAdapter; import app.fedilab.android.viewmodel.mastodon.SearchVM; import app.fedilab.android.viewmodel.mastodon.TimelinesVM; @@ -65,10 +64,6 @@ public class FragmentMastodonTag extends Fragment { @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); - binding.swipeContainer.setColorSchemeColors( - c1, c1, c1 - ); binding.loader.setVisibility(View.VISIBLE); binding.recyclerView.setVisibility(View.GONE); router(); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java index 5289b647..8b3e977f 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java @@ -61,7 +61,6 @@ import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.CrossActionHelper; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; -import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.ui.drawer.StatusAdapter; import app.fedilab.android.viewmodel.mastodon.AccountsVM; import app.fedilab.android.viewmodel.mastodon.SearchVM; @@ -364,13 +363,6 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. LocalBroadcastManager.getInstance(requireActivity()).registerReceiver(receive_action, new IntentFilter(Helper.RECEIVE_STATUS_ACTION)); binding = FragmentPaginationBinding.inflate(inflater, container, false); - - int c1 = ThemeHelper.getAttColor(requireActivity(), R.attr.colorAccent); - binding.swipeContainer.setColorSchemeColors( - c1, c1, c1 - ); - - return binding.getRoot(); } diff --git a/app/src/main/res/drawable/ic_baseline_bookmark_24.xml b/app/src/main/res/drawable/ic_baseline_bookmark_24.xml index 2c2418e9..1355573f 100644 --- a/app/src/main/res/drawable/ic_baseline_bookmark_24.xml +++ b/app/src/main/res/drawable/ic_baseline_bookmark_24.xml @@ -1,10 +1,10 @@ diff --git a/app/src/main/res/drawable/ic_baseline_bookmark_border_24.xml b/app/src/main/res/drawable/ic_baseline_bookmark_border_24.xml index b1d59a29..45fef5ac 100644 --- a/app/src/main/res/drawable/ic_baseline_bookmark_border_24.xml +++ b/app/src/main/res/drawable/ic_baseline_bookmark_border_24.xml @@ -1,10 +1,10 @@ diff --git a/app/src/main/res/drawable/ic_repeat.xml b/app/src/main/res/drawable/ic_repeat.xml index e99b64ad..6b566159 100644 --- a/app/src/main/res/drawable/ic_repeat.xml +++ b/app/src/main/res/drawable/ic_repeat.xml @@ -2,10 +2,10 @@ android:width="28dp" android:height="28dp" android:autoMirrored="true" - android:tint="?attr/iconColor" + android:tint="?attr/colorControlNormal" android:viewportWidth="28" android:viewportHeight="28"> diff --git a/app/src/main/res/drawable/ic_star_outline.xml b/app/src/main/res/drawable/ic_star_outline.xml index 162182ba..70463a76 100644 --- a/app/src/main/res/drawable/ic_star_outline.xml +++ b/app/src/main/res/drawable/ic_star_outline.xml @@ -1,10 +1,10 @@ diff --git a/app/src/main/res/drawable/menu_selector_dark.xml b/app/src/main/res/drawable/menu_selector_dark.xml deleted file mode 100644 index 4ec5c80b..00000000 --- a/app/src/main/res/drawable/menu_selector_dark.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/menu_selector_light.xml b/app/src/main/res/drawable/menu_selector_light.xml deleted file mode 100644 index 4ec5c80b..00000000 --- a/app/src/main/res/drawable/menu_selector_light.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 1e002c16..0624292e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -79,7 +79,7 @@ android:gravity="end" android:contentDescription="@string/display_timelines" android:src="@drawable/ic_baseline_more_horiz_24" - android:tint="?attr/iconColor" + android:tint="?attr/colorControlNormal" android:visibility="gone" /> diff --git a/app/src/main/res/layout/activity_reorder_tabs.xml b/app/src/main/res/layout/activity_reorder_tabs.xml index 2d4fdd42..6ebb794d 100644 --- a/app/src/main/res/layout/activity_reorder_tabs.xml +++ b/app/src/main/res/layout/activity_reorder_tabs.xml @@ -32,7 +32,7 @@ android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="@string/bottom_menu" - android:textColor="?colorAccent" + android:textColor="?colorPrimary" android:textSize="16sp" app:layout_constraintTop_toTopOf="parent" /> @@ -56,7 +56,7 @@ android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="@string/top_menu" - android:textColor="?colorAccent" + android:textColor="?colorPrimary" android:textSize="16sp" app:layout_constraintTop_toBottomOf="@+id/lv_reorder_bottom_container" /> diff --git a/app/src/main/res/layout/drawer_account.xml b/app/src/main/res/layout/drawer_account.xml index 7e0c216e..5dca860b 100644 --- a/app/src/main/res/layout/drawer_account.xml +++ b/app/src/main/res/layout/drawer_account.xml @@ -21,7 +21,7 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="6dp" android:layout_marginTop="6dp" - app:cardElevation="0dp"> + app:cardElevation="1dp"> + style="@style/Widget.Material3.Button.OutlinedButton" + android:layout_width="48dp" + android:layout_height="48dp" + android:padding="0dp" + app:icon="@drawable/ic_baseline_notifications_off_24" + app:iconGravity="textStart" + app:iconPadding="0dp" + app:strokeWidth="1dp" /> + style="@style/Widget.Material3.Button.OutlinedButton" + android:layout_width="48dp" + android:layout_height="48dp" + android:padding="0dp" + app:icon="@drawable/ic_baseline_access_time_filled_24" + app:iconGravity="textStart" + app:iconPadding="0dp" + app:strokeWidth="1dp" /> @@ -126,13 +136,13 @@ diff --git a/app/src/main/res/layout/drawer_announcement.xml b/app/src/main/res/layout/drawer_announcement.xml index ae2f18dd..a25b64d7 100644 --- a/app/src/main/res/layout/drawer_announcement.xml +++ b/app/src/main/res/layout/drawer_announcement.xml @@ -77,8 +77,7 @@ android:layout_height="28dp" android:contentDescription="@string/add_reaction" android:padding="3dp" - android:src="@drawable/ic_baseline_emoji_emotions_24" - app:tint="?attr/iconColor" /> + android:src="@drawable/ic_baseline_emoji_emotions_24" /> + android:src="@drawable/ic_baseline_add_reaction_24" /> diff --git a/app/src/main/res/layout/drawer_conversation.xml b/app/src/main/res/layout/drawer_conversation.xml index 7f07c14d..a4848935 100644 --- a/app/src/main/res/layout/drawer_conversation.xml +++ b/app/src/main/res/layout/drawer_conversation.xml @@ -69,10 +69,6 @@ android:textAlignment="textEnd" /> - - + app:cardElevation="1dp"> - + android:textAllCaps="false" /> diff --git a/app/src/main/res/layout/drawer_status_history.xml b/app/src/main/res/layout/drawer_status_history.xml index 5a0d8d7e..23423a8c 100644 --- a/app/src/main/res/layout/drawer_status_history.xml +++ b/app/src/main/res/layout/drawer_status_history.xml @@ -77,9 +77,6 @@ android:layout_marginBottom="5dp" tools:text="@tools:sample/date/ddmmyy" /> - - + app:tint="?colorControlNormal" /> + app:tint="?colorControlNormal" /> @@ -101,7 +101,7 @@ android:layout_gravity="center_vertical|end" android:contentDescription="@string/information" android:src="@drawable/ic_baseline_info_24" - app:tint="?iconColor" /> + app:tint="?colorControlNormal" /> diff --git a/app/src/main/res/layout/popup_links.xml b/app/src/main/res/layout/popup_links.xml index b666231f..d83a0e2c 100644 --- a/app/src/main/res/layout/popup_links.xml +++ b/app/src/main/res/layout/popup_links.xml @@ -15,9 +15,9 @@ android:layout_marginBottom="10dp" android:drawableEnd="@drawable/ic_baseline_navigate_next_24" android:text="@string/display_full_link" - android:textColor="?colorAccent" + android:textColor="?colorPrimary" android:textSize="16sp" - app:drawableTint="?colorAccent" /> + app:drawableTint="?colorPrimary" /> + app:drawableTint="?colorPrimary" /> + android:textAppearance="@style/TextAppearance.AppCompat.Caption" /> @@ -295,7 +294,6 @@ android:id="@+id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="?statusTextColor" tools:text="1 January 2021, 12:00" /> + tools:text="10" /> @@ -339,8 +336,7 @@ android:id="@+id/favorites_count" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="10" - android:textColor="?statusTextColor" /> + tools:text="10" /> diff --git a/app/src/main/res/layout/tab_custom_default_view.xml b/app/src/main/res/layout/tab_custom_default_view.xml index fb282e40..3d9f39ec 100644 --- a/app/src/main/res/layout/tab_custom_default_view.xml +++ b/app/src/main/res/layout/tab_custom_default_view.xml @@ -29,7 +29,6 @@ android:background="@drawable/shape_counter" android:paddingLeft="2dp" android:paddingRight="2dp" - android:textColor="?mTextColor" android:textSize="12sp" android:visibility="gone" tools:text="35" diff --git a/app/src/main/res/layout/tab_custom_view.xml b/app/src/main/res/layout/tab_custom_view.xml index 5ae18c73..14fe5edf 100644 --- a/app/src/main/res/layout/tab_custom_view.xml +++ b/app/src/main/res/layout/tab_custom_view.xml @@ -35,7 +35,6 @@ android:background="@drawable/shape_counter" android:paddingLeft="2dp" android:paddingRight="2dp" - android:textColor="?mTextColor" android:textSize="12sp" android:visibility="gone" tools:text="35" diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 363caea0..1cbe9e4f 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,6 +1,11 @@ + #6200EE + #03DAC6 + #000 + #3700B3 + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 11bf5ab8..14c5d736 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,17 +1,16 @@ - - - - - From ee22181a9197f1da3b0c8ede0f55fcc769c6a796 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 28 Nov 2022 15:14:37 +0100 Subject: [PATCH 026/111] Fix icon colors --- .../java/app/fedilab/android/ui/drawer/StatusAdapter.java | 4 ++-- app/src/main/res/drawable-anydpi-v24/ic_notification.xml | 2 +- app/src/main/res/drawable/ic_baseline_account_circle_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_audiotrack_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_cached_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_edit_note_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_filter_asc_24.xml | 2 +- .../main/res/drawable/ic_baseline_filter_center_focus_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_filter_desc_24.xml | 2 +- .../drawable/ic_baseline_keyboard_double_arrow_down_24.xml | 2 +- .../res/drawable/ic_baseline_keyboard_double_arrow_up_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_manage_search_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_message_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_mode_comment_24.xml | 2 +- .../main/res/drawable/ic_baseline_mode_edit_message_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_more_horiz_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_notes_24.xml | 2 +- .../main/res/drawable/ic_baseline_person_add_alt_1_24.xml | 2 +- .../main/res/drawable/ic_baseline_play_circle_filled_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_post_add_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_reply_16.xml | 2 +- app/src/main/res/drawable/ic_baseline_report_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_storage_24.xml | 2 +- .../main/res/drawable/ic_baseline_supervisor_account_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_tag_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_translate_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_trending_up_24.xml | 2 +- app/src/main/res/drawable/ic_baseline_volume_mute_24.xml | 2 +- app/src/main/res/drawable/ic_crop.xml | 2 +- app/src/main/res/drawable/ic_fetch_more_arrow_downward.xml | 2 +- app/src/main/res/drawable/ic_fetch_more_arrow_upward.xml | 2 +- app/src/main/res/drawable/ic_outline_note_alt_24.xml | 2 +- app/src/main/res/drawable/ic_photo_filter.xml | 2 +- app/src/main/res/drawable/ic_tl_list.xml | 2 +- app/src/main/res/drawable/ic_tl_tag.xml | 2 +- app/src/main/res/layout/drawer_status.xml | 5 +++-- 36 files changed, 39 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java index f4e12e22..b70d3f0d 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java @@ -508,7 +508,7 @@ public class StatusAdapter extends RecyclerView.Adapter int theme_text_header_1_line = -1; int theme_text_header_2_line = -1; int link_color = -1; - if (sharedpreferences.getBoolean("use_custom_theme", false)) { + /* if (sharedpreferences.getBoolean("use_custom_theme", false)) { //Getting custom colors theme_icons_color = sharedpreferences.getInt("theme_icons_color", -1); theme_statuses_color = sharedpreferences.getInt("theme_statuses_color", -1); @@ -519,7 +519,7 @@ public class StatusAdapter extends RecyclerView.Adapter theme_text_color = sharedpreferences.getInt("theme_text_color", -1); link_color = sharedpreferences.getInt("theme_link_color", -1); - } + }*/ if (currentAccount != null && currentAccount.api == Account.API.PLEROMA) { holder.binding.statusAddCustomEmoji.setVisibility(View.VISIBLE); holder.binding.statusEmoji.setVisibility(View.VISIBLE); diff --git a/app/src/main/res/drawable-anydpi-v24/ic_notification.xml b/app/src/main/res/drawable-anydpi-v24/ic_notification.xml index 9578a11c..d3b9a9fc 100644 --- a/app/src/main/res/drawable-anydpi-v24/ic_notification.xml +++ b/app/src/main/res/drawable-anydpi-v24/ic_notification.xml @@ -1,7 +1,7 @@ + app:cardElevation="5dp" + android:clipChildren="false" + app:strokeWidth="0dp"> Date: Mon, 28 Nov 2022 15:29:54 +0100 Subject: [PATCH 027/111] Replacements --- .../res/layout/activity_instance_profile.xml | 4 ++-- .../main/res/layout/activity_instance_social.xml | 4 ++-- app/src/main/res/layout/activity_report.xml | 16 ++++++++-------- app/src/main/res/layout/drawer_account.xml | 3 ++- app/src/main/res/layout/drawer_account_list.xml | 3 ++- app/src/main/res/layout/drawer_admin_account.xml | 3 ++- app/src/main/res/layout/drawer_announcement.xml | 3 ++- app/src/main/res/layout/drawer_conversation.xml | 3 ++- app/src/main/res/layout/drawer_domain_block.xml | 3 ++- app/src/main/res/layout/drawer_follow.xml | 3 ++- app/src/main/res/layout/drawer_instance_reg.xml | 3 ++- .../main/res/layout/drawer_status_compose.xml | 3 ++- app/src/main/res/layout/drawer_status_draft.xml | 3 ++- .../main/res/layout/drawer_status_filtered.xml | 3 ++- .../res/layout/drawer_status_filtered_hide.xml | 3 ++- .../main/res/layout/drawer_status_history.xml | 3 ++- .../main/res/layout/drawer_status_scheduled.xml | 3 ++- app/src/main/res/layout/drawer_status_simple.xml | 3 ++- app/src/main/res/layout/drawer_suggestion.xml | 3 ++- app/src/main/res/layout/drawer_tag.xml | 3 ++- app/src/main/res/layout/layout_poll.xml | 3 ++- 21 files changed, 48 insertions(+), 30 deletions(-) diff --git a/app/src/main/res/layout/activity_instance_profile.xml b/app/src/main/res/layout/activity_instance_profile.xml index 445dae09..57a9eaeb 100644 --- a/app/src/main/res/layout/activity_instance_profile.xml +++ b/app/src/main/res/layout/activity_instance_profile.xml @@ -166,9 +166,9 @@ android:scrollbars="none" app:layout_constraintTop_toBottomOf="@id/barrier_software_version_bottom" /> - - - - - - + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> + app:cardElevation="5dp" + app:strokeWidth="0dp"> - Date: Mon, 28 Nov 2022 15:56:58 +0100 Subject: [PATCH 028/111] Replacements --- .../android/ui/drawer/ComposeAdapter.java | 22 ++++----- app/src/main/res/layout/activity_about.xml | 1 - .../res/layout/activity_admin_account.xml | 1 - app/src/main/res/layout/activity_main.xml | 3 +- .../main/res/layout/activity_partnership.xml | 1 - app/src/main/res/layout/drawer_fetch_more.xml | 6 ++- app/src/main/res/layout/drawer_follow.xml | 17 +++---- app/src/main/res/layout/drawer_keyword.xml | 8 ++-- app/src/main/res/layout/drawer_status.xml | 6 +-- .../main/res/layout/drawer_status_compose.xml | 45 ++++++++++--------- .../main/res/layout/popup_release_notes.xml | 1 - 11 files changed, 58 insertions(+), 53 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java index b4860ef4..9f20c6a4 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java @@ -395,14 +395,14 @@ public class ComposeAdapter extends RecyclerView.Adapter statusCount + 1) { if (canBeRemoved(statusList.get(statusList.size() - 1))) { - holder.binding.addRemoveStatus.setImageResource(R.drawable.ic_compose_thread_remove_status); + holder.binding.addRemoveStatus.setIconResource(R.drawable.ic_compose_thread_remove_status); holder.binding.addRemoveStatus.setContentDescription(context.getString(R.string.remove_status)); holder.binding.addRemoveStatus.setOnClickListener(v -> { manageDrafts.onItemDraftDeleted(statusList.get(holder.getLayoutPosition()), holder.getLayoutPosition()); notifyItemChanged((getItemCount() - 1)); }); } else { - holder.binding.addRemoveStatus.setImageResource(R.drawable.ic_compose_thread_add_status); + holder.binding.addRemoveStatus.setIconResource(R.drawable.ic_compose_thread_add_status); holder.binding.addRemoveStatus.setContentDescription(context.getString(R.string.add_status)); holder.binding.addRemoveStatus.setOnClickListener(v -> { manageDrafts.onItemDraftAdded(holder.getLayoutPosition()); @@ -410,7 +410,7 @@ public class ComposeAdapter extends RecyclerView.Adapter { manageDrafts.onItemDraftAdded(holder.getLayoutPosition()); @@ -1251,19 +1251,19 @@ public class ComposeAdapter extends RecyclerView.Adapter holder.binding.visibilityPanel.setVisibility(View.GONE)); holder.binding.buttonVisibilityDirect.setOnClickListener(v -> { holder.binding.visibilityPanel.setVisibility(View.GONE); - holder.binding.buttonVisibility.setImageResource(R.drawable.ic_compose_visibility_direct); + holder.binding.buttonVisibility.setIconResource(R.drawable.ic_compose_visibility_direct); statusDraft.visibility = MastodonHelper.visibility.DIRECT.name(); }); holder.binding.buttonVisibilityPrivate.setOnClickListener(v -> { holder.binding.visibilityPanel.setVisibility(View.GONE); - holder.binding.buttonVisibility.setImageResource(R.drawable.ic_compose_visibility_private); + holder.binding.buttonVisibility.setIconResource(R.drawable.ic_compose_visibility_private); statusDraft.visibility = MastodonHelper.visibility.PRIVATE.name(); }); holder.binding.buttonVisibilityUnlisted.setOnClickListener(v -> { holder.binding.visibilityPanel.setVisibility(View.GONE); - holder.binding.buttonVisibility.setImageResource(R.drawable.ic_compose_visibility_unlisted); + holder.binding.buttonVisibility.setIconResource(R.drawable.ic_compose_visibility_unlisted); statusDraft.visibility = MastodonHelper.visibility.UNLISTED.name(); }); holder.binding.buttonVisibilityPublic.setOnClickListener(v -> { holder.binding.visibilityPanel.setVisibility(View.GONE); - holder.binding.buttonVisibility.setImageResource(R.drawable.ic_compose_visibility_public); + holder.binding.buttonVisibility.setIconResource(R.drawable.ic_compose_visibility_public); statusDraft.visibility = MastodonHelper.visibility.PUBLIC.name(); unlisted_changed = true; }); diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index 19874f8e..03cdd8dc 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -106,7 +106,6 @@ android:layout_margin="10dp" android:contentDescription="@string/make_an_action" android:scaleType="fitCenter" - android:tint="@color/white" android:visibility="gone" app:layout_constraintStart_toEndOf="@id/avatar_container" app:layout_constraintTop_toBottomOf="@id/banner_container" diff --git a/app/src/main/res/layout/activity_admin_account.xml b/app/src/main/res/layout/activity_admin_account.xml index 974846b2..84fba13c 100644 --- a/app/src/main/res/layout/activity_admin_account.xml +++ b/app/src/main/res/layout/activity_admin_account.xml @@ -246,7 +246,6 @@ android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" - android:backgroundTint="?colorPrimaryDark" app:layout_collapseMode="pin"> + android:layout_height="wrap_content"> @@ -24,7 +26,7 @@ android:layout_height="wrap_content" android:layout_gravity="center" - android:textColor="?colorAccent" + android:textColor="?colorPrimary" android:text="@string/fetch_more_messages" android:textAlignment="center" android:textAppearance="@style/TextAppearance.Material3.BodyMedium" @@ -33,7 +35,9 @@ - + android:icon="@drawable/ic_baseline_close_24" /> - diff --git a/app/src/main/res/layout/drawer_keyword.xml b/app/src/main/res/layout/drawer_keyword.xml index 8f9b12c9..510f5b92 100644 --- a/app/src/main/res/layout/drawer_keyword.xml +++ b/app/src/main/res/layout/drawer_keyword.xml @@ -1,5 +1,6 @@ - + app:strokeColor="?colorPrimary" /> \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_status.xml b/app/src/main/res/layout/drawer_status.xml index c89f7133..101a550d 100644 --- a/app/src/main/res/layout/drawer_status.xml +++ b/app/src/main/res/layout/drawer_status.xml @@ -549,13 +549,13 @@ android:gravity="end" android:visibility="gone"> - + app:icon="@drawable/ic_baseline_share_24" /> - @@ -78,23 +79,23 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@id/content"> - + app:icon="@drawable/ic_compose_emoji" /> - @@ -138,34 +139,34 @@ android:layout_marginHorizontal="6dp" app:layout_constraintTop_toBottomOf="@id/attachments_list_container" /> - - - @@ -174,6 +175,7 @@ style="@style/Widget.Material3.Button.OutlinedButton" android:layout_marginTop="6dp" android:layout_width="wrap_content" + android:textColor="?colorPrimary" android:layout_height="wrap_content" android:gravity="center" android:textAlignment="center" @@ -208,14 +210,15 @@ app:layout_constraintStart_toEndOf="@id/button_language" app:layout_constraintTop_toBottomOf="@id/character_count" /> - diff --git a/app/src/main/res/layout/popup_release_notes.xml b/app/src/main/res/layout/popup_release_notes.xml index 6691fa06..1d251813 100644 --- a/app/src/main/res/layout/popup_release_notes.xml +++ b/app/src/main/res/layout/popup_release_notes.xml @@ -80,7 +80,6 @@ android:layout_margin="10dp" android:contentDescription="@string/make_an_action" android:scaleType="fitCenter" - android:tint="@color/white" android:visibility="gone" app:layout_constraintStart_toEndOf="@id/avatar_container" app:layout_constraintTop_toBottomOf="@id/banner_container" From abf1da579cefc4b8f0c1b4ccb8c13a0251ccc7b7 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 28 Nov 2022 16:34:59 +0100 Subject: [PATCH 029/111] Replacements --- .../main/res/layout/drawer_status_compose.xml | 119 +++++++++--------- app/src/main/res/values/styles.xml | 12 +- 2 files changed, 69 insertions(+), 62 deletions(-) diff --git a/app/src/main/res/layout/drawer_status_compose.xml b/app/src/main/res/layout/drawer_status_compose.xml index e20246f3..f127d71d 100644 --- a/app/src/main/res/layout/drawer_status_compose.xml +++ b/app/src/main/res/layout/drawer_status_compose.xml @@ -20,8 +20,6 @@ android:id="@+id/cardview_container" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginHorizontal="12dp" - android:layout_marginTop="12dp" android:clipChildren="false" android:clipToPadding="false" app:cardElevation="5dp" @@ -37,10 +35,13 @@ - - - - - - - + android:id="@+id/action_container" + android:layout_marginStart="6dp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/text_area_divider"> + + + + + + + + + @@ -207,7 +215,7 @@ android:layout_height="12dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@id/button_post" - app:layout_constraintStart_toEndOf="@id/button_language" + app:layout_constraintStart_toEndOf="@id/action_container" app:layout_constraintTop_toBottomOf="@id/character_count" /> @color/deep_purple_700 @color/deep_purple_900 - @color/deep_purple_600 + @color/white @color/indigo_700 @color/indigo_900 - @color/indigo_600 + @color/white @color/red_900 @@ -51,11 +51,11 @@ @color/deep_purple_700 @color/deep_purple_900 - @color/deep_purple_600 + @color/white @color/indigo_700 @color/indigo_900 - @color/indigo_600 + @color/white @color/red_900 @@ -65,11 +65,11 @@ + - - From 635dc94b8d3b309979fdf88ea6fade6dd855ee61 Mon Sep 17 00:00:00 2001 From: Thomas Date: Tue, 29 Nov 2022 10:23:19 +0100 Subject: [PATCH 049/111] new colors --- app/src/main/AndroidManifest.xml | 12 +-- .../activities/AccountReportActivity.java | 6 +- .../activities/InstanceHealthActivity.java | 6 +- .../android/activities/ProfileActivity.java | 4 +- .../fedilab/android/helper/CountDrawable.java | 3 +- .../fedilab/android/helper/ThemeHelper.java | 2 +- .../android/ui/drawer/AccountAdapter.java | 6 +- .../android/ui/drawer/AccountListAdapter.java | 6 +- .../android/ui/drawer/StatusAdapter.java | 4 +- .../res/drawable/media_message_border.xml | 4 +- app/src/main/res/drawable/red_border.xml | 2 +- .../main/res/layout/account_field_item.xml | 6 +- .../res/layout/activity_admin_account.xml | 2 +- app/src/main/res/layout/activity_profile.xml | 7 +- app/src/main/res/layout/domains_blocked.xml | 2 +- .../fragment_login_register_mastodon.xml | 4 +- .../main/res/layout/fragment_slide_media.xml | 3 - .../res/layout/popup_manage_accounts_list.xml | 1 - .../layout/popup_notification_settings.xml | 14 +-- app/src/main/res/values-night/themes.xml | 86 +++++++++++++++++ app/src/main/res/values/colors.xml | 95 ++++++++++++------- app/src/main/res/values/styles.xml | 87 ----------------- app/src/main/res/values/themes.xml | 84 ++++++++++++++++ 23 files changed, 276 insertions(+), 170 deletions(-) create mode 100644 app/src/main/res/values-night/themes.xml delete mode 100644 app/src/main/res/values/styles.xml create mode 100644 app/src/main/res/values/themes.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9294e2a7..a9e48709 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -30,7 +30,7 @@ android:roundIcon="@mipmap/ic_launcher_bubbles_round" android:supportsRtl="true" android:requestLegacyExternalStorage="true" - android:theme="@style/AppThemeDark" + android:theme="@style/AppTheme" android:usesCleartextTraffic="true" tools:replace="android:allowBackup"> @@ -320,29 +320,29 @@ + android:theme="@style/AppThemeBar" /> { List ids = new ArrayList<>(); @@ -107,7 +107,7 @@ public class AccountListAdapter extends RecyclerView.Adapter { accountList.remove(account); diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java index b70d3f0d..a3fb426e 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java @@ -1237,7 +1237,7 @@ public class StatusAdapter extends RecyclerView.Adapter layoutMediaBinding.media.setScaleType(ImageView.ScaleType.CENTER_CROP); } if (statusToDeal.sensitive) { - Helper.changeDrawableColor(context, layoutMediaBinding.viewHide, R.color.red_1); + Helper.changeDrawableColor(context, layoutMediaBinding.viewHide, ThemeHelper.getAttColor(context, R.attr.colorError)); } else { Helper.changeDrawableColor(context, layoutMediaBinding.viewHide, R.color.white); } @@ -1402,7 +1402,7 @@ public class StatusAdapter extends RecyclerView.Adapter .into(layoutMediaBinding.media); } if (statusToDeal.sensitive) { - Helper.changeDrawableColor(context, layoutMediaBinding.viewHide, R.color.red_1); + Helper.changeDrawableColor(context, layoutMediaBinding.viewHide, ThemeHelper.getAttColor(context, R.attr.colorError)); } else { Helper.changeDrawableColor(context, layoutMediaBinding.viewHide, R.color.white); } diff --git a/app/src/main/res/drawable/media_message_border.xml b/app/src/main/res/drawable/media_message_border.xml index 1385c993..6c221bca 100644 --- a/app/src/main/res/drawable/media_message_border.xml +++ b/app/src/main/res/drawable/media_message_border.xml @@ -1,10 +1,10 @@ - + + android:color="?colorPrimary" /> + android:color="?colorError" /> + app:strokeColor="?colorError" /> diff --git a/app/src/main/res/layout/activity_admin_account.xml b/app/src/main/res/layout/activity_admin_account.xml index fee5182b..57f0e20f 100644 --- a/app/src/main/res/layout/activity_admin_account.xml +++ b/app/src/main/res/layout/activity_admin_account.xml @@ -147,7 +147,7 @@ android:layout_marginTop="5dp" android:background="@drawable/red_border" android:text="Peertube" - android:textColor="@color/red_1" + android:textColor="?colorError" android:visibility="gone" tools:ignore="HardcodedText" /> diff --git a/app/src/main/res/layout/activity_profile.xml b/app/src/main/res/layout/activity_profile.xml index d9463538..9979a096 100644 --- a/app/src/main/res/layout/activity_profile.xml +++ b/app/src/main/res/layout/activity_profile.xml @@ -172,7 +172,7 @@ android:layout_marginTop="5dp" android:background="@drawable/red_border" android:text="Peertube" - android:textColor="@color/red_1" + android:textColor="?colorError" android:visibility="gone" tools:ignore="HardcodedText" /> @@ -191,7 +191,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" - android:textColor="@color/red" + android:textColor="?colorError" android:visibility="gone" /> + android:text="@string/disclaimer_full" /> + android:textColor="?colorError" /> diff --git a/app/src/main/res/layout/fragment_login_register_mastodon.xml b/app/src/main/res/layout/fragment_login_register_mastodon.xml index 9bf162f9..f2be10fb 100644 --- a/app/src/main/res/layout/fragment_login_register_mastodon.xml +++ b/app/src/main/res/layout/fragment_login_register_mastodon.xml @@ -31,7 +31,7 @@ android:background="@drawable/red_border" android:gravity="center" android:padding="5dp" - android:textColor="@color/red_1" + android:textColor="?colorError" android:visibility="gone" /> @@ -131,9 +130,7 @@ android:layout_marginBottom="40dp" android:background="@drawable/media_message_border" android:gravity="center" - android:text="@string/media_ready" - android:textColor="@color/dark_text" android:textSize="14sp" android:visibility="gone" /> diff --git a/app/src/main/res/layout/popup_manage_accounts_list.xml b/app/src/main/res/layout/popup_manage_accounts_list.xml index 9610980a..e632e44e 100644 --- a/app/src/main/res/layout/popup_manage_accounts_list.xml +++ b/app/src/main/res/layout/popup_manage_accounts_list.xml @@ -13,7 +13,6 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" - android:textColor="@color/titleb" android:textSize="20sp" /> + app:iconTint="?colorError" + app:rippleColor="?colorError" /> + app:iconTint="?colorError" + app:rippleColor="?colorError" + app:strokeColor="?colorError" /> diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 00000000..4aa32408 --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,86 @@ + + + + + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 7057d2af..51ea9a7d 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -2,51 +2,80 @@ - #191b22 - #606984 - #595aff - #8c8dff + #6750A4 + #6750A4 + #FFFFFF + #EADDFF + #21005D + #625B71 + #FFFFFF + #E8DEF8 + #1D192B + #7D5260 + #FFFFFF + #FFD8E4 + #31111D + #B3261E + #FFFFFF + #F9DEDC + #410E0B + #79747E + #FFFBFE + #1C1B1F + #FFFBFE + #1C1B1F + #E7E0EC + #49454F + #313033 + #F4EFF4 + #D0BCFF + #000000 + #6750A4 + #CAC4D0 + #000000 + #D0BCFF + #381E72 + #4F378B + #EADDFF + #CCC2DC + #332D41 + #4A4458 + #E8DEF8 + #EFB8C8 + #492532 + #633B48 + #FFD8E4 + #F2B8B5 + #601410 + #8C1D18 + #F9DEDC + #938F99 + #1C1B1F + #E6E1E5 + #1C1B1F + #E6E1E5 + #49454F + #CAC4D0 + #E6E1E5 + #313033 + #6750A4 + #000000 + #D0BCFF + #49454F + #000000 - #8c8dff - #595aff - - - #6200EE - #03DAC6 - #000 - #3700B3 - - - - - - #d9d9d9 - @color/mastodonC4 #FFEA00 #42A5F5 - #f3f3f3 #ca8f04 #2b90d9 #00000000 #77000000 - #FFF - #009688 - #F44336 - #FFCDD2 - #D7CCC8 + #FFF #000 - - #585c67 - #454b5b - #282c37 - #313543 - #9baec8 - #d9e1e8 - #2b90d9 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml deleted file mode 100644 index 616610c9..00000000 --- a/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 00000000..72e7d86f --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + From 1fbce05dbd45f65d21b9d0aaf88a57670cf1109c Mon Sep 17 00:00:00 2001 From: Thomas Date: Tue, 29 Nov 2022 11:06:37 +0100 Subject: [PATCH 050/111] Improvements --- app/src/main/AndroidManifest.xml | 8 +- .../app/fedilab/android/BaseMainActivity.java | 2 - .../android/helper/SpannableHelper.java | 11 -- .../fedilab/android/helper/ThemeHelper.java | 14 --- .../android/ui/drawer/ComposeAdapter.java | 28 +---- .../ui/drawer/ConversationAdapter.java | 26 +--- .../ui/drawer/NotificationAdapter.java | 17 +-- .../android/ui/drawer/StatusAdapter.java | 112 ----------------- .../ui/drawer/StatusHistoryAdapter.java | 28 ----- .../android/ui/drawer/TopMenuAdapter.java | 117 ------------------ .../res/layout/activity_instance_profile.xml | 1 - app/src/main/res/layout/nav_header_main.xml | 7 +- app/src/main/res/layout/row_emoji.xml | 1 - .../res/navigation/nav_graph_settings.xml | 14 +-- app/src/main/res/values-night/themes.xml | 2 + app/src/main/res/values/themes.xml | 2 + 16 files changed, 20 insertions(+), 370 deletions(-) delete mode 100644 app/src/main/java/app/fedilab/android/ui/drawer/TopMenuAdapter.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a9e48709..88f68aaa 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -293,15 +293,15 @@ android:name=".activities.InstanceActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/action_about_instance" - android:theme="@style/Theme.Material3.Dark.Dialog.Alert" /> + android:theme="@style/AlertDialog" /> + android:theme="@style/AlertDialog" /> + android:theme="@style/AlertDialog" /> @@ -316,7 +316,7 @@ + android:theme="@style/AlertDialog" /> { if (instanceInfo.configuration.media_attachments.supported_mime_types != null) { if (instanceInfo.getMimeTypeAudio().size() == 0) { diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ConversationAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ConversationAdapter.java index b266bda2..d64834d3 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ConversationAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ConversationAdapter.java @@ -88,31 +88,9 @@ public class ConversationAdapter extends RecyclerView.Adapter(holderFollow.binding.displayName)), TextView.BufferType.SPANNABLE); holderFollow.binding.username.setText(String.format("@%s", notification.account.acct)); - SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); - int theme_icons_color = -1; - int theme_text_color = -1; - if (sharedpreferences.getBoolean("use_custom_theme", false)) { - //Getting custom colors - theme_icons_color = sharedpreferences.getInt("theme_icons_color", -1); - theme_text_color = sharedpreferences.getInt("theme_text_color", -1); - } - if (theme_icons_color != -1) { - Helper.changeDrawableColor(context, holderFollow.binding.cacheIndicator, theme_icons_color); - } - if (theme_text_color != -1) { - holderFollow.binding.displayName.setTextColor(theme_text_color); - holderFollow.binding.username.setTextColor(theme_text_color); - holderFollow.binding.title.setTextColor(theme_text_color); - } + holderFollow.binding.rejectButton.setVisibility(View.GONE); holderFollow.binding.acceptButton.setVisibility(View.GONE); if (getItemViewType(position) == TYPE_FOLLOW_REQUEST) { diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java index a3fb426e..f4204b88 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java @@ -46,9 +46,7 @@ import android.os.Handler; import android.os.Looper; import android.text.Html; import android.text.SpannableString; -import android.text.Spanned; import android.text.TextUtils; -import android.text.style.ForegroundColorSpan; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.MotionEvent; @@ -498,56 +496,12 @@ public class StatusAdapter extends RecyclerView.Adapter } int truncate_toots_size = sharedpreferences.getInt(context.getString(R.string.SET_TRUNCATE_TOOTS_SIZE), 0); - // boolean display_video_preview = sharedpreferences.getBoolean(context.getString(R.string.SET_DISPLAY_VIDEO_PREVIEWS), true); - // boolean isModerator = sharedpreferences.getBoolean(Helper.PREF_IS_MODERATOR, false); - // boolean isAdmin = sharedpreferences.getBoolean(Helper.PREF_IS_ADMINISTRATOR, false); - int theme_icons_color = -1; - int theme_statuses_color = -1; - int theme_boost_header_color = -1; - int theme_text_color = -1; - int theme_text_header_1_line = -1; - int theme_text_header_2_line = -1; - int link_color = -1; - /* if (sharedpreferences.getBoolean("use_custom_theme", false)) { - //Getting custom colors - theme_icons_color = sharedpreferences.getInt("theme_icons_color", -1); - theme_statuses_color = sharedpreferences.getInt("theme_statuses_color", -1); - theme_boost_header_color = sharedpreferences.getInt("theme_boost_header_color", -1); - theme_text_color = sharedpreferences.getInt("theme_text_color", -1); - theme_text_header_1_line = sharedpreferences.getInt("theme_text_header_1_line", -1); - theme_text_header_2_line = sharedpreferences.getInt("theme_text_header_2_line", -1); - theme_text_color = sharedpreferences.getInt("theme_text_color", -1); - link_color = sharedpreferences.getInt("theme_link_color", -1); - }*/ if (currentAccount != null && currentAccount.api == Account.API.PLEROMA) { holder.binding.statusAddCustomEmoji.setVisibility(View.VISIBLE); holder.binding.statusEmoji.setVisibility(View.VISIBLE); } - if (theme_icons_color != -1) { - Helper.changeDrawableColor(context, holder.binding.actionButtonReply, theme_icons_color); - Helper.changeDrawableColor(context, holder.binding.cacheIndicator, theme_icons_color); - Helper.changeDrawableColor(context, holder.binding.statusAddCustomEmoji, theme_icons_color); - Helper.changeDrawableColor(context, holder.binding.statusEmoji, theme_icons_color); - Helper.changeDrawableColor(context, holder.binding.actionButtonMore, theme_icons_color); - Helper.changeDrawableColor(context, R.drawable.ic_baseline_star_24, theme_icons_color); - Helper.changeDrawableColor(context, R.drawable.ic_repeat, theme_icons_color); - Helper.changeDrawableColor(context, holder.binding.visibility, theme_icons_color); - Helper.changeDrawableColor(context, R.drawable.ic_star_outline, theme_icons_color); - Helper.changeDrawableColor(context, R.drawable.ic_person, theme_icons_color); - Helper.changeDrawableColor(context, R.drawable.ic_bot, theme_icons_color); - Helper.changeDrawableColor(context, R.drawable.ic_baseline_reply_16, theme_icons_color); - holder.binding.actionButtonFavorite.setInActiveImageTintColor(theme_icons_color); - holder.binding.actionButtonBookmark.setInActiveImageTintColor(theme_icons_color); - holder.binding.actionButtonBoost.setInActiveImageTintColor(theme_icons_color); - holder.binding.replyCount.setTextColor(theme_icons_color); - } else { - holder.binding.actionButtonFavorite.setInActiveImageTintColor(ThemeHelper.getAttColor(context, R.attr.colorControlNormal)); - holder.binding.actionButtonBookmark.setInActiveImageTintColor(ThemeHelper.getAttColor(context, R.attr.colorControlNormal)); - holder.binding.actionButtonBoost.setInActiveImageTintColor(ThemeHelper.getAttColor(context, R.attr.colorControlNormal)); - } - holder.binding.actionButtonFavorite.pressOnTouch(false); holder.binding.actionButtonBoost.pressOnTouch(false); holder.binding.actionButtonBookmark.pressOnTouch(false); @@ -574,56 +528,6 @@ public class StatusAdapter extends RecyclerView.Adapter holder.binding.statusPinned.setVisibility(View.GONE); } - if (theme_text_header_2_line != -1) { - Pattern hashAcct; - SpannableString wordToSpan; - if (status.reblog != null) { - wordToSpan = new SpannableString("@" + status.reblog.account.acct); - hashAcct = Pattern.compile("(@" + status.reblog.account.acct + ")"); - } else { - wordToSpan = new SpannableString("@" + status.account.acct); - hashAcct = Pattern.compile("(@" + status.account.acct + ")"); - } - Matcher matcherAcct = hashAcct.matcher(wordToSpan); - while (matcherAcct.find()) { - int matchStart = matcherAcct.start(1); - int matchEnd = matcherAcct.end(); - if (wordToSpan.length() >= matchEnd && matchStart < matchEnd && matchStart >= 0) { - wordToSpan.setSpan(new ForegroundColorSpan(theme_text_header_2_line), matchStart, matchEnd, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); - } - } - Helper.changeDrawableColor(context, holder.binding.statusBoostIcon, theme_text_header_2_line); - Helper.changeDrawableColor(context, holder.binding.statusPinned, theme_text_header_2_line); - } - if (theme_statuses_color != -1) { - holder.binding.cardviewContainer.setBackgroundColor(theme_statuses_color); - holder.binding.translationLabel.setBackgroundColor(theme_statuses_color); - } - if (theme_boost_header_color != -1 && status.reblog != null) { - holder.binding.statusBoosterInfo.setBackgroundColor(theme_boost_header_color); - - } else { - holder.binding.statusBoosterInfo.setBackgroundColor(0); - } - if (theme_text_color != -1) { - holder.binding.statusContent.setTextColor(theme_text_color); - holder.binding.statusContentTranslated.setTextColor(theme_text_color); - holder.binding.spoiler.setTextColor(theme_text_color); - holder.binding.dateShort.setTextColor(theme_text_color); - holder.binding.poll.pollInfo.setTextColor(theme_text_color); - holder.binding.cardDescription.setTextColor(theme_text_color); - holder.binding.time.setTextColor(theme_text_color); - holder.binding.reblogsCount.setTextColor(theme_text_color); - holder.binding.favoritesCount.setTextColor(theme_text_color); - holder.binding.favoritesCount.setTextColor(theme_text_color); - Helper.changeDrawableColor(context, holder.binding.repeatInfo, theme_text_color); - Helper.changeDrawableColor(context, holder.binding.favInfo, theme_text_color); - Helper.changeDrawableColor(context, R.drawable.ic_baseline_lock_24, theme_text_color); - } - if (link_color != -1) { - holder.binding.cardUrl.setTextColor(link_color); - } - holder.binding.toggleTruncate.setVisibility(View.GONE); if (status.isFocused) { @@ -952,13 +856,7 @@ public class StatusAdapter extends RecyclerView.Adapter statusToDeal.account.getSpanDisplayName(context, new WeakReference<>(holder.binding.displayName)), TextView.BufferType.SPANNABLE); - if (theme_text_header_1_line != -1) { - holder.binding.displayName.setTextColor(theme_text_header_1_line); - } holder.binding.username.setText(String.format("@%s", statusToDeal.account.acct)); - if (theme_text_header_2_line != -1) { - holder.binding.username.setTextColor(theme_text_header_2_line); - } //final float scale = context.getResources().getDisplayMetrics().density; final float scale = sharedpreferences.getFloat(context.getString(R.string.SET_FONT_SCALE), 1.1f); final float scaleIcon = sharedpreferences.getFloat(context.getString(R.string.SET_FONT_SCALE_ICON), 1.1f); @@ -1130,13 +1028,7 @@ public class StatusAdapter extends RecyclerView.Adapter TextView.BufferType.SPANNABLE); holder.binding.statusBoosterInfo.setVisibility(View.VISIBLE); - if (theme_text_header_1_line != -1) { - holder.binding.statusBoosterDisplayName.setTextColor(theme_text_header_1_line); - } holder.binding.statusBoosterUsername.setText(String.format("@%s", status.account.acct)); - if (theme_text_header_2_line != -1) { - holder.binding.statusBoosterUsername.setTextColor(theme_text_header_2_line); - } } else { holder.binding.statusBoosterInfo.setVisibility(View.GONE); } @@ -1513,10 +1405,6 @@ public class StatusAdapter extends RecyclerView.Adapter @NonNull LayoutPollItemBinding pollItemBinding = LayoutPollItemBinding.inflate(inflater, holder.binding.poll.rated, true); double value = ((double) (pollItem.votes_count * 100) / (double) statusToDeal.poll.voters_count); pollItemBinding.pollItemPercent.setText(String.format("%s %%", (int) value)); - if (theme_text_color != -1) { - pollItemBinding.pollItemPercent.setTextColor(theme_text_color); - pollItemBinding.pollItemText.setTextColor(theme_text_color); - } pollItemBinding.pollItemText.setText( pollItem.getSpanTitle(context, statusToDeal, new WeakReference<>(pollItemBinding.pollItemText)), diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusHistoryAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusHistoryAdapter.java index 2d81d805..66c2504c 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusHistoryAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusHistoryAdapter.java @@ -15,14 +15,12 @@ package app.fedilab.android.ui.drawer; * see . */ import android.content.Context; -import android.content.SharedPreferences; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; -import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.RecyclerView; import java.lang.ref.WeakReference; @@ -78,32 +76,6 @@ public class StatusHistoryAdapter extends RecyclerView.Adapter. */ - - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.NonNull; -import androidx.core.content.res.ResourcesCompat; -import androidx.recyclerview.widget.RecyclerView; - -import java.util.List; - -import app.fedilab.android.R; -import app.fedilab.android.client.entities.app.PinnedTimeline; -import app.fedilab.android.client.entities.app.Timeline; -import app.fedilab.android.databinding.DrawerTopMenuItemBinding; - - -public class TopMenuAdapter extends RecyclerView.Adapter { - private final List pinnedTimelines; - public TopMenuClicked itemListener; - private Context _mContext; - - public TopMenuAdapter(List pinnedTimelines) { - this.pinnedTimelines = pinnedTimelines; - } - - public int getCount() { - return pinnedTimelines.size(); - } - - public PinnedTimeline getItem(int position) { - return pinnedTimelines.get(position); - } - - @NonNull - @Override - public TopMenuHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - _mContext = parent.getContext(); - DrawerTopMenuItemBinding itemBinding = DrawerTopMenuItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false); - return new TopMenuHolder(itemBinding); - } - - @Override - public void onBindViewHolder(@NonNull TopMenuHolder holder, int position) { - - PinnedTimeline pinnedTimeline = pinnedTimelines.get(position); - if (pinnedTimeline.displayed) { - String name = ""; - if (pinnedTimeline.type == Timeline.TimeLineEnum.LIST) { - name = pinnedTimeline.mastodonList.title; - } else if (pinnedTimeline.type == Timeline.TimeLineEnum.TAG) { - name = pinnedTimeline.tagTimeline.name; - } else if (pinnedTimeline.type == Timeline.TimeLineEnum.REMOTE) { - name = pinnedTimeline.remoteInstance.host; - } - holder.binding.name.setText(name); - holder.binding.getRoot().setVisibility(View.VISIBLE); - } else { - holder.binding.getRoot().setVisibility(View.GONE); - } - holder.binding.getRoot().setOnClickListener(v -> itemListener.onClick(v, pinnedTimeline, position)); - holder.binding.getRoot().setOnLongClickListener(v -> { - itemListener.onLongClick(holder.binding.getRoot(), pinnedTimeline, position); - return true; - }); - //Manage item decoration below the text - if (pinnedTimeline.isSelected) { - holder.binding.underline.setVisibility(View.VISIBLE); - holder.binding.name.setTextColor(ResourcesCompat.getColor(_mContext.getResources(), R.color.colorAccent, _mContext.getTheme())); - } else { - holder.binding.underline.setVisibility(View.GONE); - int textColor = _mContext.getResources().getColor(android.R.color.primary_text_dark); - holder.binding.name.setTextColor(textColor); - } - } - - public long getItemId(int position) { - return position; - } - - @Override - public int getItemCount() { - return pinnedTimelines.size(); - } - - public interface TopMenuClicked { - void onClick(View v, PinnedTimeline pinnedTimeline, int position); - - void onLongClick(View v, PinnedTimeline pinnedTimeline, int position); - } - - static class TopMenuHolder extends RecyclerView.ViewHolder { - DrawerTopMenuItemBinding binding; - - TopMenuHolder(DrawerTopMenuItemBinding itemView) { - super(itemView.getRoot()); - binding = itemView; - } - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_instance_profile.xml b/app/src/main/res/layout/activity_instance_profile.xml index 30d44c58..306150fb 100644 --- a/app/src/main/res/layout/activity_instance_profile.xml +++ b/app/src/main/res/layout/activity_instance_profile.xml @@ -175,7 +175,6 @@ android:layout_marginTop="20dp" android:text="@string/close" android:textAllCaps="false" - android:textColor="@color/white" android:textSize="16sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml index 98fa7e65..da7defe5 100644 --- a/app/src/main/res/layout/nav_header_main.xml +++ b/app/src/main/res/layout/nav_header_main.xml @@ -3,8 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="@dimen/nav_header_height" - android:theme="@style/ThemeOverlay.AppCompat.Dark"> + android:layout_height="@dimen/nav_header_height"> + tools:text="@tools:sample/full_names" /> \ No newline at end of file diff --git a/app/src/main/res/navigation/nav_graph_settings.xml b/app/src/main/res/navigation/nav_graph_settings.xml index 56b5caf2..7c3426b3 100644 --- a/app/src/main/res/navigation/nav_graph_settings.xml +++ b/app/src/main/res/navigation/nav_graph_settings.xml @@ -55,11 +55,7 @@ + app:destination="@id/ThemeSettingsActivity" /> - + + diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 4aa32408..5d26b899 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -83,4 +83,6 @@ true + + @@ -81,6 +91,11 @@ false true true + ?attr/background + ?attr/background + false + false + false @@ -78,6 +89,11 @@ false true true + ?attr/background + ?attr/background + true + true + true From ade0a24d78394a765454b7bcd14b3d7b66b08914 Mon Sep 17 00:00:00 2001 From: ButterflyOfFire Date: Wed, 30 Nov 2022 08:15:04 +0100 Subject: [PATCH 059/111] Translated using Weblate (German) Currently translated at 99.7% (932 of 934 strings) Co-authored-by: ButterflyOfFire Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/de/ Translation: Fedilab/Strings --- app/src/main/res/values-de/strings.xml | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 0a3c8c63..6f18470f 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -61,7 +61,7 @@ Die folgenden Informationen könnten das Profil des Nutzers unvollständig wiedergeben. Emoji einfügen Die App verfügt derzeit nicht über benutzerdefinierte Emojis. - Sind Sie sicher, dass Sie @%1$s@%2$s abmelden möchten? + Sind Du sicher, dass Sie @%1$s@%2$s abmelden möchten\? Keine Nachrichten zum Anzeigen Diese Nachricht deinen Favoriten hinzufügen\? @@ -508,14 +508,14 @@ Replace Medium links Benutze ein alternatives Frontend für Medium Default: scribe.rip - Verwenden Sie ein Push-Benachrichtigungssystem, um Benachrichtigungen in Echtzeit zu erhalten. + Verwenden Du ein Push-Benachrichtigungssystem, um Benachrichtigungen in Echtzeit zu erhalten. Notizen hinzufügen Notizen für das Konto Erlauben es, große Fotos in kleinere Bilder mit sehr weniger oder vernachlässigbaren Verlust der Qualität des Bildes zu komprimieren. Erlaube das Komprimieren von Videos während die Qualität erhalten bleibt. Sortieren nach Links - Ändern Sie die Farbe der Links (URLs, Erwähnungen, Tags, etc.) in Nachrichten + Ändern Du die Farbe der Links (URLs, Erwähnungen, Tags, etc.) in Nachrichten Reblogs Titel Ändern der Farbe des Anzeigenamens oben in den Nachrichten Ändern der Farbe des Benutzernamens am Anfang von Nachrichten @@ -523,7 +523,7 @@ Beiträge Hintergrundfarbe der posts in den timelines Farben zurücksetzen - Tippen Sie hier, um alle Ihre benutzerdefinierten Farben zurückzusetzen + Tippen Du hier, um alle Ihre benutzerdefinierten Farben zurückzusetzen Zurücksetzen Symbole Farbe der unteren Symbole in Zeitleisten @@ -532,8 +532,8 @@ Aktion ausführen Übersetzung Textfarbe - Ändern Sie die Textfarbe in posts - Verwenden Sie ein benutzerdefiniertes Design + Ändern Du die Textfarbe in posts + Verwenden Du ein benutzerdefiniertes Design Farbschema Das Theme wurde exportiert Das Design wurde erfolgreich als CSV exportiert @@ -571,7 +571,10 @@ Wasserzeichen Automatisches Hinzufügen eines Wasserzeichens am unteren Rand von Bildern. Der Text kann für jedes Konto angepasst werden. Keine Dienste gefunden! - Sie benötigen einen Dienst, um Push-Benachrichtigungen zu erhalten.\nWeitere Details finden Sie unter %1$s.\n\nSie können Push-Benachrichtigungen auch in den Einstellungen deaktivieren, um diese Nachricht zu ignorieren. + Du benötigen einen Dienst, um Push-Benachrichtigungen zu erhalten. +\nWeitere Details finden Sie unter %1$s. +\n +\nDu können Push-Benachrichtigungen auch in den Einstellungen deaktivieren, um diese Nachricht zu ignorieren. Dienstanbieter auswählen Fortfahren Diese Instanz scheint nicht gültig zu sein! @@ -684,8 +687,8 @@ Wähle die beste Übereinstimmung Entfolge %1$s Du folgst diesem Konto. Um die Beiträge nicht mehr in deiner Home-Timeline zu sehen, entfolge ihm. - Du wirst die Beiträge nicht mehr sehen. Sie können dir immer noch folgen und deine Beiträge sehen und wissen nicht, dass sie stummgeschaltet sind. - Du wirst die Beiträge nicht mehr sehen. Sie können deine Beiträge nicht sehen und dir nicht mehr folgen. Sie werden erkennen können, dass sie blockiert sind. + Du wirst die Beiträge nicht mehr sehen. Du können dir immer noch folgen und deine Beiträge sehen und wissen nicht, dass sie stummgeschaltet sind. + Du wirst die Beiträge nicht mehr sehen. Du können deine Beiträge nicht sehen und dir nicht mehr folgen. Sie werden erkennen können, dass sie blockiert sind. Boosten Aktualisierungen Anderer Folgende @@ -715,7 +718,7 @@ Nachrichten im Cache für Startseite Nachrichten im Cache für andere Timelines Cache leeren - Sind Sie sich sicher, den Cache zu leeren\? Wenn Sie Entwürfe mit Bildern, etc haben, werden die angehängten Dateien gelöscht. + Sind Du sich sicher, den Cache zu leeren\? Wenn Du Entwürfe mit Bildern, etc haben, werden die angehängten Dateien gelöscht. Verlassen, ohne das Bild zu speichern\? Form Domäne From 6b7f8b6d8a00144c68cc41f40501640b9eaa08fd Mon Sep 17 00:00:00 2001 From: joenepraat Date: Wed, 30 Nov 2022 08:15:04 +0100 Subject: [PATCH 060/111] Translated using Weblate (Dutch) Currently translated at 100.0% (934 of 934 strings) Co-authored-by: joenepraat Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/nl/ Translation: Fedilab/Strings --- app/src/main/res/values-nl/strings.xml | 175 ++++++++++++++----------- 1 file changed, 97 insertions(+), 78 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 4d5868b8..4b445494 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -24,7 +24,7 @@ Server: bv. mastodon.social Werkt nu met account %1$s Account toevoegen - De inhoud van het bericht is naar het klembord gekopieerd + De inhoud van dit bericht is naar het klembord gekopieerd De link van het bericht is naar het klembord gekopieerd Camera Alles verwijderen @@ -113,7 +113,7 @@ %d uur - %d uren + %d uur %d dag @@ -179,8 +179,8 @@ Account wordt niet langer gevolgd! Het bericht is geboost! Het bericht wordt niet langer geboost! - Bericht is als favoriet gemarkeerd! - Het bericht is verwijderd uit je favorieten! + Het bericht is als favoriet gemarkeerd! + Het bericht wordt niet langer als favoriet gemarkeerd! Oeps! Er ging wat mis! Er ging wat mis! De server gaf geen autorisatiecode terug! De domeinnaam van de server is onjuist! @@ -211,7 +211,7 @@ Tussen en Gebruik de ingebouwde webbrowser - Aangepaste tabs + Aangepaste tabbladen Automatisch tekstwaarschuwingen (cw) uitklappen LED-kleur instellen: @@ -234,7 +234,7 @@ Resize video\'s - Mb + MB Titel Titel… @@ -283,14 +283,14 @@ Filters Geen filters om weer te geven. Je kunt er een maken door op de \"+\" knop te drukken. Sleutelwoord of zin - Home tijdlijn + Starttijdlijn Openbare tijdlijnen - Notificaties - Conversaties + Meldingen + Gesprekken Wordt gematched ongeacht de hoofdlettergevoeligheid in tekst of inhoudswaarschuwing van een bericht - Droppen in plaats van verbergen + Volledig verwijderen in plaats van verbergen Gefilterde berichten verdwijnen definitief, zelfs als een filter later is verwijderd - Wanneer het sleutelwoord of zin enkel alfanumeriek is, zal het enkel worden gematched op het hele woord + Wanneer het trefwoord of zin enkel alfanumeriek is, zal het enkel worden toegepast wanneer het overeenkomt met het hele woord Heel woord Filter contexten Een of meerdere contexten waar de filter van toepassing zou zijn @@ -304,7 +304,7 @@ Nieuwe favoriet Nieuwe vermelding Poll is beëindigd - Berichten Backup + Berichten backuppen Nieuwe berichten Media downloaden Selecteer toon @@ -336,7 +336,7 @@ Logo MastoHost Emojikiezer Gesprek uitbreiden - Aangepaste emojikiezer + Lokale emojikiezer Favicon Media voor het toevoegen van een beschrijving @@ -354,7 +354,7 @@ NSFW tonen Bot Pixelfedserver - Server + Mastodonserver Eén van deze Al deze Geen van deze @@ -384,7 +384,7 @@ Geen tags Een afbeelding toevoegen wanneer een URL wordt gedeeld - Een poll maken + Poll aanmaken Keuze %d Je hebt tenminste twee keuzes nodig voor een poll! Klaar @@ -421,12 +421,12 @@ Het gesprek wordt niet meer genegeerd! Het gesprek wordt genegeerd Algemeen - Regionale + Regionaal Kunst Activisme Gaming Technologie - Bont + Furry Voedsel Logo van de server Meld je aan op Mastodon @@ -445,41 +445,41 @@ Wachtwoord moet uit minstens 8 karakters bestaan Gebruikersnaam mag alleen bestaan uit letters, getallen en underscores Account aangemaakt! - Uw account is aangemaakt! + Jouw account is aangemaakt! \n -\n Denk eraan om uw e-mail te valideren binnen 48 uur. +\n Denk eraan om binnen 48 uur jouw e-mail te valideren. \n -\n U kunt nu uw account verbinden door %1$s in het eerste veld te schrijven en op Verbinden te klikken. +\n Je kunt nu jouw account verbinden door %1$s in het eerste veld in te vullen en op Verbinden te klikken. \n -\n Belangrijk: Als uw server moet worden gevalideerd, ontvangt u een e-mail zodra deze is gevalideerd! +\n Belangrijk: Als jouw server moet worden gevalideerd, ontvang je een e-mail zodra deze is gevalideerd! Het bericht opslaan in concepten? - Administratie + Beheer Rapporten Onopgelost - Remote + Extern Actief - Pending + In afwachting Uitgeschakeld - Suspended + Opgeschort Toestemmingen - Uitgeschakeld - Silence + Uitschakelen + Beperken Account - Undo silence - Undo disable - Suspend - Undo suspend + Niet meer beperken + Niet meer uitschakelen + Opschorten + Niet meer opschorten Audio Spraakbericht - During the time slot, the app will send notifications. You can reverse (ie: silent) this time slot with the right spinner. + Tijdens het tijdslot stuurt de app meldingen. Je kunt dit tijdslot omkeren door hieronder voor \'Stil\' te kiezen. Previews worden niet bijgesneden in tijdlijnen - Automatically insert a line break after the mention to capitalize the first letter - Allow content creators to share statuses to their RSS feeds + Automatisch na de vermelding een nieuwe regel beginnen, om zo de eerste zin met een hoofdletter te beginnen + Gebruikers toestaan om berichten aan hun RSS feeds toe te voegen Opstellen Selecteer - Voeg een server toe - Enable crash reports - If enabled, a crash report will be created locally and then you will be able to share it. + Server toevoegen + Crashrapporten inschakelen + Wanneer dit is ingeschakeld, wordt lokaal een crashrapport aangemaakt, dat je vervolgens kunt delen. Fedilab is gestopt :( Je kunt mij per e-mail foutrapportages sturen. Dit helpt om het probleem op te lossen :)\n\nJe kunt extra informatie toevoegen. Dank je! Zichtbaarheid @@ -518,14 +518,14 @@ Gesorteerd op Links Verander de kleur van links (URLs, mentions, tags, etc.) in berichten - Boost titel + Header van boosts Verander de kleur van de weergavenaam boven de berichten Verander de kleur van de gebruikersnaam boven de berichten Verander de kleur van de header van boosts - Posts + Berichten Achtergrondkleur van berichten in tijdlijnen Reset kleuren - Klik hier om al je aangepaste kleuren te resetten + Hier klikken om al je aangepaste kleuren opnieuw in te stellen Reset Iconen Kleur van de onderste iconen in tijdlijnen @@ -538,7 +538,7 @@ Gebruik een aangepast thema Thema Het thema werd geëxporteerd - Het thema is met succes geëxporteerd in CSV + Het thema is met succes naar een CSV-bestand geëxporteerd Een thema importeren Tik hier om een thema uit een eerdere export te importeren Exporteer het thema @@ -567,7 +567,7 @@ Identiteitsbewijzen Geverifieerde identiteit Geverifieerd door %1$s (%2$s) - Actie gehandicapt + Actie uitgeschakeld Ontvouw Er is iets misgegaan, controleer uw download directory in de instellingen. Mededelingen @@ -577,12 +577,15 @@ Watermerken Voeg automatisch een watermerk toe aan de onderkant van de foto\'s. De tekst kan voor elk account worden aangepast. Geen distributors gevonden! - You need a distributor for receiving push notifications.\nYou will find more details at %1$s.\n\nYou can also disable push notifications in settings for ignoring that message. + Je hebt een distributor nodig voor het ontvangen van pushmeldingen. +\nJe vindt meer details op %1$s. +\n +\nJe kunt pushmeldingen ook uitschakelen in de instellingen om het bericht te negeren. Kies een distributor Ook geboost door: Ga door Volgt - Nieuwe aanmelding + Nieuwe registratie Een gebruiker meldde zich aan Muziek Aanmeldingen @@ -590,7 +593,7 @@ Gebruik een alternatief frontend voor Instagram Reddit Gebruik een alternatief frontend voor Reddit - Voeg status toe + Bericht toevoegen Kies de beste overeenkomst Ik vind het niet leuk Blokkeer %1$s @@ -616,7 +619,7 @@ Mijn app Stel de vertraging in tussen elke nieuwe lading Haal meldingen op elke: - Meldingen ophaaltijd + Ophaaltijd meldingen Geen toestemming! Laad geëxporteerde instellingen Alleenstaande actiebalk @@ -624,15 +627,15 @@ Tijdlijnen worden in cache gezet zodat de app sneller is. Laad thumbnails voor media Toon tijdlijnen - Cached bericht + Gebufferd bericht Toon opties - Maak bericht los + Bericht losmaken Bewerkt op %1$s - Gemaakt op %1$s + Aangemaakt op %1$s Max inspringing in threads Ontvolg tag Weet je zeker dat je deze tag wilt ontvolgen\? - Volg een tag + Hashtag volgen Schrijf de tag om te volgen Tag naam is niet geldig! Gevolgde tags @@ -642,7 +645,7 @@ Verberg helemaal Verberg de gefilterde inhoud helemaal, alsof het niet bestaat Trefwoord of zinsdeel - Voeg trefwoord toe + Trefwoord toevoegen Gefilterd: %1$s Deblokkeer domein Weet je zeker dat je wilt deblokkeren: %1$s\? @@ -656,12 +659,12 @@ Geblokkeerde domeinen Weiger meldingen Ernst - Weiger media bestanden - Weiger meldingen + Media bestanden weigeren + Rapportages weigeren Persoonlijke opmerking Openbare opmerking Aanpassingen zijn opgeslagen! - Stel domein blokkade in + Domeinblokkade instellen De app kreeg geen token Toon media in meldingen Onthoud positie in tijdlijnen @@ -674,13 +677,13 @@ Een gebruiker verstuurde een rapport Het probleem valt niet in een andere categorie Je ziet hun berichten niet meer. Ze kunnen je niet meer volgen en zien je berichten niet meer. Ze kunnen erachter komen dat je ze blokkeert. - Wis alle meldingen + Alle meldingen wissen Lijstnaam is niet geldig! Maak een aangepast thema Berichten in cache voor andere tijdlijnen Onderste menu Klik hier om poll bij te werken - Leeg cache + Buffer leegmaken Wil je afsluiten zonder de afbeelding te bewaren\? Gebruik de standaard systeemtaal Stel je maximale karakter limiet in @@ -700,17 +703,17 @@ Verberg de gefilterde inhoud achter een waarschuwing met de filternaam Verwijder trefwoord Aangemeld - Home en lijsten + Start en lijsten Titel Je hebt geen domeinen geblokkeerd - Privacy policy + Privacybeleid Weet je zeker dat je die tijdlijn wilt losmaken\? Domeinen Dit betreft alleen \"openbare\" reacties. Indien ingeschakeld krijgen je reacties automatisch de zichtbaarheid \"unlisted\" in plaats van \"openbaar\" Weiger media Nieuwe aanmelding (moderators) Nieuwe melding (moderators) - Opmerking over de beperking van dit domein voor intern gebruik door de moderators. + Opmerking over deze domeinblokkade voor intern gebruik door de moderators. Weet je zeker dat je deze tag wilt negeren:%1$s\? Open concept Instagram @@ -735,7 +738,7 @@ Geen accounts gevonden voor deze lijst! Gepland Bovenste balk menu - Pas tijdlijnen aan + Tijdlijnen aanpassen Thema\'s van derden Poll soort: Poll looptijd: @@ -747,7 +750,7 @@ Twitter Gebruik een alternatief frontend voor Twitter Twitter frontend domein - Boosted door + Geboost door Is offline! Het is niet iets dat je wilt zien \"Mastodon is niet één website zoals Twitter of Facebook, het is een netwerk van duizenden communities beheerd door verschillende organisaties en personen die zorgen voor een naadloze social media ervaring.\" @@ -778,7 +781,7 @@ Laatst actief Filter Opgelost - Verander het logo van de app op je apparaat + Het pictogram van de app wijzigen Zet bericht vast Toestaan Waarschuwen @@ -795,26 +798,26 @@ Markeer opgelost Account gewaarschuwd Rapporteer - Account niet-uitgeschakeld + Account niet meer uitgeschakeld Account uitgeschakeld - Sta toe om de lijst met talen te verkleinen in de kiezer als je een bericht maakt. + Lijst met talen in de talenkiezer verkleinen tijdens het opstellen van een bericht. Herstart de app om de wijzigingen door te voeren. - State + Status Talen in kiezer App herstarten\? Herstart Je volgt geen tags! Schakel meldingen uit Mijn account - Zet dit aan voor het samenvoegen van soortgelijke meldingen in de app + Wanneer dit is ingeschakeld, worden soortgelijke meldingen door de app samengevoegd De instellingen zijn geëxporteerd Aangepast Als favoriet gemarkeerd door Alleen volgers Overig De server lijkt ongeldig te zijn! - B.v.: gevoelige inhoud - Uptime: %,.2f %% + Bv gevoelige inhoud + Online: %,.2f %% Verwijder status Bericht wordt geplaatst… Is online! @@ -825,12 +828,12 @@ Het overtreedt serverregels Je weet dat het bepaalde regels overtreedt Het is iets anders - Stop opnemen - Kwaadaardige links, nep inhoud, of herhaalde reacties + Stop opname + Kwaadaardige links, ondeugdelijke inhoud, of herhalende reacties Wil je dit niet zien\? - Dit zijn je opties om te bepalen wat je ziet op Mastodon: + Dit zijn je mogelijkheden om te bepalen wat je op Mastodon ziet: Ontvolg %1$s - Je volgt dit account. Ontvolg het om de berichten niet meer te zien in je tijdlijn. + Je volgt dit account. Ontvolg het als je er geen berichten meer van wilt zien in je tijdlijn. Negeer %1$s Je ziet hun berichten niet meer. Ze kunnen je nog wel volgen en je berichten zien, maar ze weten niet dat je ze negeert. Zijn er berichten die deze melding ondersteunen\? @@ -841,11 +844,11 @@ Melding is verstuurd! Sluit je aan bij de Fediverse Interacties - Voeg filter toe - Voeg Veld toe + Filter toevoegen + Veld toevoegen Open Dicht - Bot account + Botaccount Weet je zeker dat je dat veld wilt verwijderen\? Bericht is verzonden! Vorm @@ -858,10 +861,10 @@ Het bericht is vastgezet Je server lijkt die mogelijkheid niet te hebben! Haal meldingen op - Verzamel meldingen + Meldingen verzamelen Media in meldingen voor reblogs en favorieten worden getoond Kies een logo - Verander logo + Pictogram wijzigen Taal voor berichten Bekijk trends voor deze server Bewerk een bericht @@ -883,5 +886,21 @@ Beheerder Bevestigd Onbevestigd - Wijs aan mij toe + Aan mij toewijzen + heeft een rapportage ingediend + Beperken maakt de berichten van het account onzichtbaar voor iedereen die hen niet volgt. Opschorten verwijdert alle inhoud, media en profielgegevens van het account. Gebruik Geen als je alleen mediabestanden wilt weigeren. + Domeinnaam verbergen + Alle rapportages die van dit domein komen negeren. Niet relevant wanneer het domein is opgeschort. + Alle rapportages die van dit domein komen negeren. Niet relevant wanneer het domein is opgeschort. + Opmerking over deze domeinblokkade voor het algemeen publiek, wanneer de publicatie van de lijst met domeinblokkades is ingeschakeld. + De domeinnaam in de lijst verbergen, wanneer de publicatie van de lijst met domeinblokkades is ingeschakeld + Pushdistributeur + De domeinblokkade zal het aanmaken van accounts in de database niet verhinderen, maar zal automatisch met terugwerkende kracht specifieke moderatieacties op deze accounts toepassen. + Beperkt + Niet langer toewijzen + Account niet langer opgeschort + Account beperkt + Account niet meer beperken + Account opgeschort + %1$s bewerkte %2$s \ No newline at end of file From 24c6803af7f63613e5ed20ef9f8c01d7450ed45a Mon Sep 17 00:00:00 2001 From: Murat H Date: Wed, 30 Nov 2022 09:30:08 +0100 Subject: [PATCH 061/111] Translated using Weblate (German) Currently translated at 100.0% (934 of 934 strings) Co-authored-by: Murat H Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/de/ Translation: Fedilab/Strings --- app/src/main/res/values-de/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 6f18470f..fa597250 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -638,7 +638,7 @@ Profil wurde aktualisiert! Listenname ist nicht gültig! Keine Konten für diese Liste gefunden! - Bist du sicher, dass du dieses Feld löschen willst\? + Bist Du sicher, dass Du dieses Feld löschen willst\? Feld löschen Art der Benachrichtigungen Benachrichtigungen deaktivieren @@ -795,7 +795,7 @@ Konto genehmigt Meldung Medien in Benachrichtigungen für Reblogs und Favoriten werden angezeigt - Übersetzung in eine spezifische Sprache erzwingen. Wähle den ersten Wert um die Einstellungen zurückzusetzen + Übersetzung in eine bestimmte Sprache erzwingen. Wähle den ersten Wert um die Einstellungen zurückzusetzen Nachrichten-Verlauf Bearbeitet am %1$s Erstellt am %1$s From 845bf93bea7f1a986665ee27e7f779cccd73b5b2 Mon Sep 17 00:00:00 2001 From: Micha Date: Wed, 30 Nov 2022 09:30:09 +0100 Subject: [PATCH 062/111] Translated using Weblate (German) Currently translated at 100.0% (934 of 934 strings) Co-authored-by: Micha Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/de/ Translation: Fedilab/Strings --- app/src/main/res/values-de/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index fa597250..6d69be4e 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -629,7 +629,7 @@ Entsperrt Feld hinzufügen Filter hinzufügen - Bist du sicher, dass du alle Benachrichtigungen löschen willst\? Das kann nicht rückgängig gemacht werden. + Bist Du Dir sicher, dass Du alle Benachrichtigungen löschen willst\? Das kann nicht rückgängig gemacht werden. Zeige alle Kategorien Ergebnisse der Umfrage Alle Benachrichtigungen als gelesen markieren @@ -688,7 +688,7 @@ Entfolge %1$s Du folgst diesem Konto. Um die Beiträge nicht mehr in deiner Home-Timeline zu sehen, entfolge ihm. Du wirst die Beiträge nicht mehr sehen. Du können dir immer noch folgen und deine Beiträge sehen und wissen nicht, dass sie stummgeschaltet sind. - Du wirst die Beiträge nicht mehr sehen. Du können deine Beiträge nicht sehen und dir nicht mehr folgen. Sie werden erkennen können, dass sie blockiert sind. + Du wirst ihre Beiträge nicht mehr sehen. Sie werden Deine Beiträge nicht sehen und Dir nicht mehr folgen können. Sie werden erkennen können, dass sie blockiert sind. Boosten Aktualisierungen Anderer Folgende @@ -718,7 +718,7 @@ Nachrichten im Cache für Startseite Nachrichten im Cache für andere Timelines Cache leeren - Sind Du sich sicher, den Cache zu leeren\? Wenn Du Entwürfe mit Bildern, etc haben, werden die angehängten Dateien gelöscht. + Bist Du Dir sicher den Cache zu leeren\? Angehängte Bilder/Videos werden in gespeicherten Entwürfen geschlöscht. Verlassen, ohne das Bild zu speichern\? Form Domäne From 20dbd48c4eb52def2efeccbf2f8fed4336eb6722 Mon Sep 17 00:00:00 2001 From: LostInWeb Date: Wed, 30 Nov 2022 09:30:09 +0100 Subject: [PATCH 063/111] Translated using Weblate (German) Currently translated at 100.0% (934 of 934 strings) Co-authored-by: LostInWeb Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/de/ Translation: Fedilab/Strings --- app/src/main/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 6d69be4e..a70724c4 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -894,7 +894,7 @@ Listen sortieren Bericht senden Bist Du sicher den Tag %1$s stumm zu schalten\? - Max Einzug in Threads + Max. Tiefe in Beitragsverläufen Konto wieder aktiviert Status \ No newline at end of file From 2de89425f2ed595a389375dd58a99aaf4901d5a5 Mon Sep 17 00:00:00 2001 From: LostInWeb Date: Wed, 30 Nov 2022 09:38:47 +0100 Subject: [PATCH 064/111] Translated using Weblate (German) Currently translated at 100.0% (934 of 934 strings) Co-authored-by: LostInWeb Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/de/ Translation: Fedilab/Strings --- app/src/main/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index a70724c4..2621c611 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -889,7 +889,7 @@ Die Sperrung der Domäne verhindert nicht die Erstellung von Konto-Einträgen in der Datenbank, sondern wendet rückwirkend und automatisch bestimmte Moderations-Methoden auf diese Konten an. Ignoriere alle Meldungen die von dieser Domäne kommen. Für Suspendierungen irrelevant Stummschalten macht die Beiträge des Kontos für alle die ihm nicht folgen unsichtbar. Suspendierung entfernt alle Inhalte, Medien und Profildaten des Kontos. Verwende Keine, wenn Du nur Mediendateien ablehnen möchtest. - Verschleiere teilweise den Domainnamen in der Liste, wenn Verteilung der Liste der Domainbeschränkunden aktiviert ist + Verschleiere teilweise den Domainnamen in der Liste, wenn die Verteilung der Liste der Domainbeschränkunden aktiviert ist Kommentiere die Domainbeschränkung für die Öffentlichkeit, wenn die Verteilung der Liste der Domainbeschränkunden aktiviert ist. Listen sortieren Bericht senden From 1e3933f5df6f3a56682039e879510a3d16bec6bc Mon Sep 17 00:00:00 2001 From: Murat H Date: Wed, 30 Nov 2022 09:38:48 +0100 Subject: [PATCH 065/111] Translated using Weblate (German) Currently translated at 100.0% (934 of 934 strings) Co-authored-by: Murat H Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/de/ Translation: Fedilab/Strings --- app/src/main/res/values-de/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 2621c611..6c3760d3 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -799,7 +799,7 @@ Nachrichten-Verlauf Bearbeitet am %1$s Erstellt am %1$s - Nicht angezeigte Antworten + Nicht öffentlich gelistete Antworten Benachrichtigungen wurden aus dem Zwischenspeicher entfernt. eMail-Status Beigetreten @@ -877,24 +877,24 @@ Medien ablehnen Mediendateien ablehnen Ignoriere alle Meldungen die von dieser Domäne kommen. Für Suspendierungen irrelevant - Berichte ablehnen - Namen der Domäne verschleiern + Meldungen ablehnen + Domänennamen verschleiern Privater Kommentar Kommentar zu dieser Domänen-Beschränkung für den internen Gebrauch durch Moderatoren. Öffentlicher Kommentar Änderungen wurden gespeichert! Domänen-Blockierung erstellen Mit einem anderen Konto öffnen - Berichte ablehnen + Meldungen ablehnen Die Sperrung der Domäne verhindert nicht die Erstellung von Konto-Einträgen in der Datenbank, sondern wendet rückwirkend und automatisch bestimmte Moderations-Methoden auf diese Konten an. Ignoriere alle Meldungen die von dieser Domäne kommen. Für Suspendierungen irrelevant - Stummschalten macht die Beiträge des Kontos für alle die ihm nicht folgen unsichtbar. Suspendierung entfernt alle Inhalte, Medien und Profildaten des Kontos. Verwende Keine, wenn Du nur Mediendateien ablehnen möchtest. + Stummschalten macht die Beiträge des Kontos für alle, die ihm nicht folgen, unsichtbar. Suspendierung entfernt alle Inhalte, Medien und Profildaten des Kontos. Verwende Keine, wenn Du nur die Mediendateien ablehnen möchtest. Verschleiere teilweise den Domainnamen in der Liste, wenn die Verteilung der Liste der Domainbeschränkunden aktiviert ist Kommentiere die Domainbeschränkung für die Öffentlichkeit, wenn die Verteilung der Liste der Domainbeschränkunden aktiviert ist. Listen sortieren Bericht senden Bist Du sicher den Tag %1$s stumm zu schalten\? - Max. Tiefe in Beitragsverläufen + Maximale Tiefe in Beitragsverläufen Konto wieder aktiviert Status \ No newline at end of file From 13b9a43bc34646f4d6177f10fa372277f9597484 Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 30 Nov 2022 11:00:53 +0100 Subject: [PATCH 066/111] Split activities --- app/src/main/AndroidManifest.xml | 5 - .../app/fedilab/android/MainApplication.java | 22 +- .../android/activities/AboutActivity.java | 2 +- .../activities/AccountReportActivity.java | 2 +- .../android/activities/ActionActivity.java | 2 +- ...ingsActivity.java => BaseBarActivity.java} | 43 +- .../android/activities/CacheActivity.java | 2 +- .../activities/CustomSharingActivity.java | 2 +- .../activities/EditProfileActivity.java | 2 +- .../android/activities/FilterActivity.java | 2 +- .../activities/FollowedTagActivity.java | 2 +- .../activities/MastodonListActivity.java | 2 +- .../activities/PartnerShipActivity.java | 2 +- .../activities/ReorderTimelinesActivity.java | 2 +- .../android/activities/ReportActivity.java | 2 +- .../activities/SearchResultTabActivity.java | 2 +- .../android/activities/SettingsActivity.kt | 2 +- .../activities/StatusHistoryActivity.java | 2 +- .../activities/SuggestionActivity.java | 2 +- .../android/activities/TrendsActivity.java | 2 +- .../activities/admin/AdminActionActivity.java | 4 +- .../admin/AdminDomainBlockActivity.java | 4 +- .../activities/admin/AdminReportActivity.java | 4 +- .../fedilab/android/helper/ThemeHelper.java | 4 +- .../settings/FragmentThemingSettings.java | 484 ------------------ app/src/main/res/values-night/themes.xml | 68 +++ app/src/main/res/values/colors.xml | 64 +++ app/src/main/res/values/strings.xml | 33 ++ app/src/main/res/values/themes.xml | 70 ++- app/src/main/res/xml/pref_theming.xml | 56 +- 30 files changed, 305 insertions(+), 590 deletions(-) rename app/src/main/java/app/fedilab/android/activities/{ThemeSettingsActivity.java => BaseBarActivity.java} (53%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 88f68aaa..b38b91d1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -244,11 +244,6 @@ android:label="@string/action_about" android:theme="@style/AppThemeBar" /> - . */ +import android.annotation.SuppressLint; import android.os.Bundle; -import android.view.MenuItem; -import app.fedilab.android.databinding.ActivityThemeSettingsBinding; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import com.vanniktech.emoji.EmojiManager; +import com.vanniktech.emoji.one.EmojiOneProvider; + +import app.fedilab.android.helper.Helper; +import app.fedilab.android.helper.ThemeHelper; -public class ThemeSettingsActivity extends BaseActivity { - - - private ActivityThemeSettingsBinding binding; +@SuppressLint("Registered") +public class BaseBarActivity extends AppCompatActivity { + static { + Helper.installProvider(); + EmojiManager.install(new EmojiOneProvider()); + } @Override - protected void onCreate(Bundle savedInstanceState) { + protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - - binding = ActivityThemeSettingsBinding.inflate(getLayoutInflater()); - setContentView(binding.getRoot()); - - if (getSupportActionBar() != null) { - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - } - + ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); + Helper.setLocale(this); } - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() == android.R.id.home) { - finish(); - return true; - } - return super.onOptionsItemSelected(item); - } - - } diff --git a/app/src/main/java/app/fedilab/android/activities/CacheActivity.java b/app/src/main/java/app/fedilab/android/activities/CacheActivity.java index 58c18468..c7541f01 100644 --- a/app/src/main/java/app/fedilab/android/activities/CacheActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/CacheActivity.java @@ -42,7 +42,7 @@ import app.fedilab.android.helper.CacheHelper; import app.fedilab.android.helper.Helper; import app.fedilab.android.ui.drawer.CacheAdapter; -public class CacheActivity extends BaseActivity { +public class CacheActivity extends BaseBarActivity { private ActivityCacheBinding binding; private List cacheAccounts; diff --git a/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java b/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java index 635386e3..50976049 100644 --- a/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java @@ -48,7 +48,7 @@ import es.dmoral.toasty.Toasty; * Share status metadata to remote content aggregators */ -public class CustomSharingActivity extends BaseActivity implements OnCustomSharingInterface { +public class CustomSharingActivity extends BaseBarActivity implements OnCustomSharingInterface { private String title, keywords, custom_sharing_url, encodedCustomSharingURL; private String bundle_url; diff --git a/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java index 8c210d9f..9d1a85aa 100644 --- a/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java @@ -52,7 +52,7 @@ import app.fedilab.android.helper.MastodonHelper; import app.fedilab.android.viewmodel.mastodon.AccountsVM; import es.dmoral.toasty.Toasty; -public class EditProfileActivity extends BaseActivity { +public class EditProfileActivity extends BaseBarActivity { public static final int PICK_MEDIA_AVATAR = 5705; public static final int PICK_MEDIA_HEADER = 5706; diff --git a/app/src/main/java/app/fedilab/android/activities/FilterActivity.java b/app/src/main/java/app/fedilab/android/activities/FilterActivity.java index 34dc9d0e..31f53998 100644 --- a/app/src/main/java/app/fedilab/android/activities/FilterActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/FilterActivity.java @@ -45,7 +45,7 @@ import app.fedilab.android.ui.drawer.FilterAdapter; import app.fedilab.android.ui.drawer.KeywordAdapter; import app.fedilab.android.viewmodel.mastodon.FiltersVM; -public class FilterActivity extends BaseActivity implements FilterAdapter.Delete { +public class FilterActivity extends BaseBarActivity implements FilterAdapter.Delete { private ActivityFiltersBinding binding; private List filterList; diff --git a/app/src/main/java/app/fedilab/android/activities/FollowedTagActivity.java b/app/src/main/java/app/fedilab/android/activities/FollowedTagActivity.java index 5e7aef20..0eca77f4 100644 --- a/app/src/main/java/app/fedilab/android/activities/FollowedTagActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/FollowedTagActivity.java @@ -44,7 +44,7 @@ import app.fedilab.android.viewmodel.mastodon.TagVM; import es.dmoral.toasty.Toasty; -public class FollowedTagActivity extends BaseActivity implements FollowedTagAdapter.ActionOnTag { +public class FollowedTagActivity extends BaseBarActivity implements FollowedTagAdapter.ActionOnTag { private ActivityFollowedTagsBinding binding; diff --git a/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java b/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java index 8e899c68..dd194848 100644 --- a/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java @@ -60,7 +60,7 @@ import app.fedilab.android.viewmodel.mastodon.TimelinesVM; import es.dmoral.toasty.Toasty; -public class MastodonListActivity extends BaseActivity implements MastodonListAdapter.ActionOnList { +public class MastodonListActivity extends BaseBarActivity implements MastodonListAdapter.ActionOnList { AccountListAdapter accountsInListAdapter; diff --git a/app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java b/app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java index 4d6dbe93..6df015f6 100644 --- a/app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java @@ -40,7 +40,7 @@ import app.fedilab.android.helper.MastodonHelper; import app.fedilab.android.viewmodel.mastodon.AccountsVM; -public class PartnerShipActivity extends BaseActivity { +public class PartnerShipActivity extends BaseBarActivity { @Override diff --git a/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java b/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java index 3706cd97..05787f28 100644 --- a/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java @@ -71,7 +71,7 @@ import okhttp3.RequestBody; import okhttp3.Response; -public class ReorderTimelinesActivity extends BaseActivity implements OnStartDragListener { +public class ReorderTimelinesActivity extends BaseBarActivity implements OnStartDragListener { private ItemTouchHelper touchHelper; diff --git a/app/src/main/java/app/fedilab/android/activities/ReportActivity.java b/app/src/main/java/app/fedilab/android/activities/ReportActivity.java index 8fcfbf12..c2866a0c 100644 --- a/app/src/main/java/app/fedilab/android/activities/ReportActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ReportActivity.java @@ -43,7 +43,7 @@ import app.fedilab.android.viewmodel.mastodon.AccountsVM; import es.dmoral.toasty.Toasty; -public class ReportActivity extends BaseActivity { +public class ReportActivity extends BaseBarActivity { private ActivityReportBinding binding; private Status status; diff --git a/app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java b/app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java index a5ac039a..5b27f224 100644 --- a/app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java @@ -45,7 +45,7 @@ import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTimeline; import es.dmoral.toasty.Toasty; -public class SearchResultTabActivity extends BaseActivity { +public class SearchResultTabActivity extends BaseBarActivity { private String search; diff --git a/app/src/main/java/app/fedilab/android/activities/SettingsActivity.kt b/app/src/main/java/app/fedilab/android/activities/SettingsActivity.kt index 02a7aba5..955b615c 100644 --- a/app/src/main/java/app/fedilab/android/activities/SettingsActivity.kt +++ b/app/src/main/java/app/fedilab/android/activities/SettingsActivity.kt @@ -23,7 +23,7 @@ import androidx.navigation.ui.setupActionBarWithNavController import app.fedilab.android.R import app.fedilab.android.databinding.ActivitySettingsBinding -class SettingsActivity : BaseActivity() { +class SettingsActivity : BaseBarActivity() { private lateinit var binding: ActivitySettingsBinding private lateinit var appBarConfiguration: AppBarConfiguration diff --git a/app/src/main/java/app/fedilab/android/activities/StatusHistoryActivity.java b/app/src/main/java/app/fedilab/android/activities/StatusHistoryActivity.java index 0bce132b..9f40e6bd 100644 --- a/app/src/main/java/app/fedilab/android/activities/StatusHistoryActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/StatusHistoryActivity.java @@ -30,7 +30,7 @@ import app.fedilab.android.viewmodel.mastodon.StatusesVM; import es.dmoral.toasty.Toasty; -public class StatusHistoryActivity extends BaseActivity { +public class StatusHistoryActivity extends BaseBarActivity { public static Resources.Theme theme; diff --git a/app/src/main/java/app/fedilab/android/activities/SuggestionActivity.java b/app/src/main/java/app/fedilab/android/activities/SuggestionActivity.java index c6c12cec..0a7b1eee 100644 --- a/app/src/main/java/app/fedilab/android/activities/SuggestionActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/SuggestionActivity.java @@ -25,7 +25,7 @@ import app.fedilab.android.helper.Helper; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonSuggestion; -public class SuggestionActivity extends BaseActivity { +public class SuggestionActivity extends BaseBarActivity { @Override diff --git a/app/src/main/java/app/fedilab/android/activities/TrendsActivity.java b/app/src/main/java/app/fedilab/android/activities/TrendsActivity.java index c234ae73..d23aa463 100644 --- a/app/src/main/java/app/fedilab/android/activities/TrendsActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/TrendsActivity.java @@ -37,7 +37,7 @@ import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTag; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTimeline; -public class TrendsActivity extends BaseActivity { +public class TrendsActivity extends BaseBarActivity { private ActivityTrendsBinding binding; diff --git a/app/src/main/java/app/fedilab/android/activities/admin/AdminActionActivity.java b/app/src/main/java/app/fedilab/android/activities/admin/AdminActionActivity.java index cca679db..1b479984 100644 --- a/app/src/main/java/app/fedilab/android/activities/admin/AdminActionActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/admin/AdminActionActivity.java @@ -36,7 +36,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager; import com.google.gson.annotations.SerializedName; import app.fedilab.android.R; -import app.fedilab.android.activities.BaseActivity; +import app.fedilab.android.activities.BaseBarActivity; import app.fedilab.android.client.entities.api.admin.AdminDomainBlock; import app.fedilab.android.databinding.ActivityAdminActionsBinding; import app.fedilab.android.databinding.PopupAdminFilterAccountsBinding; @@ -47,7 +47,7 @@ import app.fedilab.android.ui.fragment.admin.FragmentAdminAccount; import app.fedilab.android.ui.fragment.admin.FragmentAdminDomain; import app.fedilab.android.ui.fragment.admin.FragmentAdminReport; -public class AdminActionActivity extends BaseActivity { +public class AdminActionActivity extends BaseBarActivity { public static Boolean local = true, remote = true, active = true, pending = true, disabled = true, silenced = true, suspended = true, staff = null, orderByMostRecent = true; public static Boolean resolved = null, reportLocal = true, reportRemote = true; diff --git a/app/src/main/java/app/fedilab/android/activities/admin/AdminDomainBlockActivity.java b/app/src/main/java/app/fedilab/android/activities/admin/AdminDomainBlockActivity.java index 169ff5d7..038c27a0 100644 --- a/app/src/main/java/app/fedilab/android/activities/admin/AdminDomainBlockActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/admin/AdminDomainBlockActivity.java @@ -31,7 +31,7 @@ import androidx.lifecycle.ViewModelProvider; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import app.fedilab.android.R; -import app.fedilab.android.activities.BaseActivity; +import app.fedilab.android.activities.BaseBarActivity; import app.fedilab.android.activities.MainActivity; import app.fedilab.android.client.entities.api.admin.AdminDomainBlock; import app.fedilab.android.databinding.ActivityAdminDomainblockBinding; @@ -39,7 +39,7 @@ import app.fedilab.android.helper.Helper; import app.fedilab.android.viewmodel.mastodon.AdminVM; import es.dmoral.toasty.Toasty; -public class AdminDomainBlockActivity extends BaseActivity { +public class AdminDomainBlockActivity extends BaseBarActivity { private final String[] severityChoices = {"silence", "suspend", "noop"}; diff --git a/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java b/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java index ce841b7b..234c8fcd 100644 --- a/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java @@ -54,7 +54,7 @@ import java.util.concurrent.TimeUnit; import app.fedilab.android.BaseMainActivity; import app.fedilab.android.R; -import app.fedilab.android.activities.BaseActivity; +import app.fedilab.android.activities.BaseBarActivity; import app.fedilab.android.activities.InstanceProfileActivity; import app.fedilab.android.activities.MediaActivity; import app.fedilab.android.client.entities.api.Account; @@ -70,7 +70,7 @@ import app.fedilab.android.viewmodel.mastodon.NodeInfoVM; import es.dmoral.toasty.Toasty; -public class AdminReportActivity extends BaseActivity { +public class AdminReportActivity extends BaseBarActivity { private AdminAccount adminAccount; private Account account; diff --git a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java index 2a3045ac..6e3a4bd9 100644 --- a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java @@ -283,7 +283,9 @@ public class ThemeHelper { public enum themes { LIGHT, DARK, - SYSTEM + SYSTEM, + SOLARIZED_LIGHT, + SOLARIZED_DARK } public interface SlideAnimation { diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java index 545b5c51..e4db6b9d 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java @@ -14,54 +14,14 @@ package app.fedilab.android.ui.fragment.settings; * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see . */ -import static android.app.Activity.RESULT_OK; -import static app.fedilab.android.BaseMainActivity.currentAccount; -import static app.fedilab.android.helper.LogoHelper.getMainLogo; -import android.Manifest; -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; -import android.content.pm.PackageManager; -import android.graphics.BitmapFactory; -import android.net.Uri; import android.os.Bundle; -import android.os.Environment; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.LinearLayout; -import android.widget.Toast; -import androidx.appcompat.app.AlertDialog; -import androidx.core.app.ActivityCompat; -import androidx.core.content.ContextCompat; import androidx.preference.ListPreference; -import androidx.preference.Preference; -import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceFragmentCompat; -import androidx.preference.PreferenceManager; - -import com.bumptech.glide.Glide; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.PrintWriter; -import java.nio.charset.StandardCharsets; -import java.util.Date; -import java.util.LinkedHashMap; -import java.util.List; import app.fedilab.android.R; -import app.fedilab.android.activities.ComposeActivity; -import app.fedilab.android.databinding.ActivityThemeSettingsBinding; -import app.fedilab.android.databinding.PopupStatusThemeBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.ThemeHelper; import es.dmoral.toasty.Toasty; @@ -69,17 +29,10 @@ import es.dmoral.toasty.Toasty; public class FragmentThemingSettings extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { - private final int PICK_IMPORT_THEME = 5557; - private List> listOfThemes; - private SharedPreferences appPref; - private SharedPreferences cyneaPref; @Override public void onCreatePreferences(Bundle bundle, String s) { - cyneaPref = requireActivity().getSharedPreferences("com.jaredrummler.cyanea", Context.MODE_PRIVATE); - appPref = PreferenceManager.getDefaultSharedPreferences(requireActivity()); createPref(); - listOfThemes = ThemeHelper.getContributorsTheme(requireActivity()); } @@ -105,9 +58,6 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - if (key.equals("use_custom_theme")) { - createPref(); - } if (key.compareTo(getString(R.string.SET_THEME_BASE)) == 0) { ListPreference SET_THEME_BASE = findPreference(getString(R.string.SET_THEME_BASE)); if (SET_THEME_BASE != null) { @@ -118,180 +68,6 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements } - - @SuppressWarnings("deprecation") - @SuppressLint("ApplySharedPref") - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (requestCode == PICK_IMPORT_THEME && resultCode == RESULT_OK) { - if (data == null || data.getData() == null) { - Toasty.error(requireActivity(), getString(R.string.theme_file_error), Toast.LENGTH_LONG).show(); - return; - } - if (data.getData() != null) { - try { - InputStream inputStream = requireActivity().getContentResolver().openInputStream(data.getData()); - readFileAndApply(inputStream); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - } else { - Toasty.error(requireActivity(), getString(R.string.theme_file_error), Toast.LENGTH_LONG).show(); - } - - } - } - - - @SuppressLint("SetTextI18n") - @SuppressWarnings("ConstantConditions") - private void applyColors(PopupStatusThemeBinding binding, int position) { - LinkedHashMap themeData = listOfThemes.get(position); - int linksColor = -1; - int iconsColor = -1; - int textColor = -1; - int boostHeaderColor = -1; - int statusColor = -1; - int displayNameColor = -1; - int userNameColor = -1; - int colorAccent = -1; - int backgroundColor = -1; - if (themeData.containsKey("theme_link_color")) { - linksColor = Integer.parseInt(themeData.get("theme_link_color")); - } - if (themeData.containsKey("theme_accent")) { - colorAccent = Integer.parseInt(themeData.get("theme_accent")); - } - if (themeData.containsKey("theme_icons_color")) { - iconsColor = Integer.parseInt(themeData.get("theme_icons_color")); - } - if (themeData.containsKey("theme_text_color")) { - textColor = Integer.parseInt(themeData.get("theme_text_color")); - } - if (themeData.containsKey("theme_boost_header_color")) { - boostHeaderColor = Integer.parseInt(themeData.get("theme_boost_header_color")); - } - if (themeData.containsKey("theme_statuses_color")) { - statusColor = Integer.parseInt(themeData.get("theme_statuses_color")); - } - if (themeData.containsKey("theme_text_header_1_line")) { - displayNameColor = Integer.parseInt(themeData.get("theme_text_header_1_line")); - } - if (themeData.containsKey("theme_text_header_2_line")) { - userNameColor = Integer.parseInt(themeData.get("theme_text_header_2_line")); - } - if (themeData.containsKey("pref_color_background")) { - backgroundColor = Integer.parseInt(themeData.get("pref_color_background")); - } - - if (colorAccent != -1) { - binding.spoilerExpand.setTextColor(colorAccent); - binding.cardTitle.setTextColor(colorAccent); - } - if (backgroundColor != -1) { - binding.background.setBackgroundColor(backgroundColor); - } - if (statusColor != -1) { - binding.cardviewContainer.setBackgroundColor(statusColor); - binding.card.setBackgroundColor(statusColor); - } - if (boostHeaderColor != -1) { - binding.headerContainer.setBackgroundColor(boostHeaderColor); - } - if (textColor != -1) { - binding.statusContent.setTextColor(textColor); - binding.statusContentTranslated.setTextColor(textColor); - binding.spoiler.setTextColor(textColor); - binding.cardDescription.setTextColor(textColor); - binding.time.setTextColor(textColor); - binding.reblogsCount.setTextColor(textColor); - binding.favoritesCount.setTextColor(textColor); - Helper.changeDrawableColor(requireActivity(), binding.repeatInfo, textColor); - Helper.changeDrawableColor(requireActivity(), binding.favInfo, textColor); - } - if (linksColor != -1) { - binding.cardUrl.setTextColor(linksColor); - } else { - binding.cardUrl.setTextColor(ThemeHelper.getAttColor(requireActivity(), R.attr.colorPrimary)); - } - if (iconsColor == -1) { - iconsColor = ThemeHelper.getAttColor(requireActivity(), R.attr.colorControlNormal); - } - Helper.changeDrawableColor(requireActivity(), binding.actionButtonReply, iconsColor); - Helper.changeDrawableColor(requireActivity(), binding.actionButtonMore, iconsColor); - Helper.changeDrawableColor(requireActivity(), binding.actionButtonBoost, iconsColor); - Helper.changeDrawableColor(requireActivity(), binding.actionButtonFavorite, iconsColor); - Helper.changeDrawableColor(requireActivity(), R.drawable.ic_person, iconsColor); - if (displayNameColor != -1) { - binding.displayName.setTextColor(displayNameColor); - } - if (userNameColor != -1) { - binding.username.setTextColor(userNameColor); - Helper.changeDrawableColor(requireActivity(), binding.statusBoostIcon, userNameColor); - } - Glide.with(binding.getRoot().getContext()) - .load(R.drawable.fedilab_logo_bubbles) - .into(binding.statusBoosterAvatar); - Glide.with(binding.getRoot().getContext()) - .load(R.drawable.fedilab_logo_bubbles) - .into(binding.avatar); - binding.displayName.setText("Fedilab"); - binding.username.setText("@apps@toot.fedilab.app"); - - binding.author.setText(themeData.get("author")); - binding.title.setText(themeData.get("name")); - binding.cardviewContainer.invalidate(); - binding.time.setText(Helper.dateToString(new Date())); - } - - @SuppressLint("ApplySharedPref") - private void readFileAndApply(InputStream inputStream) { - BufferedReader br = null; - try { - br = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)); - String sCurrentLine; - SharedPreferences.Editor appEditor = appPref.edit(); - - appEditor.putBoolean("use_custom_theme", true); - while ((sCurrentLine = br.readLine()) != null) { - String[] line = sCurrentLine.split(","); - if (line.length > 1) { - String key = line[0]; - String value = line[1]; - if (key.compareTo("pref_color_navigation_bar") == 0) { - - } else if (key.compareTo("pref_color_background") == 0) { - - } else if (key.compareTo("base_theme") == 0) { - - } else if (key.compareTo("theme_accent") == 0) { - - } else if (key.compareTo("theme_primary") == 0) { - - } else { - if (value != null && value.matches("-?\\d+")) { - appEditor.putInt(key, Integer.parseInt(value)); - } else { - appEditor.remove(key); - } - } - } - } - appEditor.commit(); - Helper.recreateMainActivity(requireActivity()); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (br != null) br.close(); - } catch (IOException ex) { - ex.printStackTrace(); - } - } - } - - @SuppressWarnings("deprecation") private void createPref() { if (getPreferenceScreen() != null) { getPreferenceScreen().removeAll(); @@ -299,268 +75,8 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements addPreferencesFromResource(R.xml.pref_theming); if (getPreferenceScreen() == null) { Toasty.error(requireActivity(), getString(R.string.toast_error), Toasty.LENGTH_SHORT).show(); - return; - } - Preference launch_custom_theme = findPreference("launch_custom_theme"); - if (launch_custom_theme != null) { - launch_custom_theme.setOnPreferenceClickListener(preference -> { - startActivity(new Intent(requireActivity(), ActivityThemeSettingsBinding.class)); - return false; - }); - - } - Preference contributors_themes = findPreference("contributors_themes"); - if (contributors_themes != null) { - contributors_themes.setOnPreferenceClickListener(preference -> { - final int[] currentPosition = {0}; - AlertDialog.Builder builderSingle = new AlertDialog.Builder(requireActivity()); - builderSingle.setTitle(getString(R.string.select_a_theme)); - PopupStatusThemeBinding binding = PopupStatusThemeBinding.inflate(getLayoutInflater(), new LinearLayout(requireActivity()), false); - binding.selectTheme.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView adapterView, View view, int position, long l) { - currentPosition[0] = position; - applyColors(binding, position); - } - - @Override - public void onNothingSelected(AdapterView adapterView) { - - } - }); - applyColors(binding, 0); - builderSingle.setView(binding.getRoot()); - String[] listOfTheme = new String[listOfThemes.size()]; - int i = 0; - for (LinkedHashMap values : listOfThemes) { - listOfTheme[i] = values.get("name"); - i++; - } - //fill data in spinner - ArrayAdapter adapter = new ArrayAdapter<>(requireActivity(), android.R.layout.simple_spinner_dropdown_item, listOfTheme); - binding.selectTheme.setAdapter(adapter); - binding.selectTheme.setSelection(0); - builderSingle.setPositiveButton(R.string.validate, (dialog, which) -> { - try { - String[] list = requireActivity().getAssets().list("themes/contributors"); - InputStream is = requireActivity().getAssets().open("themes/contributors/" + list[currentPosition[0]]); - readFileAndApply(is); - } catch (IOException e) { - e.printStackTrace(); - } - dialog.dismiss(); - }); - builderSingle.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); - builderSingle.show(); - return false; - }); - } - ListPreference settings_theme = findPreference("settings_theme"); - - - Preference theme_link_color = findPreference("theme_link_color"); - Preference theme_boost_header_color = findPreference("theme_boost_header_color"); - Preference theme_text_header_1_line = findPreference("theme_text_header_1_line"); - Preference theme_text_header_2_line = findPreference("theme_text_header_2_line"); - Preference theme_statuses_color = findPreference("theme_statuses_color"); - Preference theme_icons_color = findPreference("theme_icons_color"); - Preference theme_text_color = findPreference("theme_text_color"); - Preference pref_import = findPreference("pref_import"); - Preference pref_export = findPreference("pref_export"); - Preference reset_pref = findPreference("reset_pref"); - PreferenceCategory cyanea_preference_category = getPreferenceScreen().findPreference("cyanea_preference_category"); - //No custom theme data must be removed - if (!appPref.getBoolean("use_custom_theme", false) && cyanea_preference_category != null) { - if (theme_link_color != null) { - cyanea_preference_category.removePreference(theme_link_color); - } - if (theme_boost_header_color != null) { - cyanea_preference_category.removePreference(theme_boost_header_color); - } - if (theme_text_header_1_line != null) { - cyanea_preference_category.removePreference(theme_text_header_1_line); - } - if (theme_text_header_2_line != null) { - cyanea_preference_category.removePreference(theme_text_header_2_line); - } - if (contributors_themes != null) { - cyanea_preference_category.removePreference(contributors_themes); - } - if (theme_statuses_color != null) { - cyanea_preference_category.removePreference(theme_statuses_color); - } - if (theme_icons_color != null) { - cyanea_preference_category.removePreference(theme_icons_color); - } - if (theme_text_color != null) { - cyanea_preference_category.removePreference(theme_text_color); - } - if (reset_pref != null) { - cyanea_preference_category.removePreference(reset_pref); - } - if (pref_export != null) { - cyanea_preference_category.removePreference(pref_export); - } - } - //These are default values (first three ones) - if (pref_export != null) { - pref_export.setOnPreferenceClickListener(preference -> { - exportColors(); - return true; - }); - } - - if (pref_import != null) { - pref_import.setOnPreferenceClickListener(preference -> { - if (ContextCompat.checkSelfPermission(requireActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) != - PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(requireActivity(), - new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, - ComposeActivity.MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE); - return true; - } - Intent intent = new Intent(Intent.ACTION_GET_CONTENT); - intent.addCategory(Intent.CATEGORY_OPENABLE); - intent.setType("*/*"); - String[] mimetypes = {"*/*"}; - intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes); - startActivityForResult(intent, PICK_IMPORT_THEME); - return true; - }); - } - if (reset_pref != null) { - reset_pref.setOnPreferenceClickListener(preference -> { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireActivity()); - dialogBuilder.setMessage(R.string.reset_color); - dialogBuilder.setPositiveButton(R.string.reset, (dialog, id) -> { - reset(); - dialog.dismiss(); - setPreferenceScreen(null); - createPref(); - - }); - dialogBuilder.setNegativeButton(R.string.cancel, (dialog, id) -> dialog.dismiss()); - AlertDialog alertDialog = dialogBuilder.create(); - alertDialog.setCancelable(false); - alertDialog.show(); - return true; - }); - } } - @SuppressLint("ApplySharedPref") - private void reset() { - - SharedPreferences.Editor editor = appPref.edit(); - editor.remove("theme_link_color"); - editor.remove("theme_boost_header_color"); - editor.remove("theme_text_header_1_line"); - editor.remove("theme_text_header_2_line"); - editor.remove("theme_icons_color"); - editor.remove("theme_text_color"); - editor.remove("use_custom_theme"); - editor.commit(); - } - - - private void exportColors() { - - try { - String fileName = "Fedilab_color_export_" + Helper.dateFileToString(getActivity(), new Date()) + ".csv"; - String filePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath(); - String fullPath = filePath + "/" + fileName; - PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(fullPath), StandardCharsets.UTF_8)); - StringBuilder builder = new StringBuilder(); - int theme_boost_header_color = appPref.getInt("theme_boost_header_color", -1); - int theme_text_header_1_line = appPref.getInt("theme_text_header_1_line", -1); - int theme_text_header_2_line = appPref.getInt("theme_text_header_2_line", -1); - int theme_statuses_color = appPref.getInt("theme_statuses_color", -1); - int theme_link_color = appPref.getInt("theme_link_color", -1); - int theme_icons_color = appPref.getInt("theme_icons_color", -1); - int pref_color_background; - if (cyneaPref.getString("base_theme", "DARK").compareTo("DARK") == 0) { - pref_color_background = cyneaPref.getInt("background_dark", -1); - } else { - pref_color_background = cyneaPref.getInt("background_light", -1); - } - - boolean pref_color_navigation_bar = cyneaPref.getBoolean("pref_color_navigation_bar", true); - boolean pref_color_status_bar = cyneaPref.getBoolean("pref_color_status_bar", true); - int theme_accent = cyneaPref.getInt("accent", -1); - int theme_text_color = appPref.getInt("theme_text_color", -1); - int theme_primary = cyneaPref.getInt("primary", -1); - - int theme = appPref.getInt(getString(R.string.SET_THEME), 0); - - - builder.append("base_theme").append(','); - builder.append(theme); - builder.append('\n'); - - builder.append("theme_boost_header_color").append(','); - builder.append(theme_boost_header_color); - builder.append('\n'); - - builder.append("theme_text_header_1_line").append(','); - builder.append(theme_text_header_1_line); - builder.append('\n'); - - builder.append("theme_text_header_2_line").append(','); - builder.append(theme_text_header_2_line); - builder.append('\n'); - - builder.append("theme_statuses_color").append(','); - builder.append(theme_statuses_color); - builder.append('\n'); - - builder.append("theme_link_color").append(','); - builder.append(theme_link_color); - builder.append('\n'); - - builder.append("theme_icons_color").append(','); - builder.append(theme_icons_color); - builder.append('\n'); - - builder.append("pref_color_background").append(','); - builder.append(pref_color_background); - builder.append('\n'); - - builder.append("pref_color_navigation_bar").append(','); - builder.append(pref_color_navigation_bar); - builder.append('\n'); - - builder.append("pref_color_status_bar").append(','); - builder.append(pref_color_status_bar); - builder.append('\n'); - - builder.append("theme_accent").append(','); - builder.append(theme_accent); - builder.append('\n'); - - builder.append("theme_text_color").append(','); - builder.append(theme_text_color); - builder.append('\n'); - - builder.append("theme_primary").append(','); - builder.append(theme_primary); - builder.append('\n'); - - - pw.write(builder.toString()); - pw.close(); - String message = getString(R.string.data_export_theme_success); - Intent intentOpen = new Intent(); - intentOpen.setAction(android.content.Intent.ACTION_VIEW); - Uri uri = Uri.parse("file://" + fullPath); - intentOpen.setDataAndType(uri, "text/csv"); - String title = getString(R.string.data_export_theme); - Helper.notify_user(getActivity(), currentAccount, intentOpen, BitmapFactory.decodeResource(requireActivity().getResources(), - getMainLogo(requireActivity())), Helper.NotifType.BACKUP, title, message); - } catch (Exception e) { - e.printStackTrace(); - Toasty.error(requireActivity(), getString(R.string.toast_error), Toast.LENGTH_LONG).show(); - } - } } diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 279b8dd8..937c1328 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -100,4 +100,72 @@ + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 51ea9a7d..1b753608 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -130,4 +130,68 @@ #FF8A65 #9E9E9E + + + + #859900 + #576500 + #FFFFFF + #D7EE5E + #191E00 + #5D6145 + #FFFFFF + #E2E5C2 + #1A1D08 + #3B665C + #FFFFFF + #BDECDF + #00201A + #BA1A1A + #FFDAD6 + #FFFFFF + #410002 + #FFFCF4 + #1C1C17 + #FFFCF4 + #1C1C17 + #E4E3D3 + #46483B + #77786A + #F3F1E8 + #31312B + #BBD144 + #000000 + #576500 + #C7C7B7 + #000000 + #BBD144 + #2C3400 + #414C00 + #D7EE5E + #C6C9A8 + #2F321B + #45492F + #E2E5C2 + #A2D0C3 + #05372E + #224E44 + #BDECDF + #FFB4AB + #93000A + #690005 + #FFDAD6 + #1C1C17 + #E5E2DA + #1C1C17 + #E5E2DA + #46483B + #C7C7B7 + #919283 + #1C1C17 + #E5E2DA + #576500 + #000000 + #BBD144 + #46483B + #000000 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 845f5dd8..76c059f8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -700,13 +700,37 @@ Light Dark System default + Solarized (Light) + Solarized (Dark) LIGHT DARK SYSTEM + SOLARIZED_LIGHT + SOLARIZED_DARK + + + Light + Solarized (Light) + + + LIGHT + SOLARIZED_LIGHT + + + + Dark + Solarized (Dark) + + + DARK + SOLARIZED_DARK + + + Push notifications Fetch at fixed times @@ -1265,6 +1289,11 @@ SET_DISABLE_ANIMATED_EMOJI SET_CAPITALIZE SET_THEME_BASE + SET_DYNAMICCOLOR + SET_THEME_DEFAULT_LIGHT + SET_THEME_DEFAULT_DARK + + SYSTEM SET_FULL_PREVIEW @@ -1975,4 +2004,8 @@ Pickup a mode for the theme Customize colors Allow to set your custom colors for themes. + Dynamic Color + Align tonally with the color scheme of your personal wallpaper. + Default light theme + Default dark theme \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 2dc580ea..0f537c2f 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -96,7 +96,75 @@ true - + + + diff --git a/app/src/main/res/xml/pref_theming.xml b/app/src/main/res/xml/pref_theming.xml index 517c6048..7385b307 100644 --- a/app/src/main/res/xml/pref_theming.xml +++ b/app/src/main/res/xml/pref_theming.xml @@ -15,41 +15,33 @@ app:title="@string/type_of_theme" app:useSimpleSummaryProvider="true" /> - + app:key="@string/SET_DYNAMICCOLOR" + app:singleLineTitle="false" + app:summary="@string/set_dynamic_color_indication" + app:title="@string/set_dynamic_color" /> - - + app:key="@string/SET_THEME_DEFAULT_LIGHT" + app:title="@string/type_default_theme_light" + app:useSimpleSummaryProvider="true" /> - + - - - - - - - From 0c2a6e2aad5c8e8ae05db397501470eda342abf0 Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 30 Nov 2022 11:49:13 +0100 Subject: [PATCH 067/111] Switch between themes --- .../android/activities/BaseActivity.java | 57 +++++++++++++++++++ .../android/activities/BaseBarActivity.java | 56 ++++++++++++++++++ .../fedilab/android/helper/ThemeHelper.java | 4 +- .../settings/FragmentThemingSettings.java | 1 + 4 files changed, 116 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/activities/BaseActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseActivity.java index 102d0f98..36d5b983 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseActivity.java @@ -16,14 +16,19 @@ package app.fedilab.android.activities; import android.annotation.SuppressLint; +import android.content.SharedPreferences; +import android.content.res.Configuration; import android.os.Bundle; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatDelegate; +import androidx.preference.PreferenceManager; import com.vanniktech.emoji.EmojiManager; import com.vanniktech.emoji.one.EmojiOneProvider; +import app.fedilab.android.R; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.ThemeHelper; @@ -38,6 +43,58 @@ public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { + + final SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); + String currentTheme = sharedpreferences.getString(getString(R.string.SET_THEME_BASE), getString(R.string.SET_DEFAULT_THEME)); + //Default automatic switch + if (currentTheme.equals(getString(R.string.SET_DEFAULT_THEME))) { + + + int currentNightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + switch (currentNightMode) { + case Configuration.UI_MODE_NIGHT_NO: + String defaultLight = sharedpreferences.getString(getString(R.string.SET_THEME_DEFAULT_LIGHT), "LIGHT"); + switch (defaultLight) { + case "LIGHT": + setTheme(R.style.AppTheme); + break; + case "SOLARIZED_LIGHT": + setTheme(R.style.SolarizedAppTheme); + break; + } + break; + case Configuration.UI_MODE_NIGHT_YES: + String defaultDark = sharedpreferences.getString(getString(R.string.SET_THEME_DEFAULT_DARK), "DARK"); + switch (defaultDark) { + case "DARK": + setTheme(R.style.AppTheme); + break; + case "SOLARIZED_DARK": + setTheme(R.style.SolarizedAppTheme); + break; + } + break; + } + } else { + switch (currentTheme) { + case "LIGHT": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setTheme(R.style.AppTheme); + break; + case "DARK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.AppTheme); + break; + case "SOLARIZED_LIGHT": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setTheme(R.style.SolarizedAppTheme); + break; + case "SOLARIZED_DARK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.SolarizedAppTheme); + break; + } + } super.onCreate(savedInstanceState); ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); Helper.setLocale(this); diff --git a/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java index 41ba5d9c..d3fbedd3 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java @@ -16,14 +16,19 @@ package app.fedilab.android.activities; import android.annotation.SuppressLint; +import android.content.SharedPreferences; +import android.content.res.Configuration; import android.os.Bundle; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatDelegate; +import androidx.preference.PreferenceManager; import com.vanniktech.emoji.EmojiManager; import com.vanniktech.emoji.one.EmojiOneProvider; +import app.fedilab.android.R; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.ThemeHelper; @@ -38,6 +43,57 @@ public class BaseBarActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { + final SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); + String currentTheme = sharedpreferences.getString(getString(R.string.SET_THEME_BASE), getString(R.string.SET_DEFAULT_THEME)); + //Default automatic switch + if (currentTheme.equals(getString(R.string.SET_DEFAULT_THEME))) { + + int currentNightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + switch (currentNightMode) { + case Configuration.UI_MODE_NIGHT_NO: + String defaultLight = sharedpreferences.getString(getString(R.string.SET_THEME_DEFAULT_LIGHT), "LIGHT"); + switch (defaultLight) { + case "LIGHT": + setTheme(R.style.AppThemeBar); + break; + case "SOLARIZED_LIGHT": + setTheme(R.style.SolarizedAppThemeBar); + break; + } + break; + case Configuration.UI_MODE_NIGHT_YES: + String defaultDark = sharedpreferences.getString(getString(R.string.SET_THEME_DEFAULT_DARK), "DARK"); + switch (defaultDark) { + case "DARK": + setTheme(R.style.AppThemeBar); + break; + case "SOLARIZED_DARK": + setTheme(R.style.SolarizedAppThemeBar); + break; + } + break; + } + + } else { + switch (currentTheme) { + case "LIGHT": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setTheme(R.style.AppThemeBar); + break; + case "DARK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.AppThemeBar); + break; + case "SOLARIZED_LIGHT": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setTheme(R.style.SolarizedAppThemeBar); + break; + case "SOLARIZED_DARK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.SolarizedAppThemeBar); + break; + } + } super.onCreate(savedInstanceState); ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); Helper.setLocale(this); diff --git a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java index 6e3a4bd9..15fd4b08 100644 --- a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java @@ -267,9 +267,9 @@ public class ThemeHelper { } public static void switchTo(String themePref) { - if (themes.LIGHT.name().equals(themePref)) { + if (themes.LIGHT.name().equals(themePref) || themes.SOLARIZED_LIGHT.name().equals(themePref)) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); - } else if (themes.DARK.name().equals(themePref)) { + } else if (themes.DARK.name().equals(themePref) || themes.SOLARIZED_DARK.name().equals(themePref)) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); } else { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java index e4db6b9d..1f96672f 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java @@ -62,6 +62,7 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements ListPreference SET_THEME_BASE = findPreference(getString(R.string.SET_THEME_BASE)); if (SET_THEME_BASE != null) { ThemeHelper.switchTo(SET_THEME_BASE.getValue()); + requireActivity().recreate(); } } Helper.recreateMainActivity(requireActivity()); From 29752106d28b42e0d7dc58c50f8456157e04f06a Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 30 Nov 2022 12:12:55 +0100 Subject: [PATCH 068/111] Add black theme --- .../android/activities/BaseActivity.java | 8 ++- .../android/activities/BaseBarActivity.java | 7 ++ .../settings/FragmentThemingSettings.java | 1 + app/src/main/res/values-night/themes.xml | 65 +++++++++++++++++++ app/src/main/res/values/strings.xml | 4 ++ 5 files changed, 84 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/app/fedilab/android/activities/BaseActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseActivity.java index 36d5b983..a03df07d 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseActivity.java @@ -49,7 +49,6 @@ public class BaseActivity extends AppCompatActivity { //Default automatic switch if (currentTheme.equals(getString(R.string.SET_DEFAULT_THEME))) { - int currentNightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; switch (currentNightMode) { case Configuration.UI_MODE_NIGHT_NO: @@ -72,6 +71,9 @@ public class BaseActivity extends AppCompatActivity { case "SOLARIZED_DARK": setTheme(R.style.SolarizedAppTheme); break; + case "BLACK": + setTheme(R.style.BlackAppTheme); + break; } break; } @@ -93,6 +95,10 @@ public class BaseActivity extends AppCompatActivity { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); setTheme(R.style.SolarizedAppTheme); break; + case "BLACK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.BlackAppTheme); + break; } } super.onCreate(savedInstanceState); diff --git a/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java index d3fbedd3..5c058f6d 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java @@ -70,6 +70,9 @@ public class BaseBarActivity extends AppCompatActivity { case "SOLARIZED_DARK": setTheme(R.style.SolarizedAppThemeBar); break; + case "BLACK": + setTheme(R.style.BlackAppThemeBar); + break; } break; } @@ -92,6 +95,10 @@ public class BaseBarActivity extends AppCompatActivity { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); setTheme(R.style.SolarizedAppThemeBar); break; + case "BLACK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.BlackAppThemeBar); + break; } } super.onCreate(savedInstanceState); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java index 1f96672f..019cda75 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java @@ -65,6 +65,7 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements requireActivity().recreate(); } } + //TODO: check if can be removed Helper.recreateMainActivity(requireActivity()); } diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 937c1328..6a2a76ee 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -167,5 +167,70 @@ @color/solarized_md_theme_dark_inversePrimary + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 76c059f8..b0375e43 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -702,6 +702,7 @@ System default Solarized (Light) Solarized (Dark) + Black LIGHT @@ -709,6 +710,7 @@ SYSTEM SOLARIZED_LIGHT SOLARIZED_DARK + BLACK @@ -724,10 +726,12 @@ Dark Solarized (Dark) + Black DARK SOLARIZED_DARK + BLACK From 349d8578f0aea4dcb4d76b129633111729b5b134 Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 30 Nov 2022 15:06:34 +0100 Subject: [PATCH 069/111] some fixes --- app/build.gradle | 1 - .../app/fedilab/android/activities/InstanceActivity.java | 6 +++--- .../app/fedilab/android/activities/ProfileActivity.java | 2 +- .../android/activities/admin/AdminAccountActivity.java | 3 ++- .../android/activities/admin/AdminReportActivity.java | 3 ++- .../java/app/fedilab/android/helper/CirclesDrawingView.java | 4 +--- .../java/app/fedilab/android/helper/SpannableHelper.java | 2 +- .../java/app/fedilab/android/ui/drawer/StatusAdapter.java | 2 +- 8 files changed, 11 insertions(+), 12 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 6d17f37f..cbf5f141 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -116,7 +116,6 @@ dependencies { implementation "ch.acra:acra-mail:5.9.6" implementation "ch.acra:acra-limiter:5.9.3" implementation "ch.acra:acra-dialog:5.9.6" - implementation 'com.github.Dhaval2404:ColorPicker:2.3' implementation "com.madgag.spongycastle:bctls-jdk15on:1.58.0.0" implementation 'com.github.UnifiedPush:android-connector:2.0.1' // implementation 'com.github.UnifiedPush:android-foss_embedded_fcm_distributor:1.0.0-beta1' diff --git a/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java b/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java index 7fb93935..3f16837d 100644 --- a/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java @@ -32,7 +32,6 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; import androidx.preference.PreferenceManager; @@ -45,6 +44,7 @@ import app.fedilab.android.R; import app.fedilab.android.client.entities.api.Instance; import app.fedilab.android.databinding.ActivityInstanceBinding; import app.fedilab.android.helper.Helper; +import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.InstancesVM; @@ -69,13 +69,13 @@ public class InstanceActivity extends BaseActivity { final SpannableString contentAbout = new SpannableString(getString(R.string.action_about_instance)); contentAbout.setSpan(new UnderlineSpan(), 0, contentAbout.length(), 0); - contentAbout.setSpan(new ForegroundColorSpan(ContextCompat.getColor(InstanceActivity.this, R.color.colorAccent)), 0, contentAbout.length(), + contentAbout.setSpan(new ForegroundColorSpan(ThemeHelper.getAttColor(this, R.attr.colorPrimary)), 0, contentAbout.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); binding.tos.setText(contentAbout); final SpannableString contentPrivacy = new SpannableString(getString(R.string.action_privacy_policy)); contentPrivacy.setSpan(new UnderlineSpan(), 0, contentPrivacy.length(), 0); - contentPrivacy.setSpan(new ForegroundColorSpan(ContextCompat.getColor(InstanceActivity.this, R.color.colorAccent)), 0, contentPrivacy.length(), + contentPrivacy.setSpan(new ForegroundColorSpan(ThemeHelper.getAttColor(this, R.attr.colorPrimary)), 0, contentPrivacy.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); binding.privacy.setText(contentPrivacy); diff --git a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java index 1da8c47e..401e235b 100644 --- a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java @@ -309,7 +309,7 @@ public class ProfileActivity extends BaseActivity { final SpannableString content = new SpannableString(getString(R.string.disclaimer_full)); content.setSpan(new UnderlineSpan(), 0, content.length(), 0); - content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(ProfileActivity.this, R.color.colorAccent)), 0, content.length(), + content.setSpan(new ForegroundColorSpan(ThemeHelper.getAttColor(this, R.attr.colorPrimary)), 0, content.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); binding.warningMessage.setText(content); binding.warningMessage.setOnClickListener(view -> { diff --git a/app/src/main/java/app/fedilab/android/activities/admin/AdminAccountActivity.java b/app/src/main/java/app/fedilab/android/activities/admin/AdminAccountActivity.java index ee6403ff..ac6892db 100644 --- a/app/src/main/java/app/fedilab/android/activities/admin/AdminAccountActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/admin/AdminAccountActivity.java @@ -64,6 +64,7 @@ import app.fedilab.android.databinding.ActivityAdminAccountBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; import app.fedilab.android.helper.SpannableHelper; +import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.AdminVM; import app.fedilab.android.viewmodel.mastodon.NodeInfoVM; import es.dmoral.toasty.Toasty; @@ -291,7 +292,7 @@ public class AdminAccountActivity extends BaseActivity { final SpannableString content = new SpannableString(getString(R.string.disclaimer_full)); content.setSpan(new UnderlineSpan(), 0, content.length(), 0); - content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(AdminAccountActivity.this, R.color.colorAccent)), 0, content.length(), + content.setSpan(new ForegroundColorSpan(ThemeHelper.getAttColor(this, R.attr.colorPrimary)), 0, content.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); //This account was moved to another one diff --git a/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java b/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java index 234c8fcd..1d6667dc 100644 --- a/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/admin/AdminReportActivity.java @@ -65,6 +65,7 @@ import app.fedilab.android.databinding.ActivityAdminAccountBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; import app.fedilab.android.helper.SpannableHelper; +import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.AdminVM; import app.fedilab.android.viewmodel.mastodon.NodeInfoVM; import es.dmoral.toasty.Toasty; @@ -310,7 +311,7 @@ public class AdminReportActivity extends BaseBarActivity { final SpannableString content = new SpannableString(getString(R.string.disclaimer_full)); content.setSpan(new UnderlineSpan(), 0, content.length(), 0); - content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(AdminReportActivity.this, R.color.colorAccent)), 0, content.length(), + content.setSpan(new ForegroundColorSpan(ThemeHelper.getAttColor(this, R.attr.colorPrimary)), 0, content.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); //This account was moved to another one diff --git a/app/src/main/java/app/fedilab/android/helper/CirclesDrawingView.java b/app/src/main/java/app/fedilab/android/helper/CirclesDrawingView.java index b85b9df2..34aa1acc 100644 --- a/app/src/main/java/app/fedilab/android/helper/CirclesDrawingView.java +++ b/app/src/main/java/app/fedilab/android/helper/CirclesDrawingView.java @@ -9,8 +9,6 @@ import android.util.SparseArray; import android.view.MotionEvent; import android.view.View; -import androidx.core.content.res.ResourcesCompat; - import java.util.HashSet; import java.util.Random; @@ -63,7 +61,7 @@ public class CirclesDrawingView extends View { // Generate bitmap used for background mCirclePaint = new Paint(); - mCirclePaint.setColor(ResourcesCompat.getColor(getContext().getResources(), R.color.colorAccent, getContext().getTheme())); + mCirclePaint.setColor(ThemeHelper.getAttColor(ct, R.attr.colorPrimary)); mCirclePaint.setStrokeWidth(10); mCirclePaint.setStyle(Paint.Style.STROKE); } diff --git a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java index 07065693..d4bc4b51 100644 --- a/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/SpannableHelper.java @@ -966,7 +966,7 @@ public class SpannableHelper { int end = spannable.getSpanEnd(quoteSpan); int flags = spannable.getSpanFlags(quoteSpan); spannable.removeSpan(quoteSpan); - int colord = ContextCompat.getColor(context, R.color.colorAccent); + int colord = ThemeHelper.getAttColor(context, R.attr.colorPrimary); spannable.setSpan(new CustomQuoteSpan( ContextCompat.getColor(context, R.color.transparent), colord, diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java index fb47a5ee..e5c3d950 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java @@ -1417,7 +1417,7 @@ public class StatusAdapter extends RecyclerView.Adapter if (ownvotes != null && ownvotes.contains(j)) { Drawable img = ContextCompat.getDrawable(context, R.drawable.ic_baseline_check_24); assert img != null; - img.setColorFilter(ContextCompat.getColor(context, R.color.colorAccent), PorterDuff.Mode.SRC_IN); + img.setColorFilter(ThemeHelper.getAttColor(context, R.attr.colorPrimary), PorterDuff.Mode.SRC_IN); img.setBounds(0, 0, (int) (20 * scale + 0.5f), (int) (20 * scale + 0.5f)); pollItemBinding.pollItemText.setCompoundDrawables(null, null, img, null); } From ef24d7586bac02be08f2fdf3229aa985afb63f4e Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 30 Nov 2022 15:27:23 +0100 Subject: [PATCH 070/111] Upgrade libs --- app/build.gradle | 20 ++++++++++---------- autoimageslider/build.gradle | 2 -- build.gradle | 4 ++-- cropper/build.gradle | 1 - gradle/wrapper/gradle-wrapper.properties | 2 +- mytransl/build.gradle | 2 -- ratethisapp/build.gradle | 2 -- 7 files changed, 13 insertions(+), 20 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index cbf5f141..dd0c08aa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,11 +8,11 @@ plugins { } def flavor android { - compileSdk 31 + compileSdk 32 defaultConfig { minSdk 21 - targetSdk 31 + targetSdk 32 versionCode 434 versionName "3.8.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -78,8 +78,8 @@ allprojects { } dependencies { implementation project(':autoimageslider') - implementation 'androidx.appcompat:appcompat:1.4.2' - implementation 'com.google.android.material:material:1.6.1' + implementation 'androidx.appcompat:appcompat:1.5.1' + implementation 'com.google.android.material:material:1.7.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation "com.google.code.gson:gson:2.9.1" implementation 'com.squareup.retrofit2:retrofit:2.9.0' @@ -119,7 +119,7 @@ dependencies { implementation "com.madgag.spongycastle:bctls-jdk15on:1.58.0.0" implementation 'com.github.UnifiedPush:android-connector:2.0.1' // implementation 'com.github.UnifiedPush:android-foss_embedded_fcm_distributor:1.0.0-beta1' - playstoreImplementation ('com.github.UnifiedPush:android-embedded_fcm_distributor:2.1.3') { + playstoreImplementation('com.github.UnifiedPush:android-embedded_fcm_distributor:2.1.3') { exclude group: 'com.google.firebase', module: 'firebase-core' exclude group: 'com.google.firebase', module: 'firebase-analytics' exclude group: 'com.google.firebase', module: 'firebase-measurement-connector' @@ -129,12 +129,12 @@ dependencies { implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' implementation 'androidx.lifecycle:lifecycle-livedata:2.5.1' implementation 'androidx.lifecycle:lifecycle-viewmodel:2.5.1' - implementation 'androidx.navigation:navigation-fragment:2.5.1' - implementation 'androidx.navigation:navigation-ui:2.5.1' + implementation 'androidx.navigation:navigation-fragment:2.5.3' + implementation 'androidx.navigation:navigation-ui:2.5.3' testImplementation 'junit:junit:' - androidTestImplementation 'androidx.test.ext:junit:1.1.3' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' - // debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.8.1' + androidTestImplementation 'androidx.test.ext:junit:1.1.4' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0' + // debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.8.1' coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' } diff --git a/autoimageslider/build.gradle b/autoimageslider/build.gradle index 3acabfb7..7ae4da40 100644 --- a/autoimageslider/build.gradle +++ b/autoimageslider/build.gradle @@ -7,8 +7,6 @@ android { defaultConfig { minSdkVersion 15 targetSdkVersion 31 - versionCode 5 - versionName "1.4.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/build.gradle b/build.gradle index 9e704324..07c89c99 100644 --- a/build.gradle +++ b/build.gradle @@ -6,10 +6,10 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:7.0.4' + classpath 'com.android.tools.build:gradle:7.3.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.1" - classpath 'com.google.gms:google-services:4.3.8' + classpath 'com.google.gms:google-services:4.3.10' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/cropper/build.gradle b/cropper/build.gradle index f603264a..3486b192 100644 --- a/cropper/build.gradle +++ b/cropper/build.gradle @@ -5,7 +5,6 @@ android { compileSdk 31 defaultConfig { minSdkVersion 14 - versionCode 1 } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index dbef1cdf..15aec385 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Wed Nov 03 09:29:30 CET 2021 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/mytransl/build.gradle b/mytransl/build.gradle index 6cd6f921..28f0d238 100644 --- a/mytransl/build.gradle +++ b/mytransl/build.gradle @@ -8,8 +8,6 @@ android { defaultConfig { minSdkVersion 15 targetSdkVersion 31 - versionCode 7 - versionName "3.0" } buildTypes { release { diff --git a/ratethisapp/build.gradle b/ratethisapp/build.gradle index f4cd3f1a..1c2d07ca 100644 --- a/ratethisapp/build.gradle +++ b/ratethisapp/build.gradle @@ -6,8 +6,6 @@ android { defaultConfig { minSdkVersion 21 targetSdkVersion 31 - versionCode 1 - versionName "1.0" } buildTypes { From 46e38c3581dd86355f5262ff3e47527ff0c092b8 Mon Sep 17 00:00:00 2001 From: Murat H Date: Wed, 30 Nov 2022 15:08:22 +0100 Subject: [PATCH 071/111] Translated using Weblate (German) Currently translated at 100.0% (934 of 934 strings) Co-authored-by: Murat H Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/de/ Translation: Fedilab/Strings --- app/src/main/res/values-de/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 6c3760d3..83057d1e 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -878,7 +878,7 @@ Mediendateien ablehnen Ignoriere alle Meldungen die von dieser Domäne kommen. Für Suspendierungen irrelevant Meldungen ablehnen - Domänennamen verschleiern + Domänen-Namen verschleiern Privater Kommentar Kommentar zu dieser Domänen-Beschränkung für den internen Gebrauch durch Moderatoren. Öffentlicher Kommentar @@ -889,11 +889,11 @@ Die Sperrung der Domäne verhindert nicht die Erstellung von Konto-Einträgen in der Datenbank, sondern wendet rückwirkend und automatisch bestimmte Moderations-Methoden auf diese Konten an. Ignoriere alle Meldungen die von dieser Domäne kommen. Für Suspendierungen irrelevant Stummschalten macht die Beiträge des Kontos für alle, die ihm nicht folgen, unsichtbar. Suspendierung entfernt alle Inhalte, Medien und Profildaten des Kontos. Verwende Keine, wenn Du nur die Mediendateien ablehnen möchtest. - Verschleiere teilweise den Domainnamen in der Liste, wenn die Verteilung der Liste der Domainbeschränkunden aktiviert ist + Verschleiere teilweise den Domänen-Namen in der Liste, wenn die Verteilung der Liste der Domänen-Beschränkunden aktiviert ist Kommentiere die Domainbeschränkung für die Öffentlichkeit, wenn die Verteilung der Liste der Domainbeschränkunden aktiviert ist. Listen sortieren Bericht senden - Bist Du sicher den Tag %1$s stumm zu schalten\? + Den Tag %1$s wirklich stummschalten\? Maximale Tiefe in Beitragsverläufen Konto wieder aktiviert Status From bd5fccf2db4baedf85ada2fac9d92ec951efbe04 Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 30 Nov 2022 15:52:41 +0100 Subject: [PATCH 072/111] Fix issue 558 - App doesn't remember position on profiles/fav/bookmarks etc. --- .../ui/fragment/timeline/FragmentMastodonTimeline.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java index 8b3e977f..4da7fedc 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java @@ -175,6 +175,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. private boolean rememberPosition; private String publicTrendsDomain; private int lockForResumeCall; + private boolean isNotPinnedTimeline; //Allow to recreate data when detaching/attaching fragment public void recreate() { @@ -213,10 +214,10 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. router(null); } } else { - if (timelineType == Timeline.TimeLineEnum.ACCOUNT_TIMELINE && lockForResumeCall == 0) { + if (isNotPinnedTimeline && lockForResumeCall == 0) { router(null); lockForResumeCall++; - } else if (timelineType != Timeline.TimeLineEnum.ACCOUNT_TIMELINE) { + } else if (!isNotPinnedTimeline) { router(null); } } @@ -321,6 +322,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. } publicTrendsDomain = getArguments().getString(Helper.ARG_REMOTE_INSTANCE_STRING, null); isViewInitialized = getArguments().getBoolean(Helper.ARG_INITIALIZE_VIEW, true); + isNotPinnedTimeline = isViewInitialized; tagTimeline = (TagTimeline) getArguments().getSerializable(Helper.ARG_TAG_TIMELINE); accountTimeline = (Account) getArguments().getSerializable(Helper.ARG_ACCOUNT); exclude_replies = !getArguments().getBoolean(Helper.ARG_SHOW_REPLIES, true); From 506f5fcf496305d7ce5a036b65aac788d19dc870 Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 30 Nov 2022 16:07:12 +0100 Subject: [PATCH 073/111] Fix some issues --- .../res/drawable/ic_compose_attachment_play.xml | 4 ++-- .../main/res/layout/compose_attachment_item.xml | 16 ++++++++++++---- .../main/res/layout/drawer_status_compose.xml | 3 +++ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/drawable/ic_compose_attachment_play.xml b/app/src/main/res/drawable/ic_compose_attachment_play.xml index 9edb5960..9b7ecb7f 100644 --- a/app/src/main/res/drawable/ic_compose_attachment_play.xml +++ b/app/src/main/res/drawable/ic_compose_attachment_play.xml @@ -4,9 +4,9 @@ android:viewportWidth="24" android:viewportHeight="24"> diff --git a/app/src/main/res/layout/compose_attachment_item.xml b/app/src/main/res/layout/compose_attachment_item.xml index 156827b1..d4b0f5ec 100644 --- a/app/src/main/res/layout/compose_attachment_item.xml +++ b/app/src/main/res/layout/compose_attachment_item.xml @@ -30,13 +30,15 @@ android:layout_width="48dp" android:layout_height="48dp" android:adjustViewBounds="true" - android:padding="6dp" + android:padding="0dp" + app:icon="@drawable/ic_compose_attachment_play" + app:iconGravity="textStart" android:scaleType="fitCenter" - android:src="@drawable/ic_compose_attachment_play" + app:iconPadding="0dp" app:layout_constraintBottom_toBottomOf="@id/preview" app:layout_constraintEnd_toEndOf="@id/preview" - app:layout_constraintStart_toStartOf="@id/preview" - app:layout_constraintTop_toTopOf="@id/preview" /> + app:layout_constraintStart_toStartOf="@id/preview" + app:layout_constraintTop_toTopOf="@id/preview" /> @@ -172,6 +173,7 @@ android:layout_height="48dp" android:layout_marginTop="6dp" app:icon="@drawable/ic_compose_sensitive" + android:padding="0dp" app:iconGravity="textStart" app:iconPadding="0dp" /> @@ -181,6 +183,7 @@ android:layout_width="48dp" android:layout_height="48dp" app:icon="@drawable/ic_compose_visibility_public" + android:padding="0dp" app:iconGravity="textStart" app:iconPadding="0dp" /> From 4730f7fb53d33ef0e92ae31f0162e3a04043d96b Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 30 Nov 2022 16:16:54 +0100 Subject: [PATCH 074/111] Header more visible --- .../main/java/app/fedilab/android/BaseMainActivity.java | 1 + app/src/main/res/layout/nav_header_main.xml | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java index 01db12a1..b9baf806 100644 --- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java @@ -648,6 +648,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt headerMainBinding.accountName.setText(currentAccount.mastodon_account.display_name); Helper.loadPP(BaseMainActivity.this, headerMainBinding.accountProfilePicture, currentAccount, false); MastodonHelper.loadProfileMediaMastodon(BaseMainActivity.this, headerMainBinding.backgroundImage, currentAccount.mastodon_account, MastodonHelper.MediaAccountType.HEADER); + headerMainBinding.backgroundImage.setAlpha(0.5f); /* * Some general data are loaded when the app starts such; * - Pinned timelines (in app feature) diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml index da7defe5..c9c28f1b 100644 --- a/app/src/main/res/layout/nav_header_main.xml +++ b/app/src/main/res/layout/nav_header_main.xml @@ -54,7 +54,8 @@ android:layout_marginTop="10dp" android:orientation="horizontal"> - - Date: Wed, 30 Nov 2022 16:52:54 +0100 Subject: [PATCH 075/111] Header more visible --- app/src/main/res/values/colors.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 1b753608..f047f723 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -33,7 +33,7 @@ #6750A4 #CAC4D0 #000000 - #D0BCFF + #8c8dff #381E72 #4F378B #EADDFF From 9959904853fd05c563da5b6210960e4c02c1117d Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 30 Nov 2022 17:07:23 +0100 Subject: [PATCH 076/111] Some fixes --- .../android/ui/drawer/ComposeAdapter.java | 26 ++++++++----------- .../ui/drawer/ConversationAdapter.java | 5 ---- .../ui/drawer/NotificationAdapter.java | 5 ---- .../android/ui/drawer/StatusAdapter.java | 8 +----- .../main/res/layout/drawer_conversation.xml | 10 ------- app/src/main/res/layout/drawer_follow.xml | 11 -------- app/src/main/res/layout/drawer_status.xml | 11 -------- app/src/main/res/xml/pref_timelines.xml | 2 +- 8 files changed, 13 insertions(+), 65 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java index de70ce38..36cb47dc 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java @@ -1134,21 +1134,17 @@ public class ComposeAdapter extends RecyclerView.Adapter { - InputMethodManager imm = (InputMethodManager) context.getSystemService(INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(holder.binding.buttonEmojiOne.getWindowToken(), 0); - EmojiManager.install(new EmojiOneProvider()); - final EmojiPopup emojiPopup = EmojiPopup.Builder.fromRootView(holder.binding.buttonEmojiOne).setOnEmojiPopupDismissListener(() -> { - imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); - }).build(holder.binding.content); - emojiPopup.toggle(); - }); - } else { - holder.binding.buttonEmojiOne.setVisibility(View.GONE); - } + + holder.binding.buttonEmojiOne.setVisibility(View.VISIBLE); + holder.binding.buttonEmojiOne.setOnClickListener(v -> { + InputMethodManager imm = (InputMethodManager) context.getSystemService(INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(holder.binding.buttonEmojiOne.getWindowToken(), 0); + EmojiManager.install(new EmojiOneProvider()); + final EmojiPopup emojiPopup = EmojiPopup.Builder.fromRootView(holder.binding.buttonEmojiOne).setOnEmojiPopupDismissListener(() -> { + imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + }).build(holder.binding.content); + emojiPopup.toggle(); + }); int newInputType = holder.binding.content.getInputType() & (holder.binding.content.getInputType() ^ InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE); holder.binding.content.setInputType(newInputType); diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ConversationAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ConversationAdapter.java index d64834d3..ed5c8b61 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ConversationAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ConversationAdapter.java @@ -138,11 +138,6 @@ public class ConversationAdapter extends RecyclerView.Adapter boolean confirmFav = sharedpreferences.getBoolean(context.getString(R.string.SET_NOTIF_VALIDATION_FAV), false); boolean confirmBoost = sharedpreferences.getBoolean(context.getString(R.string.SET_NOTIF_VALIDATION), true); boolean fullAttachement = sharedpreferences.getBoolean(context.getString(R.string.SET_FULL_PREVIEW), false); - boolean displayBookmark = sharedpreferences.getBoolean(context.getString(R.string.SET_DISPLAY_BOOKMARK), false); + boolean displayBookmark = sharedpreferences.getBoolean(context.getString(R.string.SET_DISPLAY_BOOKMARK), true); boolean long_press_media = sharedpreferences.getBoolean(context.getString(R.string.SET_LONG_PRESS_STORE_MEDIA), false); boolean displayCounters = sharedpreferences.getBoolean(context.getString(R.string.SET_DISPLAY_COUNTER_FAV_BOOST), false); String loadMediaType = sharedpreferences.getString(context.getString(R.string.SET_LOAD_MEDIA_TYPE), "ALWAYS"); @@ -515,12 +515,6 @@ public class StatusAdapter extends RecyclerView.Adapter holder.binding.actionButtonBoost.setActiveImageTint(R.color.boost_icon); holder.binding.actionButtonBookmark.setActiveImageTint(R.color.marked_icon); - if (status.cached) { - holder.binding.cacheIndicator.setVisibility(View.VISIBLE); - } else { - holder.binding.cacheIndicator.setVisibility(View.GONE); - } - if (status.pinned) { holder.binding.statusPinned.setVisibility(View.VISIBLE); diff --git a/app/src/main/res/layout/drawer_conversation.xml b/app/src/main/res/layout/drawer_conversation.xml index c30d7b1e..968ebf87 100644 --- a/app/src/main/res/layout/drawer_conversation.xml +++ b/app/src/main/res/layout/drawer_conversation.xml @@ -37,16 +37,6 @@ android:orientation="horizontal" android:padding="6dp"> - - - - Date: Wed, 30 Nov 2022 18:15:32 +0100 Subject: [PATCH 077/111] Release 3.9.0 --- app/build.gradle | 4 ++-- app/src/main/assets/release_notes/notes.json | 5 +++++ .../fedilab/android/activities/ProfileActivity.java | 11 ++++++----- .../android/ui/drawer/NotificationAdapter.java | 12 ++++++------ .../android/viewmodel/mastodon/AccountsVM.java | 2 ++ app/src/main/res/layout/activity_profile.xml | 1 - app/src/main/res/layout/drawer_conversation.xml | 3 ++- app/src/main/res/layout/drawer_follow.xml | 4 ++-- .../fastlane/metadata/android/en/changelogs/435.txt | 9 +++++++++ 9 files changed, 34 insertions(+), 17 deletions(-) create mode 100644 src/fdroid/fastlane/metadata/android/en/changelogs/435.txt diff --git a/app/build.gradle b/app/build.gradle index dd0c08aa..5a2a44ef 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { defaultConfig { minSdk 21 targetSdk 32 - versionCode 434 - versionName "3.8.1" + versionCode 435 + versionName "3.9.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } flavorDimensions "default" diff --git a/app/src/main/assets/release_notes/notes.json b/app/src/main/assets/release_notes/notes.json index a3a280d2..c797eb91 100644 --- a/app/src/main/assets/release_notes/notes.json +++ b/app/src/main/assets/release_notes/notes.json @@ -1,4 +1,9 @@ [ + { + "version": "3.9.0", + "code": "435", + "note": "Added:\n- Migrate to Material Design 3\n- 5 Themes (Light, Dark, Solarized Light/Dark, Black)\n- Automatically switch between Light/Dark\n- Light and Dark theme can be defined for time-based switch\n- Android 12+: Dynamic color\n\nFixed:\n- Jumps in timelines\n" + }, { "version": "3.8.1", "code": "434", diff --git a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java index 401e235b..28ac84b0 100644 --- a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java @@ -47,6 +47,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; +import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityOptionsCompat; import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; @@ -148,8 +149,7 @@ public class ProfileActivity extends BaseActivity { mention_str = b.getString(Helper.ARG_MENTION, null); checkRemotely = b.getBoolean(Helper.ARG_CHECK_REMOTELY, false); } - postponeEnterTransition(); - + ActivityCompat.postponeEnterTransition(ProfileActivity.this); //Remove title if (actionBar != null) { actionBar.setDisplayShowTitleEnabled(false); @@ -270,18 +270,19 @@ public class ProfileActivity extends BaseActivity { @Override public void onResourceReady(@NonNull final Drawable resource, Transition transition) { binding.profilePicture.setImageDrawable(resource); - startPostponedEnterTransition(); + ActivityCompat.startPostponedEnterTransition(ProfileActivity.this); } @Override public void onLoadFailed(@Nullable Drawable errorDrawable) { binding.profilePicture.setImageResource(R.drawable.ic_person); - startPostponedEnterTransition(); + ActivityCompat.startPostponedEnterTransition(ProfileActivity.this); } @Override public void onLoadCleared(@Nullable Drawable placeholder) { - + binding.profilePicture.setImageResource(R.drawable.ic_person); + ActivityCompat.startPostponedEnterTransition(ProfileActivity.this); } } ); diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java index 3dea6890..78ed4255 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java @@ -164,16 +164,16 @@ public class NotificationAdapter extends RecyclerView.Adapter accountsVM.rejectFollow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, notification.account.id) .observe((LifecycleOwner) context, relationShip -> { - if (notificationList.size() > position) { - notificationList.remove(position); - notifyItemRemoved(position); + if (notificationList.size() > holderFollow.getBindingAdapterPosition()) { + notificationList.remove(holderFollow.getBindingAdapterPosition()); + notifyItemRemoved(holderFollow.getBindingAdapterPosition()); } })); holderFollow.binding.acceptButton.setOnClickListener(v -> accountsVM.acceptFollow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, notification.account.id) .observe((LifecycleOwner) context, relationShip -> { - if (notificationList.size() > position) { - notificationList.remove(position); - notifyItemRemoved(position); + if (notificationList.size() > holderFollow.getBindingAdapterPosition()) { + notificationList.remove(holderFollow.getBindingAdapterPosition()); + notifyItemRemoved(holderFollow.getBindingAdapterPosition()); } })); holderFollow.binding.avatar.setOnClickListener(v -> { diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java index f56a120b..1d640b2b 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java @@ -1191,6 +1191,7 @@ public class AccountsVM extends AndroidViewModel { if (acceptFollowResponse.isSuccessful()) { relationShip = acceptFollowResponse.body(); } + new StatusCache(getApplication().getApplicationContext()).deleteStatus(instance, id); } catch (Exception e) { e.printStackTrace(); } @@ -1221,6 +1222,7 @@ public class AccountsVM extends AndroidViewModel { if (rejectFollowResponse.isSuccessful()) { relationShip = rejectFollowResponse.body(); } + new StatusCache(getApplication().getApplicationContext()).deleteStatus(instance, id); } catch (Exception e) { e.printStackTrace(); } diff --git a/app/src/main/res/layout/activity_profile.xml b/app/src/main/res/layout/activity_profile.xml index 9979a096..523b390d 100644 --- a/app/src/main/res/layout/activity_profile.xml +++ b/app/src/main/res/layout/activity_profile.xml @@ -77,7 +77,6 @@ android:id="@+id/account_pp" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_margin="3dp" android:contentDescription="@string/profile_picture" android:scaleType="centerCrop" android:transitionName="@string/activity_porfile_pp" diff --git a/app/src/main/res/layout/drawer_conversation.xml b/app/src/main/res/layout/drawer_conversation.xml index 968ebf87..41e0f0d3 100644 --- a/app/src/main/res/layout/drawer_conversation.xml +++ b/app/src/main/res/layout/drawer_conversation.xml @@ -18,10 +18,11 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" + android:layout_marginHorizontal="@dimen/card_margin" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="12dp" + android:layout_marginTop="6dp" app:cardElevation="5dp" app:strokeWidth="0dp"> diff --git a/app/src/main/res/layout/drawer_follow.xml b/app/src/main/res/layout/drawer_follow.xml index 9277677e..22d6f8bf 100644 --- a/app/src/main/res/layout/drawer_follow.xml +++ b/app/src/main/res/layout/drawer_follow.xml @@ -19,9 +19,9 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="6dp" + android:layout_marginHorizontal="@dimen/card_margin" app:cardElevation="5dp" - + android:layout_marginTop="@dimen/card_margin" app:strokeWidth="0dp"> Date: Thu, 1 Dec 2022 17:55:02 +0100 Subject: [PATCH 078/111] Translated using Weblate (Czech) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 91.8% (869 of 946 strings) Co-authored-by: Lukáš Jelínek Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/cs/ Translation: Fedilab/Strings --- app/src/main/res/values-cs/strings.xml | 79 ++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 1f328781..90c41342 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -753,4 +753,83 @@ Vybrat téma Zobrazit časové osy Vybrat typy oznámení + Sdílená zpráva byla upravena + Zprávy v cache o ostatní časové osy + Vynutit překlad do určitého jazyka. K resetu do výchozího nastavení vyberte první hodnotu + Poslední IP + Povolit + Varovat + Upozornit uživatele e-mailem + Uživatel + Označit jako nevyřešené + Označit jako vyřešené + Účet odmítnut + Účet schválen + Účet varován + Napište tag, který chcete sledovat + Sledované tagy + Sledovat tag + Skrýt s varováním + Úplně skrýt + Zobrazit vzdálený profil + Aplikace nemůže najít vzdálená data! + Smazat časovou osu + Blokované domény + Domény + Otevřít s jiným účtem + Soukromý komentář + Zprávy uložené do konceptů + Potvrdit zrušení sledování + Návrhy + Zapamatovat pozici v časových osách + Zpráva byla připnuta + Přeložit zprávy + Moderátor + Administrátor + Potvrzeno + Nepotvrzeno + Připnout zprávu + Odepnout zprávu + Zpráva už není připnuta! + Historie zpráv + Upraveno %1$s + Vytvořeno %1$s + Maximální odsazení ve vláknech + Stav + Restartovat aplikaci\? + Restartovat + Název tagu není platný! + Titulek + Stejně ukázat + Odblokovat doménu + Nemáte žádné blokované domény + Opravdu chcete odblokovat %1$s\? + Ochrana soukromí + Odstranit připnutou časovou osu\? + Opravdu chcete odepnout tuto časovou osu\? + Smazat připnuté časové osy\? + Odmítnout soubory médií + Přizpůsobit barvy + Výchozí světlé téma + Časové osy budou cachovány a aplikace bude tedy rychlejší. + Změny byly uloženy! + Závažnost + Veřejný komentář + Vytvořit blokaci domény + Výchozí tmavé téma + Dynamické barvy + Aby se změny projevily, měli byste restartovat aplikaci. + Jazyky ve výběru + Nesledujete žádné tagy! + Nesledovat tag + Opravdu chcete přestat sledovat tento tag\? + Nesledovat + Sledovat tag + Profily + Zdá se, že vaše instance tuto funkci nepodporuje! + Sledovat trendy pro tuto instanci + Klíčové slovo nebo fráze + Smazat klíčové slovo + Přidat klíčové slovo + Filtrováno: %1$s \ No newline at end of file From f39869bb9eeb322e5e58e7073c556ae217c7c3f0 Mon Sep 17 00:00:00 2001 From: Murat H Date: Thu, 1 Dec 2022 17:55:03 +0100 Subject: [PATCH 079/111] Translated using Weblate (German) Currently translated at 99.2% (939 of 946 strings) Co-authored-by: Murat H Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/de/ Translation: Fedilab/Strings --- app/src/main/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 83057d1e..990fb7ed 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -861,7 +861,7 @@ Registrierungen Neue Meldung Verstecke den gefilterten Inhalt hinter einer Warnung die den Titel des Filters enthält - Aktion filtern + Aktion des Filters Wähle die Aktion aus die durchgeführt werden soll wenn ein Beitrag Deinem Filter entspricht Hinzufügen des Kontos zur Liste fehlgeschlagen! Benachrichtigungen behalten From bc6904f49d401dda626efc26e96b4f5b5bc57410 Mon Sep 17 00:00:00 2001 From: Micha Date: Thu, 1 Dec 2022 17:55:03 +0100 Subject: [PATCH 080/111] Translated using Weblate (German) Currently translated at 99.2% (939 of 946 strings) Co-authored-by: Micha Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/de/ Translation: Fedilab/Strings --- app/src/main/res/values-de/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 990fb7ed..2cc42599 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -795,11 +795,11 @@ Konto genehmigt Meldung Medien in Benachrichtigungen für Reblogs und Favoriten werden angezeigt - Übersetzung in eine bestimmte Sprache erzwingen. Wähle den ersten Wert um die Einstellungen zurückzusetzen + Übersetzung in eine bestimmte Sprache erzwingen. Wähle den ersten Wert, um auf Geräteeinstellungen zurückzusetzen Nachrichten-Verlauf Bearbeitet am %1$s Erstellt am %1$s - Nicht öffentlich gelistete Antworten + Nicht gelistete Antworten Benachrichtigungen wurden aus dem Zwischenspeicher entfernt. eMail-Status Beigetreten @@ -894,7 +894,7 @@ Listen sortieren Bericht senden Den Tag %1$s wirklich stummschalten\? - Maximale Tiefe in Beitragsverläufen + Maximaler Einzug in Threads Konto wieder aktiviert Status \ No newline at end of file From d0a4429fe7737363899a29ee9bed94d744dc4b41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xos=C3=A9=20M?= Date: Thu, 1 Dec 2022 17:55:03 +0100 Subject: [PATCH 081/111] Translated using Weblate (Galician) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (946 of 946 strings) Co-authored-by: Xosé M Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/gl/ Translation: Fedilab/Strings --- app/src/main/res/values-gl/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index c704e2c2..9fa1310b 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -896,4 +896,11 @@ O bloqueo do dominio non evitará a creación das contas na base de datos, pero aplicará de xeito retroactivo e automático accións de moderacións específicas nesas contas. Rexeitar ficheiros multimedia Ofuscar parcialmente o nome de dominio na lista se está activada a publicación das limitacións de dominios + Elixe un modo para o decorado + Personalizar cores + Permite elexir cores personalizadas para os decorados. + Cor dinámica + Segue a tonalidade do fondo de pantalla para axustar o esquema de cores. + Decorado claro por defecto + Decorado escuro por defecto \ No newline at end of file From b2e5c1202a17b0ff11712dbaa098ec9bb4eff519 Mon Sep 17 00:00:00 2001 From: Oliebol Date: Thu, 1 Dec 2022 17:55:04 +0100 Subject: [PATCH 082/111] Translated using Weblate (Dutch) Currently translated at 100.0% (946 of 946 strings) Co-authored-by: Oliebol Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/nl/ Translation: Fedilab/Strings --- app/src/main/res/values-nl/strings.xml | 47 +++++++++++++++----------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 4b445494..aad368a6 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -113,7 +113,7 @@ %d uur - %d uur + %d uren %d dag @@ -197,12 +197,12 @@ Geef een melding wanneer iemand jou vermeldt Geef een melding wanneer een poll is beëindigd Meld nieuwe berichten - Vraag voor het boosten een bevestiging - Vraag voor het markeren als favoriet een bevestiging + Vraag om bevestiging voor het boosten + Vraag om bevestiging voor het markeren als favoriet Meldingen? Stille meldingen Hoe lang gevoelige inhoud blijven tonen (in seconden, 0 is onbeperkt) - Media Omschrijving time-out (seconden, 0 betekent uit) + Media omschrijving time-out (seconden, 0 betekent uit) Handmatig delen Jouw handmatige deel-URL… Account vergrendelen @@ -212,7 +212,7 @@ en Gebruik de ingebouwde webbrowser Aangepaste tabbladen - Automatisch tekstwaarschuwingen (cw) uitklappen + Automatisch tekstwaarschuwingen (CW) uitklappen LED-kleur instellen: Blauw @@ -382,7 +382,7 @@ Verzenden Tijdlijn op tags filteren Geen tags - Een afbeelding toevoegen wanneer een URL wordt gedeeld + Een afbeelding toevoegen wanneer een link wordt gedeeld Poll aanmaken Keuze %d @@ -440,7 +440,7 @@ Deze server werkt met uitnodigingen. Je account moet handmatig goedgekeurd worden door een beheerder voordat je het kan gebruiken. Wachtwoorden komen niet overeen! De e-mail lijkt niet geldig te zijn! - U ontvangt een bevestiging per e-mail + Je ontvangt een bevestiging per e-mail Gebruik minstens 8 karakters Wachtwoord moet uit minstens 8 karakters bestaan Gebruikersnaam mag alleen bestaan uit letters, getallen en underscores @@ -473,13 +473,13 @@ Spraakbericht Tijdens het tijdslot stuurt de app meldingen. Je kunt dit tijdslot omkeren door hieronder voor \'Stil\' te kiezen. Previews worden niet bijgesneden in tijdlijnen - Automatisch na de vermelding een nieuwe regel beginnen, om zo de eerste zin met een hoofdletter te beginnen + Bij een reactie automatisch de eerste zin met een hoofdletter laten beginnen Gebruikers toestaan om berichten aan hun RSS feeds toe te voegen Opstellen Selecteer Server toevoegen Crashrapporten inschakelen - Wanneer dit is ingeschakeld, wordt lokaal een crashrapport aangemaakt, dat je vervolgens kunt delen. + Als dit is ingeschakeld, wordt lokaal een crashrapport aangemaakt, dat je kunt delen. Fedilab is gestopt :( Je kunt mij per e-mail foutrapportages sturen. Dit helpt om het probleem op te lossen :)\n\nJe kunt extra informatie toevoegen. Dank je! Zichtbaarheid @@ -553,7 +553,7 @@ Deel link Open met een andere app Omleiding controleren - Deze URL stuurt niet door + Deze link stuurt niet door %1$s \n \nverwijst naar @@ -569,7 +569,7 @@ Geverifieerd door %1$s (%2$s) Actie uitgeschakeld Ontvouw - Er is iets misgegaan, controleer uw download directory in de instellingen. + Er is iets misgegaan, controleer je download map in de instellingen. Mededelingen Geen mededelingen! Reactie toevoegen @@ -614,7 +614,7 @@ Rechthoek Wis modus Wis cache - Berichten opgeslagen bij concepten + Conceptberichten opgeslagen Mijn server Mijn app Stel de vertraging in tussen elke nieuwe lading @@ -641,7 +641,7 @@ Gevolgde tags Volg tag Filter actie - Onvermelde antwoorden + Minder openbare reacties Verberg helemaal Verberg de gefilterde inhoud helemaal, alsof het niet bestaat Trefwoord of zinsdeel @@ -680,7 +680,7 @@ Alle meldingen wissen Lijstnaam is niet geldig! Maak een aangepast thema - Berichten in cache voor andere tijdlijnen + Berichten in cache andere tijdlijnen Onderste menu Klik hier om poll bij te werken Buffer leegmaken @@ -689,7 +689,7 @@ Stel je maximale karakter limiet in Importeer instellingen Als dit aanstaat worden alle vastgezette tijdlijnen getoond in een drop-down menu - Antwoord + Reactie Weet je zeker dat je de cache wilt wissen\? Als je concepten hebt met media, dan zijn die bijgevoegde media ook weg. Toon tellers voor berichten Media kan niet worden geüpload! @@ -709,7 +709,7 @@ Privacybeleid Weet je zeker dat je die tijdlijn wilt losmaken\? Domeinen - Dit betreft alleen \"openbare\" reacties. Indien ingeschakeld krijgen je reacties automatisch de zichtbaarheid \"unlisted\" in plaats van \"openbaar\" + Dit betreft alleen \"openbare\" reacties. Indien ingeschakeld krijgen je reacties automatisch de zichtbaarheid \"minder openbaar\" in plaats van \"openbaar\" Weiger media Nieuwe aanmelding (moderators) Nieuwe melding (moderators) @@ -766,7 +766,7 @@ Toon Meer acties Toon tellers - Toon een bubbel teller in tab tijdlijnen bij nieuwe berichten + Toon een teller in tab tijdlijnen bij nieuwe berichten Kies een thema dat gemaakt is door derden Soort meldingen Meldingsgeluid @@ -853,7 +853,7 @@ Bericht is verzonden! Vorm Herkomst van gerapporteerd account - Berichten in cache voor eigen tijdlijn + Berichten in cache eigen tijdlijn Bewerk lijst Kies het type melding Locatie @@ -862,7 +862,7 @@ Je server lijkt die mogelijkheid niet te hebben! Haal meldingen op Meldingen verzamelen - Media in meldingen voor reblogs en favorieten worden getoond + Media in meldingen voor boosts en favorieten worden getoond Kies een logo Pictogram wijzigen Taal voor berichten @@ -872,7 +872,7 @@ Bewerk bericht Berichthistorie Kies voor een actie als een bericht voldoet aan het filter - Toon toch maar + Toch tonen Toon remote profiel De app kan geen remote data vinden! De app kon het account niet aan de lijst toevoegen! @@ -903,4 +903,11 @@ Account niet meer beperken Account opgeschort %1$s bewerkte %2$s + Kleuren aanpassen + Dynamische kleur + Standaard lichte thema + Standaard donkere thema + Kies het type thema + Sta toe je aangepaste kleuren in te stellen voor thema\'s. + Stem af op het kleurenschema van uw persoonlijke wallpaper. \ No newline at end of file From d6d645995428a60c085106e1c17da2f546a81371 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Thu, 1 Dec 2022 17:55:04 +0100 Subject: [PATCH 083/111] Translated using Weblate (Sardinian) Currently translated at 99.4% (941 of 946 strings) Co-authored-by: Ajeje Brazorf Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/sc/ Translation: Fedilab/Strings --- app/src/main/res/values-sc/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index 0c4908ab..ec8a2d6b 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -894,4 +894,11 @@ Su blocu de su domìniu no at a prevènnere sa creatzione de intradas de contos in sa base de datos, ma at a aplicare a manera retroativa e automàtica maneras de moderatzione a custos contos. Refuda is mèdios Ignora totu is informes chi bèngiant dae custu domìniu. No est rilevante pro is suspensiones + Personaliza is colores + Colore dinàmicu + Tema craru predefinidu + Issèbera una modalidade pro su tema + Allìnia tonalmente cun s\'ischema de colores de s\'isfundu personale tuo. + Ti permitit de cunfigurare is colores personalizados tuos pro is temas. + Tema iscuru predefinidu \ No newline at end of file From e83c16140936cbd790036100bc5863915c14a49f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Thu, 1 Dec 2022 17:55:05 +0100 Subject: [PATCH 084/111] Translated using Weblate (Turkish) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (946 of 946 strings) Co-authored-by: Oğuz Ersen Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/tr/ Translation: Fedilab/Strings --- app/src/main/res/values-tr/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 27cf9be3..19d53d01 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -900,4 +900,11 @@ Etki alanı sınırlamaları listesinin tanıtılması etkinleştirilmişse listedeki etki alanı adını kısmen gizleyin Etki alanı sınırlamaları listesinin tanıtılması etkinleştirilmişse, bu etki alanı sınırlaması hakkında herkese açık yorum yapın. %1$s etiketini sessize almak istediğinizden emin misiniz\? + Renkleri özelleştir + Temalar için özel renklerinizi ayarlamanıza izin verir. + Değişken Renk + Öntanımlı açık tema + Öntanımlı koyu tema + Tema için bir mod seçin + Kişisel duvar kağıdınızın renk düzeniyle ton olarak uyum sağlayın. \ No newline at end of file From 774a73c62480a64b53f13c1ffeb34fb5088cb3d3 Mon Sep 17 00:00:00 2001 From: Thomas Date: Thu, 1 Dec 2022 18:26:46 +0100 Subject: [PATCH 085/111] Fix #566 #565 #564 --- app/src/main/AndroidManifest.xml | 10 +- .../android/activities/BaseActivity.java | 16 +- .../activities/BaseAlertDialogActivity.java | 123 +++++++++++++++ .../android/activities/BaseBarActivity.java | 19 ++- .../activities/BaseTransparentActivity.java | 126 ++++++++++++++++ .../android/activities/InstanceActivity.java | 2 +- .../activities/InstanceHealthActivity.java | 2 +- .../activities/InstanceProfileActivity.java | 2 +- .../android/activities/MediaActivity.java | 2 +- .../android/activities/ProxyActivity.java | 2 +- .../settings/FragmentThemingSettings.java | 1 + .../timeline/FragmentMastodonTimeline.java | 5 +- app/src/main/res/values-night/themes.xml | 142 ++++++++++++++---- app/src/main/res/values/colors.xml | 4 +- app/src/main/res/values/themes.xml | 94 +++++++++--- app/src/main/res/xml/pref_theming.xml | 2 +- build.gradle | 2 +- 17 files changed, 486 insertions(+), 68 deletions(-) create mode 100644 app/src/main/java/app/fedilab/android/activities/BaseAlertDialogActivity.java create mode 100644 app/src/main/java/app/fedilab/android/activities/BaseTransparentActivity.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b38b91d1..ea3259c4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -288,15 +288,15 @@ android:name=".activities.InstanceActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/action_about_instance" - android:theme="@style/AlertDialog" /> + android:theme="@style/AppThemeAlertDialog" /> + android:theme="@style/AppThemeAlertDialog" /> + android:theme="@style/AppThemeAlertDialog" /> @@ -306,12 +306,12 @@ + android:theme="@style/Transparent" /> + android:theme="@style/AppThemeAlertDialog" /> Build.VERSION_CODES.N) { + final Configuration override = new Configuration(newBase.getResources().getConfiguration()); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(newBase); + override.fontScale = prefs.getFloat(newBase.getString(R.string.SET_FONT_SCALE), 1.1f); + applyOverrideConfiguration(override); + } + super.attachBaseContext(newBase); + } } diff --git a/app/src/main/java/app/fedilab/android/activities/BaseAlertDialogActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseAlertDialogActivity.java new file mode 100644 index 00000000..220526dc --- /dev/null +++ b/app/src/main/java/app/fedilab/android/activities/BaseAlertDialogActivity.java @@ -0,0 +1,123 @@ +package app.fedilab.android.activities; +/* Copyright 2021 Thomas Schneider + * + * This file is a part of Fedilab + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation; either version 3 of the + * License, or (at your option) any later version. + * + * Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * You should have received a copy of the GNU General Public License along with Fedilab; if not, + * see . */ + + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.os.Build; +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatDelegate; +import androidx.preference.PreferenceManager; + +import com.vanniktech.emoji.EmojiManager; +import com.vanniktech.emoji.one.EmojiOneProvider; + +import app.fedilab.android.R; +import app.fedilab.android.helper.Helper; +import app.fedilab.android.helper.ThemeHelper; + + +@SuppressLint("Registered") +public class BaseAlertDialogActivity extends AppCompatActivity { + + static { + Helper.installProvider(); + EmojiManager.install(new EmojiOneProvider()); + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + + final SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); + String currentTheme = sharedpreferences.getString(getString(R.string.SET_THEME_BASE), getString(R.string.SET_DEFAULT_THEME)); + //Default automatic switch + if (currentTheme.equals(getString(R.string.SET_DEFAULT_THEME))) { + + int currentNightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + switch (currentNightMode) { + case Configuration.UI_MODE_NIGHT_NO: + String defaultLight = sharedpreferences.getString(getString(R.string.SET_THEME_DEFAULT_LIGHT), "LIGHT"); + switch (defaultLight) { + case "LIGHT": + setTheme(R.style.AppThemeAlertDialog); + break; + case "SOLARIZED_LIGHT": + setTheme(R.style.SolarizedAlertDialog); + break; + } + break; + case Configuration.UI_MODE_NIGHT_YES: + String defaultDark = sharedpreferences.getString(getString(R.string.SET_THEME_DEFAULT_DARK), "DARK"); + switch (defaultDark) { + case "DARK": + setTheme(R.style.AppThemeAlertDialog); + break; + case "SOLARIZED_DARK": + setTheme(R.style.SolarizedAlertDialog); + break; + case "BLACK": + setTheme(R.style.BlackAlertDialog); + break; + } + break; + } + } else { + switch (currentTheme) { + case "LIGHT": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setTheme(R.style.AppThemeAlertDialog); + break; + case "DARK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.AppThemeAlertDialog); + break; + case "SOLARIZED_LIGHT": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setTheme(R.style.SolarizedAlertDialog); + break; + case "SOLARIZED_DARK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.SolarizedAlertDialog); + break; + case "BLACK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.BlackAlertDialog); + break; + } + } + super.onCreate(savedInstanceState); + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.N) { + ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); + } + Helper.setLocale(this); + } + + @Override + protected void attachBaseContext(Context newBase) { + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) { + final Configuration override = new Configuration(newBase.getResources().getConfiguration()); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(newBase); + override.fontScale = prefs.getFloat(newBase.getString(R.string.SET_FONT_SCALE), 1.1f); + applyOverrideConfiguration(override); + } + super.attachBaseContext(newBase); + } +} diff --git a/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java index 5c058f6d..dce37269 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseBarActivity.java @@ -16,8 +16,10 @@ package app.fedilab.android.activities; import android.annotation.SuppressLint; +import android.content.Context; import android.content.SharedPreferences; import android.content.res.Configuration; +import android.os.Build; import android.os.Bundle; import androidx.annotation.Nullable; @@ -102,8 +104,23 @@ public class BaseBarActivity extends AppCompatActivity { } } super.onCreate(savedInstanceState); - ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); + if (android.os.Build.VERSION.SDK_INT <= Build.VERSION_CODES.N) { + ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); + } Helper.setLocale(this); } + @Override + protected void attachBaseContext(Context newBase) { + + if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.N) { + final Configuration override = new Configuration(newBase.getResources().getConfiguration()); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(newBase); + override.fontScale = prefs.getFloat(newBase.getString(R.string.SET_FONT_SCALE), 1.1f); + applyOverrideConfiguration(override); + } + + + super.attachBaseContext(newBase); + } } diff --git a/app/src/main/java/app/fedilab/android/activities/BaseTransparentActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseTransparentActivity.java new file mode 100644 index 00000000..12f89e80 --- /dev/null +++ b/app/src/main/java/app/fedilab/android/activities/BaseTransparentActivity.java @@ -0,0 +1,126 @@ +package app.fedilab.android.activities; +/* Copyright 2022 Thomas Schneider + * + * This file is a part of Fedilab + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation; either version 3 of the + * License, or (at your option) any later version. + * + * Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * You should have received a copy of the GNU General Public License along with Fedilab; if not, + * see . */ + + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.os.Build; +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatDelegate; +import androidx.preference.PreferenceManager; + +import com.vanniktech.emoji.EmojiManager; +import com.vanniktech.emoji.one.EmojiOneProvider; + +import app.fedilab.android.R; +import app.fedilab.android.helper.Helper; +import app.fedilab.android.helper.ThemeHelper; + + +@SuppressLint("Registered") +public class BaseTransparentActivity extends AppCompatActivity { + + static { + Helper.installProvider(); + EmojiManager.install(new EmojiOneProvider()); + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + final SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); + String currentTheme = sharedpreferences.getString(getString(R.string.SET_THEME_BASE), getString(R.string.SET_DEFAULT_THEME)); + //Default automatic switch + if (currentTheme.equals(getString(R.string.SET_DEFAULT_THEME))) { + + int currentNightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + switch (currentNightMode) { + case Configuration.UI_MODE_NIGHT_NO: + String defaultLight = sharedpreferences.getString(getString(R.string.SET_THEME_DEFAULT_LIGHT), "LIGHT"); + switch (defaultLight) { + case "LIGHT": + setTheme(R.style.Transparent); + break; + case "SOLARIZED_LIGHT": + setTheme(R.style.TransparentSolarized); + break; + } + break; + case Configuration.UI_MODE_NIGHT_YES: + String defaultDark = sharedpreferences.getString(getString(R.string.SET_THEME_DEFAULT_DARK), "DARK"); + switch (defaultDark) { + case "DARK": + setTheme(R.style.Transparent); + break; + case "SOLARIZED_DARK": + setTheme(R.style.TransparentSolarized); + break; + case "BLACK": + setTheme(R.style.TransparentBlack); + break; + } + break; + } + + } else { + switch (currentTheme) { + case "LIGHT": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setTheme(R.style.Transparent); + break; + case "DARK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.Transparent); + break; + case "SOLARIZED_LIGHT": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setTheme(R.style.TransparentSolarized); + break; + case "SOLARIZED_DARK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.TransparentSolarized); + break; + case "BLACK": + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); + setTheme(R.style.TransparentBlack); + break; + } + } + super.onCreate(savedInstanceState); + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.N) { + ThemeHelper.adjustFontScale(this, getResources().getConfiguration()); + } + Helper.setLocale(this); + } + + @Override + protected void attachBaseContext(Context newBase) { + + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) { + final Configuration override = new Configuration(newBase.getResources().getConfiguration()); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(newBase); + override.fontScale = prefs.getFloat(newBase.getString(R.string.SET_FONT_SCALE), 1.1f); + applyOverrideConfiguration(override); + } + + + super.attachBaseContext(newBase); + } +} diff --git a/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java b/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java index 3f16837d..27f13a7a 100644 --- a/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/InstanceActivity.java @@ -48,7 +48,7 @@ import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.InstancesVM; -public class InstanceActivity extends BaseActivity { +public class InstanceActivity extends BaseAlertDialogActivity { ActivityInstanceBinding binding; diff --git a/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java b/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java index 25f450c1..85de47a2 100644 --- a/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/InstanceHealthActivity.java @@ -37,7 +37,7 @@ import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.InstanceSocialVM; -public class InstanceHealthActivity extends BaseActivity { +public class InstanceHealthActivity extends BaseAlertDialogActivity { private ActivityInstanceSocialBinding binding; diff --git a/app/src/main/java/app/fedilab/android/activities/InstanceProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/InstanceProfileActivity.java index cc2ea674..327cf968 100644 --- a/app/src/main/java/app/fedilab/android/activities/InstanceProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/InstanceProfileActivity.java @@ -31,7 +31,7 @@ import app.fedilab.android.helper.Helper; import app.fedilab.android.viewmodel.mastodon.NodeInfoVM; import es.dmoral.toasty.Toasty; -public class InstanceProfileActivity extends BaseActivity { +public class InstanceProfileActivity extends BaseAlertDialogActivity { private String instance; diff --git a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java index 16a9f538..2577ac92 100644 --- a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java @@ -68,7 +68,7 @@ import app.fedilab.android.ui.fragment.media.FragmentMedia; import es.dmoral.toasty.Toasty; -public class MediaActivity extends BaseActivity implements OnDownloadInterface { +public class MediaActivity extends BaseTransparentActivity implements OnDownloadInterface { int flags; private ArrayList attachments; diff --git a/app/src/main/java/app/fedilab/android/activities/ProxyActivity.java b/app/src/main/java/app/fedilab/android/activities/ProxyActivity.java index f039f13d..2ffa6120 100644 --- a/app/src/main/java/app/fedilab/android/activities/ProxyActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ProxyActivity.java @@ -29,7 +29,7 @@ import app.fedilab.android.R; import app.fedilab.android.databinding.ActivityProxyBinding; -public class ProxyActivity extends BaseActivity { +public class ProxyActivity extends BaseAlertDialogActivity { private ActivityProxyBinding binding; private int position; diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java index 019cda75..ebe91c19 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java @@ -63,6 +63,7 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements if (SET_THEME_BASE != null) { ThemeHelper.switchTo(SET_THEME_BASE.getValue()); requireActivity().recreate(); + Helper.recreateMainActivity(requireActivity()); } } //TODO: check if can be removed diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java index 4da7fedc..23651375 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java @@ -210,16 +210,15 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. if (initialStatuses != null) { initializeStatusesCommonView(initialStatuses); } else { - router(null); } } else { if (isNotPinnedTimeline && lockForResumeCall == 0) { router(null); lockForResumeCall++; - } else if (!isNotPinnedTimeline) { + } /*else if (!isNotPinnedTimeline) { router(null); - } + }*/ } if (timelineStatuses != null && timelineStatuses.size() > 0) { route(DIRECTION.FETCH_NEW, true); diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 6a2a76ee..c4cddf76 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -28,9 +28,7 @@ @color/md_theme_dark_inverseOnSurface @color/md_theme_dark_inversePrimary - - ?attr/background - ?attr/background + ?android:colorBackground false false false @@ -40,16 +38,13 @@ @android:transition/explode @android:transition/explode - - @transition/change_image_transform + @transition/change_image_transform - - @transition/change_image_transform + @transition/change_image_transform - - - + + + + + + + + @@ -75,28 +70,50 @@ @color/md_theme_light_inverseOnSurface @color/md_theme_light_inversePrimary - ?attr/background - ?attr/background + ?android:colorBackground true true true - - - + + +