Loading app/src/main/java/app/fedilab/android/BaseMainActivity.java +5 −4 Original line number Diff line number Diff line Loading @@ -90,7 +90,6 @@ import app.fedilab.android.activities.FollowRequestActivity; import app.fedilab.android.activities.InstanceActivity; import app.fedilab.android.activities.InstanceHealthActivity; import app.fedilab.android.activities.LoginActivity; import app.fedilab.android.activities.MainActivity; import app.fedilab.android.activities.MastodonListActivity; import app.fedilab.android.activities.PartnerShipActivity; import app.fedilab.android.activities.ProfileActivity; Loading @@ -109,6 +108,7 @@ import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.client.entities.app.Account; import app.fedilab.android.client.entities.app.BaseAccount; import app.fedilab.android.client.entities.app.BottomMenu; import app.fedilab.android.client.entities.app.DomainsBlock; import app.fedilab.android.client.entities.app.Pinned; import app.fedilab.android.client.entities.app.PinnedTimeline; import app.fedilab.android.databinding.ActivityMainBinding; Loading Loading @@ -251,7 +251,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt SharedPreferences.Editor editor = sharedpreferences.edit(); editor.putString(PREF_USER_TOKEN, account.token); editor.commit(); Intent mainActivity = new Intent(this, MainActivity.class); Intent mainActivity = new Intent(this, BaseMainActivity.class); mainActivity.putExtra(Helper.INTENT_ACTION, Helper.OPEN_NOTIFICATION); startActivity(mainActivity); finish(); Loading Loading @@ -456,7 +456,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt editor.commit(); //The user is now aut //The user is now authenticated, it will be redirected to MainActivity Intent mainActivity = new Intent(this, MainActivity.class); Intent mainActivity = new Intent(this, BaseMainActivity.class); startActivity(mainActivity); finish(); headerMainBinding.ownerAccounts.setImageResource(R.drawable.ic_baseline_arrow_drop_down_24); Loading Loading @@ -694,7 +694,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt binding.toolbarSearch.setOnSearchClickListener(v -> binding.tabLayout.setVisibility(View.VISIBLE)); //For receiving data from other activities LocalBroadcastManager.getInstance(BaseMainActivity.this).registerReceiver(broadcast_data, new IntentFilter(Helper.BROADCAST_DATA)); if (emojis == null || !emojis.containsKey(MainActivity.currentInstance)) { if (emojis == null || !emojis.containsKey(BaseMainActivity.currentInstance)) { new Thread(() -> { try { emojis.put(currentInstance, new EmojiInstance(BaseMainActivity.this).getEmojiList(BaseMainActivity.currentInstance)); Loading @@ -703,6 +703,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt } }).start(); } DomainsBlock.updateDomains(BaseMainActivity.this); } Loading app/src/main/java/app/fedilab/android/activities/WebviewActivity.java +14 −22 Original line number Diff line number Diff line Loading @@ -14,17 +14,18 @@ package app.fedilab.android.activities; * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see <http://www.gnu.org/licenses>. */ import android.Manifest; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.database.sqlite.SQLiteDatabase; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.view.Menu; import android.view.MenuItem; import android.view.View; Loading @@ -39,14 +40,13 @@ import androidx.core.content.ContextCompat; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; 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.sqlite.Sqlite; import app.fedilab.android.webview.CustomWebview; import app.fedilab.android.webview.FedilabWebChromeClient; import app.fedilab.android.webview.FedilabWebViewClient; Loading @@ -55,12 +55,13 @@ import es.dmoral.toasty.Toasty; public class WebviewActivity extends BaseActivity { public static List<String> trackingDomains; private String url; private boolean peertubeLink; private CustomWebview webView; private FedilabWebViewClient FedilabWebViewClient; private ActivityWebviewBinding binding; private Menu defaultMenu; @SuppressLint("SetJavaScriptEnabled") @Override Loading Loading @@ -133,24 +134,12 @@ public class WebviewActivity extends BaseActivity { }); if (!url.toLowerCase().startsWith("http://") && !url.toLowerCase().startsWith("https://")) url = "http://" + url; if (trackingDomains == null) { AsyncTask.execute(() -> { SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); // trackingDomains = new DomainBlockDAO(WebviewActivity.this, db).getAll(); if (trackingDomains == null) trackingDomains = new ArrayList<>(); // Get a handler that can be used to post to the main thread Handler mainHandler = new Handler(getMainLooper()); Runnable myRunnable = () -> webView.loadUrl(url); mainHandler.post(myRunnable); }); } else webView.loadUrl(url); } /* public void setCount(Context context, String count) { public void setCount(Context context, String count) { if (defaultMenu != null && !peertubeLink) { MenuItem menuItem = defaultMenu.findItem(R.id.action_block); LayerDrawable icon = (LayerDrawable) menuItem.getIcon(); Loading @@ -169,17 +158,20 @@ public class WebviewActivity extends BaseActivity { icon.mutate(); icon.setDrawableByLayerId(R.id.ic_block_count, badge); } }*/ } @Override public boolean onPrepareOptionsMenu(Menu menu) { if (!peertubeLink) setCount(WebviewActivity.this, "0"); defaultMenu = menu; return super.onPrepareOptionsMenu(menu); } @Override public boolean onCreateOptionsMenu(@NotNull Menu menu) { getMenuInflater().inflate(R.menu.main_webview, menu); defaultMenu = menu; if (peertubeLink) { menu.findItem(R.id.action_go).setVisible(false); menu.findItem(R.id.action_block).setVisible(false); Loading app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java +15 −9 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ 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; import es.dmoral.toasty.Toasty; public class WebviewConnectActivity extends BaseActivity { Loading Loading @@ -214,6 +215,7 @@ public class WebviewConnectActivity extends BaseActivity { //API call to retrieve account information for the new token AccountsVM accountsVM = new ViewModelProvider(WebviewConnectActivity.this).get(AccountsVM.class); accountsVM.getConnectedAccount(currentInstanceLogin, account.token).observe(WebviewConnectActivity.this, mastodonAccount -> { if (mastodonAccount != null) { account.mastodon_account = mastodonAccount; account.user_id = mastodonAccount.id; //We check if user have really moderator rights Loading @@ -226,6 +228,10 @@ public class WebviewConnectActivity extends BaseActivity { } else { proceedLogin(WebviewConnectActivity.this, account); } } else { Toasty.error(WebviewConnectActivity.this, getString(R.string.toast_error), Toasty.LENGTH_SHORT).show(); } }); }); return true; Loading app/src/main/java/app/fedilab/android/client/endpoints/MastodonTimelinesService.java +2 −0 Original line number Diff line number Diff line Loading @@ -225,12 +225,14 @@ public interface MastodonTimelinesService { @Query("count") int count ); @Headers({"Accept: text/html,application/xhtml+xml,application/xml"}) @GET("{names}/rss") Call<Nitter> getNitter( @Path("names") String id, @Query("max_position") String max_position ); @Headers({"Accept: text/html,application/xhtml+xml,application/xml"}) @GET("{account}/rss") Call<Nitter> getNitterAccount( @Path("account") String account Loading app/src/main/java/app/fedilab/android/client/entities/app/BottomMenu.java +4 −5 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ import java.util.List; import app.fedilab.android.BaseMainActivity; import app.fedilab.android.R; import app.fedilab.android.activities.MainActivity; import app.fedilab.android.exception.DBException; import app.fedilab.android.sqlite.Sqlite; Loading Loading @@ -218,8 +217,8 @@ public class BottomMenu implements Serializable { return -1; } if (bottomMenu.user_id == null) { bottomMenu.user_id = MainActivity.currentUserID; bottomMenu.instance = MainActivity.currentInstance; bottomMenu.user_id = BaseMainActivity.currentUserID; bottomMenu.instance = BaseMainActivity.currentInstance; } boolean exists = bottomMenuExists(bottomMenu); long idReturned; Loading Loading @@ -299,8 +298,8 @@ public class BottomMenu implements Serializable { public BottomMenu defaultBottomMenu() { BottomMenu bottomMenu = new BottomMenu(); bottomMenu.user_id = MainActivity.currentUserID; bottomMenu.instance = MainActivity.currentInstance; bottomMenu.user_id = BaseMainActivity.currentUserID; bottomMenu.instance = BaseMainActivity.currentInstance; bottomMenu.bottom_menu = new ArrayList<>(); MenuItem menuItemHome = new MenuItem(); menuItemHome.position = 0; Loading Loading
app/src/main/java/app/fedilab/android/BaseMainActivity.java +5 −4 Original line number Diff line number Diff line Loading @@ -90,7 +90,6 @@ import app.fedilab.android.activities.FollowRequestActivity; import app.fedilab.android.activities.InstanceActivity; import app.fedilab.android.activities.InstanceHealthActivity; import app.fedilab.android.activities.LoginActivity; import app.fedilab.android.activities.MainActivity; import app.fedilab.android.activities.MastodonListActivity; import app.fedilab.android.activities.PartnerShipActivity; import app.fedilab.android.activities.ProfileActivity; Loading @@ -109,6 +108,7 @@ import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.client.entities.app.Account; import app.fedilab.android.client.entities.app.BaseAccount; import app.fedilab.android.client.entities.app.BottomMenu; import app.fedilab.android.client.entities.app.DomainsBlock; import app.fedilab.android.client.entities.app.Pinned; import app.fedilab.android.client.entities.app.PinnedTimeline; import app.fedilab.android.databinding.ActivityMainBinding; Loading Loading @@ -251,7 +251,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt SharedPreferences.Editor editor = sharedpreferences.edit(); editor.putString(PREF_USER_TOKEN, account.token); editor.commit(); Intent mainActivity = new Intent(this, MainActivity.class); Intent mainActivity = new Intent(this, BaseMainActivity.class); mainActivity.putExtra(Helper.INTENT_ACTION, Helper.OPEN_NOTIFICATION); startActivity(mainActivity); finish(); Loading Loading @@ -456,7 +456,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt editor.commit(); //The user is now aut //The user is now authenticated, it will be redirected to MainActivity Intent mainActivity = new Intent(this, MainActivity.class); Intent mainActivity = new Intent(this, BaseMainActivity.class); startActivity(mainActivity); finish(); headerMainBinding.ownerAccounts.setImageResource(R.drawable.ic_baseline_arrow_drop_down_24); Loading Loading @@ -694,7 +694,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt binding.toolbarSearch.setOnSearchClickListener(v -> binding.tabLayout.setVisibility(View.VISIBLE)); //For receiving data from other activities LocalBroadcastManager.getInstance(BaseMainActivity.this).registerReceiver(broadcast_data, new IntentFilter(Helper.BROADCAST_DATA)); if (emojis == null || !emojis.containsKey(MainActivity.currentInstance)) { if (emojis == null || !emojis.containsKey(BaseMainActivity.currentInstance)) { new Thread(() -> { try { emojis.put(currentInstance, new EmojiInstance(BaseMainActivity.this).getEmojiList(BaseMainActivity.currentInstance)); Loading @@ -703,6 +703,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt } }).start(); } DomainsBlock.updateDomains(BaseMainActivity.this); } Loading
app/src/main/java/app/fedilab/android/activities/WebviewActivity.java +14 −22 Original line number Diff line number Diff line Loading @@ -14,17 +14,18 @@ package app.fedilab.android.activities; * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see <http://www.gnu.org/licenses>. */ import android.Manifest; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.database.sqlite.SQLiteDatabase; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.view.Menu; import android.view.MenuItem; import android.view.View; Loading @@ -39,14 +40,13 @@ import androidx.core.content.ContextCompat; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; 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.sqlite.Sqlite; import app.fedilab.android.webview.CustomWebview; import app.fedilab.android.webview.FedilabWebChromeClient; import app.fedilab.android.webview.FedilabWebViewClient; Loading @@ -55,12 +55,13 @@ import es.dmoral.toasty.Toasty; public class WebviewActivity extends BaseActivity { public static List<String> trackingDomains; private String url; private boolean peertubeLink; private CustomWebview webView; private FedilabWebViewClient FedilabWebViewClient; private ActivityWebviewBinding binding; private Menu defaultMenu; @SuppressLint("SetJavaScriptEnabled") @Override Loading Loading @@ -133,24 +134,12 @@ public class WebviewActivity extends BaseActivity { }); if (!url.toLowerCase().startsWith("http://") && !url.toLowerCase().startsWith("https://")) url = "http://" + url; if (trackingDomains == null) { AsyncTask.execute(() -> { SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); // trackingDomains = new DomainBlockDAO(WebviewActivity.this, db).getAll(); if (trackingDomains == null) trackingDomains = new ArrayList<>(); // Get a handler that can be used to post to the main thread Handler mainHandler = new Handler(getMainLooper()); Runnable myRunnable = () -> webView.loadUrl(url); mainHandler.post(myRunnable); }); } else webView.loadUrl(url); } /* public void setCount(Context context, String count) { public void setCount(Context context, String count) { if (defaultMenu != null && !peertubeLink) { MenuItem menuItem = defaultMenu.findItem(R.id.action_block); LayerDrawable icon = (LayerDrawable) menuItem.getIcon(); Loading @@ -169,17 +158,20 @@ public class WebviewActivity extends BaseActivity { icon.mutate(); icon.setDrawableByLayerId(R.id.ic_block_count, badge); } }*/ } @Override public boolean onPrepareOptionsMenu(Menu menu) { if (!peertubeLink) setCount(WebviewActivity.this, "0"); defaultMenu = menu; return super.onPrepareOptionsMenu(menu); } @Override public boolean onCreateOptionsMenu(@NotNull Menu menu) { getMenuInflater().inflate(R.menu.main_webview, menu); defaultMenu = menu; if (peertubeLink) { menu.findItem(R.id.action_go).setVisible(false); menu.findItem(R.id.action_block).setVisible(false); Loading
app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java +15 −9 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ 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; import es.dmoral.toasty.Toasty; public class WebviewConnectActivity extends BaseActivity { Loading Loading @@ -214,6 +215,7 @@ public class WebviewConnectActivity extends BaseActivity { //API call to retrieve account information for the new token AccountsVM accountsVM = new ViewModelProvider(WebviewConnectActivity.this).get(AccountsVM.class); accountsVM.getConnectedAccount(currentInstanceLogin, account.token).observe(WebviewConnectActivity.this, mastodonAccount -> { if (mastodonAccount != null) { account.mastodon_account = mastodonAccount; account.user_id = mastodonAccount.id; //We check if user have really moderator rights Loading @@ -226,6 +228,10 @@ public class WebviewConnectActivity extends BaseActivity { } else { proceedLogin(WebviewConnectActivity.this, account); } } else { Toasty.error(WebviewConnectActivity.this, getString(R.string.toast_error), Toasty.LENGTH_SHORT).show(); } }); }); return true; Loading
app/src/main/java/app/fedilab/android/client/endpoints/MastodonTimelinesService.java +2 −0 Original line number Diff line number Diff line Loading @@ -225,12 +225,14 @@ public interface MastodonTimelinesService { @Query("count") int count ); @Headers({"Accept: text/html,application/xhtml+xml,application/xml"}) @GET("{names}/rss") Call<Nitter> getNitter( @Path("names") String id, @Query("max_position") String max_position ); @Headers({"Accept: text/html,application/xhtml+xml,application/xml"}) @GET("{account}/rss") Call<Nitter> getNitterAccount( @Path("account") String account Loading
app/src/main/java/app/fedilab/android/client/entities/app/BottomMenu.java +4 −5 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ import java.util.List; import app.fedilab.android.BaseMainActivity; import app.fedilab.android.R; import app.fedilab.android.activities.MainActivity; import app.fedilab.android.exception.DBException; import app.fedilab.android.sqlite.Sqlite; Loading Loading @@ -218,8 +217,8 @@ public class BottomMenu implements Serializable { return -1; } if (bottomMenu.user_id == null) { bottomMenu.user_id = MainActivity.currentUserID; bottomMenu.instance = MainActivity.currentInstance; bottomMenu.user_id = BaseMainActivity.currentUserID; bottomMenu.instance = BaseMainActivity.currentInstance; } boolean exists = bottomMenuExists(bottomMenu); long idReturned; Loading Loading @@ -299,8 +298,8 @@ public class BottomMenu implements Serializable { public BottomMenu defaultBottomMenu() { BottomMenu bottomMenu = new BottomMenu(); bottomMenu.user_id = MainActivity.currentUserID; bottomMenu.instance = MainActivity.currentInstance; bottomMenu.user_id = BaseMainActivity.currentUserID; bottomMenu.instance = BaseMainActivity.currentInstance; bottomMenu.bottom_menu = new ArrayList<>(); MenuItem menuItemHome = new MenuItem(); menuItemHome.position = 0; Loading