Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1025,7 +1025,23 @@ private void generatePhoto (PhotoGenerationInfo info) throws Throwable {
final boolean applyLessCompression = U.isScreenshotFolder(originalPath);
boolean isTransparent = info.getAllowTransparency() || (!applyLessCompression && isTransparent(originalPath, uri));

final int maxSize = info.getResolutionLimit() != 0 ? info.getResolutionLimit() : PhotoGenerationInfo.SIZE_LIMIT;
final int maxSize;

switch (Settings.instance().getResolutionOption()) {
case Settings.RESOLUTION_OPTION_LOW:
maxSize = info.getResolutionLimit() != 0 ? info.getResolutionLimit() : 800;
break;
/*case Settings.RESOLUTION_OPTION_MEDIUM:
maxSize = info.getResolutionLimit() != 0 ? info.getResolutionLimit() : 1280;
break;*/
case Settings.RESOLUTION_OPTION_HIGH:
maxSize = info.getResolutionLimit() != 0 ? info.getResolutionLimit() : 2560;
break;
default:
maxSize = info.getResolutionLimit() != 0 ? info.getResolutionLimit() : 1280;
break;
}

final boolean saveToGallery = Settings.instance().needSaveEditedMediaToGallery() && info.isEdited();

Bitmap bitmap = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,18 @@ protected void setValuedSetting (ListItem item, SettingView v, boolean isUpdate)
v.setData(R.string.AutoInstantViewNone);
break;
}
} else if (itemId == R.id.btn_resolutionOption) {
switch (Settings.instance().getResolutionOption()) {
case Settings.RESOLUTION_OPTION_LOW:
v.setData(R.string.ResolutionLow);
break;
case Settings.RESOLUTION_OPTION_MEDIUM:
v.setData(R.string.ResolutionMedium);
break;
case Settings.RESOLUTION_OPTION_HIGH:
v.setData(R.string.ResolutionHigh);
break;
}
} else if (itemId == R.id.btn_hqRounds) {
v.getToggler().setRadioEnabled(Settings.instance().needHqRoundVideos(), isUpdate);
} else if (itemId == R.id.btn_rearRounds) {
Expand Down Expand Up @@ -666,6 +678,8 @@ public void onRemove (RecyclerView.ViewHolder viewHolder) {
items.add(new ListItem(ListItem.TYPE_SEPARATOR_FULL));
items.add(new ListItem(ListItem.TYPE_VALUED_SETTING_COMPACT, R.id.btn_instantViewMode, 0, R.string.AutoInstantView));
items.add(new ListItem(ListItem.TYPE_SEPARATOR_FULL));
items.add(new ListItem(ListItem.TYPE_VALUED_SETTING_COMPACT, R.id.btn_resolutionOption, 0, R.string.ResolutionOption));
items.add(new ListItem(ListItem.TYPE_SEPARATOR_FULL));
items.add(new ListItem(ListItem.TYPE_RADIO_SETTING, R.id.btn_toggleNewSetting, 0, R.string.OpenEmbed).setLongId(Settings.SETTING_FLAG_NO_EMBEDS).setBoolValue(true));
items.add(new ListItem(ListItem.TYPE_SHADOW_BOTTOM));
items.add(new ListItem(ListItem.TYPE_DESCRIPTION, 0, 0, Lang.getMarkdownString(this, R.string.OpenEmbedDesc), false));
Expand Down Expand Up @@ -1320,6 +1334,8 @@ public void onClick (View v) {
showChatListOptions();
} else if (viewId == R.id.btn_instantViewMode) {
showInstantViewOptions();
} else if (viewId == R.id.btn_resolutionOption) {
showResolutionOption();
} else if (viewId == R.id.btn_chatSwipes) {
showSettings(R.id.btn_chatSwipes, new ListItem[] {
new ListItem(ListItem.TYPE_CHECKBOX_OPTION, R.id.btn_messageShare, 0, R.string.Share, R.id.btn_messageShare, Settings.instance().needChatQuickShare()),
Expand Down Expand Up @@ -1908,6 +1924,27 @@ private void showInstantViewOptions () {
}));
}

private void showResolutionOption () {
int resolutionOption = Settings.instance().getResolutionOption();
showSettings(new SettingsWrapBuilder(R.id.btn_resolutionOption).setRawItems(new ListItem[] {
new ListItem(ListItem.TYPE_RADIO_OPTION, R.id.btn_resolutionLow, 0, R.string.ResolutionLow, R.id.btn_resolutionOption, resolutionOption == Settings.RESOLUTION_OPTION_LOW),
new ListItem(ListItem.TYPE_RADIO_OPTION, R.id.btn_resolutionMedium, 0, R.string.ResolutionMedium, R.id.btn_resolutionOption, resolutionOption == Settings.RESOLUTION_OPTION_MEDIUM),
new ListItem(ListItem.TYPE_RADIO_OPTION, R.id.btn_resolutionHigh, 0, R.string.ResolutionHigh, R.id.btn_resolutionOption, resolutionOption == Settings.RESOLUTION_OPTION_HIGH),
}).setAllowResize(false).addHeaderItem(Lang.getString(R.string.ResolutionDesc)).setIntDelegate((id, result) -> {
int newResolutionOption = Settings.instance().getResolutionOption();
int resolutionResult = result.get(R.id.btn_resolutionOption);
if (resolutionResult == R.id.btn_resolutionLow) {
newResolutionOption = Settings.RESOLUTION_OPTION_LOW;
} else if (resolutionResult == R.id.btn_resolutionMedium) {
newResolutionOption = Settings.RESOLUTION_OPTION_MEDIUM;
} else if (resolutionResult == R.id.btn_resolutionHigh) {
newResolutionOption = Settings.RESOLUTION_OPTION_HIGH;
}
Settings.instance().setResolutionOption(newResolutionOption);
adapter.updateValuedSettingById(R.id.btn_resolutionOption);
}));
}

/*private void showMarkdownOptions () {
int markdownOption = Settings.instance().getMarkdownMode();
showSettings(new SettingsWrapBuilder(R.id.btn_markdown).setRawItems(new SettingItem[]{
Expand Down
18 changes: 18 additions & 0 deletions app/src/main/java/org/thunderdog/challegram/unsorted/Settings.java
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@ public static Settings instance () {
private static final String KEY_CHAT_DO_NOT_TRANSLATE_LIST = "settings_chat_do_not_translate_list";
private static final String KEY_CHAT_TRANSLATE_RECENTS = "language_recents";
private static final String KEY_INSTANT_VIEW = "settings_iv_mode";
private static final String KEY_RESOLUTION_OPTION = "settings_resolution_options";
private static final String KEY_RESTRICT_CONTENT = "settings_restrict_content";
private static final String KEY_CAMERA_ASPECT_RATIO = "settings_camera_ratio";
private static final String KEY_CAMERA_TYPE = "settings_camera_type";
Expand Down Expand Up @@ -722,6 +723,11 @@ public void apply (boolean async) {
public static final int INSTANT_VIEW_MODE_INTERNAL = 1;
public static final int INSTANT_VIEW_MODE_ALL = 2;

public static final int RESOLUTION_OPTION_DEFAULT = 1;
public static final int RESOLUTION_OPTION_LOW = 0;
public static final int RESOLUTION_OPTION_MEDIUM = 1;
public static final int RESOLUTION_OPTION_HIGH = 2;

@Nullable
private Float _chatFontSize;

Expand Down Expand Up @@ -2546,6 +2552,18 @@ public void setInstantViewMode (int mode) {
}
}

public int getResolutionOption () {
return getInt(KEY_RESOLUTION_OPTION, RESOLUTION_OPTION_DEFAULT);
}

public void setResolutionOption (int option) {
if (option == RESOLUTION_OPTION_DEFAULT) {
remove(KEY_RESOLUTION_OPTION);
} else {
putInt(KEY_RESOLUTION_OPTION, option);
}
}

public int getStickerMode () {
if (_stickerMode == null)
_stickerMode = pmc.getInt(KEY_STICKER_MODE, STICKER_MODE_ALL);
Expand Down
7 changes: 7 additions & 0 deletions app/src/main/res/values/ids.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1269,4 +1269,11 @@
<item type="id" name="btn_themeExportSetAuthor" />

<item type="id" name="btn_featureToggles" />

<!-- RESOLUTION ID SECTION -->

<item type="id" name="btn_resolutionLow" />
<item type="id" name="btn_resolutionMedium" />
<item type="id" name="btn_resolutionHigh" />
<item type="id" name="btn_resolutionOption" />
</resources>
7 changes: 7 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4660,4 +4660,11 @@
<string name="DoNotTranslateLanguages_one">%1$s language</string>
<string name="DoNotTranslateLanguages_other">%1$s languages</string>

<!-- RESOLUTION STRING SECTION -->

<string name="ResolutionOption">Photo Resolution Selector</string>
<string name="ResolutionDesc">Resolution Selector (Experimental): Possible instability or app crashes.</string>
<string name="ResolutionLow">Low (800px)</string>
<string name="ResolutionMedium">Medium (1280px)</string>
<string name="ResolutionHigh">High (2560px)</string>
</resources>