diff options
4 files changed, 44 insertions, 39 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/filter/FilterWidgetConfigurationActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/filter/FilterWidgetConfigurationActivity.java index ac466961d..e649a0a5b 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/filter/FilterWidgetConfigurationActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/filter/FilterWidgetConfigurationActivity.java @@ -11,8 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.ActivityFilterWidgetBinding; -import it.niedermann.nextcloud.deck.model.Account; -import it.niedermann.nextcloud.deck.ui.widget.stack.StackWidget; +import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; public class FilterWidgetConfigurationActivity extends AppCompatActivity { private int appWidgetId; @@ -23,44 +22,46 @@ public class FilterWidgetConfigurationActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this)); + binding = ActivityFilterWidgetBinding.inflate(getLayoutInflater()); viewModel = new ViewModelProvider(this).get(FilterWidgetViewModel.class); + setContentView(binding.getRoot()); + setSupportActionBar(binding.toolbar); + final ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setTitle(R.string.add_filter_widget); } setResult(RESULT_CANCELED); - final Bundle extras = getIntent().getExtras(); + final Bundle args = getIntent().getExtras(); - if (extras != null) { - appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, - AppWidgetManager.INVALID_APPWIDGET_ID); + if (args != null) { + appWidgetId = args.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); } if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) { DeckLog.error("INVALID_APPWIDGET_ID"); finish(); } - } + binding.cancel.setOnClickListener((v) -> finish()); + binding.submit.setOnClickListener((v) -> { + final Bundle extras = new Bundle(); - protected void onSubmit(Account account, long boardId, long stackId) { - final Bundle extras = new Bundle(); + viewModel.updateFilterWidget(); + Intent updateIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE, null, getApplicationContext(), FilterWidget.class); + extras.putInt(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); - viewModel.updateFilterWidget(); - Intent updateIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE, null, - getApplicationContext(), StackWidget.class); - extras.putSerializable(StackWidget.ACCOUNT_KEY, account); - extras.putInt(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); + // The `extras` bundle is added to the intent this way because using putExtras(extras) + // would have the OS attempt to reassemle the data and cause a crash + // when it finds classes that are only known to this application. + updateIntent.putExtra(FilterWidget.BUNDLE_KEY, extras); + setResult(RESULT_OK, updateIntent); + getApplicationContext().sendBroadcast(updateIntent); - // The `extras` bundle is added to the intent this way because using putExtras(extras) - // would have the OS attempt to reassemle the data and cause a crash - // when it finds classes that are only known to this application. - updateIntent.putExtra(StackWidget.BUNDLE_KEY, extras); - setResult(RESULT_OK, updateIntent); - getApplicationContext().sendBroadcast(updateIntent); - - finish(); + finish(); + }); } } diff --git a/app/src/main/res/layout/activity_filter_widget.xml b/app/src/main/res/layout/activity_filter_widget.xml index a2d5f409b..679cef52b 100644 --- a/app/src/main/res/layout/activity_filter_widget.xml +++ b/app/src/main/res/layout/activity_filter_widget.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.coordinatorlayout.widget.CoordinatorLayout 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" - tools:showIn="@layout/activity_pick_stack"> + tools:showIn="@layout/activity_filter_widget"> <com.google.android.material.appbar.AppBarLayout android:id="@+id/appBarLayout" @@ -18,24 +18,11 @@ app:title="@string/add_filter_widget" /> </com.google.android.material.appbar.AppBarLayout> - <ScrollView - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_above="@+id/buttonBar" - android:layout_below="@id/appBarLayout" - android:padding="@dimen/spacer_2x"> - - <FrameLayout - android:id="@+id/fragment_container" - android:layout_width="match_parent" - android:layout_height="wrap_content" /> - </ScrollView> - <LinearLayout android:id="@+id/buttonBar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_alignParentBottom="true" + android:layout_gravity="bottom" android:orientation="horizontal" android:padding="@dimen/spacer_2x" android:weightSum="1.0"> @@ -60,4 +47,4 @@ android:text="@string/simple_add" app:backgroundTint="@color/defaultBrand" /> </LinearLayout> -</RelativeLayout>
\ No newline at end of file +</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file diff --git a/app/src/main/res/menu/filter_widget_bottom_navigation.xml b/app/src/main/res/menu/filter_widget_bottom_navigation.xml new file mode 100644 index 000000000..2bd816666 --- /dev/null +++ b/app/src/main/res/menu/filter_widget_bottom_navigation.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + <item + android:id="@+id/select" + android:title="@string/simple_select" + app:showAsAction="ifRoom" /> + <item + android:id="@+id/filter" + android:title="@string/simple_filter" + app:showAsAction="ifRoom" /> + <item + android:id="@+id/order" + android:title="@string/simple_order" + app:showAsAction="ifRoom" /> +</menu> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1956f00d5..e6aa9a02d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -329,4 +329,5 @@ <string name="gallery">Gallery</string> <string name="simple_attach">attach</string> <string name="add_filter_widget">Add filter widget</string> + <string name="simple_order">Order</string> </resources> |