Skip to content

Commit

Permalink
v0.2.0: Final commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Tianscar committed Sep 12, 2023
1 parent 369e5e3 commit b2d9b73
Show file tree
Hide file tree
Showing 59 changed files with 492 additions and 518 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Carbonized Pixel Dungeon
[![Discord](https://img.shields.io/discord/978644808102994020?style=for-the-badge&logo=discord)](https://discord.gg/24Bykt4YfJ)
![Code Size](https://img.shields.io/github/languages/code-size/AnsdoShip/carbonized-pixel-dungeon?style=for-the-badge)
![Latest Release Date](https://img.shields.io/github/release-date-pre/AnsdoShip/carbonized-pixel-dungeon?style=for-the-badge)
![Latest Release](https://img.shields.io/github/v/release/AnsdoShip/carbonized-pixel-dungeon?include_prereleases&style=for-the-badge)
![Code Size](https://img.shields.io/github/languages/code-size/Tianscar/carbonized-pixel-dungeon?style=for-the-badge)
![Latest Release Date](https://img.shields.io/github/release-date-pre/Tianscar/carbonized-pixel-dungeon?style=for-the-badge)
![Latest Release](https://img.shields.io/github/v/release/Tianscar/carbonized-pixel-dungeon?include_prereleases&style=for-the-badge)

A Roguelike RPG, with randomly generated levels, items, enemies, and traps! Based on the [source code of Shattered Pixel Dungeon](https://github.com/00-Evan/shattered-pixel-dungeon), by [ShatteredPixel](https://shatteredpixel.com).

Expand Down Expand Up @@ -56,4 +56,4 @@ Pixel Font (from Shattered Pixel Dungeon)
[IntelliJ IDEA](https://en.wikipedia.org/wiki/IntelliJ_IDEA) is an IDE that maximizes the productivity of developers in all aspects, and is suitable for JVM platform languages.

## License
[GPL-3.0](https://github.com/AnsdoShip/carbonized-pixel-dungeon/blob/main/LICENSE.txt) (c) AnsdoShip Studio
[GPL-3.0](https://github.com/Tianscar/carbonized-pixel-dungeon/blob/main/LICENSE.txt) (c) Karstian Lee
14 changes: 9 additions & 5 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,12 @@ android {
minSdkVersion appAndroidMinSDK
targetSdkVersion appAndroidTargetSDK

multiDexEnabled true

resConfigs "en_US", "cs", "tr", "ca", "ko", "pl", "it", "ja",
"eo", "ru", 'zh_CN', 'zh_TW', "de", "fr", "es", "pt", "fi", "hu", "in"

consumerProguardFiles "consumer-rules.pro"
}

buildTypes {
Expand All @@ -33,8 +37,8 @@ android {
//This makes release APKs smaller and more efficient, but also makes debugging trickier
//as the information produced in stack traces must be de-obfuscated.
//See here: https://developer.android.com/studio/build/shrink-code#decode-stack-trace
shrinkResources true
minifyEnabled true
shrinkResources false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
Expand All @@ -43,7 +47,7 @@ android {
applicationVariants.all { variant ->
if (variant.buildType.name == 'release') {
variant.outputs.all {
outputFileName = "carbonizedpd-android-${defaultConfig.versionName}.apk"
outputFileName = "carbonizedpd-${defaultConfig.versionName}-alpha-android.apk"
}
}
}
Expand All @@ -59,8 +63,8 @@ configurations { natives }

dependencies {
implementation project(':core')
implementation project(':services:updates')
implementation project(':services:news')

implementation 'androidx.multidex:multidex:2.0.1'

implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
Expand Down
Empty file added android/consumer-rules.pro
Empty file.
51 changes: 18 additions & 33 deletions android/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,36 +1,21 @@
# retain these to support class references for the bundling and translation systems
-keepnames class com.tianscar.** { *; }
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

# keep members of classes that are instantiated via reflection
-keepclassmembers class * extends com.tianscar.pixeldungeonclasses.glscripts.Script
-keepclassmembers class * implements com.tianscar.pixeldungeonclasses.utils.Bundlable
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

# retained to support meaningful stack traces
# note that the mapping file must be referenced in order to make sense of line numbers
# mapping file can be found in core/build/outputs/mapping after running a release build
-keepattributes SourceFile,LineNumberTable
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# libGDX stuff
-dontwarn android.support.**
-dontwarn com.badlogic.gdx.backends.android.AndroidFragmentApplication
-dontwarn com.badlogic.gdx.utils.GdxBuild
-dontwarn com.badlogic.gdx.physics.box2d.utils.Box2DBuild
-dontwarn com.badlogic.gdx.jnigen.BuildTarget*

# needed for libGDX skin reflection used in text fields. Perhaps just don't use skin?
-keepnames class com.badlogic.gdx.graphics.Color { *; }
-keepnames class com.badlogic.gdx.scenes.scene2d.ui.TextField$TextFieldStyle { *; }

-keepclassmembers class com.badlogic.gdx.backends.android.AndroidInput* {
<init>(com.badlogic.gdx.Application, android.content.Context, java.lang.Object, com.badlogic.gdx.backends.android.AndroidApplicationConfiguration);
}

-keepclassmembers class com.badlogic.gdx.physics.box2d.World {
boolean contactFilter(long, long);
void beginContact(long);
void endContact(long);
void preSolve(long, long);
void postSolve(long, long);
boolean reportFixture(long);
float reportRayFixture(long, float, float, float, float, float);
}
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
1 change: 1 addition & 0 deletions android/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
android:xlargeScreens="true"/>

<application
android:name="androidx.multidex.MultiDexApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,16 @@
import android.os.Build;
import android.os.Bundle;
import android.view.ViewConfiguration;

import com.badlogic.gdx.Files;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.badlogic.gdx.backends.android.AndroidAudio;
import com.badlogic.gdx.backends.android.AsynchronousAndroidAudio;
import com.tianscar.carbonizedpixeldungeon.PDSettings;
import com.tianscar.carbonizedpixeldungeon.CarbonizedPixelDungeon;
import com.tianscar.carbonizedpixeldungeon.PDSettings;
import com.tianscar.carbonizedpixeldungeon.services.news.CarbonizedNews;
import com.tianscar.carbonizedpixeldungeon.services.news.News;
import com.tianscar.carbonizedpixeldungeon.services.news.NewsImpl;
import com.tianscar.carbonizedpixeldungeon.services.updates.UpdateImpl;
import com.tianscar.carbonizedpixeldungeon.services.updates.CarbonizedUpdates;
import com.tianscar.carbonizedpixeldungeon.services.updates.Updates;
import com.tianscar.carbonizedpixeldungeon.ui.Button;
import com.tianscar.pixeldungeonclasses.noosa.Game;
Expand Down Expand Up @@ -69,12 +68,8 @@ protected void onCreate (Bundle savedInstanceState) {
Game.versionCode = 0;
}

if (UpdateImpl.supportsUpdates()) {
Updates.service = UpdateImpl.getUpdateService();
}
if (NewsImpl.supportsNews()) {
News.service = NewsImpl.getNewsService();
}
Updates.service = new CarbonizedUpdates();
News.service = new CarbonizedNews();

FileUtils.setDefaultFileProperties(Files.FileType.Local, "");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -202,11 +202,11 @@ public void setupFontGenerators(int pageSize, boolean systemfont) {
}
if (!systemfont) {
if (basicFontGenerator == null) {
basicFontGenerator = fallbackFontGenerator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/pixel_font.ttf"));
basicFontGenerator = fallbackFontGenerator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/pixel_font_latin1.ttf"));
}
else {
fallbackFontGenerator = basicFontGenerator;
basicFontGenerator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/pixel_font.ttf"));
basicFontGenerator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/pixel_font_latin1.ttf"));
}
}

Expand Down Expand Up @@ -288,7 +288,10 @@ public void setupFontGenerators(int pageSize, boolean systemfont) {
fallbackFontGenerator = JPFontGenerator;
break;
}
KRFontGenerator = SCFontGenerator = TCFontGenerator = JPFontGenerator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/fusion_pixel.ttf"));
KRFontGenerator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/fusion_pixel_kr.ttf"));
SCFontGenerator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/fusion_pixel_sc.ttf"));
TCFontGenerator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/fusion_pixel_tc.ttf"));
JPFontGenerator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/fusion_pixel_jp.ttf"));
}

if (basicFontGenerator != null) fonts.put(basicFontGenerator, new HashMap<>());
Expand All @@ -302,9 +305,9 @@ public void setupFontGenerators(int pageSize, boolean systemfont) {
packer = new PixmapPacker(pageSize, pageSize, Pixmap.Format.RGBA8888, 1, false);
}

private static Matcher KRMatcher = Pattern.compile("\\p{InHangul_Syllables}").matcher("");
private static Matcher CNMatcher = Pattern.compile("\\p{InCJK_Unified_Ideographs}|\\p{InCJK_Symbols_and_Punctuation}|\\p{InHalfwidth_and_Fullwidth_Forms}").matcher("");
private static Matcher JPMatcher = Pattern.compile("\\p{InHiragana}|\\p{InKatakana}").matcher("");
private static final Matcher KRMatcher = Pattern.compile("\\p{InHangul_Syllables}").matcher("");
private static final Matcher CNMatcher = Pattern.compile("\\p{InCJK_Unified_Ideographs}|\\p{InCJK_Symbols_and_Punctuation}|\\p{InHalfwidth_and_Fullwidth_Forms}").matcher("");
private static final Matcher JPMatcher = Pattern.compile("\\p{InHiragana}|\\p{InKatakana}").matcher("");

@Override
protected FreeTypeFontGenerator getGeneratorForString( String input ){
Expand All @@ -326,7 +329,7 @@ protected FreeTypeFontGenerator getGeneratorForString( String input ){
}

//splits on each non-hangul character. Needed for weird android 6.0 font files
private static Pattern android6KRSplitter = Pattern.compile(
private static final Pattern android6KRSplitter = Pattern.compile(
"(?<= )|(?= )|(?<=\n)|(?=\n)|(?<=_)|(?=_)|(?<=\\\\)|(?=\\\\)|" +
"(?!\\p{InHangul_Syllables})|(?<!\\p{InHangul_Syllables})");

Expand Down Expand Up @@ -356,4 +359,19 @@ public boolean isDesktop() {
return false;
}

@Override
public String getAppName() {
return AndroidGame.instance.getString(R.string.app_name);
}

@Override
public void setTitle(String title) {
Gdx.app.postRunnable(new Runnable() {
@Override
public void run() {
AndroidGame.instance.setTitle(title);
}
});
}

}
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ allprojects {
ext {
appPackageName = 'com.tianscar.carbonizedpixeldungeon'

appVersionCode = 106
appVersionName = '0.1.6'
appVersionCode = 110
appVersionName = '0.2.0'

appJavaCompatibility = JavaVersion.VERSION_1_8

Expand Down
2 changes: 0 additions & 2 deletions core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,4 @@ sourceCompatibility = targetCompatibility = appJavaCompatibility

dependencies {
api project(':engine')//TODO might be nice to remove this, should decide
implementation project(':services:updates')
implementation project(':services:news')
}
Binary file removed core/src/main/assets/fonts/fusion_pixel.ttf
Binary file not shown.
Binary file added core/src/main/assets/fonts/fusion_pixel_jp.ttf
Binary file not shown.
Binary file added core/src/main/assets/fonts/fusion_pixel_kr.ttf
Binary file not shown.
Binary file added core/src/main/assets/fonts/fusion_pixel_sc.ttf
Binary file not shown.
Binary file added core/src/main/assets/fonts/fusion_pixel_tc.ttf
Binary file not shown.
File renamed without changes
File renamed without changes.
Binary file modified core/src/main/assets/interfaces/toolbar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion core/src/main/assets/messages/scenes/scenes.properties
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,8 @@ scenes.welcomescene.patch_bugfixes=This patch contains bugfixes.
scenes.welcomescene.patch_translations=This patch contains translation updates.
scenes.welcomescene.patch_balance=This patch contains tweaks to game balance.
scenes.welcomescene.patch_contents=This patch contains new game contents.
scenes.welcomescene.patch_msg=This patch also contains some small tweaks and performance improvements.
scenes.welcomescene.patch_tweaks=This patch contains some small tweaks.
scenes.welcomescene.patch_performance=This patch also contains some performance improvements.
scenes.welcomescene.what_msg=It seems that your current saves are from a future version of Shattered Pixel Dungeon!\n\nTread with caution! Your saves may contain things which don't exist in this version, this could cause some very weird errors to occur.
scenes.welcomescene.lang_warning_title=Incomplete Translation
scenes.welcomescene.lang_warning_msg=Some of the new content from this update has not yet been translated.\n\nSome phrases may be written in English.\n\nThe translation teams are working to resolve this and a full translation should be patched in soon.\n\nThank you for your patience.
Expand Down
3 changes: 2 additions & 1 deletion core/src/main/assets/messages/scenes/scenes_tc.properties
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,8 @@ scenes.welcomescene.patch_bugfixes=本次更新包含少量Bug修復。
scenes.welcomescene.patch_translations=本次更新包含翻譯文本更新。
scenes.welcomescene.patch_balance=本次更新包含遊戲平衡性改動。
scenes.welcomescene.patch_contents=本次更新包含新的遊戲內容。
scenes.welcomescene.patch_msg=本次更新同樣包含少量微調和性能最佳化。
scenes.welcomescene.patch_tweaks=本次更新包含少量微調。
scenes.welcomescene.patch_performance=本次更新同樣包含性能最佳化。
scenes.welcomescene.what_msg=看起來你正使用的存檔來自於新版本的破碎地牢!\n\n謹慎行事!你的存檔可能包含一些這個版本中不存在的東西,這可能會導致一些非常奇怪的錯誤發生。
scenes.welcomescene.lang_warning_title=翻譯未完成
scenes.welcomescene.lang_warning_msg=本次更新內容還未被完全翻譯。\n\n部分詞彙可能還是英語。\n\n翻譯組正全力解決這個問題,完整翻譯將在不久後放出。\n\n謝謝您的耐心等待。
Expand Down
3 changes: 2 additions & 1 deletion core/src/main/assets/messages/scenes/scenes_zh.properties
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,8 @@ scenes.welcomescene.patch_bugfixes=本次更新包含少量Bug修复。
scenes.welcomescene.patch_translations=本次更新包含翻译文本更新。
scenes.welcomescene.patch_balance=本次更新包含游戏平衡性改动。
scenes.welcomescene.patch_contents=本次更新包含新的游戏内容。
scenes.welcomescene.patch_msg=本次更新同样包含少量微调和性能优化。
scenes.welcomescene.patch_tweaks=本次更新包含少量微调。
scenes.welcomescene.patch_performance=本次更新同样包含性能优化。
scenes.welcomescene.what_msg=看起来你正使用的存档来自于新版本的破碎地牢!\n\n谨慎行事!你的存档可能包含一些这个版本中不存在的东西,这可能会导致一些非常奇怪的错误发生。
scenes.welcomescene.lang_warning_title=翻译未完成
scenes.welcomescene.lang_warning_msg=本次更新内容还未被完全翻译。\n\n部分词汇可能还是英语。\n\n翻译组正全力解决这个问题,完整翻译将在不久后放出。\n\n谢谢您的耐心等待。
Expand Down
4 changes: 2 additions & 2 deletions core/src/main/assets/messages/windows/windows_tc.properties
Original file line number Diff line number Diff line change
Expand Up @@ -261,8 +261,8 @@ windows.wndfeedback.intro=我不會為了廣告費而讓碳素地牢沾上任何
windows.wndfeedback.intro_ingame=歡迎~希望您能在碳素地牢中玩得開心!
windows.wndfeedback.sponsor_msg=如果您喜歡玩碳素地牢並且希望幫助我持續地開發它,請考慮考慮提供經濟上的支持吧!有了足夠的經濟支持,我才能夠不至於因為生活所迫而無法保持穩定更新!
windows.wndfeedback.sponsor_link=贊助頁面
windows.wndfeedback.feedback_msg=如果您在遊玩過程中發現任何Bug,或者對碳素地牢有什麼意見或建議,可以在GitHub發布issue、發郵件到tianscar@protonmail.com或者加入Discord頻道來進行回饋
windows.wndfeedback.feedback_msg_pr=也歡迎提交PR
windows.wndfeedback.feedback_msg=如果您在遊玩過程中發現任何 Bug,或者對碳素地牢有什麼意見或建議,可以在 GitHub 發布 issue、發郵件到 tianscar@protonmail.com 或者加入 Discord 頻道來進行回饋
windows.wndfeedback.feedback_msg_pr=也歡迎提交 PR
windows.wndfeedback.thanks=感謝您遊玩碳素地牢!祝地牢探險愉快!
windows.wndfeedback.close=關閉
windows.wndfeedback.discord_link=加入Discord頻道
Expand Down
4 changes: 2 additions & 2 deletions core/src/main/assets/messages/windows/windows_zh.properties
Original file line number Diff line number Diff line change
Expand Up @@ -261,8 +261,8 @@ windows.wndfeedback.intro=我不会为了广告费而让碳素地牢沾上任何
windows.wndfeedback.intro_ingame=欢迎~希望您能在碳素地牢中玩得开心!
windows.wndfeedback.sponsor_msg=如果您喜欢玩碳素地牢并且希望帮助我持续地开发它,请考虑考虑提供经济上的支持吧!有了足够的经济支持,我才能够不至于因为生活所迫而无法保持稳定更新!
windows.wndfeedback.sponsor_link=赞助页面
windows.wndfeedback.feedback_msg=如果您在游玩过程中发现任何Bug,或者对碳素地牢有什么意见或建议,可以在GitHub发布issue、发邮件到tianscar@protonmail.com或者加入Discord频道来进行反馈
windows.wndfeedback.feedback_msg_pr=也欢迎提交PR
windows.wndfeedback.feedback_msg=如果您在游玩过程中发现任何 Bug,或者对碳素地牢有什么意见或建议,可以在 GitHub 发布 issue、发邮件到 tianscar@protonmail.com 或者加入 Discord 频道来进行反馈
windows.wndfeedback.feedback_msg_pr=也欢迎提交 PR
windows.wndfeedback.thanks=感谢您游玩碳素地牢!祝地牢探险愉快!
windows.wndfeedback.close=关闭
windows.wndfeedback.discord_link=加入Discord频道
Expand Down
Binary file added core/src/main/assets/sounds/voi_nothing.mp3
Binary file not shown.
Binary file added core/src/main/assets/sounds/voi_thanks.mp3
Binary file not shown.
Binary file modified core/src/main/assets/sprites/items.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public static class Environment {

//TODO include other font assets here? Some are platform specific though...
public static class Fonts {
public static final String PIXELFONT= "fonts/pixel_font.png";
public static final String PIXELFONT= "fonts/pixel_font_ascii.png";
}

public static class Interfaces {
Expand Down Expand Up @@ -242,7 +242,9 @@ public static class Sounds {
public static final String SCAN = "sounds/scan.mp3";
public static final String SHEEP = "sounds/sheep.mp3";

public static final String VOI_RELOADED = "sounds/voi_reloaded.mp3";
public static final String VOI_RELOADED = "sounds/voi_reloaded.mp3";
public static final String VOI_THANKS = "sounds/voi_thanks.mp3";
public static final String VOI_NOTHING = "sounds/voi_nothing.mp3";

public static final String[] all = new String[]{
CLICK, BADGE, GOLD,
Expand All @@ -257,7 +259,7 @@ public static class Sounds {
TELEPORT, CHARMS, MASTERY, PUFF, ROCKS, BURNING, FALLING, GHOST, SECRET, BONES,
BEE, DEGRADE, MIMIC, DEBUFF, CHARGEUP, GAS, CHAINS, SCAN, SHEEP,

VOI_RELOADED
VOI_RELOADED, VOI_THANKS, VOI_NOTHING
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,13 +165,13 @@ protected void switchScene() {

@Override
public void resize( int width, int height ) {
if (width == 0 || height == 0){
if (width == 0 || height == 0) {
return;
}

if (scene instanceof PixelScene &&
(height != Game.height || width != Game.width)) {
PixelScene.noFade = true;
//PixelScene.noFade = true;
((PixelScene) scene).saveWindows();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import com.tianscar.carbonizedpixeldungeon.ui.changelist.carbonizedpd.v0_1_X_Changes;
import com.tianscar.carbonizedpixeldungeon.ui.changelist.ChangeInfo;
import com.tianscar.carbonizedpixeldungeon.ui.changelist.ChangeSelection;
import com.tianscar.carbonizedpixeldungeon.ui.changelist.carbonizedpd.v0_2_X_Changes;
import com.tianscar.pixeldungeonclasses.noosa.Camera;
import com.tianscar.pixeldungeonclasses.noosa.NinePatch;
import com.tianscar.pixeldungeonclasses.noosa.audio.Music;
Expand Down Expand Up @@ -83,6 +84,7 @@ public void create() {

switch (changesSelected){
case 0: default:
v0_2_X_Changes.addAllChanges(changeInfos);
v0_1_X_Changes.addAllChanges(changeInfos);
break;
}
Expand Down Expand Up @@ -156,7 +158,7 @@ public void onClick() {
if (content.height() <= list.height()) list.scrollTo(0, 0);
else list.scrollTo(0, fromChangesScene ? posY - list.height() : 0);

StyledButton btnBeta = new StyledButton(Chrome.Type.TOAST, "0.1.X") {
StyledButton btnBeta = new StyledButton(Chrome.Type.TOAST, "0.2-0.1") {
@Override
protected void onClick() {
super.onClick();
Expand Down
Loading

0 comments on commit b2d9b73

Please sign in to comment.