diff --git a/app/src/main/assets/about_en.txt b/app/src/main/assets/about_en.txt
index 2192437cc..9ba1bba9a 100644
--- a/app/src/main/assets/about_en.txt
+++ b/app/src/main/assets/about_en.txt
@@ -21,3 +21,6 @@
* Notes:
- This app is under development and will not be stable.
- This app is not affiliated with Minecraft, Mojang or Microsoft.
+
+%s
+
diff --git a/app/src/main/java/android/support/design/widget/VerticalTabLayout.java b/app/src/main/java/android/support/design/widget/VerticalTabLayout.java
index cf6159ba6..aef9fd140 100644
--- a/app/src/main/java/android/support/design/widget/VerticalTabLayout.java
+++ b/app/src/main/java/android/support/design/widget/VerticalTabLayout.java
@@ -1422,7 +1422,7 @@ public class VerticalTabLayout extends LinearLayout {
if (mParent == null) {
throw new IllegalArgumentException("Tab not attached to a TabLayout");
}
- return setIcon(AppCompatResources.getDrawable(mParent.getContext(), resId));
+ return setIcon(resId == 0 ? null : AppCompatResources.getDrawable(mParent.getContext(), resId));
}
/**
diff --git a/app/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java b/app/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java
index 89685c01b..59b754333 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java
@@ -1,8 +1,17 @@
package net.kdt.pojavlaunch;
+import android.content.*;
+import android.support.v4.app.*;
import android.support.v7.app.*;
+import android.text.*;
+import android.view.*;
import android.widget.*;
+import com.kdt.filerapi.*;
+import java.io.*;
+import java.util.*;
+import net.kdt.pojavlaunch.*;
import net.kdt.pojavlaunch.fragments.*;
+import net.kdt.pojavlaunch.prefs.*;
import net.kdt.pojavlaunch.tasks.*;
public abstract class BaseLauncherActivity extends BaseActivity {
@@ -21,4 +30,89 @@ public abstract class BaseLauncherActivity extends BaseActivity {
public boolean mIsAssetsProcessing = false;
public abstract void statusIsLaunching(boolean isLaunching);
+
+ public void launcherMenu(View view)
+ {
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle(R.string.mcl_options);
+ builder.setItems(R.array.mcl_options, new DialogInterface.OnClickListener(){
+
+ @Override
+ public void onClick(DialogInterface p1, int p2)
+ {
+ switch (p2) {
+ case 0: // Mod installer
+ installMod(false);
+ break;
+ case 1: // Mod installer with java args
+ installMod(true);
+ break;
+ case 2: // Custom controls
+ if (Tools.enableDevFeatures) {
+ startActivity(new Intent(BaseLauncherActivity.this, CustomControlsActivity.class));
+ }
+ break;
+ case 3: // Settings
+ startActivity(new Intent(BaseLauncherActivity.this, LauncherPreferenceActivity.class));
+ break;
+ case 4: { // About
+ final AlertDialog.Builder aboutB = new AlertDialog.Builder(BaseLauncherActivity.this);
+ aboutB.setTitle(R.string.mcl_option_about);
+ try
+ {
+ aboutB.setMessage(Html.fromHtml(String.format(Tools.read(getAssets().open("about_en.txt")),
+ Tools.APP_NAME,
+ Tools.usingVerName,
+ "3.2.3", getString(R.string.mcl_about_translated_by))
+ ));
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ aboutB.setPositiveButton(android.R.string.ok, null);
+ aboutB.show();
+ } break;
+ }
+ }
+ });
+ builder.show();
+ }
+
+ private void installMod(boolean customJavaArgs) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle(R.string.alerttitle_installmod);
+ builder.setNegativeButton(android.R.string.cancel, null);
+
+ final AlertDialog dialog;
+ if (customJavaArgs) {
+ final EditText edit = new EditText(this);
+ edit.setSingleLine();
+ edit.setHint("-jar/-cp /path/to/file.jar ...");
+ builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){
+ @Override
+ public void onClick(DialogInterface di, int i) {
+ Intent intent = new Intent(BaseLauncherActivity.this, JavaGUILauncherActivity.class);
+ intent.putExtra("javaArgs", edit.getText().toString());
+ startActivity(intent);
+ }
+ });
+ dialog = builder.create();
+ dialog.setView(edit);
+ } else {
+ dialog = builder.create();
+ FileListView flv = new FileListView(dialog);
+ flv.setFileSelectedListener(new FileSelectedListener(){
+ @Override
+ public void onFileSelected(File file, String path) {
+ if (file.getName().endsWith(".jar")) {
+ Intent intent = new Intent(BaseLauncherActivity.this, JavaGUILauncherActivity.class);
+ intent.putExtra("modFile", file);
+ startActivity(intent);
+ dialog.dismiss();
+ }
+ }
+ });
+ dialog.setView(flv);
+ }
+ dialog.show();
+ }
}
diff --git a/app/src/main/java/net/kdt/pojavlaunch/CustomCtrlMainActivity.java b/app/src/main/java/net/kdt/pojavlaunch/CustomCtrlMainActivity.java
index 40a84a026..5dab062bb 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/CustomCtrlMainActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/CustomCtrlMainActivity.java
@@ -77,6 +77,7 @@ public class CustomCtrlMainActivity extends BaseMainActivity implements OnClickL
if (view instanceof ControlButton) {
ControlButton button = (ControlButton) view;
+ appendToLog("Debug: touch special btn " + button.getProperties().keycode);
switch (button.getProperties().keycode) {
case ControlData.SPECIALBTN_MOUSEPRI:
sendMouseButton(LWJGLGLFWKeycode.GLFW_MOUSE_BUTTON_LEFT, isDown);
diff --git a/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java b/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java
index adfe44381..bde6c7118 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java
@@ -30,6 +30,9 @@ import android.support.v4.app.FragmentManager;
import android.app.*;
import org.apache.commons.io.*;
import net.kdt.pojavlaunch.tasks.*;
+
+import android.support.design.widget.VerticalTabLayout.*;
+
//import android.support.v7.view.menu.*;
//import net.zhuoweizhang.boardwalk.downloader.*;
@@ -87,15 +90,15 @@ public class MCLauncherActivity extends BaseLauncherActivity
viewPageAdapter = new ViewPagerAdapter(getSupportFragmentManager());
- viewPageAdapter.addFragment(new LauncherFragment(), getStr(R.string.mcl_tab_news));
- viewPageAdapter.addFragment(mConsoleView, getStr(R.string.mcl_tab_console));
- viewPageAdapter.addFragment(mCrashView, getStr(R.string.mcl_tab_crash));
+ viewPageAdapter.addFragment(new LauncherFragment(), 0, getStr(R.string.mcl_tab_news));
+ viewPageAdapter.addFragment(mConsoleView, 0, getStr(R.string.mcl_tab_console));
+ viewPageAdapter.addFragment(mCrashView, 0, getStr(R.string.mcl_tab_crash));
viewPager.setAdapter(viewPageAdapter);
tabLayout.setupWithViewPager(viewPager);
- tvUsernameView = (TextView) findId(R.id.launcherMainUsernameView);
- mTextVersion = (TextView) findId(R.id.launcherMainVersionView);
+ tvUsernameView = (TextView) findViewById(R.id.launcherMainUsernameView);
+ mTextVersion = (TextView) findViewById(R.id.launcherMainVersionView);
try {
profilePath = PojavProfile.getCurrentProfilePath(this);
@@ -155,18 +158,18 @@ public class MCLauncherActivity extends BaseLauncherActivity
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, mAvailableVersions);
adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice);
- mVersionSelector = (Spinner) findId(R.id.launcherMainSelectVersion);
+ mVersionSelector = (Spinner) findViewById(R.id.launcherMainSelectVersion);
mVersionSelector.setAdapter(adapter);
- mLaunchProgress = (ProgressBar) findId(R.id.progressDownloadBar);
- mLaunchTextStatus = (TextView) findId(R.id.progressDownloadText);
- LinearLayout exitLayout = (LinearLayout) findId(R.id.launcherMainExitbtns);
+ mLaunchProgress = (ProgressBar) findViewById(R.id.progressDownloadBar);
+ mLaunchTextStatus = (TextView) findViewById(R.id.progressDownloadText);
+ LinearLayout exitLayout = (LinearLayout) findViewById(R.id.launcherMainExitbtns);
switchUsrBtn = (Button) exitLayout.getChildAt(0);
logoutBtn = (Button) exitLayout.getChildAt(1);
- leftView = (LinearLayout) findId(R.id.launcherMainLeftLayout);
- mPlayButton = (Button) findId(R.id.launcherMainPlayButton);
- rightView = (ViewGroup) findId(R.id.launcherMainRightLayout);
+ leftView = (LinearLayout) findViewById(R.id.launcherMainLeftLayout);
+ mPlayButton = (Button) findViewById(R.id.launcherMainPlayButton);
+ rightView = (ViewGroup) findViewById(R.id.launcherMainRightLayout);
statusIsLaunching(false);
}
@@ -326,136 +329,4 @@ public class MCLauncherActivity extends BaseLauncherActivity
mCrashView.resetCrashLog = true;
}
}
-
-
-
- public View findId(int id)
- {
- return findViewById(id);
- }
-
- public void launcherMenu(View view)
- {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(R.string.mcl_options);
- builder.setItems(R.array.mcl_options, new DialogInterface.OnClickListener(){
-
- @Override
- public void onClick(DialogInterface p1, int p2)
- {
- switch (p2) {
- case 0: // Mod installer
- installMod(false);
- break;
- case 1: // Mod installer with java args
- installMod(true);
- break;
- case 2: // Custom controls
- if (Tools.enableDevFeatures) {
- startActivity(new Intent(MCLauncherActivity.this, CustomControlsActivity.class));
- }
- break;
- case 3: // Settings
- startActivity(new Intent(MCLauncherActivity.this, LauncherPreferenceActivity.class));
- break;
- case 4: { // About
- final AlertDialog.Builder aboutB = new AlertDialog.Builder(MCLauncherActivity.this);
- aboutB.setTitle(R.string.mcl_option_about);
- try
- {
- aboutB.setMessage(Html.fromHtml(String.format(Tools.read(getAssets().open("about_en.txt")),
- Tools.APP_NAME,
- Tools.usingVerName,
- "3.2.3")
- ));
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- aboutB.setPositiveButton(android.R.string.ok, null);
- aboutB.show();
- } break;
- }
- }
- });
- builder.show();
- }
-
- private void installMod(boolean customJavaArgs) {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(R.string.alerttitle_installmod);
- builder.setNegativeButton(android.R.string.cancel, null);
-
- final AlertDialog dialog;
- if (customJavaArgs) {
- final EditText edit = new EditText(this);
- edit.setSingleLine();
- edit.setHint("-jar/-cp /path/to/file.jar ...");
- builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){
- @Override
- public void onClick(DialogInterface di, int i) {
- Intent intent = new Intent(MCLauncherActivity.this, JavaGUILauncherActivity.class);
- intent.putExtra("javaArgs", edit.getText().toString());
- startActivity(intent);
- }
- });
- dialog = builder.create();
- dialog.setView(edit);
- } else {
- dialog = builder.create();
- FileListView flv = new FileListView(dialog);
- flv.setFileSelectedListener(new FileSelectedListener(){
- @Override
- public void onFileSelected(File file, String path) {
- if (file.getName().endsWith(".jar")) {
- Intent intent = new Intent(MCLauncherActivity.this, JavaGUILauncherActivity.class);
- intent.putExtra("modFile", file);
- startActivity(intent);
- dialog.dismiss();
- }
- }
- });
- dialog.setView(flv);
- }
- dialog.show();
- }
-
- private class ViewPagerAdapter extends FragmentPagerAdapter {
-
- List fragmentList = new ArrayList<>();
- List fragmentTitles = new ArrayList<>();
-
- public ViewPagerAdapter(FragmentManager fragmentManager) {
- super(fragmentManager);
- }
-
- @Override
- public Fragment getItem(int position) {
- return fragmentList.get(position);
- }
-
- @Override
- public int getCount() {
- return fragmentList.size();
- }
-
- @Override
- public CharSequence getPageTitle(int position) {
- return fragmentTitles.get(position);
- }
-
- public void addFragment(Fragment fragment, String name) {
- fragmentList.add(fragment);
- fragmentTitles.add(name);
- }
-
- public void setFragment(int index, Fragment fragment, String name) {
- fragmentList.set(index, fragment);
- fragmentTitles.set(index, name);
- }
-
- public void removeFragment(int index) {
- fragmentList.remove(index);
- fragmentTitles.remove(index);
- }
- }
}
diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java b/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java
index adb617c67..940736a6e 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java
@@ -349,90 +349,4 @@ public class PojavLauncherActivity extends BaseLauncherActivity
mCrashView.resetCrashLog = true;
}
}
-
- public void launcherMenu(View view)
- {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(R.string.mcl_options);
- builder.setItems(R.array.mcl_options, new DialogInterface.OnClickListener(){
-
- @Override
- public void onClick(DialogInterface p1, int p2)
- {
- switch (p2) {
- case 0: // Mod installer
- installMod(false);
- break;
- case 1: // Mod installer with java args
- installMod(true);
- break;
- case 2: // Custom controls
- if (Tools.enableDevFeatures) {
- startActivity(new Intent(PojavLauncherActivity.this, CustomControlsActivity.class));
- }
- break;
- case 3: // Settings
- startActivity(new Intent(PojavLauncherActivity.this, LauncherPreferenceActivity.class));
- break;
- case 4: { // About
- final AlertDialog.Builder aboutB = new AlertDialog.Builder(PojavLauncherActivity.this);
- aboutB.setTitle(R.string.mcl_option_about);
- try
- {
- aboutB.setMessage(Html.fromHtml(String.format(Tools.read(getAssets().open("about_en.txt")),
- Tools.APP_NAME,
- Tools.usingVerName,
- "3.2.3")
- ));
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- aboutB.setPositiveButton(android.R.string.ok, null);
- aboutB.show();
- } break;
- }
- }
- });
- builder.show();
- }
-
- private void installMod(boolean customJavaArgs) {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(R.string.alerttitle_installmod);
- builder.setNegativeButton(android.R.string.cancel, null);
-
- final AlertDialog dialog;
- if (customJavaArgs) {
- final EditText edit = new EditText(this);
- edit.setSingleLine();
- edit.setHint("-jar/-cp /path/to/file.jar ...");
- builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){
- @Override
- public void onClick(DialogInterface di, int i) {
- Intent intent = new Intent(PojavLauncherActivity.this, JavaGUILauncherActivity.class);
- intent.putExtra("javaArgs", edit.getText().toString());
- startActivity(intent);
- }
- });
- dialog = builder.create();
- dialog.setView(edit);
- } else {
- dialog = builder.create();
- FileListView flv = new FileListView(dialog);
- flv.setFileSelectedListener(new FileSelectedListener(){
-
- @Override
- public void onFileSelected(File file, String path) {
- if (file.getName().endsWith(".jar")) {
- Intent intent = new Intent(PojavLauncherActivity.this, JavaGUILauncherActivity.class);
- intent.putExtra("modFile", file);
- startActivity(intent);
- dialog.dismiss();
- }
- }
- });
- dialog.setView(flv);
- }
- dialog.show();
- }
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 201266e0d..5976944cb 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -109,6 +109,9 @@
Old-alpha
Old-beta
+
+ "Translated by: "
+
Clone
@@ -202,9 +205,6 @@
Select default Control json
-
- Update console
-
Options
Play
Welcome,