mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-11-10 12:47:26 +01:00
Save light, dark and amoled Material You themes to database. Add 'Apply Material You' option. Test MotionLayout.
This commit is contained in:
parent
992cf0dda1
commit
e3578c59dd
@ -46,7 +46,7 @@ dependencies {
|
||||
implementation 'androidx.biometric:biometric:1.2.0-alpha03'
|
||||
implementation 'androidx.browser:browser:1.3.0'
|
||||
implementation 'androidx.cardview:cardview:1.0.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.0-beta02'
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||
def lifecycleVersion = "2.2.0"
|
||||
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycleVersion"
|
||||
|
@ -32,6 +32,8 @@
|
||||
android:theme="@style/AppTheme"
|
||||
android:usesCleartextTraffic="true"
|
||||
tools:replace="android:label">
|
||||
<activity android:name=".activities.MotionTestActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar" />
|
||||
<activity
|
||||
android:name=".activities.LockScreenActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar" />
|
||||
@ -430,7 +432,6 @@
|
||||
android:name=".services.SubmitPostService"
|
||||
android:enabled="true"
|
||||
android:exported="false" />
|
||||
|
||||
<service
|
||||
android:name=".services.MaterialYouService"
|
||||
android:exported="false" />
|
||||
|
@ -0,0 +1,41 @@
|
||||
package ml.docilealligator.infinityforreddit.activities;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.constraintlayout.motion.widget.MotionLayout;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
|
||||
public class MotionTestActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_motion_test);
|
||||
|
||||
MotionLayout motionLayout = findViewById(R.id.motion_layout);
|
||||
motionLayout.addTransitionListener(new MotionLayout.TransitionListener() {
|
||||
@Override
|
||||
public void onTransitionStarted(MotionLayout motionLayout, int i, int i1) {
|
||||
Log.i("asdfasdf", "start " + (i == R.id.start) + " " + (i1 == R.id.end));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransitionChange(MotionLayout motionLayout, int i, int i1, float v) {
|
||||
Log.i("asdfasdf", "start " + (i == R.id.start) + " " + (i1 == R.id.end) + " " + v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransitionCompleted(MotionLayout motionLayout, int i) {
|
||||
Log.i("asdfasdf", "complete " + (i == R.id.start));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransitionTrigger(MotionLayout motionLayout, int i, boolean b, float v) {
|
||||
Log.i("asdfasdf", "trigger " + (i == R.id.start) + " " + v + " " + b);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@ -3,13 +3,24 @@ package ml.docilealligator.infinityforreddit.broadcastreceivers;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.services.MaterialYouService;
|
||||
import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
|
||||
|
||||
public class WallpaperChangeReceiver extends BroadcastReceiver {
|
||||
@Inject
|
||||
@Named("default")
|
||||
SharedPreferences mSharedPreferences;
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
Intent materialYouIntent = new Intent(context, MaterialYouService.class);
|
||||
context.startService(materialYouIntent);
|
||||
if (mSharedPreferences.getBoolean(SharedPreferencesUtils.ENABLE_MATERIAL_YOU, false)) {
|
||||
Intent materialYouIntent = new Intent(context, MaterialYouService.class);
|
||||
context.startService(materialYouIntent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,39 @@
|
||||
package ml.docilealligator.infinityforreddit.customviews;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.ViewConfiguration;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.constraintlayout.motion.widget.MotionLayout;
|
||||
|
||||
public class ClickableMotionLayout extends MotionLayout {
|
||||
private long mStartTime = 0;
|
||||
|
||||
public ClickableMotionLayout(@NonNull Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public ClickableMotionLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public ClickableMotionLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onInterceptTouchEvent(MotionEvent event) {
|
||||
if ( event.getAction() == MotionEvent.ACTION_DOWN ) {
|
||||
mStartTime = event.getEventTime();
|
||||
} else if ( event.getAction() == MotionEvent.ACTION_UP ) {
|
||||
if ( event.getEventTime() - mStartTime <= ViewConfiguration.getTapTimeout() ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return super.onInterceptTouchEvent(event);
|
||||
}
|
||||
}
|
@ -40,7 +40,8 @@ public class MaterialYouService extends IntentService {
|
||||
@Override
|
||||
protected void onHandleIntent(Intent intent) {
|
||||
((Infinity) getApplication()).getAppComponent().inject(this);
|
||||
MaterialYouUtils.changeTheme(this, executor, new Handler(), customThemeWrapper,
|
||||
lightThemeSharedPreferences, darkThemeSharedPreferences, amoledThemeSharedPreferences);
|
||||
MaterialYouUtils.changeTheme(this, executor, new Handler(), redditDataRoomDatabase,
|
||||
customThemeWrapper, lightThemeSharedPreferences, darkThemeSharedPreferences,
|
||||
amoledThemeSharedPreferences);
|
||||
}
|
||||
}
|
@ -50,6 +50,9 @@ public class ThemePreferenceFragment extends PreferenceFragmentCompat {
|
||||
|
||||
private AppCompatActivity activity;
|
||||
@Inject
|
||||
@Named("default")
|
||||
SharedPreferences sharedPreferences;
|
||||
@Inject
|
||||
@Named("light_theme")
|
||||
SharedPreferences lightThemeSharedPreferences;
|
||||
@Inject
|
||||
@ -79,6 +82,7 @@ public class ThemePreferenceFragment extends PreferenceFragmentCompat {
|
||||
Preference customizeAmoledThemePreference = findPreference(SharedPreferencesUtils.CUSTOMIZE_AMOLED_THEME);
|
||||
Preference selectAndCustomizeThemePreference = findPreference(SharedPreferencesUtils.MANAGE_THEMES);
|
||||
SwitchPreference enableMaterialYouSwitchPreference = findPreference(SharedPreferencesUtils.ENABLE_MATERIAL_YOU);
|
||||
Preference applyMaterialYouPreference = findPreference(SharedPreferencesUtils.APPLY_MATERIAL_YOU);
|
||||
|
||||
boolean systemDefault = Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q;
|
||||
if (themePreference != null && amoledDarkSwitch != null) {
|
||||
@ -169,15 +173,33 @@ public class ThemePreferenceFragment extends PreferenceFragmentCompat {
|
||||
});
|
||||
}
|
||||
|
||||
if (enableMaterialYouSwitchPreference != null) {
|
||||
Handler handler = new Handler();
|
||||
if (enableMaterialYouSwitchPreference != null && applyMaterialYouPreference != null) {
|
||||
applyMaterialYouPreference.setVisible(
|
||||
sharedPreferences.getBoolean(SharedPreferencesUtils.ENABLE_MATERIAL_YOU, false));
|
||||
|
||||
enableMaterialYouSwitchPreference.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
if (true) {
|
||||
MaterialYouUtils.changeTheme(activity, executor, new Handler(), customThemeWrapper,
|
||||
lightThemeSharedPreferences, darkThemeSharedPreferences, amoledThemeSharedPreferences);
|
||||
if ((Boolean) newValue) {
|
||||
MaterialYouUtils.changeTheme(activity, executor, new Handler(),
|
||||
redditDataRoomDatabase, customThemeWrapper,
|
||||
lightThemeSharedPreferences, darkThemeSharedPreferences,
|
||||
amoledThemeSharedPreferences);
|
||||
applyMaterialYouPreference.setVisible(true);
|
||||
} else {
|
||||
applyMaterialYouPreference.setVisible(false);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
applyMaterialYouPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
MaterialYouUtils.changeTheme(activity, executor, new Handler(),
|
||||
redditDataRoomDatabase, customThemeWrapper,
|
||||
lightThemeSharedPreferences, darkThemeSharedPreferences,
|
||||
amoledThemeSharedPreferences);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
customThemeViewModel = new ViewModelProvider(this,
|
||||
|
@ -14,11 +14,33 @@ import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
import ml.docilealligator.infinityforreddit.customtheme.CustomTheme;
|
||||
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
|
||||
import ml.docilealligator.infinityforreddit.events.RecreateActivityEvent;
|
||||
|
||||
public class MaterialYouUtils {
|
||||
public interface CheckThemeNameListener {
|
||||
void themeNotExists();
|
||||
void themeExists();
|
||||
}
|
||||
|
||||
public static void checkThemeName(Executor executor, Handler handler,
|
||||
RedditDataRoomDatabase redditDataRoomDatabase,
|
||||
CheckThemeNameListener checkThemeNameListener) {
|
||||
executor.execute(() -> {
|
||||
if (redditDataRoomDatabase.customThemeDao().getCustomTheme("Material You") != null
|
||||
|| redditDataRoomDatabase.customThemeDao().getCustomTheme("Material You Dark") != null
|
||||
|| redditDataRoomDatabase.customThemeDao().getCustomTheme("Material You Amoled") != null) {
|
||||
handler.post(checkThemeNameListener::themeExists);
|
||||
} else {
|
||||
handler.post(checkThemeNameListener::themeNotExists);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void changeTheme(Context context, Executor executor, Handler handler,
|
||||
RedditDataRoomDatabase redditDataRoomDatabase,
|
||||
CustomThemeWrapper customThemeWrapper,
|
||||
SharedPreferences lightThemeSharedPreferences,
|
||||
SharedPreferences darkThemeSharedPreferences,
|
||||
@ -29,6 +51,10 @@ public class MaterialYouUtils {
|
||||
WallpaperColors wallpaperColors = wallpaperManager.getWallpaperColors(WallpaperManager.FLAG_SYSTEM);
|
||||
|
||||
if (wallpaperColors != null) {
|
||||
CustomTheme lightTheme = CustomThemeWrapper.getIndigo(context);
|
||||
CustomTheme darkTheme = CustomThemeWrapper.getIndigoDark(context);
|
||||
CustomTheme amoledTheme = CustomThemeWrapper.getIndigoAmoled(context);
|
||||
|
||||
int colorPrimaryInt = shiftColorTo255(wallpaperColors.getPrimaryColor().toArgb(), 0.4);
|
||||
int colorPrimaryDarkInt = shiftColorTo0(colorPrimaryInt, 0.3);
|
||||
int backgroundColor = shiftColorTo255(colorPrimaryInt, 0.6);
|
||||
@ -39,39 +65,51 @@ public class MaterialYouUtils {
|
||||
int colorPrimaryAppropriateTextColor = getAppropriateTextColor(colorPrimaryInt);
|
||||
int backgroundColorAppropriateTextColor = getAppropriateTextColor(backgroundColor);
|
||||
|
||||
lightThemeSharedPreferences.edit().putInt(CustomThemeSharedPreferencesUtils.COLOR_PRIMARY, colorPrimaryInt)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.COLOR_PRIMARY_DARK, colorPrimaryDarkInt)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.COLOR_ACCENT, colorAccentInt)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.COLOR_PRIMARY_LIGHT_THEME, colorPrimaryInt)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.BACKGROUND_COLOR, backgroundColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.CARD_VIEW_BACKGROUND_COLOR, cardViewBackgroundColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.COMMENT_BACKGROUND_COLOR, cardViewBackgroundColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.AWARDED_COMMENT_BACKGROUND_COLOR, cardViewBackgroundColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.BOTTOM_APP_BAR_BACKGROUND_COLOR, colorPrimaryInt)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.NAV_BAR_COLOR, colorPrimaryInt)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.PRIMARY_TEXT_COLOR, backgroundColorAppropriateTextColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.BOTTOM_APP_BAR_ICON_COLOR, colorPrimaryAppropriateTextColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.PRIMARY_ICON_COLOR, backgroundColorAppropriateTextColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.FAB_ICON_COLOR, colorPrimaryAppropriateTextColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.TOOLBAR_PRIMARY_TEXT_AND_ICON_COLOR, colorPrimaryAppropriateTextColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.TOOLBAR_SECONDARY_TEXT_COLOR, colorPrimaryAppropriateTextColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.TAB_LAYOUT_WITH_COLLAPSED_COLLAPSING_TOOLBAR_TAB_INDICATOR, colorPrimaryAppropriateTextColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.TAB_LAYOUT_WITH_COLLAPSED_COLLAPSING_TOOLBAR_TEXT_COLOR, colorPrimaryAppropriateTextColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.TAB_LAYOUT_WITH_COLLAPSED_COLLAPSING_TOOLBAR_TAB_BACKGROUND, colorPrimaryInt)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.TAB_LAYOUT_WITH_EXPANDED_COLLAPSING_TOOLBAR_TAB_BACKGROUND, colorPrimaryInt)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.TAB_LAYOUT_WITH_EXPANDED_COLLAPSING_TOOLBAR_TAB_INDICATOR, colorPrimaryAppropriateTextColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.TAB_LAYOUT_WITH_EXPANDED_COLLAPSING_TOOLBAR_TEXT_COLOR, colorPrimaryAppropriateTextColor)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.CIRCULAR_PROGRESS_BAR_BACKGROUND, colorPrimaryInt)
|
||||
.putBoolean(CustomThemeSharedPreferencesUtils.LIGHT_STATUS_BAR, getAppropriateTextColor(colorPrimaryInt) == Color.toArgb(Color.BLACK))
|
||||
.apply();
|
||||
darkThemeSharedPreferences.edit()
|
||||
.putInt(CustomThemeSharedPreferencesUtils.COLOR_ACCENT, colorPrimaryInt)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.COLOR_PRIMARY_LIGHT_THEME, colorPrimaryInt)
|
||||
.apply();
|
||||
amoledThemeSharedPreferences.edit()
|
||||
.putInt(CustomThemeSharedPreferencesUtils.COLOR_ACCENT, colorPrimaryInt)
|
||||
.putInt(CustomThemeSharedPreferencesUtils.COLOR_PRIMARY_LIGHT_THEME, colorPrimaryInt)
|
||||
.apply();
|
||||
lightTheme.colorPrimary = colorPrimaryInt;
|
||||
lightTheme.colorPrimaryDark = colorPrimaryDarkInt;
|
||||
lightTheme.colorAccent = colorAccentInt;
|
||||
lightTheme.colorPrimaryLightTheme = colorPrimaryInt;
|
||||
lightTheme.backgroundColor = backgroundColor;
|
||||
lightTheme.cardViewBackgroundColor = cardViewBackgroundColor;
|
||||
lightTheme.commentBackgroundColor = cardViewBackgroundColor;
|
||||
lightTheme.awardedCommentBackgroundColor = cardViewBackgroundColor;
|
||||
lightTheme.bottomAppBarBackgroundColor = colorPrimaryInt;
|
||||
lightTheme.navBarColor = colorPrimaryInt;
|
||||
lightTheme.primaryTextColor = backgroundColorAppropriateTextColor;
|
||||
lightTheme.bottomAppBarIconColor = colorPrimaryAppropriateTextColor;
|
||||
lightTheme.primaryIconColor = backgroundColorAppropriateTextColor;
|
||||
lightTheme.fabIconColor = colorPrimaryAppropriateTextColor;
|
||||
lightTheme.toolbarPrimaryTextAndIconColor = colorPrimaryAppropriateTextColor;
|
||||
lightTheme.toolbarSecondaryTextColor = colorPrimaryAppropriateTextColor;
|
||||
lightTheme.tabLayoutWithCollapsedCollapsingToolbarTabIndicator = colorPrimaryAppropriateTextColor;
|
||||
lightTheme.tabLayoutWithCollapsedCollapsingToolbarTextColor = colorPrimaryAppropriateTextColor;
|
||||
lightTheme.tabLayoutWithCollapsedCollapsingToolbarTabBackground = colorPrimaryInt;
|
||||
lightTheme.tabLayoutWithExpandedCollapsingToolbarTabBackground = colorPrimaryInt;
|
||||
lightTheme.tabLayoutWithExpandedCollapsingToolbarTabIndicator = colorPrimaryAppropriateTextColor;
|
||||
lightTheme.tabLayoutWithExpandedCollapsingToolbarTextColor = colorPrimaryAppropriateTextColor;
|
||||
lightTheme.circularProgressBarBackground = colorPrimaryInt;
|
||||
lightTheme.isLightStatusBar = getAppropriateTextColor(colorPrimaryInt) == Color.toArgb(Color.BLACK);
|
||||
lightTheme.name = "Material You";
|
||||
|
||||
darkTheme.colorAccent = colorPrimaryInt;
|
||||
darkTheme.colorPrimaryLightTheme = colorPrimaryInt;
|
||||
darkTheme.name = "Material You Dark";
|
||||
|
||||
amoledTheme.colorAccent = colorPrimaryInt;
|
||||
amoledTheme.colorPrimaryLightTheme = colorPrimaryInt;
|
||||
amoledTheme.name = "Material You Amoled";
|
||||
|
||||
redditDataRoomDatabase.customThemeDao().unsetLightTheme();
|
||||
redditDataRoomDatabase.customThemeDao().unsetDarkTheme();
|
||||
redditDataRoomDatabase.customThemeDao().unsetAmoledTheme();
|
||||
|
||||
redditDataRoomDatabase.customThemeDao().insert(lightTheme);
|
||||
redditDataRoomDatabase.customThemeDao().insert(darkTheme);
|
||||
redditDataRoomDatabase.customThemeDao().insert(amoledTheme);
|
||||
|
||||
CustomThemeSharedPreferencesUtils.insertThemeToSharedPreferences(lightTheme, lightThemeSharedPreferences);
|
||||
CustomThemeSharedPreferencesUtils.insertThemeToSharedPreferences(darkTheme, darkThemeSharedPreferences);
|
||||
CustomThemeSharedPreferencesUtils.insertThemeToSharedPreferences(amoledTheme, amoledThemeSharedPreferences);
|
||||
|
||||
handler.post(() -> EventBus.getDefault().post(new RecreateActivityEvent()));
|
||||
}
|
||||
|
@ -181,6 +181,7 @@ public class SharedPreferencesUtils {
|
||||
public static final String DISABLE_NSFW_FOREVER = "disable_nsfw_forever";
|
||||
public static final String SHOW_ONLY_ONE_COMMENT_LEVEL_INDICATOR = "show_only_one_comment_level_indicator";
|
||||
public static final String ENABLE_MATERIAL_YOU = "enable_material_you";
|
||||
public static final String APPLY_MATERIAL_YOU = "apply_material_you";
|
||||
|
||||
public static final String DEFAULT_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit_preferences";
|
||||
public static final String MAIN_PAGE_TABS_SHARED_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit.main_page_tabs";
|
||||
|
17
app/src/main/res/layout/activity_motion_test.xml
Normal file
17
app/src/main/res/layout/activity_motion_test.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ml.docilealligator.infinityforreddit.customviews.ClickableMotionLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/motion_layout"
|
||||
tools:context=".activities.MotionTestActivity"
|
||||
app:layoutDescription="@xml/activity_motion_test_scene">
|
||||
|
||||
<View
|
||||
android:id="@+id/button"
|
||||
android:background="@color/colorAccent"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp" />
|
||||
|
||||
</ml.docilealligator.infinityforreddit.customviews.ClickableMotionLayout>
|
@ -458,8 +458,11 @@
|
||||
<string name="settings_customize_amoled_theme_title">Amoled Theme</string>
|
||||
<string name="settings_manage_themes_title">Manage Themes</string>
|
||||
<string name="settings_category_material_you_title">Material You</string>
|
||||
<string name="settings_enable_material_you_warning_summary">Make sure you don\'t have themes named\n\"Material You\",\n\"Material You Dark\" or\n\"Material You Amoled\".\nOtherwise, rename them before enabling Material You.</string>
|
||||
<string name="settings_enable_material_you_title">Enable Material You</string>
|
||||
<string name="settings_enable_material_you_summary">Personalize Infinity based on Your Wallpaper</string>
|
||||
<string name="settings_apply_material_you_title">Apply Material You</string>
|
||||
<string name="settings_apply_material_you_summary">In case Infinity did not change the theme</string>
|
||||
<string name="settings_custom_theme_cannot_apply_to_settings_page_summary">Custom themes cannot be applied to settings page (except toolbar, status bar and navigation bar).</string>
|
||||
<string name="settings_advanced_master_title">Advanced</string>
|
||||
<string name="settings_delete_all_subreddits_data_in_database_title">Delete All Subreddits in Database</string>
|
||||
|
45
app/src/main/res/xml/activity_motion_test_scene.xml
Normal file
45
app/src/main/res/xml/activity_motion_test_scene.xml
Normal file
@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:motion="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<Transition
|
||||
android:id="@+id/transition_to_end"
|
||||
motion:constraintSetStart="@+id/start"
|
||||
motion:constraintSetEnd="@+id/end"
|
||||
motion:autoTransition="animateToStart"
|
||||
motion:duration="100">
|
||||
<OnSwipe
|
||||
motion:touchAnchorId="@+id/button"
|
||||
motion:touchAnchorSide="right"
|
||||
motion:onTouchUp="autoCompleteToEnd"
|
||||
motion:dragDirection="dragRight" />
|
||||
</Transition>
|
||||
|
||||
<Transition
|
||||
android:id="@+id/transition_to_start"
|
||||
motion:constraintSetStart="@+id/end"
|
||||
motion:constraintSetEnd="@+id/start"
|
||||
motion:autoTransition="animateToEnd">
|
||||
</Transition>
|
||||
|
||||
<ConstraintSet android:id="@+id/start">
|
||||
<Constraint
|
||||
android:id="@+id/button"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
motion:layout_constraintBottom_toBottomOf="parent"
|
||||
motion:layout_constraintStart_toStartOf="parent"
|
||||
motion:layout_constraintTop_toTopOf="parent" />
|
||||
</ConstraintSet>
|
||||
|
||||
<ConstraintSet android:id="@+id/end">
|
||||
<Constraint
|
||||
android:id="@+id/button"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
motion:layout_constraintBottom_toBottomOf="parent"
|
||||
motion:layout_constraintStart_toEndOf="parent"
|
||||
motion:layout_constraintTop_toTopOf="parent"/>
|
||||
</ConstraintSet>
|
||||
|
||||
</MotionScene>
|
26
app/src/main/res/xml/item_post_with_preview_scene.xml
Normal file
26
app/src/main/res/xml/item_post_with_preview_scene.xml
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ConstraintSet android:id="@+id/start">
|
||||
<Constraint android:id="@+id/material_card_view_item_post_with_preview" />
|
||||
</ConstraintSet>
|
||||
|
||||
<ConstraintSet android:id="@+id/end">
|
||||
<Constraint android:id="@id/material_card_view_item_post_with_preview"
|
||||
android:layout_width="0dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintWidth_percent="0.7" />
|
||||
</ConstraintSet>
|
||||
|
||||
<Transition
|
||||
app:constraintSetEnd="@id/end"
|
||||
app:constraintSetStart="@+id/start">
|
||||
|
||||
<OnSwipe
|
||||
app:dragDirection="dragRight"
|
||||
app:touchAnchorId="@id/material_card_view_item_post_with_preview"
|
||||
app:touchAnchorSide="right" />
|
||||
|
||||
</Transition>
|
||||
</MotionScene>
|
@ -12,6 +12,7 @@
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="amoled_dark"
|
||||
app:icon="@drawable/ic_amoled_theme_preference_24dp"
|
||||
app:title="@string/settings_amoled_dark_title" />
|
||||
|
||||
<PreferenceCategory
|
||||
@ -40,9 +41,19 @@
|
||||
app:icon="@drawable/ic_edit_24dp"
|
||||
app:title="@string/settings_manage_themes_title" />
|
||||
|
||||
<Preference
|
||||
app:icon="@drawable/ic_info_preference_24dp"
|
||||
app:summary="@string/settings_custom_theme_cannot_apply_to_settings_page_summary"
|
||||
app:enabled="false" />
|
||||
|
||||
<PreferenceCategory
|
||||
app:title="@string/settings_category_material_you_title" />
|
||||
|
||||
<Preference
|
||||
app:icon="@drawable/ic_info_preference_24dp"
|
||||
app:summary="@string/settings_enable_material_you_warning_summary"
|
||||
app:enabled="false" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="enable_material_you"
|
||||
@ -50,8 +61,8 @@
|
||||
app:summary="@string/settings_enable_material_you_summary" />
|
||||
|
||||
<Preference
|
||||
app:icon="@drawable/ic_info_preference_24dp"
|
||||
app:summary="@string/settings_custom_theme_cannot_apply_to_settings_page_summary"
|
||||
app:enabled="false" />
|
||||
app:key="apply_material_you"
|
||||
app:title="@string/settings_apply_material_you_title"
|
||||
app:summary="@string/settings_apply_material_you_summary" />
|
||||
|
||||
</PreferenceScreen>
|
Loading…
Reference in New Issue
Block a user