diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-04-09 23:42:13 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-04-09 23:42:13 +0300 |
commit | 885a5e7416d0a17af720b8aa6d0cbc232c433ef7 (patch) | |
tree | 663c72b48cdcb49fa864abcc12adf85bf876c387 | |
parent | f130244d08627549cb4c1d810411a2864c85e313 (diff) |
#317 Adjust theme for each account
main floating action button, settings, license button
Signed-off-by: Stefan Niedermann <info@niedermann.it>
4 files changed, 39 insertions, 8 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java index efc998bc8..4a7171ede 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java @@ -3,6 +3,7 @@ package it.niedermann.nextcloud.deck.ui; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.res.ColorStateList; import android.database.sqlite.SQLiteConstraintException; import android.graphics.Color; import android.net.ConnectivityManager; @@ -306,7 +307,7 @@ public class MainActivity extends AbstractThemableActivity implements EditStackL syncManager.getServerVersion(new IResponseCallback<Capabilities>(currentAccount) { @Override public void onResponse(Capabilities response) { - Application.setNextcloudTheme(MainActivity.this, Color.parseColor(currentAccount.getColor()), Color.parseColor(currentAccount.getTextColor())); + runOnUiThread(() -> Application.setNextcloudTheme(MainActivity.this, Color.parseColor(currentAccount.getColor()), Color.parseColor(currentAccount.getTextColor()))); } }); }).start(); @@ -342,7 +343,7 @@ public class MainActivity extends AbstractThemableActivity implements EditStackL binding.addStackButton.setBackgroundColor(mainColor); binding.addStackButton.setColorFilter(textColor); headerBinding.drawerHeaderView.setBackgroundColor(mainColor); - binding.fab.setBackgroundColor(mainColor); + binding.fab.setSupportBackgroundTintList(new ColorStateList(new int[][]{new int[]{}}, new int[]{mainColor})); binding.fab.setColorFilter(textColor); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentLicenseTab.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentLicenseTab.java index 09481a865..62398a90f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentLicenseTab.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentLicenseTab.java @@ -10,19 +10,41 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; +import it.niedermann.nextcloud.deck.Application; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.FragmentAboutLicenseTabBinding; import static it.niedermann.nextcloud.deck.util.SpannableUtil.setTextWithURL; -public class AboutFragmentLicenseTab extends Fragment { +public class AboutFragmentLicenseTab extends Fragment implements Application.NextcloudTheme { + + private FragmentAboutLicenseTabBinding binding; @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - FragmentAboutLicenseTabBinding binding = FragmentAboutLicenseTabBinding.inflate(inflater, container, false); + binding = FragmentAboutLicenseTabBinding.inflate(inflater, container, false); + Application.registerThemableComponent(requireContext(), this); setTextWithURL(binding.aboutIconsDisclaimerAppIcon, getResources(), R.string.about_icons_disclaimer_app_icon, R.string.about_app_icon_author_link_label, R.string.url_about_icon_author); setTextWithURL(binding.aboutIconsDisclaimerMdiIcons, getResources(), R.string.about_icons_disclaimer_mdi_icons, R.string.about_icons_disclaimer_mdi, R.string.url_about_icons_disclaimer_mdi); binding.aboutAppLicenseButton.setOnClickListener((v) -> startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.url_license))))); return binding.getRoot(); } + + @Override + public void onResume() { + Application.registerThemableComponent(requireContext(), this); + super.onResume(); + } + + @Override + public void onPause() { + Application.deregisterThemableComponent(this); + super.onPause(); + } + + @Override + public void applyNextcloudTheme(int mainColor, int textColor) { + binding.aboutAppLicenseButton.setBackgroundColor(mainColor); + binding.aboutAppLicenseButton.setTextColor(textColor); + } }
\ No newline at end of file diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java index 084de270f..d521750ee 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java @@ -3,14 +3,16 @@ package it.niedermann.nextcloud.deck.ui.settings; import android.os.Bundle; import androidx.annotation.Nullable; -import androidx.appcompat.app.AppCompatActivity; import it.niedermann.nextcloud.deck.Application; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.ActivitySettingsBinding; +import it.niedermann.nextcloud.deck.ui.AbstractThemableActivity; import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; -public class SettingsActivity extends AppCompatActivity { +public class SettingsActivity extends AbstractThemableActivity { + + private ActivitySettingsBinding binding; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -18,7 +20,7 @@ public class SettingsActivity extends AppCompatActivity { super.onCreate(savedInstanceState); Thread.currentThread().setUncaughtExceptionHandler(new ExceptionHandler(this)); - ActivitySettingsBinding binding = ActivitySettingsBinding.inflate(getLayoutInflater()); + binding = ActivitySettingsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); @@ -35,4 +37,11 @@ public class SettingsActivity extends AppCompatActivity { finish(); // close this activity as oppose to navigating up return true; } + + @Override + public void applyNextcloudTheme(int mainColor, int textColor) { + super.applyNextcloudTheme(mainColor, textColor); + binding.toolbar.setBackgroundColor(mainColor); + binding.toolbar.setTitleTextColor(textColor); + } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java index beb552513..cabdd1021 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java @@ -53,6 +53,5 @@ public class SettingsFragment extends PreferenceFragmentCompat { } else { DeckLog.error("Could not find preference with key: \"" + getString(R.string.pref_key_background_sync) + "\""); } - } } |