mirror of
				https://github.com/SimpleMobileTools/Simple-Flashlight.git
				synced 2025-06-05 21:59:19 +02:00 
			
		
		
		
	Migrate color picker in WidgetBrightDisplayConfigureActivity to compose
				
					
				
			This commit is contained in:
		| @@ -7,15 +7,14 @@ import android.os.Bundle | ||||
| import androidx.activity.ComponentActivity | ||||
| import androidx.activity.compose.setContent | ||||
| import androidx.activity.viewModels | ||||
| import androidx.compose.runtime.LaunchedEffect | ||||
| import androidx.compose.runtime.Composable | ||||
| import androidx.compose.runtime.getValue | ||||
| import androidx.lifecycle.compose.collectAsStateWithLifecycle | ||||
| import com.simplemobiletools.commons.compose.alert_dialog.AlertDialogState | ||||
| import com.simplemobiletools.commons.compose.alert_dialog.rememberAlertDialogState | ||||
| import com.simplemobiletools.commons.compose.extensions.enableEdgeToEdgeSimple | ||||
| import com.simplemobiletools.commons.compose.theme.AppThemeSurface | ||||
| import com.simplemobiletools.commons.dialogs.ColorPickerDialog | ||||
| import com.simplemobiletools.commons.dialogs.FeatureLockedAlertDialog | ||||
| import com.simplemobiletools.commons.extensions.isOrWasThankYouInstalled | ||||
| import com.simplemobiletools.commons.dialogs.ColorPickerAlertDialog | ||||
| import com.simplemobiletools.commons.helpers.IS_CUSTOMIZING_COLORS | ||||
| import com.simplemobiletools.flashlight.R | ||||
| import com.simplemobiletools.flashlight.activities.viewmodel.WidgetConfigureViewModel | ||||
| @@ -44,12 +43,16 @@ class WidgetBrightDisplayConfigureActivity : ComponentActivity() { | ||||
|                 val widgetColor by viewModel.widgetColor.collectAsStateWithLifecycle() | ||||
|                 val widgetAlpha by viewModel.widgetAlpha.collectAsStateWithLifecycle() | ||||
|  | ||||
|                 val colorPickerDialogState = rememberAlertDialogState().apply { | ||||
|                     ColorPicker(this) | ||||
|                 } | ||||
|  | ||||
|                 WidgetConfigureScreen( | ||||
|                     widgetDrawable = R.drawable.ic_bright_display_vector, | ||||
|                     widgetColor = widgetColor, | ||||
|                     widgetAlpha = widgetAlpha, | ||||
|                     onSliderChanged = viewModel::changeAlpha, | ||||
|                     onColorPressed = ::pickBackgroundColor, | ||||
|                     onColorPressed = colorPickerDialogState::show, | ||||
|                     onSavePressed = ::saveConfig | ||||
|                 ) | ||||
|  | ||||
| @@ -59,6 +62,26 @@ class WidgetBrightDisplayConfigureActivity : ComponentActivity() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Composable | ||||
|     private fun ColorPicker( | ||||
|         alertDialogState: AlertDialogState | ||||
|     ) { | ||||
|         val brightDisplayColor by viewModel.widgetColor.collectAsStateWithLifecycle() | ||||
|         alertDialogState.DialogMember { | ||||
|             ColorPickerAlertDialog( | ||||
|                 alertDialogState = alertDialogState, | ||||
|                 color = brightDisplayColor, | ||||
|                 removeDimmedBackground = true, | ||||
|                 onActiveColorChange = {}, | ||||
|                 onButtonPressed = { wasPositivePressed, color -> | ||||
|                     if (wasPositivePressed) { | ||||
|                         viewModel.updateColor(color) | ||||
|                     } | ||||
|                 } | ||||
|             ) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     override fun onResume() { | ||||
|         super.onResume() | ||||
|         window.decorView.setBackgroundColor(0) | ||||
| @@ -75,14 +98,6 @@ class WidgetBrightDisplayConfigureActivity : ComponentActivity() { | ||||
|         finish() | ||||
|     } | ||||
|  | ||||
|     private fun pickBackgroundColor() { | ||||
|         ColorPickerDialog(this, viewModel.widgetColor.value) { wasPositivePressed, color -> | ||||
|             if (wasPositivePressed) { | ||||
|                 viewModel.updateColor(color) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private fun requestWidgetUpdate() { | ||||
|         Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE, null, this, MyWidgetBrightDisplayProvider::class.java).apply { | ||||
|             putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, intArrayOf(viewModel.widgetId.value)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user