mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Merge pull request #8441 from kevlahnota/master3
update Itemmanager portrait layout, update Sentry scope
This commit is contained in:
@@ -65,6 +65,7 @@ import forge.util.FileUtil;
|
|||||||
import forge.util.ThreadUtil;
|
import forge.util.ThreadUtil;
|
||||||
import io.sentry.Sentry;
|
import io.sentry.Sentry;
|
||||||
import io.sentry.protocol.Device;
|
import io.sentry.protocol.Device;
|
||||||
|
import io.sentry.protocol.OperatingSystem;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
import org.jupnp.DefaultUpnpServiceConfiguration;
|
import org.jupnp.DefaultUpnpServiceConfiguration;
|
||||||
import org.jupnp.android.AndroidUpnpServiceConfiguration;
|
import org.jupnp.android.AndroidUpnpServiceConfiguration;
|
||||||
@@ -194,13 +195,25 @@ public class Main extends AndroidApplication {
|
|||||||
boolean permissiongranted = checkPermission();
|
boolean permissiongranted = checkPermission();
|
||||||
Gadapter = new AndroidAdapter(getContext());
|
Gadapter = new AndroidAdapter(getContext());
|
||||||
|
|
||||||
|
// Get Basic Device and OS info for scope
|
||||||
Sentry.configureScope(scope -> {
|
Sentry.configureScope(scope -> {
|
||||||
|
// Device Info
|
||||||
Device device = new Device();
|
Device device = new Device();
|
||||||
device.setId(Build.ID);
|
device.setId(Build.ID);
|
||||||
device.setName(getDeviceName());
|
device.setName(getDeviceName());
|
||||||
|
device.setModel(Build.MODEL);
|
||||||
device.setBrand(Build.BRAND);
|
device.setBrand(Build.BRAND);
|
||||||
|
device.setManufacturer(Build.MANUFACTURER);
|
||||||
|
device.setMemorySize(memInfo.totalMem);
|
||||||
device.setChipset(Build.SOC_MANUFACTURER + " " + Build.SOC_MODEL);
|
device.setChipset(Build.SOC_MANUFACTURER + " " + Build.SOC_MODEL);
|
||||||
|
// OS Info
|
||||||
|
OperatingSystem os = new OperatingSystem();
|
||||||
|
os.setName("Android");
|
||||||
|
os.setVersion(Build.VERSION.RELEASE);
|
||||||
|
os.setBuild(Build.DISPLAY);
|
||||||
|
// Set Contexts
|
||||||
scope.getContexts().setDevice(device);
|
scope.getContexts().setDevice(device);
|
||||||
|
scope.getContexts().setOperatingSystem(os);
|
||||||
});
|
});
|
||||||
|
|
||||||
initForge(Gadapter, permissiongranted, totalMemory, isTabletDevice(getContext()));
|
initForge(Gadapter, permissiongranted, totalMemory, isTabletDevice(getContext()));
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ import forge.menu.FDropDownMenu;
|
|||||||
import forge.menu.FMenuItem;
|
import forge.menu.FMenuItem;
|
||||||
import forge.menu.FPopupMenu;
|
import forge.menu.FPopupMenu;
|
||||||
import forge.screens.FScreen;
|
import forge.screens.FScreen;
|
||||||
|
import forge.screens.planarconquest.ConquestCommandersScreen;
|
||||||
import forge.toolbox.*;
|
import forge.toolbox.*;
|
||||||
import forge.toolbox.FEvent.FEventHandler;
|
import forge.toolbox.FEvent.FEventHandler;
|
||||||
import forge.toolbox.FEvent.FEventType;
|
import forge.toolbox.FEvent.FEventType;
|
||||||
@@ -367,12 +368,19 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
|||||||
helper.fillLine(advancedSearchFilter.getWidget(), fieldHeight);
|
helper.fillLine(advancedSearchFilter.getWidget(), fieldHeight);
|
||||||
}
|
}
|
||||||
if (!hideFilters) {
|
if (!hideFilters) {
|
||||||
List<ItemFilter<? extends T>> filters = this.filters.get();
|
if (Forge.isLandscapeMode())
|
||||||
if(!tryConsolidateButtonFilters(filters, helper, fieldHeight)) {
|
drawLandscape(this.filters.get(), helper, fieldHeight);
|
||||||
|
else
|
||||||
|
drawPortrait(this.filters.get(), helper, width, fieldHeight);
|
||||||
|
}
|
||||||
|
helper.fill(currentView.getScroller());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void drawLandscape(List<ItemFilter<? extends T>> filters, LayoutHelper helper, float fieldHeight) {
|
||||||
|
// TODO reduce landscape mode combobox buttons for the filters
|
||||||
for (ItemFilter<? extends T> filter : filters) {
|
for (ItemFilter<? extends T> filter : filters) {
|
||||||
helper.include(filter.getWidget(), filter.getPreferredWidth(helper.getRemainingLineWidth(), fieldHeight), fieldHeight);
|
helper.include(filter.getWidget(), filter.getPreferredWidth(helper.getRemainingLineWidth(), fieldHeight), fieldHeight);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (allowSortChange()) {
|
if (allowSortChange()) {
|
||||||
helper.fillLine(cbxSortOptions, fieldHeight);
|
helper.fillLine(cbxSortOptions, fieldHeight);
|
||||||
}
|
}
|
||||||
@@ -383,26 +391,72 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
|||||||
helper.offset(0, -fieldHeight); //prevent showing whitespace for empty view options panel
|
helper.offset(0, -fieldHeight); //prevent showing whitespace for empty view options panel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
helper.fill(currentView.getScroller());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
private void drawPortrait(List<ItemFilter<? extends T>> filters, LayoutHelper helper, float width, float fieldHeight) {
|
||||||
* If the only available filters are button filters, try and put them both on one line.
|
CardTypeFilter cardTypeFilter = null;
|
||||||
* And if we can, stretch them across the line and squish them all proportionally rather than only the last item.
|
CardColorFilter colorFilter = null;
|
||||||
*/
|
CardFormatFilter cardFormatFilter = null;
|
||||||
private boolean tryConsolidateButtonFilters(List<ItemFilter<? extends T>> filters, LayoutHelper helper, float fieldHeight) {
|
DeckColorFilter deckColorFilter = null;
|
||||||
if(filters.size() < 2 || !filters.stream().allMatch(o -> o instanceof ToggleButtonsFilter<? extends T>))
|
DeckFormatFilter deckFormatFilter = null;
|
||||||
return false;
|
ConquestCommandersScreen.CommanderColorFilter commanderColorFilter = null;
|
||||||
float width = helper.getParentWidth();
|
ConquestCommandersScreen.CommanderOriginFilter commanderOriginFilter = null;
|
||||||
double total = filters.stream().mapToDouble(i -> i.getPreferredWidth(width, fieldHeight)).sum();
|
|
||||||
total += helper.getGapX() * (filters.size() - 1);
|
|
||||||
if(total > width * 1.2 || total < width * 0.6)
|
|
||||||
return false;
|
|
||||||
for (ItemFilter<? extends T> filter : filters) {
|
for (ItemFilter<? extends T> filter : filters) {
|
||||||
double percent = filter.getPreferredWidth(width, fieldHeight) / total;
|
if (filter instanceof CardTypeFilter ct) {
|
||||||
helper.include(filter.getWidget(), percent, fieldHeight);
|
cardTypeFilter = ct;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (filter instanceof CardColorFilter cr) {
|
||||||
|
colorFilter = cr;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (filter instanceof CardFormatFilter cf) {
|
||||||
|
cardFormatFilter = cf;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (filter instanceof DeckColorFilter dc) {
|
||||||
|
deckColorFilter = dc;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (filter instanceof DeckFormatFilter df) {
|
||||||
|
deckFormatFilter = df;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (filter instanceof ConquestCommandersScreen.CommanderColorFilter ccf) {
|
||||||
|
commanderColorFilter = ccf;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (filter instanceof ConquestCommandersScreen.CommanderOriginFilter cof) {
|
||||||
|
commanderOriginFilter = cof;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
helper.include(filter.getWidget(), filter.getPreferredWidth(helper.getRemainingLineWidth(), fieldHeight), fieldHeight);
|
||||||
|
}
|
||||||
|
if (deckColorFilter != null) {
|
||||||
|
helper.fillLine(deckColorFilter.getWidget(), fieldHeight);
|
||||||
|
}
|
||||||
|
if (deckFormatFilter != null) {
|
||||||
|
helper.fillLine(deckFormatFilter.getWidget(), fieldHeight);
|
||||||
|
}
|
||||||
|
if (colorFilter != null)
|
||||||
|
helper.fillLine(colorFilter.getWidget(), fieldHeight);
|
||||||
|
if (cardTypeFilter != null)
|
||||||
|
helper.fillLine(cardTypeFilter.getWidget(), fieldHeight);
|
||||||
|
if (commanderColorFilter != null)
|
||||||
|
helper.fillLine(commanderColorFilter.getWidget(), fieldHeight);
|
||||||
|
if (commanderOriginFilter != null)
|
||||||
|
helper.fillLine(commanderOriginFilter.getWidget(), fieldHeight);
|
||||||
|
helper.newLine();
|
||||||
|
if (cardFormatFilter != null)
|
||||||
|
helper.include(cardFormatFilter.getWidget(), width / 2f, fieldHeight);
|
||||||
|
if (allowSortChange()) {
|
||||||
|
helper.fillLine(cbxSortOptions, fieldHeight);
|
||||||
|
}
|
||||||
|
helper.newLine(-ItemFilter.PADDING);
|
||||||
|
if (currentView.getPnlOptions().getChildCount() > 0) {
|
||||||
|
helper.fillLine(currentView.getPnlOptions(), fieldHeight + ItemFilter.PADDING);
|
||||||
|
} else {
|
||||||
|
helper.offset(0, -fieldHeight); //prevent showing whitespace for empty view options panel
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Class<T> getGenericType() {
|
public Class<T> getGenericType() {
|
||||||
|
|||||||
@@ -413,8 +413,10 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
|||||||
btnExpandCollapseAll.setBounds(x, y, h, h);
|
btnExpandCollapseAll.setBounds(x, y, h, h);
|
||||||
x += h + padding;
|
x += h + padding;
|
||||||
|
|
||||||
float pileByWidth = Math.min(itemManager.getPileByWidth(), (width - x - padding) / 2.0f);
|
// hide piles only for deckmanager since its unusable unlike group
|
||||||
float groupByWidth = width - x - padding - pileByWidth;
|
float newWidth = itemManager instanceof DeckManager ? 0f : width / 2f;
|
||||||
|
float pileByWidth = newWidth - padding;
|
||||||
|
float groupByWidth = width - x - newWidth;
|
||||||
|
|
||||||
cbGroupByOptions.setBounds(x, y, groupByWidth, h);
|
cbGroupByOptions.setBounds(x, y, groupByWidth, h);
|
||||||
x += groupByWidth + padding;
|
x += groupByWidth + padding;
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ public class ConquestCommandersScreen extends FScreen {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class CommanderColorFilter extends StatTypeFilter<ConquestCommander> {
|
public static class CommanderColorFilter extends StatTypeFilter<ConquestCommander> {
|
||||||
public CommanderColorFilter(ItemManager<? super ConquestCommander> itemManager0) {
|
public CommanderColorFilter(ItemManager<? super ConquestCommander> itemManager0) {
|
||||||
super(itemManager0);
|
super(itemManager0);
|
||||||
}
|
}
|
||||||
@@ -273,7 +273,7 @@ public class ConquestCommandersScreen extends FScreen {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class CommanderOriginFilter extends ComboBoxFilter<ConquestCommander, ConquestPlane> {
|
public static class CommanderOriginFilter extends ComboBoxFilter<ConquestCommander, ConquestPlane> {
|
||||||
public CommanderOriginFilter(ItemManager<? super ConquestCommander> itemManager0) {
|
public CommanderOriginFilter(ItemManager<? super ConquestCommander> itemManager0) {
|
||||||
super(Forge.getLocalizer().getMessage("lblAllPlanes"), FModel.getPlanes(), itemManager0);
|
super(Forge.getLocalizer().getMessage("lblAllPlanes"), FModel.getPlanes(), itemManager0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user