1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /*
- * Nextcloud - Android Client
- *
- * SPDX-FileCopyrightText: 2017 Tobias Kaminsky <tobias@kaminsky.me>
- * SPDX-FileCopyrightText: 2017 Nextcloud GmbH
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
- package com.owncloud.android.ui;
- import android.content.Context;
- import android.preference.SwitchPreference;
- import android.util.AttributeSet;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.Switch;
- import com.owncloud.android.MainApp;
- import com.owncloud.android.utils.theme.ViewThemeUtils;
- import javax.inject.Inject;
- /**
- * Themeable switch preference TODO Migrate to androidx
- */
- public class ThemeableSwitchPreference extends SwitchPreference {
- @Inject
- ViewThemeUtils viewThemeUtils;
- public ThemeableSwitchPreference(Context context) {
- super(context);
- MainApp.getAppComponent().inject(this);
- }
- public ThemeableSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- MainApp.getAppComponent().inject(this);
- }
- public ThemeableSwitchPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- MainApp.getAppComponent().inject(this);
- }
- @Override
- protected void onBindView(View view) {
- super.onBindView(view);
- if (view instanceof ViewGroup) {
- findSwitch((ViewGroup) view);
- }
- }
- private void findSwitch(ViewGroup viewGroup) {
- for (int i = 0; i < viewGroup.getChildCount(); i++) {
- View child = viewGroup.getChildAt(i);
- if (child instanceof Switch) {
- Switch switchView = (Switch) child;
- viewThemeUtils.platform.colorSwitch(switchView);
- break;
- } else if (child instanceof ViewGroup) {
- findSwitch((ViewGroup) child);
- }
- }
- }
- }
|