Some improvements with handler
This commit is contained in:
parent
e03e7b5660
commit
02a807c48c
|
@ -18,8 +18,11 @@ import android.Manifest;
|
|||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.app.ActivityManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
|
@ -41,6 +44,7 @@ import androidx.fragment.app.FragmentManager;
|
|||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.view.GravityCompat;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import androidx.drawerlayout.widget.DrawerLayout;
|
||||
import androidx.appcompat.app.ActionBarDrawerToggle;
|
||||
|
@ -162,7 +166,7 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
private final int PICK_IMPORT = 5556;
|
||||
private AlertDialog.Builder dialogBuilderOptin;
|
||||
private List<ManageTimelines> timelines;
|
||||
|
||||
private BroadcastReceiver hidde_menu;
|
||||
|
||||
public static HashMap<Integer, Fragment> mPageReferenceMap = new HashMap<>();
|
||||
private static boolean notificationChecked = false;
|
||||
|
@ -662,9 +666,56 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
changeDrawableColor(getApplicationContext(), R.drawable.ic_recently_added,R.color.dark_text);
|
||||
}
|
||||
|
||||
if( social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA)
|
||||
boolean live_notification = sharedpreferences.getBoolean(Helper.SET_LIVE_NOTIFICATIONS, true);
|
||||
|
||||
if( live_notification && (social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA))
|
||||
startSreaming();
|
||||
|
||||
if( hidde_menu != null)
|
||||
LocalBroadcastManager.getInstance(getApplicationContext()).unregisterReceiver(hidde_menu);
|
||||
hidde_menu = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
Bundle b = intent.getExtras();
|
||||
assert b != null;
|
||||
String menu = b.getString("menu");
|
||||
if( menu != null){
|
||||
if( menu.equals("hide_admin")){
|
||||
NavigationView navigationView = findViewById(R.id.nav_view);
|
||||
MenuItem admin = navigationView.getMenu().findItem(R.id.nav_administration);
|
||||
if( admin != null){
|
||||
admin.setVisible(false);
|
||||
}
|
||||
}else if(menu.equals("show_admin")){
|
||||
NavigationView navigationView = findViewById(R.id.nav_view);
|
||||
MenuItem admin = navigationView.getMenu().findItem(R.id.nav_administration);
|
||||
if( admin != null){
|
||||
admin.setVisible(true);
|
||||
}
|
||||
}else if(menu.equals("hide_news")){
|
||||
NavigationView navigationView = findViewById(R.id.nav_view);
|
||||
MenuItem news = navigationView.getMenu().findItem(R.id.nav_news);
|
||||
if( news != null){
|
||||
news.setVisible(false);
|
||||
}
|
||||
}else if(menu.equals("show_news")){
|
||||
NavigationView navigationView = findViewById(R.id.nav_view);
|
||||
MenuItem news = navigationView.getMenu().findItem(R.id.nav_news);
|
||||
if( news != null){
|
||||
news.setVisible(true);
|
||||
}
|
||||
}else if(menu.equals("show_list_button")){
|
||||
displayTimelineMoreButton(true);
|
||||
}else if(menu.equals("hide_list_button")){
|
||||
displayTimelineMoreButton(false);
|
||||
}else if(menu.equals("theme")){
|
||||
recreate();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
LocalBroadcastManager.getInstance(getApplicationContext()).registerReceiver(hidde_menu, new IntentFilter(Helper.RECEIVE_HIDE_ITEM));
|
||||
|
||||
toolbar_search.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
|
@ -1521,6 +1572,8 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
boolean backgroundProcess = sharedpreferences.getBoolean(Helper.SET_KEEP_BACKGROUND_PROCESS, true);
|
||||
if(!backgroundProcess)
|
||||
sendBroadcast(new Intent("StopLiveNotificationService"));
|
||||
if( hidde_menu != null)
|
||||
LocalBroadcastManager.getInstance(getApplicationContext()).unregisterReceiver(hidde_menu);
|
||||
PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean("isMainActivityRunning", false).apply();
|
||||
}
|
||||
|
||||
|
|
|
@ -62,11 +62,14 @@ import androidx.appcompat.app.AlertDialog;
|
|||
import androidx.appcompat.widget.SwitchCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import com.google.android.material.navigation.NavigationView;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
|
@ -81,6 +84,7 @@ import app.fedilab.android.animatemenu.interfaces.ScreenShotable;
|
|||
import app.fedilab.android.asynctasks.DownloadTrackingDomainsAsyncTask;
|
||||
import app.fedilab.android.asynctasks.UpdateAccountInfoAsyncTask;
|
||||
import app.fedilab.android.client.Entities.Account;
|
||||
import app.fedilab.android.client.Entities.Status;
|
||||
import app.fedilab.android.filelister.FileListerDialog;
|
||||
import app.fedilab.android.filelister.OnFileSelectedListener;
|
||||
import app.fedilab.android.helper.Helper;
|
||||
|
@ -451,6 +455,15 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(Helper.SET_DISPLAY_ADMIN_MENU + userId + instance, set_display_admin_menu.isChecked());
|
||||
editor.apply();
|
||||
Bundle b = new Bundle();
|
||||
if( set_display_admin_menu.isChecked()){
|
||||
b.putString("menu", "show_admin");
|
||||
}else{
|
||||
b.putString("menu", "hide_admin");
|
||||
}
|
||||
Intent intentBC = new Intent(Helper.RECEIVE_HIDE_ITEM);
|
||||
intentBC.putExtras(b);
|
||||
LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -676,6 +689,15 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(Helper.SET_DISPLAY_TIMELINE_IN_LIST, set_display_timeline_in_list.isChecked());
|
||||
editor.apply();
|
||||
Bundle b = new Bundle();
|
||||
if( set_display_timeline_in_list.isChecked()){
|
||||
b.putString("menu", "show_list_button");
|
||||
}else{
|
||||
b.putString("menu", "hide_list_button");
|
||||
}
|
||||
Intent intentBC = new Intent(Helper.RECEIVE_HIDE_ITEM);
|
||||
intentBC.putExtras(b);
|
||||
LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -688,13 +710,17 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
@Override
|
||||
public void onClick(View v) {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(Helper.SET_DISPLAY_TIMELINE_IN_LIST, set_display_news.isChecked());
|
||||
editor.putBoolean(Helper.SET_DISPLAY_NEWS_FROM_FEDILAB, set_display_news.isChecked());
|
||||
editor.apply();
|
||||
NavigationView navigationView = ((MainActivity) context).findViewById(R.id.nav_view);
|
||||
MenuItem news = navigationView.getMenu().findItem(R.id.nav_news);
|
||||
if( news != null){
|
||||
news.setVisible(set_display_news.isChecked());
|
||||
Bundle b = new Bundle();
|
||||
if( set_display_news.isChecked()){
|
||||
b.putString("menu", "show_news");
|
||||
}else{
|
||||
b.putString("menu", "hide_news");
|
||||
}
|
||||
Intent intentBC = new Intent(Helper.RECEIVE_HIDE_ITEM);
|
||||
intentBC.putExtras(b);
|
||||
LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -974,16 +1000,17 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
final CheckBox set_embedded_browser = rootView.findViewById(R.id.set_embedded_browser);
|
||||
final LinearLayout set_javascript_container = rootView.findViewById(R.id.set_javascript_container);
|
||||
final CheckBox set_custom_tabs = rootView.findViewById(R.id.set_custom_tabs);
|
||||
final LinearLayout custom_tabs_container = rootView.findViewById(R.id.custom_tabs_container);
|
||||
final SwitchCompat set_javascript = rootView.findViewById(R.id.set_javascript);
|
||||
boolean javascript = sharedpreferences.getBoolean(Helper.SET_JAVASCRIPT, true);
|
||||
boolean embedded_browser = sharedpreferences.getBoolean(Helper.SET_EMBEDDED_BROWSER, true);
|
||||
boolean custom_tabs = sharedpreferences.getBoolean(Helper.SET_CUSTOM_TABS, true);
|
||||
if( !embedded_browser){
|
||||
set_javascript_container.setVisibility(View.GONE);
|
||||
set_custom_tabs.setVisibility(View.VISIBLE);
|
||||
custom_tabs_container.setVisibility(View.VISIBLE);
|
||||
}else{
|
||||
set_javascript_container.setVisibility(View.VISIBLE);
|
||||
set_custom_tabs.setVisibility(View.GONE);
|
||||
custom_tabs_container.setVisibility(View.GONE);
|
||||
}
|
||||
set_embedded_browser.setChecked(embedded_browser);
|
||||
set_embedded_browser.setOnClickListener(new View.OnClickListener() {
|
||||
|
@ -994,10 +1021,10 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
editor.apply();
|
||||
if( !set_embedded_browser.isChecked()){
|
||||
set_javascript_container.setVisibility(View.GONE);
|
||||
set_custom_tabs.setVisibility(View.VISIBLE);
|
||||
custom_tabs_container.setVisibility(View.VISIBLE);
|
||||
}else{
|
||||
set_javascript_container.setVisibility(View.VISIBLE);
|
||||
set_custom_tabs.setVisibility(View.GONE);
|
||||
custom_tabs_container.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -1116,7 +1143,12 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
editor.apply();
|
||||
break;
|
||||
}
|
||||
((MainActivity) context).recreate();
|
||||
Bundle b = new Bundle();
|
||||
b.putString("menu", "theme");
|
||||
Intent intentBC = new Intent(Helper.RECEIVE_HIDE_ITEM);
|
||||
intentBC.putExtras(b);
|
||||
LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC);
|
||||
((SettingsActivity) context).recreate();
|
||||
}
|
||||
count1++;
|
||||
}
|
||||
|
|
|
@ -454,7 +454,7 @@ public class Helper {
|
|||
public static final String RECEIVE_FEDERATED_DATA = "receive_federated_data";
|
||||
public static final String RECEIVE_LOCAL_DATA = "receive_local_data";
|
||||
public static final String RECEIVE_PICTURE = "receive_picture";
|
||||
|
||||
public static final String RECEIVE_HIDE_ITEM = "receive_hide_item";
|
||||
//User agent
|
||||
public static final String USER_AGENT = "Fedilab/"+ BuildConfig.VERSION_NAME + " Android/"+ Build.VERSION.RELEASE;
|
||||
|
||||
|
|
|
@ -1181,13 +1181,41 @@
|
|||
android:layout_height="wrap_content"
|
||||
style="@style/Base.Widget.AppCompat.Button.Colored"
|
||||
android:text="@string/update_tracking_domains" />
|
||||
<CheckBox
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:visibility="gone"
|
||||
android:layout_marginTop="10dp"
|
||||
android:id="@+id/set_custom_tabs"
|
||||
android:layout_width="wrap_content"
|
||||
android:text="@string/custom_tabs"
|
||||
android:layout_height="wrap_content" />f
|
||||
android:id="@+id/custom_tabs_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/settings_checkbox_margin"
|
||||
android:layout_marginBottom="@dimen/settings_checkbox_margin"
|
||||
android:orientation="horizontal">
|
||||
<CheckBox
|
||||
android:id="@+id/set_custom_tabs"
|
||||
android:layout_width="wrap_content"
|
||||
android:textSize="16sp"
|
||||
android:layout_height="wrap_content" />
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<TextView
|
||||
android:textSize="16sp"
|
||||
android:text="@string/custom_tabs"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
<TextView
|
||||
android:textColor="@color/mastodonC2"
|
||||
android:text="@string/custom_tabs_indication"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
|
|
|
@ -1107,6 +1107,7 @@
|
|||
<string name="default_directory">Default Directory</string>
|
||||
<string name="folder">Folder</string>
|
||||
<string name="create_folder">Create folder</string>
|
||||
<string name="custom_tabs_indication">Use your favourite browser inside the application. By disabling, links will be opened externally</string>
|
||||
|
||||
<plurals name="number_of_vote">
|
||||
<item quantity="one">%d vote</item>
|
||||
|
|
Loading…
Reference in New Issue