Manage menu + intents #278
This commit is contained in:
parent
fa3f874826
commit
37fa2ec042
|
@ -1168,30 +1168,7 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
} else {
|
||||
navigationView.getMenu().findItem(R.id.nav_follow_request).setVisible(false);
|
||||
}
|
||||
MenuItem news = navigationView.getMenu().findItem(R.id.nav_news);
|
||||
if( news != null){
|
||||
boolean display_news = sharedpreferences.getBoolean(Helper.SET_DISPLAY_NEWS_FROM_FEDILAB, true);
|
||||
if( ! display_news ){
|
||||
news.setVisible(false);
|
||||
}
|
||||
}
|
||||
if (account.isLocked()) {
|
||||
navigationView.getMenu().findItem(R.id.nav_follow_request).setVisible(true);
|
||||
} else {
|
||||
navigationView.getMenu().findItem(R.id.nav_follow_request).setVisible(false);
|
||||
}
|
||||
|
||||
//Check instance release for lists
|
||||
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userId + instance, null);
|
||||
if (instanceVersion != null) {
|
||||
Version currentVersion = new Version(instanceVersion);
|
||||
Version minVersion = new Version("2.1");
|
||||
if (currentVersion.compareTo(minVersion) == 1 || currentVersion.equals(minVersion)) {
|
||||
navigationView.getMenu().findItem(R.id.nav_list).setVisible(true);
|
||||
} else {
|
||||
navigationView.getMenu().findItem(R.id.nav_list).setVisible(false);
|
||||
}
|
||||
}
|
||||
if (!BuildConfig.DONATIONS) {
|
||||
MenuItem openCollectiveItem = navigationView.getMenu().findItem(R.id.nav_opencollective);
|
||||
if( openCollectiveItem != null){
|
||||
|
|
|
@ -91,7 +91,9 @@ public class HideItemActivity extends BaseActivity {
|
|||
|
||||
SQLiteDatabase db = Sqlite.getInstance(HideItemActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||
MainMenuItem mainMenu = new MainMenuDAO(getApplicationContext(), db).getMainMenu();
|
||||
|
||||
if( mainMenu == null){
|
||||
mainMenu = new MainMenuItem();
|
||||
}
|
||||
CheckBox nav_news = findViewById(R.id.nav_news);
|
||||
CheckBox nav_list = findViewById(R.id.nav_list);
|
||||
CheckBox nav_scheduled = findViewById(R.id.nav_scheduled);
|
||||
|
@ -100,13 +102,13 @@ public class HideItemActivity extends BaseActivity {
|
|||
CheckBox nav_peertube = findViewById(R.id.nav_peertube);
|
||||
CheckBox nav_filters = findViewById(R.id.nav_filters);
|
||||
CheckBox nav_who_to_follow = findViewById(R.id.nav_who_to_follow);
|
||||
CheckBox nav_administration = findViewById(R.id.nav_administration);
|
||||
CheckBox nav_blocked = findViewById(R.id.nav_blocked);
|
||||
CheckBox nav_muted = findViewById(R.id.nav_muted);
|
||||
CheckBox nav_blocked_domains = findViewById(R.id.nav_blocked_domains);
|
||||
CheckBox nav_how_to = findViewById(R.id.nav_how_to);
|
||||
Button validate = findViewById(R.id.validate);
|
||||
|
||||
|
||||
nav_news.setChecked(mainMenu.isNav_news());
|
||||
nav_list.setChecked(mainMenu.isNav_list());
|
||||
nav_scheduled.setChecked(mainMenu.isNav_scheduled());
|
||||
|
@ -115,7 +117,6 @@ public class HideItemActivity extends BaseActivity {
|
|||
nav_peertube.setChecked(mainMenu.isNav_peertube());
|
||||
nav_filters.setChecked(mainMenu.isNav_filters());
|
||||
nav_who_to_follow.setChecked(mainMenu.isNav_how_to_follow());
|
||||
nav_administration.setChecked(mainMenu.isNav_administration());
|
||||
nav_blocked.setChecked(mainMenu.isNav_blocked());
|
||||
nav_muted.setChecked(mainMenu.isNav_muted());
|
||||
nav_blocked_domains.setChecked(mainMenu.isNav_blocked_domains());
|
||||
|
@ -124,20 +125,20 @@ public class HideItemActivity extends BaseActivity {
|
|||
|
||||
validate.setOnClickListener(view -> {
|
||||
MainMenuItem mainMenuItem = new MainMenuItem();
|
||||
nav_news.setChecked(nav_news.isChecked());
|
||||
nav_list.setChecked(nav_list.isChecked());
|
||||
nav_scheduled.setChecked(nav_scheduled.isChecked());
|
||||
nav_archive.setChecked(nav_archive.isChecked());
|
||||
nav_archive_notifications.setChecked(nav_archive_notifications.isChecked());
|
||||
nav_peertube.setChecked(nav_peertube.isChecked());
|
||||
nav_filters.setChecked(nav_filters.isChecked());
|
||||
nav_who_to_follow.setChecked(nav_who_to_follow.isChecked());
|
||||
nav_administration.setChecked(nav_administration.isChecked());
|
||||
nav_blocked.setChecked(nav_blocked.isChecked());
|
||||
nav_muted.setChecked(nav_muted.isChecked());
|
||||
nav_blocked_domains.setChecked(nav_blocked_domains.isChecked());
|
||||
nav_how_to.setChecked(nav_how_to.isChecked());
|
||||
mainMenuItem.setNav_news(nav_news.isChecked());
|
||||
mainMenuItem.setNav_list(nav_list.isChecked());
|
||||
mainMenuItem.setNav_scheduled(nav_scheduled.isChecked());
|
||||
mainMenuItem.setNav_archive(nav_archive.isChecked());
|
||||
mainMenuItem.setNav_archive_notifications(nav_archive_notifications.isChecked());
|
||||
mainMenuItem.setNav_peertube(nav_peertube.isChecked());
|
||||
mainMenuItem.setNav_filters(nav_filters.isChecked());
|
||||
mainMenuItem.setNav_how_to_follow(nav_who_to_follow.isChecked());
|
||||
mainMenuItem.setNav_blocked(nav_blocked.isChecked());
|
||||
mainMenuItem.setNav_muted(nav_muted.isChecked());
|
||||
mainMenuItem.setNav_blocked_domains(nav_blocked_domains.isChecked());
|
||||
mainMenuItem.setNav_howto(nav_how_to.isChecked());
|
||||
MainMenuItem mainMenuItem1 = new MainMenuDAO(getApplicationContext(), db).getMainMenu();
|
||||
|
||||
if( mainMenuItem1 != null){
|
||||
new MainMenuDAO(getApplicationContext(), db).updateMenu(mainMenuItem);
|
||||
}else{
|
||||
|
|
|
@ -184,7 +184,7 @@ public class SettingsActivity extends BaseActivity implements ViewAnimator.ViewA
|
|||
SlideMenuItem menuItemEdit = new SlideMenuItem(ContentSettingsFragment.type.COMPOSE, R.drawable.ic_edit_black_menu);
|
||||
SlideMenuItem menuItemBattery = new SlideMenuItem(ContentSettingsFragment.type.BATTERY, R.drawable.ic_battery_alert_menu);
|
||||
SlideMenuItem menuLanguage = new SlideMenuItem(ContentSettingsFragment.type.LANGUAGE, R.drawable.ic_translate_menu);
|
||||
|
||||
SlideMenuItem menuMenu = new SlideMenuItem(ContentSettingsFragment.type.MENU, R.drawable.ic_menu_menu);
|
||||
list.add(menuItemClose);
|
||||
list.add(menuItemTimeline);
|
||||
list.add(menuItemNotification);
|
||||
|
@ -192,6 +192,7 @@ public class SettingsActivity extends BaseActivity implements ViewAnimator.ViewA
|
|||
list.add(menuItemBattery);
|
||||
list.add(menuItemEdit);
|
||||
if( MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA){
|
||||
list.add(menuMenu);
|
||||
list.add(menuItemAdmin);
|
||||
}
|
||||
list.add(menuLanguage);
|
||||
|
@ -238,6 +239,10 @@ public class SettingsActivity extends BaseActivity implements ViewAnimator.ViewA
|
|||
Intent intent = new Intent(getApplicationContext(), LanguageActivity.class);
|
||||
startActivity(intent);
|
||||
type = previous;
|
||||
}else if( type == ContentSettingsFragment.type.MENU){
|
||||
Intent intent = new Intent(getApplicationContext(), HideItemActivity.class);
|
||||
startActivity(intent);
|
||||
type = previous;
|
||||
}
|
||||
View view = findViewById(R.id.content_frame);
|
||||
int finalRadius = Math.max(view.getWidth(), view.getHeight());
|
||||
|
|
|
@ -761,30 +761,6 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
set_display_timeline_in_list_text.setOnClickListener(v -> set_display_timeline_in_list.performClick());
|
||||
|
||||
|
||||
boolean display_news = sharedpreferences.getBoolean(Helper.SET_DISPLAY_NEWS_FROM_FEDILAB, true);
|
||||
final CheckBox set_display_news = rootView.findViewById(R.id.set_display_news);
|
||||
set_display_news.setChecked(display_news);
|
||||
|
||||
set_display_news.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(Helper.SET_DISPLAY_NEWS_FROM_FEDILAB, set_display_news.isChecked());
|
||||
editor.apply();
|
||||
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);
|
||||
}
|
||||
});
|
||||
final LinearLayout set_display_news_text = rootView.findViewById(R.id.set_display_news_text);
|
||||
set_display_news_text.setOnClickListener(v -> set_display_news.performClick());
|
||||
|
||||
|
||||
boolean send_crash_reports = sharedpreferences.getBoolean(Helper.SET_SEND_CRASH_REPORTS, false);
|
||||
final CheckBox set_enable_crash_report = rootView.findViewById(R.id.set_enable_crash_report);
|
||||
|
|
|
@ -361,7 +361,6 @@ public class Helper {
|
|||
public static final String SET_NOTIFICATION_ACTION = "set_notification_action";
|
||||
public static final String SET_DISPLAY_CONTENT_AFTER_FM = "set_display_content_after_fm";
|
||||
public static final String SET_FEATURED_TAGS ="set_featured_tags";
|
||||
public static final String SET_DISPLAY_NEWS_FROM_FEDILAB ="set_display_news_from_fedilab";
|
||||
public static final String SET_SEND_CRASH_REPORTS ="set_send_crash_reports";
|
||||
public static final String SET_FEATURED_TAG_ACTION ="set_featured_tag_action";
|
||||
public static final String SET_HIDE_DELETE_BUTTON_ON_TAB = "set_hide_delete_notification_on_tab";
|
||||
|
@ -1563,44 +1562,47 @@ public class Helper {
|
|||
}else{
|
||||
SQLiteDatabase db = Sqlite.getInstance(activity, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||
MainMenuItem mainMenuItem = new MainMenuDAO(activity, db).getMainMenu();
|
||||
if (mainMenuItem == null){
|
||||
mainMenuItem = new MainMenuItem();
|
||||
}
|
||||
if( !mainMenuItem.isNav_list()){
|
||||
menu.getItem(R.id.nav_list).setVisible(false);
|
||||
menu.findItem(R.id.nav_list).setVisible(false);
|
||||
}
|
||||
if( !mainMenuItem.isNav_administration()){
|
||||
menu.getItem(R.id.nav_administration).setVisible(false);
|
||||
menu.findItem(R.id.nav_administration).setVisible(false);
|
||||
}
|
||||
if( !mainMenuItem.isNav_archive()){
|
||||
menu.getItem(R.id.nav_archive).setVisible(false);
|
||||
menu.findItem(R.id.nav_archive).setVisible(false);
|
||||
}
|
||||
if( !mainMenuItem.isNav_archive_notifications()){
|
||||
menu.getItem(R.id.nav_archive_notifications).setVisible(false);
|
||||
menu.findItem(R.id.nav_archive_notifications).setVisible(false);
|
||||
}
|
||||
if( !mainMenuItem.isNav_blocked()){
|
||||
menu.getItem(R.id.nav_blocked).setVisible(false);
|
||||
menu.findItem(R.id.nav_blocked).setVisible(false);
|
||||
}
|
||||
if( !mainMenuItem.isNav_blocked_domains()){
|
||||
menu.getItem(R.id.nav_blocked_domains).setVisible(false);
|
||||
menu.findItem(R.id.nav_blocked_domains).setVisible(false);
|
||||
}
|
||||
if( !mainMenuItem.isNav_filters()){
|
||||
menu.getItem(R.id.nav_filters).setVisible(false);
|
||||
menu.findItem(R.id.nav_filters).setVisible(false);
|
||||
}
|
||||
if( !mainMenuItem.isNav_how_to_follow()){
|
||||
menu.getItem(R.id.nav_who_to_follow).setVisible(false);
|
||||
menu.findItem(R.id.nav_who_to_follow).setVisible(false);
|
||||
}
|
||||
if( !mainMenuItem.isNav_howto()){
|
||||
menu.getItem(R.id.nav_how_to).setVisible(false);
|
||||
menu.findItem(R.id.nav_how_to).setVisible(false);
|
||||
}
|
||||
if( !mainMenuItem.isNav_muted()){
|
||||
menu.getItem(R.id.nav_muted).setVisible(false);
|
||||
menu.findItem(R.id.nav_muted).setVisible(false);
|
||||
}
|
||||
if( !mainMenuItem.isNav_news()){
|
||||
menu.getItem(R.id.nav_news).setVisible(false);
|
||||
menu.findItem(R.id.nav_news).setVisible(false);
|
||||
}
|
||||
if( !mainMenuItem.isNav_peertube()){
|
||||
menu.getItem(R.id.nav_peertube).setVisible(false);
|
||||
menu.findItem(R.id.nav_peertube).setVisible(false);
|
||||
}
|
||||
if( !mainMenuItem.isNav_scheduled()){
|
||||
menu.getItem(R.id.nav_scheduled).setVisible(false);
|
||||
menu.findItem(R.id.nav_scheduled).setVisible(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3047,37 +3049,12 @@ public class Helper {
|
|||
if( navigationView.getMenu().findItem(R.id.nav_follow_request) != null)
|
||||
navigationView.getMenu().findItem(R.id.nav_follow_request).setVisible(false);
|
||||
}
|
||||
MenuItem news = navigationView.getMenu().findItem(R.id.nav_news);
|
||||
if( news != null){
|
||||
boolean display_news = sharedpreferences.getBoolean(Helper.SET_DISPLAY_NEWS_FROM_FEDILAB, true);
|
||||
if( ! display_news ){
|
||||
news.setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
if( MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.MASTODON && MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA){
|
||||
MenuItem adminItem = navigationView.getMenu().findItem(R.id.nav_administration);
|
||||
if( adminItem != null){
|
||||
adminItem.setVisible(false);
|
||||
}
|
||||
}else{
|
||||
boolean display_admin_menu = sharedpreferences.getBoolean(Helper.SET_DISPLAY_ADMIN_MENU + userID + instance, false);
|
||||
if( !display_admin_menu){
|
||||
MenuItem adminItem = navigationView.getMenu().findItem(R.id.nav_administration);
|
||||
if( adminItem != null){
|
||||
adminItem.setVisible(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userID + instance, null);
|
||||
if (instanceVersion != null && navigationView.getMenu().findItem(R.id.nav_list) != null) {
|
||||
Version currentVersion = new Version(instanceVersion);
|
||||
Version minVersion = new Version("2.1");
|
||||
if (currentVersion.compareTo(minVersion) == 1 || currentVersion.equals(minVersion)) {
|
||||
navigationView.getMenu().findItem(R.id.nav_list).setVisible(true);
|
||||
} else {
|
||||
navigationView.getMenu().findItem(R.id.nav_list).setVisible(false);
|
||||
}
|
||||
}
|
||||
tableLayout.setVisibility(View.VISIBLE);
|
||||
|
|
|
@ -19,6 +19,7 @@ import android.content.Context;
|
|||
import android.content.SharedPreferences;
|
||||
import android.database.Cursor;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
|
||||
import app.fedilab.android.client.Entities.MainMenuItem;
|
||||
import app.fedilab.android.helper.Helper;
|
||||
|
||||
|
@ -82,7 +83,6 @@ public class MainMenuDAO {
|
|||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
||||
String instance = Helper.getLiveInstance(context);
|
||||
|
||||
ContentValues values = new ContentValues();
|
||||
values.put(Sqlite.COL_INSTANCE, instance);
|
||||
values.put(Sqlite.COL_USER_ID, userId);
|
||||
|
@ -146,6 +146,7 @@ public class MainMenuDAO {
|
|||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
|
||||
String instance = Helper.getLiveInstance(context);
|
||||
|
||||
values.put(Sqlite.COL_INSTANCE, instance);
|
||||
values.put(Sqlite.COL_USER_ID, userId);
|
||||
values.put(Sqlite.COL_NAV_NEWS, mainMenuItem.isNav_news()?1:0);
|
||||
|
@ -184,7 +185,7 @@ public class MainMenuDAO {
|
|||
Cursor c = db.query(Sqlite.TABLE_MAIN_MENU_ITEMS, null, Sqlite.COL_INSTANCE + " = '" + instance+ "' AND " + Sqlite.COL_USER_ID + " = '" + userId+ "'", null, null, null, null, "1");
|
||||
return cursorToMainMenu(c);
|
||||
} catch (Exception e) {
|
||||
return new MainMenuItem();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -200,7 +201,8 @@ public class MainMenuDAO {
|
|||
Cursor c = db.query(Sqlite.TABLE_MAIN_MENU_ITEMS, null, Sqlite.COL_INSTANCE + " = '" + instance+ "' AND " + Sqlite.COL_USER_ID + " = '" + userId+ "'", null, null, null, null, "1");
|
||||
return cursorToMainMenu(c);
|
||||
} catch (Exception e) {
|
||||
return new MainMenuItem();
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -209,17 +211,16 @@ public class MainMenuDAO {
|
|||
/***
|
||||
* Method to hydrate main menu items from database
|
||||
* @param c Cursor
|
||||
* @return List<RemoteInstance>
|
||||
* @return MainMenuItem
|
||||
*/
|
||||
private MainMenuItem cursorToMainMenu(Cursor c){
|
||||
//No element found
|
||||
MainMenuItem mainMenuItem = new MainMenuItem();
|
||||
if (c.getCount() == 0) {
|
||||
c.close();
|
||||
return mainMenuItem;
|
||||
return null;
|
||||
}
|
||||
c.moveToFirst();
|
||||
|
||||
mainMenuItem.setNav_administration(c.getInt(c.getColumnIndex(Sqlite.COL_NAV_ADMINISTRATION)) == 1);
|
||||
mainMenuItem.setNav_archive(c.getInt(c.getColumnIndex(Sqlite.COL_NAV_ARCHIVE)) == 1);
|
||||
mainMenuItem.setNav_archive_notifications(c.getInt(c.getColumnIndex(Sqlite.COL_NAV_ARCHIVE_NOTIFICATIONS)) == 1);
|
||||
|
@ -233,7 +234,6 @@ public class MainMenuDAO {
|
|||
mainMenuItem.setNav_news(c.getInt(c.getColumnIndex(Sqlite.COL_NAV_NEWS)) == 1);
|
||||
mainMenuItem.setNav_peertube(c.getInt(c.getColumnIndex(Sqlite.COL_NAV_PEERTUBE)) == 1);
|
||||
mainMenuItem.setNav_scheduled(c.getInt(c.getColumnIndex(Sqlite.COL_NAV_SCHEDULED)) == 1);
|
||||
|
||||
//Close the cursor
|
||||
c.close();
|
||||
return mainMenuItem;
|
||||
|
|
|
@ -338,6 +338,7 @@ public class Sqlite extends SQLiteOpenHelper {
|
|||
private static final String CREATE_TABLE_MAIN_MENU_ITEMS = "CREATE TABLE "
|
||||
+ TABLE_MAIN_MENU_ITEMS + "("
|
||||
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
|
||||
+ COL_USER_ID + " TEXT NOT NULL, "
|
||||
+ COL_INSTANCE + " TEXT NOT NULL, "
|
||||
+ COL_NAV_NEWS + " INTEGER DEFAULT 1, "
|
||||
+ COL_NAV_LIST + " INTEGER DEFAULT 1, "
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FF000000" android:pathData="M3,18h18v-2L3,16v2zM3,13h18v-2L3,11v2zM3,6v2h18L21,6L3,6z"/>
|
||||
</vector>
|
|
@ -106,11 +106,6 @@
|
|||
android:text="@string/how_to_follow"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/nav_administration"
|
||||
android:layout_width="wrap_content"
|
||||
android:text="@string/administration"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
|
|
Loading…
Reference in New Issue