mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-01-11 18:57:11 +01:00
Add a dark theme toggle in the navigation drawer.
This commit is contained in:
parent
7ae7827d49
commit
802a70e9c9
@ -23,6 +23,7 @@ import android.widget.Toast;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.ActionBarDrawerToggle;
|
import androidx.appcompat.app.ActionBarDrawerToggle;
|
||||||
|
import androidx.appcompat.app.AppCompatDelegate;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||||
import androidx.core.view.GravityCompat;
|
import androidx.core.view.GravityCompat;
|
||||||
@ -99,6 +100,9 @@ import ml.docilealligator.infinityforreddit.Utils.SharedPreferencesUtils;
|
|||||||
import pl.droidsonroids.gif.GifImageView;
|
import pl.droidsonroids.gif.GifImageView;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
|
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_NO;
|
||||||
|
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES;
|
||||||
|
|
||||||
public class MainActivity extends BaseActivity implements SortTypeSelectionCallback,
|
public class MainActivity extends BaseActivity implements SortTypeSelectionCallback,
|
||||||
PostTypeBottomSheetFragment.PostTypeSelectionCallback, PostLayoutBottomSheetFragment.PostLayoutSelectionCallback {
|
PostTypeBottomSheetFragment.PostTypeSelectionCallback, PostLayoutBottomSheetFragment.PostLayoutSelectionCallback {
|
||||||
|
|
||||||
@ -140,29 +144,31 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
|||||||
@BindView(R.id.account_label_main_activity)
|
@BindView(R.id.account_label_main_activity)
|
||||||
TextView accountLabelTextView;
|
TextView accountLabelTextView;
|
||||||
@BindView(R.id.profile_text_view_main_activity)
|
@BindView(R.id.profile_text_view_main_activity)
|
||||||
TextView profileLinearLayout;
|
TextView profileTextView;
|
||||||
@BindView(R.id.subscriptions_text_view_main_activity)
|
@BindView(R.id.subscriptions_text_view_main_activity)
|
||||||
TextView subscriptionLinearLayout;
|
TextView subscriptionTextView;
|
||||||
@BindView(R.id.multi_reddits_text_view_main_activity)
|
@BindView(R.id.multi_reddits_text_view_main_activity)
|
||||||
TextView multiRedditsLinearLayout;
|
TextView multiRedditsTextView;
|
||||||
@BindView(R.id.inbox_text_view_main_activity)
|
@BindView(R.id.inbox_text_view_main_activity)
|
||||||
TextView inboxLinearLayout;
|
TextView inboxTextView;
|
||||||
@BindView(R.id.post_label_main_activity)
|
@BindView(R.id.post_label_main_activity)
|
||||||
TextView postLabelTextView;
|
TextView postLabelTextView;
|
||||||
@BindView(R.id.upvoted_text_view_main_activity)
|
@BindView(R.id.upvoted_text_view_main_activity)
|
||||||
TextView upvotedLinearLayout;
|
TextView upvotedTextView;
|
||||||
@BindView(R.id.downvoted_text_view_main_activity)
|
@BindView(R.id.downvoted_text_view_main_activity)
|
||||||
TextView downvotedLinearLayout;
|
TextView downvotedTextView;
|
||||||
@BindView(R.id.hidden_text_view_main_activity)
|
@BindView(R.id.hidden_text_view_main_activity)
|
||||||
TextView hiddenLinearLayout;
|
TextView hiddenTextView;
|
||||||
@BindView(R.id.saved_text_view_main_activity)
|
@BindView(R.id.saved_text_view_main_activity)
|
||||||
TextView savedLinearLayout;
|
TextView savedTextView;
|
||||||
@BindView(R.id.gilded_text_view_main_activity)
|
@BindView(R.id.gilded_text_view_main_activity)
|
||||||
TextView gildedLinearLayout;
|
TextView gildedTextView;
|
||||||
@BindView(R.id.divider_main_activity)
|
@BindView(R.id.divider_main_activity)
|
||||||
View divider;
|
View divider;
|
||||||
|
@BindView(R.id.night_mode_toggle_text_view_main_activity)
|
||||||
|
TextView nightModeToggleTextView;
|
||||||
@BindView(R.id.settings_text_view_main_activity)
|
@BindView(R.id.settings_text_view_main_activity)
|
||||||
TextView settingsLinearLayout;
|
TextView settingsTextView;
|
||||||
@BindView(R.id.account_recycler_view_main_activity)
|
@BindView(R.id.account_recycler_view_main_activity)
|
||||||
RecyclerView accountRecyclerView;
|
RecyclerView accountRecyclerView;
|
||||||
@BindView(R.id.tab_layout_main_activity)
|
@BindView(R.id.tab_layout_main_activity)
|
||||||
@ -640,16 +646,16 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
|||||||
mKarmaTextView.setText(R.string.press_here_to_login);
|
mKarmaTextView.setText(R.string.press_here_to_login);
|
||||||
mAccountNameTextView.setText(R.string.anonymous_account);
|
mAccountNameTextView.setText(R.string.anonymous_account);
|
||||||
accountLabelTextView.setVisibility(View.GONE);
|
accountLabelTextView.setVisibility(View.GONE);
|
||||||
profileLinearLayout.setVisibility(View.GONE);
|
profileTextView.setVisibility(View.GONE);
|
||||||
subscriptionLinearLayout.setVisibility(View.GONE);
|
subscriptionTextView.setVisibility(View.GONE);
|
||||||
multiRedditsLinearLayout.setVisibility(View.GONE);
|
multiRedditsTextView.setVisibility(View.GONE);
|
||||||
inboxLinearLayout.setVisibility(View.GONE);
|
inboxTextView.setVisibility(View.GONE);
|
||||||
postLabelTextView.setVisibility(View.GONE);
|
postLabelTextView.setVisibility(View.GONE);
|
||||||
upvotedLinearLayout.setVisibility(View.GONE);
|
upvotedTextView.setVisibility(View.GONE);
|
||||||
downvotedLinearLayout.setVisibility(View.GONE);
|
downvotedTextView.setVisibility(View.GONE);
|
||||||
hiddenLinearLayout.setVisibility(View.GONE);
|
hiddenTextView.setVisibility(View.GONE);
|
||||||
savedLinearLayout.setVisibility(View.GONE);
|
savedTextView.setVisibility(View.GONE);
|
||||||
gildedLinearLayout.setVisibility(View.GONE);
|
gildedTextView.setVisibility(View.GONE);
|
||||||
divider.setVisibility(View.GONE);
|
divider.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -669,66 +675,94 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
|||||||
glide.load(mBannerImageUrl).into(mBannerImageView);
|
glide.load(mBannerImageUrl).into(mBannerImageView);
|
||||||
}
|
}
|
||||||
|
|
||||||
profileLinearLayout.setOnClickListener(view -> {
|
profileTextView.setOnClickListener(view -> {
|
||||||
Intent intent = new Intent(this, ViewUserDetailActivity.class);
|
Intent intent = new Intent(this, ViewUserDetailActivity.class);
|
||||||
intent.putExtra(ViewUserDetailActivity.EXTRA_USER_NAME_KEY, mAccountName);
|
intent.putExtra(ViewUserDetailActivity.EXTRA_USER_NAME_KEY, mAccountName);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
drawer.closeDrawers();
|
drawer.closeDrawers();
|
||||||
});
|
});
|
||||||
|
|
||||||
subscriptionLinearLayout.setOnClickListener(view -> {
|
subscriptionTextView.setOnClickListener(view -> {
|
||||||
Intent intent = new Intent(this, SubscribedThingListingActivity.class);
|
Intent intent = new Intent(this, SubscribedThingListingActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
drawer.closeDrawers();
|
drawer.closeDrawers();
|
||||||
});
|
});
|
||||||
|
|
||||||
multiRedditsLinearLayout.setOnClickListener(view -> {
|
multiRedditsTextView.setOnClickListener(view -> {
|
||||||
Intent intent = new Intent(this, MultiRedditListingActivity.class);
|
Intent intent = new Intent(this, MultiRedditListingActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
drawer.closeDrawers();
|
drawer.closeDrawers();
|
||||||
});
|
});
|
||||||
|
|
||||||
inboxLinearLayout.setOnClickListener(view -> {
|
inboxTextView.setOnClickListener(view -> {
|
||||||
Intent intent = new Intent(this, ViewMessageActivity.class);
|
Intent intent = new Intent(this, ViewMessageActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
drawer.closeDrawers();
|
drawer.closeDrawers();
|
||||||
});
|
});
|
||||||
|
|
||||||
upvotedLinearLayout.setOnClickListener(view -> {
|
upvotedTextView.setOnClickListener(view -> {
|
||||||
Intent intent = new Intent(MainActivity.this, AccountPostsActivity.class);
|
Intent intent = new Intent(MainActivity.this, AccountPostsActivity.class);
|
||||||
intent.putExtra(AccountPostsActivity.EXTRA_USER_WHERE, PostDataSource.USER_WHERE_UPVOTED);
|
intent.putExtra(AccountPostsActivity.EXTRA_USER_WHERE, PostDataSource.USER_WHERE_UPVOTED);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
drawer.closeDrawers();
|
drawer.closeDrawers();
|
||||||
});
|
});
|
||||||
|
|
||||||
downvotedLinearLayout.setOnClickListener(view -> {
|
downvotedTextView.setOnClickListener(view -> {
|
||||||
Intent intent = new Intent(MainActivity.this, AccountPostsActivity.class);
|
Intent intent = new Intent(MainActivity.this, AccountPostsActivity.class);
|
||||||
intent.putExtra(AccountPostsActivity.EXTRA_USER_WHERE, PostDataSource.USER_WHERE_DOWNVOTED);
|
intent.putExtra(AccountPostsActivity.EXTRA_USER_WHERE, PostDataSource.USER_WHERE_DOWNVOTED);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
drawer.closeDrawers();
|
drawer.closeDrawers();
|
||||||
});
|
});
|
||||||
|
|
||||||
hiddenLinearLayout.setOnClickListener(view -> {
|
hiddenTextView.setOnClickListener(view -> {
|
||||||
Intent intent = new Intent(MainActivity.this, AccountPostsActivity.class);
|
Intent intent = new Intent(MainActivity.this, AccountPostsActivity.class);
|
||||||
intent.putExtra(AccountPostsActivity.EXTRA_USER_WHERE, PostDataSource.USER_WHERE_HIDDEN);
|
intent.putExtra(AccountPostsActivity.EXTRA_USER_WHERE, PostDataSource.USER_WHERE_HIDDEN);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
drawer.closeDrawers();
|
drawer.closeDrawers();
|
||||||
});
|
});
|
||||||
|
|
||||||
savedLinearLayout.setOnClickListener(view -> {
|
savedTextView.setOnClickListener(view -> {
|
||||||
Intent intent = new Intent(MainActivity.this, AccountSavedThingActivity.class);
|
Intent intent = new Intent(MainActivity.this, AccountSavedThingActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
drawer.closeDrawers();
|
drawer.closeDrawers();
|
||||||
});
|
});
|
||||||
|
|
||||||
gildedLinearLayout.setOnClickListener(view -> {
|
gildedTextView.setOnClickListener(view -> {
|
||||||
Intent intent = new Intent(MainActivity.this, AccountPostsActivity.class);
|
Intent intent = new Intent(MainActivity.this, AccountPostsActivity.class);
|
||||||
intent.putExtra(AccountPostsActivity.EXTRA_USER_WHERE, PostDataSource.USER_WHERE_GILDED);
|
intent.putExtra(AccountPostsActivity.EXTRA_USER_WHERE, PostDataSource.USER_WHERE_GILDED);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
drawer.closeDrawers();
|
drawer.closeDrawers();
|
||||||
});
|
});
|
||||||
|
|
||||||
settingsLinearLayout.setOnClickListener(view -> {
|
if ((getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) != Configuration.UI_MODE_NIGHT_YES) {
|
||||||
|
nightModeToggleTextView.setText(R.string.dark_theme);
|
||||||
|
nightModeToggleTextView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_dark_theme_24dp, 0, 0, 0);
|
||||||
|
} else {
|
||||||
|
nightModeToggleTextView.setText(R.string.light_theme);
|
||||||
|
nightModeToggleTextView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_light_theme_24dp, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
nightModeToggleTextView.setOnClickListener(view -> {
|
||||||
|
if ((getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) != Configuration.UI_MODE_NIGHT_YES) {
|
||||||
|
mSharedPreferences.edit().putString(SharedPreferencesUtils.THEME_KEY, "1").apply();
|
||||||
|
nightModeToggleTextView.setText(R.string.dark_theme);
|
||||||
|
nightModeToggleTextView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_dark_theme_24dp, 0, 0, 0);
|
||||||
|
AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_YES);
|
||||||
|
if(mSharedPreferences.getBoolean(SharedPreferencesUtils.AMOLED_DARK_KEY, false)) {
|
||||||
|
getTheme().applyStyle(R.style.Theme_Default_AmoledDark, true);
|
||||||
|
} else {
|
||||||
|
getTheme().applyStyle(R.style.Theme_Default_NormalDark, true);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
mSharedPreferences.edit().putString(SharedPreferencesUtils.THEME_KEY, "0").apply();
|
||||||
|
nightModeToggleTextView.setText(R.string.light_theme);
|
||||||
|
nightModeToggleTextView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_light_theme_24dp, 0, 0, 0);
|
||||||
|
AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_NO);
|
||||||
|
getTheme().applyStyle(R.style.Theme_Default, true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
settingsTextView.setOnClickListener(view -> {
|
||||||
drawer.closeDrawers();
|
drawer.closeDrawers();
|
||||||
Intent intent = new Intent(MainActivity.this, SettingsActivity.class);
|
Intent intent = new Intent(MainActivity.this, SettingsActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
|
9
app/src/main/res/drawable/ic_dark_theme_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_dark_theme_24dp.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M12.7,4.91C15.25,6.24 17,8.92 17,12s-1.75,5.76 -4.3,7.09c1.46,-2 2.3,-4.46 2.3,-7.09s-0.84,-5.09 -2.3,-7.09M9,2c-1.05,0 -2.05,0.16 -3,0.46 4.06,1.27 7,5.06 7,9.54s-2.94,8.27 -7,9.54c0.95,0.3 1.95,0.46 3,0.46 5.52,0 10,-4.48 10,-10S14.52,2 9,2z"/>
|
||||||
|
</vector>
|
9
app/src/main/res/drawable/ic_light_theme_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_light_theme_24dp.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FFFFFFFF"
|
||||||
|
android:pathData="M20,8.69L20,4h-4.69L12,0.69 8.69,4L4,4v4.69L0.69,12 4,15.31L4,20h4.69L12,23.31 15.31,20L20,20v-4.69L23.31,12 20,8.69zM18,14.48L18,18h-3.52L12,20.48 9.52,18L6,18v-3.52L3.52,12 6,9.52L6,6h3.52L12,3.52 14.48,6L18,6v3.52L20.48,12 18,14.48zM12,6.5c-3.03,0 -5.5,2.47 -5.5,5.5s2.47,5.5 5.5,5.5 5.5,-2.47 5.5,-5.5 -2.47,-5.5 -5.5,-5.5zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/>
|
||||||
|
</vector>
|
@ -199,6 +199,19 @@
|
|||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
android:background="@color/dividerColor" />
|
android:background="@color/dividerColor" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/night_mode_toggle_text_view_main_activity"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:drawablePadding="32dp"
|
||||||
|
android:textColor="@color/primaryTextColor"
|
||||||
|
android:textSize="?attr/font_default"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/settings_text_view_main_activity"
|
android:id="@+id/settings_text_view_main_activity"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -289,7 +289,7 @@
|
|||||||
<string name="settings_notification_enable_notification_title">Enable Notifications</string>
|
<string name="settings_notification_enable_notification_title">Enable Notifications</string>
|
||||||
<string name="settings_notification_interval_title">Check Notifications Interval</string>
|
<string name="settings_notification_interval_title">Check Notifications Interval</string>
|
||||||
<string name="settings_theme_title">Theme</string>
|
<string name="settings_theme_title">Theme</string>
|
||||||
<string name="settings_theme_light__theme_summary">Light Theme</string>
|
<string name="settings_theme_light_theme_summary">Light Theme</string>
|
||||||
<string name="settings_theme_dark_theme_summary">Dark Theme</string>
|
<string name="settings_theme_dark_theme_summary">Dark Theme</string>
|
||||||
<string name="settings_theme_system_default_summary">Device default</string>
|
<string name="settings_theme_system_default_summary">Device default</string>
|
||||||
<string name="settings_amoled_dark_title">Amoled Dark</string>
|
<string name="settings_amoled_dark_title">Amoled Dark</string>
|
||||||
@ -424,4 +424,7 @@
|
|||||||
<string name="unsave_comment">Unsave comment</string>
|
<string name="unsave_comment">Unsave comment</string>
|
||||||
|
|
||||||
<string name="exit_app">Exit?</string>
|
<string name="exit_app">Exit?</string>
|
||||||
|
|
||||||
|
<string name="light_theme">Light Theme</string>
|
||||||
|
<string name="dark_theme">Dark Theme</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
Reference in New Issue
Block a user