From 95af5045c8d5744bc607d4e4c3a80fc9ac9e7f3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BC=D0=B1=D0=B5=D1=82=D0=BE=D0=B2=20=D0=91?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D1=83=D1=80?= Date: Mon, 22 May 2017 15:40:00 +0300 Subject: [PATCH] Latest java part --- build/android/build.gradle | 10 +- build/android/src/main/AndroidManifest.xml | 3 +- .../java/mobi/MultiCraft/FireIDService.java | 13 + .../java/mobi/MultiCraft/FireMsgService.java | 40 ++ .../java/mobi/MultiCraft/GameActivity.java | 6 +- .../mobi/MultiCraft/InputDialogActivity.java | 3 +- .../java/mobi/MultiCraft/MainActivity.java | 399 +++++++++--------- .../mobi/MultiCraft/PermissionManager.java | 16 +- .../mobi/MultiCraft/PreferencesHelper.java | 36 +- .../src/main/java/mobi/MultiCraft/RateMe.java | 20 +- .../java/mobi/MultiCraft/UnzipService.java | 4 +- .../java/mobi/MultiCraft/WVersionManager.java | 249 ++++++----- .../main/res/drawable-xhdpi/ic_launcher.png | Bin 17245 -> 26183 bytes .../main/res/drawable/custom_progress_bar.xml | 26 +- build/android/src/main/res/drawable/logo.png | Bin 25475 -> 26043 bytes .../src/main/res/layout/activity_main.xml | 56 +-- .../layout/{dialog.xml => input_dialog.xml} | 0 .../{rate_layout.xml => rate_dialog.xml} | 1 - .../src/main/res/values-ru/strings.xml | 4 +- .../src/main/res/values-v21/styles.xml | 2 +- build/android/src/main/res/values/strings.xml | 9 +- build/android/src/main/res/values/styles.xml | 6 + 22 files changed, 486 insertions(+), 417 deletions(-) create mode 100644 build/android/src/main/java/mobi/MultiCraft/FireIDService.java create mode 100644 build/android/src/main/java/mobi/MultiCraft/FireMsgService.java rename build/android/src/main/res/layout/{dialog.xml => input_dialog.xml} (100%) rename build/android/src/main/res/layout/{rate_layout.xml => rate_dialog.xml} (96%) diff --git a/build/android/build.gradle b/build/android/build.gradle index b85045401..80f0ce64d 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -3,7 +3,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.2' + classpath 'com.android.tools.build:gradle:2.3.2' } } @@ -20,13 +20,13 @@ task clean(type: Delete) { apply plugin: 'com.android.application' android { - compileSdkVersion 24 - buildToolsVersion "24.0.3" + compileSdkVersion 25 + buildToolsVersion "25.0.3" defaultConfig { applicationId "mobi.MultiCraft" minSdkVersion 16 - targetSdkVersion 24 + targetSdkVersion 25 } Properties props = new Properties() props.load(new FileInputStream(file("local.properties"))) @@ -50,5 +50,5 @@ android { } dependencies { - compile 'com.android.support:support-v4:24.2.0' + compile 'com.android.support:support-v4:25.3.1' } \ No newline at end of file diff --git a/build/android/src/main/AndroidManifest.xml b/build/android/src/main/AndroidManifest.xml index 12c46482a..f851a6c47 100644 --- a/build/android/src/main/AndroidManifest.xml +++ b/build/android/src/main/AndroidManifest.xml @@ -2,11 +2,10 @@ - diff --git a/build/android/src/main/java/mobi/MultiCraft/FireIDService.java b/build/android/src/main/java/mobi/MultiCraft/FireIDService.java new file mode 100644 index 000000000..4de7dfdce --- /dev/null +++ b/build/android/src/main/java/mobi/MultiCraft/FireIDService.java @@ -0,0 +1,13 @@ +package mobi.MultiCraft; + +import com.google.firebase.iid.FirebaseInstanceId; +import com.google.firebase.iid.FirebaseInstanceIdService; + +public class FireIDService extends FirebaseInstanceIdService { + + @Override + public void onTokenRefresh() { + String tkn = FirebaseInstanceId.getInstance().getToken(); +// Log.d("App", "Token [" + tkn + "]"); + } +} diff --git a/build/android/src/main/java/mobi/MultiCraft/FireMsgService.java b/build/android/src/main/java/mobi/MultiCraft/FireMsgService.java new file mode 100644 index 000000000..ce7c817c0 --- /dev/null +++ b/build/android/src/main/java/mobi/MultiCraft/FireMsgService.java @@ -0,0 +1,40 @@ +package mobi.MultiCraft; + +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.media.RingtoneManager; +import android.net.Uri; +import android.support.v4.app.NotificationCompat; + +import com.google.firebase.messaging.FirebaseMessagingService; +import com.google.firebase.messaging.RemoteMessage; + +public class FireMsgService extends FirebaseMessagingService { + + @Override + public void onMessageReceived(RemoteMessage remoteMessage) { + super.onMessageReceived(remoteMessage); + + // Create Notification + Intent intent = new Intent(this, MainActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + PendingIntent pendingIntent = PendingIntent.getActivity(this, 1410, intent, + PendingIntent.FLAG_ONE_SHOT); + + Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); + NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) + .setSmallIcon(R.drawable.update) + .setContentTitle(getString(R.string.message)) + .setSound(uri) + .setContentText(remoteMessage.getNotification().getBody()) + .setAutoCancel(true) + .setContentIntent(pendingIntent); + + NotificationManager notificationManager = + (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + + notificationManager.notify(1410, notificationBuilder.build()); + } +} diff --git a/build/android/src/main/java/mobi/MultiCraft/GameActivity.java b/build/android/src/main/java/mobi/MultiCraft/GameActivity.java index 14cf8b08b..b12a75990 100644 --- a/build/android/src/main/java/mobi/MultiCraft/GameActivity.java +++ b/build/android/src/main/java/mobi/MultiCraft/GameActivity.java @@ -21,7 +21,8 @@ public class GameActivity extends NativeActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); -// startAd(this, true); +// if (!isAdsDisabled()) +// startAd(this, true); messageReturnCode = -1; messageReturnValue = ""; makeFullScreen(); @@ -47,7 +48,8 @@ public class GameActivity extends NativeActivity { @Override protected void onRestart() { super.onRestart(); -// startAd(this, false); +// if (!isAdsDisabled()) +// startAd(this, false); } @Override diff --git a/build/android/src/main/java/mobi/MultiCraft/InputDialogActivity.java b/build/android/src/main/java/mobi/MultiCraft/InputDialogActivity.java index 25556bfb0..5311ab2eb 100644 --- a/build/android/src/main/java/mobi/MultiCraft/InputDialogActivity.java +++ b/build/android/src/main/java/mobi/MultiCraft/InputDialogActivity.java @@ -16,7 +16,6 @@ import android.view.View.OnKeyListener; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; - public class InputDialogActivity extends Activity { private AlertDialog alertDialog; @@ -28,7 +27,7 @@ public class InputDialogActivity extends Activity { int editType = b.getInt("editType"); final AlertDialog.Builder builder = new AlertDialog.Builder(this); LayoutInflater inflater = this.getLayoutInflater(); - View dialogView = inflater.inflate(R.layout.dialog, null); + View dialogView = inflater.inflate(R.layout.input_dialog, null); builder.setView(dialogView); final EditText editText = (EditText) dialogView.findViewById(R.id.editText); final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); diff --git a/build/android/src/main/java/mobi/MultiCraft/MainActivity.java b/build/android/src/main/java/mobi/MultiCraft/MainActivity.java index a1bab43bf..6d2beafa7 100644 --- a/build/android/src/main/java/mobi/MultiCraft/MainActivity.java +++ b/build/android/src/main/java/mobi/MultiCraft/MainActivity.java @@ -1,7 +1,6 @@ package mobi.MultiCraft; import android.Manifest; -import android.annotation.SuppressLint; import android.app.Activity; import android.app.ProgressDialog; import android.content.BroadcastReceiver; @@ -10,18 +9,20 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; -import android.net.ConnectivityManager; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; import android.os.Environment; -import android.os.StatFs; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; import android.util.Log; import android.view.View; import android.view.WindowManager; +import android.widget.ImageView; import android.widget.ProgressBar; +import android.widget.RelativeLayout; +import android.widget.TextView; import android.widget.Toast; import java.io.File; @@ -32,34 +33,34 @@ import java.io.OutputStream; import java.util.Arrays; import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE; -import static mobi.MultiCraft.PermissionManager.permissionsRejected; -import static mobi.MultiCraft.PermissionManager.permissionsToRequest; import static mobi.MultiCraft.PreferencesHelper.TAG_BUILD_NUMBER; import static mobi.MultiCraft.PreferencesHelper.TAG_LAUNCH_TIMES; -import static mobi.MultiCraft.PreferencesHelper.TAG_SHORTCUT_CREATED; import static mobi.MultiCraft.PreferencesHelper.getBuildNumber; import static mobi.MultiCraft.PreferencesHelper.getLaunchTimes; -import static mobi.MultiCraft.PreferencesHelper.isCreateShortcut; +import static mobi.MultiCraft.PreferencesHelper.isRestored; import static mobi.MultiCraft.PreferencesHelper.loadSettings; import static mobi.MultiCraft.PreferencesHelper.saveSettings; public class MainActivity extends Activity implements WVersionManager.ActivityListener { + public final static int REQUEST_CODE = 104; + private final static String TAG = "Error"; + private final static String FILES = Environment.getExternalStorageDirectory() + "/Files.zip"; + private final static String WORLDS = Environment.getExternalStorageDirectory() + "/worlds.zip"; + private final static String GAMES = Environment.getExternalStorageDirectory() + "/games.zip"; + private final static String NOMEDIA = ".nomedia"; private final static int COARSE_LOCATION_RESULT = 100; private final static int WRITE_EXTERNAL_RESULT = 101; private final static int ALL_PERMISSIONS_RESULT = 102; + private static final String UPDATE_LINK = "https://raw.githubusercontent.com/MoNTE48/MultiCraft-links/master/ver.txt"; - public final static String TAG = "Error"; - public final static String CREATE_SHORTCUT = "com.android.launcher.action.INSTALL_SHORTCUT"; - public final static String FILES = Environment.getExternalStorageDirectory() + "/Files.zip"; - public final static String WORLDS = Environment.getExternalStorageDirectory() + "/worlds.zip"; - public final static String GAMES = Environment.getExternalStorageDirectory() + "/games.zip"; - public final static String NOMEDIA = ".nomedia"; private ProgressDialog mProgressDialog; private String dataFolder = "/Android/data/mobi.MultiCraft/files/"; private String unzipLocation = Environment.getExternalStorageDirectory() + dataFolder; private ProgressBar mProgressBar; - private Utilities util; + private TextView mLoading; + private ImageView iv; private WVersionManager versionManager = null; + private PermissionManager pm = null; private BroadcastReceiver myReceiver = new BroadcastReceiver() { @Override @@ -69,12 +70,13 @@ public class MainActivity extends Activity implements WVersionManager.ActivityLi mProgressBar.setVisibility(View.VISIBLE); mProgressBar.setProgress(progress); } else { - util.createNomedia(); + createNomedia(); runGame(); } } }; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -87,52 +89,88 @@ public class MainActivity extends Activity implements WVersionManager.ActivityLi finish(); return; } - int i = getLaunchTimes(); - i++; - saveSettings(TAG_LAUNCH_TIMES, i); - pm = new PermissionManager(this); - String[] permList = pm.requestPermissions(); - if (permList.length > 0) { - ActivityCompat.requestPermissions(this, permList, ALL_PERMISSIONS_RESULT); - } else { - init(); - } - + addLaunchTimes(); + getPermissions(); +// if (!isAdsDisabled()) +// initAd(this); } @Override - public void isShowUpdateDialog(boolean flag) { - if (flag) { - versionManager.showDialog(); - versionManager.setCallback(new WVersionManager.Callback() { - @Override - public void onPositive() { - versionManager.updateNow(versionManager.getUpdateUrl()); - finish(); - } + protected void onResume() { + super.onResume(); + makeFullScreen(); + } - @Override - public void onNegative() { - versionManager.ignoreThisVersion(); - checkRateDialog(); - } + @Override + protected void onDestroy() { + super.onDestroy(); + dismissProgressDialog(); + unregisterReceiver(myReceiver); + } - @Override - public void onRemind() { - versionManager.remindMeLater(versionManager.getReminderTimer()); - checkRateDialog(); - } - }); - } else { - checkRateDialog(); + //helpful utilities + private void addLaunchTimes() { + int i = getLaunchTimes(); + i++; + saveSettings(TAG_LAUNCH_TIMES, i); + } + + private void deleteFiles(String path) { + File file = new File(path); + if (file.exists()) { + String deleteCmd = "rm -r " + path; + Runtime runtime = Runtime.getRuntime(); + try { + runtime.exec(deleteCmd); + } catch (IOException e) { + Log.e(TAG, "delete files failed: " + e.getLocalizedMessage()); + } } } - private void checkNewVersion() { - versionManager = new WVersionManager(this); - versionManager.setVersionContentUrl("http://pastebin.com/raw/aeM2bmSB"); - versionManager.checkVersion(); + private void createDataFolder() { + File folder = new File(unzipLocation); + if (!(folder.exists())) + folder.mkdirs(); + } + + private void deleteZip(String... filesArray) { + for (String fileName : filesArray) { + File file = new File(fileName); + if (file.exists()) + file.delete(); + } + } + + private void createNomedia() { + File myFile = new File(unzipLocation, NOMEDIA); + if (!myFile.exists()) + try { + myFile.createNewFile(); + } catch (IOException e) { + Log.e(TAG, "nomedia has not been created: " + e.getMessage()); + } + } + + //interface + private void addImageView(int pos) { + int marginTop = pos == 0 ? 48 : 288; + RelativeLayout rl = (RelativeLayout) findViewById(R.id.activity_main); + iv = new ImageView(this); + iv.setBackgroundResource(R.drawable.logo); + RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); + lp.addRule(RelativeLayout.CENTER_HORIZONTAL); + lp.setMargins(0, marginTop, 0, 0); + iv.requestLayout(); + iv.setLayoutParams(lp); + rl.addView(iv); + } + + private void hideViews() { + mProgressBar.setVisibility(View.GONE); + iv.setVisibility(View.GONE); + mLoading.setVisibility(View.GONE); } public void makeFullScreen() { @@ -150,50 +188,41 @@ public class MainActivity extends Activity implements WVersionManager.ActivityLi } } - @Override - protected void onDestroy() { - super.onDestroy(); - dismissProgressDialog(); - unregisterReceiver(myReceiver); + private void showSpinnerDialog(int message) { + if (mProgressDialog == null) { + mProgressDialog = new ProgressDialog(MainActivity.this); + mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); + mProgressDialog.setCancelable(false); + } + mProgressDialog.setMessage(getString(message)); + mProgressDialog.show(); } - @Override - protected void onResume() { - super.onResume(); - makeFullScreen(); + private void dismissProgressDialog() { + if (mProgressDialog != null && mProgressDialog.isShowing()) { + mProgressDialog.dismiss(); + } } - private void addShortcut() { - saveSettings(TAG_SHORTCUT_CREATED, false); - Intent shortcutIntent = new Intent(getApplicationContext(), MainActivity.class); - shortcutIntent.setAction(Intent.ACTION_MAIN); - Intent addIntent = new Intent(); - addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); - addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); - addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, - Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.ic_launcher)); - addIntent.setAction(CREATE_SHORTCUT); - getApplicationContext().sendBroadcast(addIntent); - } - - @SuppressWarnings("deprecation") public void init() { RateMe.onStart(this); - if (isCreateShortcut()) - addShortcut(); mProgressBar = (ProgressBar) findViewById(R.id.PB1); - Drawable draw; - draw = getResources().getDrawable(R.drawable.custom_progress_bar); - mProgressBar.setVisibility(View.VISIBLE); + mLoading = (TextView) findViewById(R.id.tv_progress_circle); + Drawable draw = ContextCompat.getDrawable(this, R.drawable.custom_progress_bar); mProgressBar.setProgressDrawable(draw); - util = new Utilities(); - util.createDataFolder(); - util.checkVersion(); + createDataFolder(); + checkAppVersion(); } - private boolean isNetworkConnected() { - ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); - return cm.getActiveNetworkInfo() != null; + //permission block + private void getPermissions() { + pm = new PermissionManager(this); + String[] permList = pm.requestPermissions(); + if (permList.length > 0) { + ActivityCompat.requestPermissions(this, permList, ALL_PERMISSIONS_RESULT); + } else { + init(); + } } private void requestPermissionAfterExplain() { @@ -225,14 +254,14 @@ public class MainActivity extends Activity implements WVersionManager.ActivityLi case COARSE_LOCATION_RESULT: break; case ALL_PERMISSIONS_RESULT: - for (String perms : permissionsToRequest) { + for (String perms : PermissionManager.permissionsToRequest) { if (!pm.hasPermission(perms)) { - permissionsRejected.add(perms); + PermissionManager.permissionsRejected.add(perms); } } - if (permissionsRejected.size() == 0) { + if (PermissionManager.permissionsRejected.size() == 0) { init(); - } else if (!Arrays.asList(permissionsRejected.toArray()).contains(WRITE_EXTERNAL_STORAGE)) { + } else if (!Arrays.asList(PermissionManager.permissionsRejected.toArray()).contains(WRITE_EXTERNAL_STORAGE)) { Toast.makeText(this, R.string.location, Toast.LENGTH_SHORT).show(); init(); } else { @@ -242,22 +271,7 @@ public class MainActivity extends Activity implements WVersionManager.ActivityLi } } - private void showSpinnerDialog(int message) { - if (mProgressDialog == null) { - mProgressDialog = new ProgressDialog(MainActivity.this); - mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); - mProgressDialog.setCancelable(false); - } - mProgressDialog.setMessage(getString(message)); - mProgressDialog.show(); - } - - private void dismissProgressDialog() { - if (mProgressDialog != null && mProgressDialog.isShowing()) { - mProgressDialog.dismiss(); - } - } - + //game logic private void checkRateDialog() { if (RateMe.shouldShowRateDialog()) { hideViews(); @@ -284,23 +298,49 @@ public class MainActivity extends Activity implements WVersionManager.ActivityLi } } - public void runGame() { - util.deleteZip(FILES); - util.deleteZip(WORLDS); - util.deleteZip(GAMES); - if (isNetworkConnected()) { - checkNewVersion(); + @Override + public void isShowUpdateDialog(boolean flag) { + if (flag) { + versionManager.showDialog(); + versionManager.setCallback(new WVersionManager.Callback() { + @Override + public void onPositive() { + versionManager.updateNow(versionManager.getUpdateUrl()); + finish(); + } + + @Override + public void onNegative() { + versionManager.ignoreThisVersion(); + checkRateDialog(); + } + + @Override + public void onRemind() { + versionManager.remindMeLater(versionManager.getReminderTimer()); + checkRateDialog(); + } + }); } else { - startGameActivity(); + checkRateDialog(); } } - private void hideViews() { - mProgressBar.setVisibility(View.GONE); - findViewById(R.id.imageView).setVisibility(View.GONE); - findViewById(R.id.tv_progress_circle).setVisibility(View.GONE); + private void checkUrlVersion() { + versionManager = new WVersionManager(this); + versionManager.setVersionContentUrl(UPDATE_LINK); + versionManager.checkVersion(); + } + public void runGame() { + deleteZip(FILES, WORLDS, GAMES); + Intent intent = new Intent(this, BillingActivity.class); + startActivityForResult(intent, REQUEST_CODE); + + } + + private void startGameActivity() { Intent intent = new Intent(MainActivity.this, GameActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK); @@ -316,6 +356,42 @@ public class MainActivity extends Activity implements WVersionManager.ActivityLi } + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { +// super.onActivityResult(requestCode, resultCode, data); + // check if the request code is same as what is passed here it is 2 + if (requestCode == REQUEST_CODE) { + if ((data != null) && (data.getBooleanExtra("isCheckNewVersion", false))) { + checkUrlVersion(); + } else { + startGameActivity(); + } + } else startGameActivity(); + } + + private void startDeletion(boolean isAll) { + if (isAll) { + new DeleteTask().execute(unzipLocation); + } else { + new DeleteTask().execute(unzipLocation + "builtin", unzipLocation + "games", unzipLocation + "debug.txt"); + } + } + + private void checkAppVersion() { + if (!isRestored() && getBuildNumber().equals(getString(R.string.ver))) { + addImageView(1); + runGame(); + } else if (getBuildNumber().equals("0")) { + addImageView(0); + saveSettings(TAG_BUILD_NUMBER, getString(R.string.ver)); + startDeletion(true); + } else { + addImageView(0); + saveSettings(TAG_BUILD_NUMBER, getString(R.string.ver)); + startDeletion(false); + } + } + private class DeleteTask extends AsyncTask { String location; @@ -329,7 +405,7 @@ public class MainActivity extends Activity implements WVersionManager.ActivityLi protected Void doInBackground(String... params) { location = params[0]; for (String p : params) { - util.deleteFiles(p); + deleteFiles(p); } return null; } @@ -354,7 +430,8 @@ public class MainActivity extends Activity implements WVersionManager.ActivityLi @Override protected void onPreExecute() { - super.onPreExecute(); + mProgressBar.setVisibility(View.VISIBLE); + mLoading.setVisibility(View.VISIBLE); } @Override @@ -369,14 +446,11 @@ public class MainActivity extends Activity implements WVersionManager.ActivityLi @Override protected void onPostExecute(String result) { - if (util.getAvailableSpaceInMB() > 15) { - try { - startUnzipService(zips); - } catch (IOException e) { - Log.e(TAG, "unzip failed: " + e.getMessage()); - } - } else - Toast.makeText(MainActivity.this, R.string.not_enough_space, Toast.LENGTH_LONG).show(); + try { + startUnzipService(zips); + } catch (IOException e) { + Log.e(TAG, "unzip failed: " + e.getMessage()); + } } private void copyAssets(String zipName) { @@ -404,76 +478,5 @@ public class MainActivity extends Activity implements WVersionManager.ActivityLi } } - private class Utilities { - private void createDataFolder() { - File folder = new File(unzipLocation); - if (!(folder.exists())) - folder.mkdirs(); - } - - private void deleteZip(String fileName) { - File file = new File(fileName); - if (file.exists()) - file.delete(); - } - - private void startDeletion(boolean isAll) { - if (isAll) { - new DeleteTask().execute(unzipLocation); - } else { - new DeleteTask().execute(unzipLocation + "games", unzipLocation + "debug.txt"); - } - } - - @SuppressWarnings("deprecation") - @SuppressLint("NewApi") - private long getAvailableSpaceInMB() { - final long SIZE_KB = 1024L; - final long SIZE_MB = SIZE_KB * SIZE_KB; - long availableSpace; - StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); - if (Build.VERSION.SDK_INT > 17) { - availableSpace = stat.getAvailableBlocksLong() * stat.getBlockSizeLong(); - } else { - availableSpace = (long) stat.getAvailableBlocks() * (long) stat.getBlockSize(); - } - return availableSpace / SIZE_MB; - } - - void checkVersion() { - if (getBuildNumber().equals(getString(R.string.ver))) { - runGame(); - } else if (getBuildNumber().equals("0")) { - saveSettings(TAG_BUILD_NUMBER, getString(R.string.ver)); - startDeletion(true); - } else { - saveSettings(TAG_BUILD_NUMBER, getString(R.string.ver)); - startDeletion(false); - } - } - - private void deleteFiles(String path) { - File file = new File(path); - if (file.exists()) { - String deleteCmd = "rm -r " + path; - Runtime runtime = Runtime.getRuntime(); - try { - runtime.exec(deleteCmd); - } catch (IOException e) { - Log.e(TAG, "delete files failed: " + e.getLocalizedMessage()); - } - } - } - - void createNomedia() { - File myFile = new File(unzipLocation, NOMEDIA); - if (!myFile.exists()) - try { - myFile.createNewFile(); - } catch (IOException e) { - Log.e(TAG, "nomedia has not been created: " + e.getMessage()); - } - } - } } \ No newline at end of file diff --git a/build/android/src/main/java/mobi/MultiCraft/PermissionManager.java b/build/android/src/main/java/mobi/MultiCraft/PermissionManager.java index bdccdf7f1..340dc916f 100644 --- a/build/android/src/main/java/mobi/MultiCraft/PermissionManager.java +++ b/build/android/src/main/java/mobi/MultiCraft/PermissionManager.java @@ -10,13 +10,15 @@ import java.util.ArrayList; import static android.Manifest.permission.ACCESS_COARSE_LOCATION; import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE; +import static mobi.MultiCraft.PreferencesHelper.TAG_RESTORE_BACKUP; import static mobi.MultiCraft.PreferencesHelper.getLaunchTimes; +import static mobi.MultiCraft.PreferencesHelper.saveSettings; class PermissionManager { - private Activity activity; - private SharedPreferences sharedPreferences; static ArrayList permissionsToRequest; static ArrayList permissionsRejected; + private Activity activity; + private SharedPreferences sharedPreferences; PermissionManager(Activity activity) { this.activity = activity; @@ -26,9 +28,7 @@ class PermissionManager { String[] requestPermissions() { ArrayList permissions = new ArrayList<>(); permissions.add(WRITE_EXTERNAL_STORAGE); - if (getLaunchTimes() > 2) { - permissions.add(ACCESS_COARSE_LOCATION); - } + permissions.add(ACCESS_COARSE_LOCATION); //filter out the permissions we have already accepted permissionsToRequest = findUnAskedPermissions(permissions); //get the permissions we have asked for before but are not granted.. @@ -46,10 +46,14 @@ class PermissionManager { } boolean hasPermission(String permission) { - return (ActivityCompat.checkSelfPermission(activity, permission) == PackageManager.PERMISSION_GRANTED); + return ActivityCompat.checkSelfPermission(activity, permission) == PackageManager.PERMISSION_GRANTED; } private boolean shouldWeAsk(String permission) { + if (getLaunchTimes() > 1 && permission.equals(WRITE_EXTERNAL_STORAGE)) { + sharedPreferences.edit().clear().apply(); + saveSettings(TAG_RESTORE_BACKUP, true); + } return sharedPreferences.getBoolean(permission, true); } diff --git a/build/android/src/main/java/mobi/MultiCraft/PreferencesHelper.java b/build/android/src/main/java/mobi/MultiCraft/PreferencesHelper.java index 9ed10d01e..9c93d35b2 100644 --- a/build/android/src/main/java/mobi/MultiCraft/PreferencesHelper.java +++ b/build/android/src/main/java/mobi/MultiCraft/PreferencesHelper.java @@ -4,36 +4,47 @@ import android.content.Context; import android.content.SharedPreferences; class PreferencesHelper { - private static final String SETTINGS = "settings"; - static final String TAG_SHORTCUT_CREATED = "createShortcut"; static final String TAG_BUILD_NUMBER = "buildNumber"; static final String TAG_LAUNCH_TIMES = "launchTimes"; - private static boolean createShortcut; + static final String TAG_RESTORE_BACKUP = "restoredFromBackup"; + private static final String SETTINGS = "settings"; + private static final String TAG_DISABLED_ADS = "disabledADS"; private static String buildNumber; - private static SharedPreferences settings; - static boolean isCreateShortcut() { - return createShortcut; + private static SharedPreferences settings; + private static boolean disabledADS; + + static boolean isAdsDisabled() { + return disabledADS; } static String getBuildNumber() { return buildNumber; } - static void loadSettings(final Context context) { - settings = context.getSharedPreferences(SETTINGS, Context.MODE_PRIVATE); - createShortcut = settings.getBoolean(TAG_SHORTCUT_CREATED, true); - buildNumber = settings.getString(TAG_BUILD_NUMBER, "0"); + static boolean isRestored() { + return settings.getBoolean(TAG_RESTORE_BACKUP, false); } - static void saveSettings(String tag, boolean bool) { - settings.edit().putBoolean(tag, bool).apply(); + static void savePurchase(boolean v) { + disabledADS = v; + settings.edit().putBoolean(TAG_DISABLED_ADS, v).apply(); } static int getLaunchTimes() { return settings.getInt(TAG_LAUNCH_TIMES, 0); } + static void loadSettings(final Context context) { + settings = context.getSharedPreferences(SETTINGS, Context.MODE_PRIVATE); + buildNumber = settings.getString(TAG_BUILD_NUMBER, "0"); + disabledADS = settings.getBoolean(TAG_DISABLED_ADS, false); + } + + static void saveSettings(String tag, boolean bool) { + settings.edit().putBoolean(tag, bool).apply(); + } + static void saveSettings(String tag, String value) { settings.edit().putString(tag, value).apply(); } @@ -41,4 +52,5 @@ class PreferencesHelper { static void saveSettings(String tag, int value) { settings.edit().putInt(tag, value).apply(); } + } \ No newline at end of file diff --git a/build/android/src/main/java/mobi/MultiCraft/RateMe.java b/build/android/src/main/java/mobi/MultiCraft/RateMe.java index 3565e82e6..b6c1fffcd 100644 --- a/build/android/src/main/java/mobi/MultiCraft/RateMe.java +++ b/build/android/src/main/java/mobi/MultiCraft/RateMe.java @@ -18,8 +18,8 @@ import java.util.Date; class RateMe { - private static final int INSTALL_DAYS = 3; - private static final int LAUNCH_TIMES = 2; + private static final int INSTALL_DAYS = 2; + private static final int LAUNCH_TIMES = 3; private static final boolean DEBUG = false; private static final String TAG = RateMe.class.getSimpleName(); private static final String GOOGLE_PLAY = "https://play.google.com/store/apps/details?id="; @@ -78,7 +78,7 @@ class RateMe { | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); } - dialog.setContentView(R.layout.rate_layout); + dialog.setContentView(R.layout.rate_dialog); dialog.setTitle(R.string.rta_dialog_title); RatingBar ratingBar = (RatingBar) dialog.findViewById(R.id.ratingBar); @@ -133,14 +133,12 @@ class RateMe { private static void storeInstallDate(final Context context, SharedPreferences.Editor editor) { Date installDate = new Date(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { - PackageManager packMan = context.getPackageManager(); - try { - PackageInfo pkgInfo = packMan.getPackageInfo(context.getPackageName(), 0); - installDate = new Date(pkgInfo.firstInstallTime); - } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); - } + PackageManager packMan = context.getPackageManager(); + try { + PackageInfo pkgInfo = packMan.getPackageInfo(context.getPackageName(), 0); + installDate = new Date(pkgInfo.firstInstallTime); + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); } editor.putLong(KEY_INSTALL_DATE, installDate.getTime()); log("First install: " + installDate.toString()); diff --git a/build/android/src/main/java/mobi/MultiCraft/UnzipService.java b/build/android/src/main/java/mobi/MultiCraft/UnzipService.java index d3add5abe..8a3c1bd59 100644 --- a/build/android/src/main/java/mobi/MultiCraft/UnzipService.java +++ b/build/android/src/main/java/mobi/MultiCraft/UnzipService.java @@ -1,10 +1,10 @@ package mobi.MultiCraft; import android.app.IntentService; -import android.app.Notification; import android.app.NotificationManager; import android.content.Context; import android.content.Intent; +import android.support.v4.app.NotificationCompat; import android.util.Log; import java.io.File; @@ -40,7 +40,7 @@ public class UnzipService extends IntentService { @Override protected void onHandleIntent(Intent intent) { mNotifyManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - Notification.Builder mBuilder = new Notification.Builder(this); + NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this); mBuilder.setContentTitle(getString(R.string.notification_title)) .setContentText(getString(R.string.notification_description)).setSmallIcon(R.drawable.update); String[] file = intent.getStringArrayExtra(EXTRA_KEY_IN_FILE); diff --git a/build/android/src/main/java/mobi/MultiCraft/WVersionManager.java b/build/android/src/main/java/mobi/MultiCraft/WVersionManager.java index 509329956..7dc569e6f 100644 --- a/build/android/src/main/java/mobi/MultiCraft/WVersionManager.java +++ b/build/android/src/main/java/mobi/MultiCraft/WVersionManager.java @@ -33,13 +33,11 @@ import java.util.Locale; class WVersionManager { private static final String TAG = "WVersionManager"; - + private static WVersionManager.Callback sCallback = null; private CustomTagHandler customTagHandler; - private String PREF_IGNORE_VERSION_CODE = "w.ignore.version.code"; private String PREF_REMINDER_TIME = "w.reminder.time"; private String PREF_LAUNCH_TIMES = "w.launch.times"; - private Activity activity; private Drawable icon; private String title; @@ -53,17 +51,8 @@ class WVersionManager { private int mVersionCode; private AlertDialogButtonListener listener; private boolean mDialogCancelable = false; - private static WVersionManager.Callback sCallback = null; private ActivityListener al; - void setCallback(WVersionManager.Callback callback) { - sCallback = callback; - } - - interface ActivityListener { - void isShowUpdateDialog(boolean flag); - } - WVersionManager(Activity act) { this.activity = act; al = (ActivityListener) act; @@ -72,6 +61,10 @@ class WVersionManager { setLaunchTimes(); } + void setCallback(WVersionManager.Callback callback) { + sCallback = callback; + } + private Drawable getDefaultAppIcon() { return activity.getApplicationInfo().loadIcon(activity.getPackageManager()); } @@ -126,19 +119,24 @@ class WVersionManager { return updateNowLabel != null ? updateNowLabel : activity.getString(R.string.update); } + public void setUpdateNowLabel(String updateNowLabel) { + this.updateNowLabel = updateNowLabel; + } private String getRemindMeLaterLabel() { return remindMeLaterLabel != null ? remindMeLaterLabel : activity.getString(R.string.later); } + public void setRemindMeLaterLabel(String remindMeLaterLabel) { + this.remindMeLaterLabel = remindMeLaterLabel; + } private String getIgnoreThisVersionLabel() { return ignoreThisVersionLabel != null ? ignoreThisVersionLabel : activity.getString(R.string.ignore); } - - private void setMessage(String message) { - this.message = message; + public void setIgnoreThisVersionLabel(String ignoreThisVersionLabel) { + this.ignoreThisVersionLabel = ignoreThisVersionLabel; } private String getMessage() { @@ -146,29 +144,52 @@ class WVersionManager { return message != null ? message : defaultMessage; } + private void setMessage(String message) { + this.message = message; + } + private String getTitle() { String defaultTitle = "New Update Available"; return title != null ? title : defaultTitle; } + public void setTitle(String title) { + this.title = title; + } + private Drawable getIcon() { return icon != null ? icon : getDefaultAppIcon(); } + public void setIcon(Drawable icon) { + this.icon = icon; + } + String getUpdateUrl() { return updateUrl != null ? updateUrl : getGooglePlayStoreUrl(); } + private void setUpdateUrl(String updateUrl) { + this.updateUrl = updateUrl; + } private String getVersionContentUrl() { return versionContentUrl; } + void setVersionContentUrl(String versionContentUrl) { + this.versionContentUrl = versionContentUrl; + } int getReminderTimer() { return reminderTimer > 0 ? reminderTimer : 1; } + public void setReminderTimer(int minutes) { + if (minutes > 0) { + reminderTimer = minutes; + } + } void updateNow(String url) { if (url != null) { @@ -183,10 +204,6 @@ class WVersionManager { } - void setVersionContentUrl(String versionContentUrl) { - this.versionContentUrl = versionContentUrl; - } - void remindMeLater(int reminderTimer) { Calendar c = Calendar.getInstance(); @@ -196,15 +213,15 @@ class WVersionManager { setReminderTime(reminderTimeStamp); } + private long getReminderTime() { + return PreferenceManager.getDefaultSharedPreferences(activity).getLong(PREF_REMINDER_TIME, 0); + } + private void setReminderTime(long reminderTimeStamp) { PreferenceManager.getDefaultSharedPreferences(activity).edit().putLong(PREF_REMINDER_TIME, reminderTimeStamp) .apply(); } - private long getReminderTime() { - return PreferenceManager.getDefaultSharedPreferences(activity).getLong(PREF_REMINDER_TIME, 0); - } - void ignoreThisVersion() { PreferenceManager.getDefaultSharedPreferences(activity).edit().putInt(PREF_IGNORE_VERSION_CODE, mVersionCode) .apply(); @@ -215,6 +232,50 @@ class WVersionManager { return "market://details?id=" + id; } + private int getLaunchTimes() { + return PreferenceManager.getDefaultSharedPreferences(activity).getInt(PREF_LAUNCH_TIMES, 0); + } + + private int getCurrentVersionCode() { + int currentVersionCode = 0; + PackageInfo pInfo; + try { + pInfo = activity.getPackageManager().getPackageInfo(activity.getPackageName(), 0); + currentVersionCode = pInfo.versionCode; + } catch (NameNotFoundException e) { + // return 0 + } + return currentVersionCode; + } + + private int getIgnoreVersionCode() { + return PreferenceManager.getDefaultSharedPreferences(activity).getInt(PREF_IGNORE_VERSION_CODE, 1); + } + + private CustomTagHandler getCustomTagHandler() { + return customTagHandler; + } + + private boolean isDialogCancelable() { + return mDialogCancelable; + } + + public void setDialogCancelable(boolean dialogCancelable) { + mDialogCancelable = dialogCancelable; + } + + interface ActivityListener { + void isShowUpdateDialog(boolean flag); + } + + interface Callback { + void onPositive(); + + void onNegative(); + + void onRemind(); + } + private class AlertDialogButtonListener implements DialogInterface.OnClickListener { @Override @@ -278,75 +339,52 @@ class WVersionManager { mVersionCode = 0; String content; String packageName; - try { - if (!result.startsWith("{")) { // for response who append with unknown char - result = result.substring(1); - } - String mResult = result; - // json format from server: - JSONObject json = (JSONObject) new JSONTokener(mResult).nextValue(); - mVersionCode = json.optInt("version_code"); - String lang = Locale.getDefault().getLanguage(); - if (lang.equals("ru")) { - content = json.optString("content_ru"); - } else { - content = json.optString("content_en"); - } - packageName = json.optString("package"); - setUpdateUrl("market://details?id=" + packageName); - int currentVersionCode = getCurrentVersionCode(); - if (currentVersionCode < mVersionCode) { - if (mVersionCode != getIgnoreVersionCode()) { - setMessage(content); - al.isShowUpdateDialog(true); - } else if (mVersionCode == getIgnoreVersionCode() && getLaunchTimes() % 3 == 0) { - PreferenceManager.getDefaultSharedPreferences(activity).edit().putInt(PREF_LAUNCH_TIMES, 0) - .apply(); - setMessage(content); - al.isShowUpdateDialog(true); + if (result != null) { + try { + if (!result.startsWith("{")) { // for response who append with unknown char + result = result.substring(1); + } + String mResult = result; + // json format from server: + JSONObject json = (JSONObject) new JSONTokener(mResult).nextValue(); + mVersionCode = json.optInt("version_code"); + String lang = Locale.getDefault().getLanguage(); + if (lang.equals("ru")) { + content = json.optString("content_ru"); + } else { + content = json.optString("content_en"); + } + packageName = json.optString("package"); + setUpdateUrl("market://details?id=" + packageName); + int currentVersionCode = getCurrentVersionCode(); + if (currentVersionCode < mVersionCode) { + if (mVersionCode != getIgnoreVersionCode()) { + setMessage(content); + al.isShowUpdateDialog(true); + } else if (mVersionCode == getIgnoreVersionCode() && getLaunchTimes() % 3 == 0) { + PreferenceManager.getDefaultSharedPreferences(activity).edit().putInt(PREF_LAUNCH_TIMES, 0) + .apply(); + setMessage(content); + al.isShowUpdateDialog(true); + } else { + al.isShowUpdateDialog(false); + } } else { al.isShowUpdateDialog(false); } - } else { + } catch (JSONException e) { + Log.e(TAG, "is your server response have valid json format?"); + al.isShowUpdateDialog(false); + } catch (Exception e) { + Log.e(TAG, e.toString()); al.isShowUpdateDialog(false); } - } catch (JSONException e) { - Log.e(TAG, "is your server response have valid json format?"); - } catch (Exception e) { - Log.e(TAG, e.toString()); + } else { + al.isShowUpdateDialog(false); } } } - private int getLaunchTimes() { - return PreferenceManager.getDefaultSharedPreferences(activity).getInt(PREF_LAUNCH_TIMES, 0); - } - - private int getCurrentVersionCode() { - int currentVersionCode = 0; - PackageInfo pInfo; - try { - pInfo = activity.getPackageManager().getPackageInfo(activity.getPackageName(), 0); - currentVersionCode = pInfo.versionCode; - } catch (NameNotFoundException e) { - // return 0 - } - return currentVersionCode; - } - - private int getIgnoreVersionCode() { - return PreferenceManager.getDefaultSharedPreferences(activity).getInt(PREF_IGNORE_VERSION_CODE, 1); - } - - private CustomTagHandler getCustomTagHandler() { - return customTagHandler; - } - - private boolean isDialogCancelable() { - return mDialogCancelable; - } - - private class CustomTagHandler implements Html.TagHandler { @Override @@ -362,47 +400,4 @@ class WVersionManager { } } } - - interface Callback { - void onPositive(); - - void onNegative(); - - void onRemind(); - } - - public void setUpdateNowLabel(String updateNowLabel) { - this.updateNowLabel = updateNowLabel; - } - - public void setRemindMeLaterLabel(String remindMeLaterLabel) { - this.remindMeLaterLabel = remindMeLaterLabel; - } - - public void setIgnoreThisVersionLabel(String ignoreThisVersionLabel) { - this.ignoreThisVersionLabel = ignoreThisVersionLabel; - } - - public void setIcon(Drawable icon) { - this.icon = icon; - } - - public void setTitle(String title) { - this.title = title; - } - - private void setUpdateUrl(String updateUrl) { - this.updateUrl = updateUrl; - } - - - public void setReminderTimer(int minutes) { - if (minutes > 0) { - reminderTimer = minutes; - } - } - - public void setDialogCancelable(boolean dialogCancelable) { - mDialogCancelable = dialogCancelable; - } -} +} \ No newline at end of file diff --git a/build/android/src/main/res/drawable-xhdpi/ic_launcher.png b/build/android/src/main/res/drawable-xhdpi/ic_launcher.png index 45760d621877f5549248bd5202495bf6fdc36675..9d3d025dc8fccc68b3c6183f67189f0d3ecef522 100644 GIT binary patch literal 26183 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%0D|vR~q;F_Cm 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 diff --git a/build/android/src/main/res/drawable/custom_progress_bar.xml b/build/android/src/main/res/drawable/custom_progress_bar.xml index ec233f276..aaba5a665 100644 --- a/build/android/src/main/res/drawable/custom_progress_bar.xml +++ b/build/android/src/main/res/drawable/custom_progress_bar.xml @@ -1,14 +1,28 @@ + + + + + + + + + + + android:endColor="#37C830" + android:startColor="#37C830" /> - \ No newline at end of file + \ No newline at end of file diff --git a/build/android/src/main/res/drawable/logo.png b/build/android/src/main/res/drawable/logo.png index 028f14de7af8d34c29b58c62d11bca038d051a7b..7f1bbb7177f06444f8dcd72f5766dc86b29ddd10 100644 GIT binary patch literal 26043 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 KMNUMnLSTZ$Mlh}b diff --git a/build/android/src/main/res/layout/activity_main.xml b/build/android/src/main/res/layout/activity_main.xml index 6220b078c..034c14876 100644 --- a/build/android/src/main/res/layout/activity_main.xml +++ b/build/android/src/main/res/layout/activity_main.xml @@ -4,42 +4,26 @@ android:layout_height="match_parent" android:background="@drawable/bg"> - + + - - - - - - - + android:layout_centerInParent="true" + android:background="@android:color/transparent" + android:gravity="center" + android:text="@string/loading" + android:textColor="#FEFEFE" + android:visibility="gone" /> \ No newline at end of file diff --git a/build/android/src/main/res/layout/dialog.xml b/build/android/src/main/res/layout/input_dialog.xml similarity index 100% rename from build/android/src/main/res/layout/dialog.xml rename to build/android/src/main/res/layout/input_dialog.xml diff --git a/build/android/src/main/res/layout/rate_layout.xml b/build/android/src/main/res/layout/rate_dialog.xml similarity index 96% rename from build/android/src/main/res/layout/rate_layout.xml rename to build/android/src/main/res/layout/rate_dialog.xml index 59284ea9e..b8d2be228 100644 --- a/build/android/src/main/res/layout/rate_layout.xml +++ b/build/android/src/main/res/layout/rate_dialog.xml @@ -32,7 +32,6 @@ android:hint="@string/rate_description" />