Introduce menu

This commit is contained in:
tom79 2019-07-01 19:33:14 +02:00
parent 549bbe462f
commit 8a69e996de
10 changed files with 194 additions and 243 deletions

View File

@ -165,7 +165,20 @@ public class SettingsActivity extends BaseActivity implements ViewAnimator.ViewA
private void createMenuList() {
SlideMenuItem menuItem0 = new SlideMenuItem(ContentSettingsFragment.CLOSE, R.drawable.ic_close);
list.add(menuItem0);
SlideMenuItem menuItem1 = new SlideMenuItem(ContentSettingsFragment.TIMELINES, R.drawable.ic_timeline_menu_s);
list.add(menuItem1);
SlideMenuItem menuItem2 = new SlideMenuItem(ContentSettingsFragment.ADMIN, R.drawable.ic_security_admin_menu);
list.add(menuItem2);
SlideMenuItem menuItem3 = new SlideMenuItem(ContentSettingsFragment.NOTIFICATIONS, R.drawable.ic_notifications_menu);
list.add(menuItem3);
SlideMenuItem menuItem4 = new SlideMenuItem(ContentSettingsFragment.INTERFACE, R.drawable.ic_tablet_menu);
list.add(menuItem4);
SlideMenuItem menuItem5 = new SlideMenuItem(ContentSettingsFragment.COMPOSE, R.drawable.ic_edit_black_menu);
list.add(menuItem5);
SlideMenuItem menuItem6 = new SlideMenuItem(ContentSettingsFragment.HIDDEN, R.drawable.ic_visibility_off_menu);
list.add(menuItem6);
SlideMenuItem menuItem7 = new SlideMenuItem(ContentSettingsFragment.TODO, R.drawable.ic_all_inclusive_menu);
list.add(menuItem7);
}
@Override
@ -204,7 +217,7 @@ public class SettingsActivity extends BaseActivity implements ViewAnimator.ViewA
private ScreenShotable replaceFragment(ScreenShotable screenShotable, int topPosition) {
this.res = this.res == R.drawable.ic_timeline_menu_s ? R.drawable.ic_more_toot_content : R.drawable.ic_timeline_menu_s;
this.res = this.res == R.drawable.ic_timeline_menu_s ? R.drawable.ic_notifications_menu : R.drawable.ic_timeline_menu_s;
View view = findViewById(R.id.content_frame);
int finalRadius = Math.max(view.getWidth(), view.getHeight());
Animator animator = null;
@ -227,7 +240,8 @@ public class SettingsActivity extends BaseActivity implements ViewAnimator.ViewA
@Override
public ScreenShotable onSwitch(Resourceble slideMenuItem, ScreenShotable screenShotable, int position) {
if (ContentSettingsFragment.CLOSE.equals(slideMenuItem.getName())) {
return screenShotable;
finish();
return null;
}
return replaceFragment(screenShotable, position);
}

View File

@ -16,23 +16,30 @@ package app.fedilab.android.fragments;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
import app.fedilab.android.R;
import app.fedilab.android.activities.SettingsActivity;
import app.fedilab.android.activities.TagCacheActivity;
import app.fedilab.android.helper.Helper;
import yalantis.com.sidemenu.interfaces.ScreenShotable;
import static android.content.Context.MODE_PRIVATE;
public class ContentSettingsFragment extends Fragment implements ScreenShotable {
@ -42,6 +49,13 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
private Context context;
public static final String CLOSE = "Close";
public static final String TIMELINES = "Timelines";
public static final String ADMIN = "Admin";
public static final String NOTIFICATIONS = "Notifications";
public static final String INTERFACE = "Interface";
public static final String COMPOSE = "Compose";
public static final String HIDDEN = "Hidden";
public static final String TODO = "All";
public static ContentSettingsFragment newInstance(int resId) {
ContentSettingsFragment contentFragment = new ContentSettingsFragment();
@ -70,8 +84,49 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
public View onCreateView(@NotNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_settings_reveal, container, false);
FrameLayout containerFrame = rootView.findViewById(R.id.container);
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
switch (theme){
case Helper.THEME_LIGHT:
containerFrame.setBackgroundColor(ContextCompat.getColor(context, R.color.white));
break;
case Helper.THEME_DARK:
containerFrame.setBackgroundColor(ContextCompat.getColor(context, R.color.mastodonC1));
break;
case Helper.THEME_BLACK:
containerFrame.setBackgroundColor(ContextCompat.getColor(context, R.color.black));
break;
default:
containerFrame.setBackgroundColor(ContextCompat.getColor(context, R.color.mastodonC1));
}
LinearLayout settings_timeline = rootView.findViewById(R.id.settings_timeline);
LinearLayout settings_notifications = rootView.findViewById(R.id.settings_notifications);
LinearLayout settings_admin = rootView.findViewById(R.id.settings_admin);
LinearLayout settings_interface = rootView.findViewById(R.id.settings_interface);
LinearLayout settings_compose = rootView.findViewById(R.id.settings_compose);
LinearLayout settings_hidden = rootView.findViewById(R.id.settings_hidden);
LinearLayout settings_to_do = rootView.findViewById(R.id.settings_to_do);
if( res == R.drawable.ic_timeline_menu_s){
settings_timeline.setVisibility(View.VISIBLE);
}else if( res == R.drawable.ic_notifications_menu){
settings_notifications.setVisibility(View.VISIBLE);
}else if( res == R.drawable.ic_security_admin_menu){
settings_admin.setVisibility(View.VISIBLE);
}else if( res == R.drawable.ic_tablet_menu){
settings_interface.setVisibility(View.VISIBLE);
}else if( res == R.drawable.ic_edit_black_menu){
settings_compose.setVisibility(View.VISIBLE);
}else if( res == R.drawable.ic_visibility_off_menu){
settings_hidden.setVisibility(View.VISIBLE);
}else if( res == R.drawable.ic_all_inclusive_menu){
settings_to_do.setVisibility(View.VISIBLE);
}
else if( res == R.drawable.ic_close){
}

View File

@ -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="M18.6,6.62c-1.44,0 -2.8,0.56 -3.77,1.53L12,10.66 10.48,12h0.01L7.8,14.39c-0.64,0.64 -1.49,0.99 -2.4,0.99 -1.87,0 -3.39,-1.51 -3.39,-3.38S3.53,8.62 5.4,8.62c0.91,0 1.76,0.35 2.44,1.03l1.13,1 1.51,-1.34L9.22,8.2C8.2,7.18 6.84,6.62 5.4,6.62 2.42,6.62 0,9.04 0,12s2.42,5.38 5.4,5.38c1.44,0 2.8,-0.56 3.77,-1.53l2.83,-2.5 0.01,0.01L13.52,12h-0.01l2.69,-2.39c0.64,-0.64 1.49,-0.99 2.4,-0.99 1.87,0 3.39,1.51 3.39,3.38s-1.52,3.38 -3.39,3.38c-0.9,0 -1.76,-0.35 -2.44,-1.03l-1.14,-1.01 -1.51,1.34 1.27,1.12c1.02,1.01 2.37,1.57 3.82,1.57 2.98,0 5.4,-2.41 5.4,-5.38s-2.42,-5.37 -5.4,-5.37z"/>
</vector>

View File

@ -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,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/>
</vector>

View File

@ -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="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z"/>
</vector>

View File

@ -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="M12,1L3,5v6c0,5.55 3.84,10.74 9,12 5.16,-1.26 9,-6.45 9,-12L21,5l-9,-4zM12,11.99h7c-0.53,4.12 -3.28,7.79 -7,8.94L12,12L5,12L5,6.3l7,-3.11v8.8z"/>
</vector>

View File

@ -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="M18,0L6,0C4.34,0 3,1.34 3,3v18c0,1.66 1.34,3 3,3h12c1.66,0 3,-1.34 3,-3L21,3c0,-1.66 -1.34,-3 -3,-3zM14,22h-4v-1h4v1zM19.25,19L4.75,19L4.75,3h14.5v16z"/>
</vector>

View File

@ -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="M12,7c2.76,0 5,2.24 5,5 0,0.65 -0.13,1.26 -0.36,1.83l2.92,2.92c1.51,-1.26 2.7,-2.89 3.43,-4.75 -1.73,-4.39 -6,-7.5 -11,-7.5 -1.4,0 -2.74,0.25 -3.98,0.7l2.16,2.16C10.74,7.13 11.35,7 12,7zM2,4.27l2.28,2.28 0.46,0.46C3.08,8.3 1.78,10.02 1,12c1.73,4.39 6,7.5 11,7.5 1.55,0 3.03,-0.3 4.38,-0.84l0.42,0.42L19.73,22 21,20.73 3.27,3 2,4.27zM7.53,9.8l1.55,1.55c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.66 1.34,3 3,3 0.22,0 0.44,-0.03 0.65,-0.08l1.55,1.55c-0.67,0.33 -1.41,0.53 -2.2,0.53 -2.76,0 -5,-2.24 -5,-5 0,-0.79 0.2,-1.53 0.53,-2.2zM11.84,9.02l3.15,3.15 0.02,-0.16c0,-1.66 -1.34,-3 -3,-3l-0.17,0.01z"/>
</vector>

View File

@ -6,7 +6,7 @@
android:layout_height="match_parent">
<com.google.android.material.circularreveal.CircularRevealFrameLayout
android:id="@+id/conteiner_frame"
android:id="@+id/container_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout

View File

@ -32,71 +32,13 @@
android:orientation="vertical"
tools:ignore="UselessParent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/settings_category_label_confirmations"
android:textColor="?colorAccent"
android:textSize="16sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
</LinearLayout>
<CheckBox
android:id="@+id/set_share_validation"
android:layout_width="wrap_content"
android:layout_marginTop="@dimen/settings_checkbox_margin"
android:layout_marginBottom="@dimen/settings_checkbox_margin"
android:text="@string/set_share_validation"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/set_share_validation_fav"
android:layout_width="wrap_content"
android:layout_marginTop="@dimen/settings_checkbox_margin"
android:layout_marginBottom="@dimen/settings_checkbox_margin"
android:text="@string/set_share_validation_fav"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/settings_category_label_timelines"
android:textColor="?colorAccent"
android:textSize="16sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
</LinearLayout>
<!-- TIMELINES -->
<LinearLayout
android:id="@+id/settings_timeline"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:orientation="vertical">
<CheckBox
android:id="@+id/set_remember_position"
android:layout_width="wrap_content"
@ -153,83 +95,31 @@
android:text="@string/set_display_news_from_fedilab"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/set_share_validation"
android:layout_width="wrap_content"
android:layout_marginTop="@dimen/settings_checkbox_margin"
android:layout_marginBottom="@dimen/settings_checkbox_margin"
android:text="@string/set_share_validation"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/admin_container">
<CheckBox
android:id="@+id/set_share_validation_fav"
android:layout_width="wrap_content"
android:layout_marginTop="@dimen/settings_checkbox_margin"
android:layout_marginBottom="@dimen/settings_checkbox_margin"
android:text="@string/set_share_validation_fav"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/administration"
android:textColor="?colorAccent"
android:textSize="16sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
</LinearLayout>
</LinearLayout>
<CheckBox
android:id="@+id/set_display_admin_menu"
android:layout_width="wrap_content"
android:layout_marginTop="@dimen/settings_checkbox_margin"
android:layout_marginBottom="@dimen/settings_checkbox_margin"
android:text="@string/set_display_admin_menu"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/set_display_admin_statuses"
android:layout_width="wrap_content"
android:layout_marginTop="@dimen/settings_checkbox_margin"
android:layout_marginBottom="@dimen/settings_checkbox_margin"
android:text="@string/set_display_admin_toot"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/settings_category_label_notification"
android:textColor="?colorAccent"
android:textSize="16sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
</LinearLayout>
<!-- NOTIFICATIONS -->
<LinearLayout
android:id="@+id/settings_notifications"
android:layout_width="match_parent"
android:visibility="gone"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- LIVE NOTIFICATIONS SETTINGS -->
<CheckBox
@ -249,31 +139,39 @@
android:text="@string/set_keep_background_process"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/settings_category_label_interface"
android:textColor="?colorAccent"
android:textSize="16sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
</LinearLayout>
<!-- ADMIN -->
<LinearLayout
android:id="@+id/settings_admin"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<CheckBox
android:id="@+id/set_display_admin_menu"
android:layout_width="wrap_content"
android:layout_marginTop="@dimen/settings_checkbox_margin"
android:layout_marginBottom="@dimen/settings_checkbox_margin"
android:text="@string/set_display_admin_menu"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/set_display_admin_statuses"
android:layout_width="wrap_content"
android:layout_marginTop="@dimen/settings_checkbox_margin"
android:layout_marginBottom="@dimen/settings_checkbox_margin"
android:text="@string/set_display_admin_toot"
android:layout_height="wrap_content" />
</LinearLayout>
<!-- INTERFACE -->
<LinearLayout
android:id="@+id/settings_interface"
android:layout_width="match_parent"
android:visibility="gone"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- COMPACT MODE -->
<TextView
@ -390,30 +288,15 @@
android:text="@string/set_display_content_after_fetch_more"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/settings_category_label_composing"
android:textColor="?colorAccent"
android:textSize="16sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
</LinearLayout>
</LinearLayout>
<!-- COMPOSE -->
<LinearLayout
android:id="@+id/settings_compose"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<CheckBox
android:id="@+id/set_auto_add_media_url"
@ -525,31 +408,16 @@
android:text="@string/set_photo_editor"
android:layout_height="wrap_content" />
</LinearLayout>
<!-- HIDDEN -->
<LinearLayout
android:id="@+id/settings_hidden"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/settings_category_label_hiddencontent"
android:textColor="?colorAccent"
android:textSize="16sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
</LinearLayout>
<!-- EXPAND CW -->
<CheckBox
@ -568,33 +436,16 @@
android:layout_marginBottom="@dimen/settings_checkbox_margin"
android:text="@string/expand_image"
android:layout_height="wrap_content" />
</LinearLayout>
<!-- OPTIMIZATION SETTINGS -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/optimization"
android:textColor="?colorAccent"
android:textSize="16sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="?colorAccent" />
</LinearLayout>
<!-- TODO -->
<LinearLayout
android:id="@+id/settings_to_do"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
@ -945,7 +796,8 @@
</SeekBar>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
</ScrollView>
</FrameLayout>
</com.google.android.material.circularreveal.CircularRevealFrameLayout>