Merge branch 'master' of https://github.com/jonatkins/ingress-intel-total-conversion
This commit is contained in:
		| @@ -3,11 +3,14 @@ package com.cradle.iitc_mobile; | ||||
| import android.app.ActionBar; | ||||
| import android.app.Activity; | ||||
| import android.app.AlertDialog; | ||||
| import android.app.DownloadManager; | ||||
| import android.app.ProgressDialog; | ||||
| import android.app.SearchManager; | ||||
| import android.content.BroadcastReceiver; | ||||
| import android.content.Context; | ||||
| import android.content.DialogInterface; | ||||
| import android.content.Intent; | ||||
| import android.content.IntentFilter; | ||||
| import android.content.SharedPreferences; | ||||
| import android.content.SharedPreferences.OnSharedPreferenceChangeListener; | ||||
| import android.content.res.Configuration; | ||||
| @@ -30,7 +33,6 @@ import android.widget.SearchView; | ||||
| import android.widget.Toast; | ||||
|  | ||||
| import com.cradle.iitc_mobile.IITC_NavigationHelper.Pane; | ||||
| import com.cradle.iitc_mobile.async.DownloadIitcUpdate; | ||||
|  | ||||
| import java.io.File; | ||||
| import java.io.IOException; | ||||
| @@ -57,7 +59,13 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis | ||||
|     private SharedPreferences mSharedPrefs; | ||||
|     private IITC_NavigationHelper mNavigationHelper; | ||||
|     private IITC_MapSettings mMapSettings; | ||||
|     private ProgressDialog mProgressDialog; | ||||
|  | ||||
|     private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { | ||||
|         @Override | ||||
|         public void onReceive(Context context, Intent intent) { | ||||
|             ((IITC_Mobile) context).installIitcUpdate(); | ||||
|         } | ||||
|     }; | ||||
|  | ||||
|     // Used for custom back stack handling | ||||
|     private final Stack<Pane> mBackStack = new Stack<IITC_NavigationHelper.Pane>(); | ||||
| @@ -111,12 +119,9 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis | ||||
|         // Clear the back stack | ||||
|         mBackStack.clear(); | ||||
|  | ||||
|         // init update progress dialog | ||||
|         mProgressDialog = new ProgressDialog(this); | ||||
|         mProgressDialog.setMessage("Downloading IITCm update..."); | ||||
|         mProgressDialog.setIndeterminate(true); | ||||
|         mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); | ||||
|         mProgressDialog.setCancelable(true); | ||||
|         // receive downloadManagers downloadComplete intent | ||||
|         // afterwards install iitc update and clean up after installation | ||||
|         registerReceiver(mBroadcastReceiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); | ||||
|  | ||||
|         handleIntent(getIntent(), true); | ||||
|     } | ||||
| @@ -181,6 +186,7 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis | ||||
|     } | ||||
|     // ------------------------------------------------------------------------ | ||||
|  | ||||
|  | ||||
|     @Override | ||||
|     protected void onNewIntent(Intent intent) { | ||||
|         setIntent(intent); | ||||
| @@ -584,7 +590,8 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis | ||||
|                 break; | ||||
|             case REQUEST_UPDATE_FINISHED: | ||||
|                 // clean up update apk | ||||
|                 File file = new File(Environment.getExternalStorageDirectory().toString() + "/iitc_update.apk"); | ||||
|                 File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + '/' + | ||||
|                         Environment.DIRECTORY_DOWNLOADS + "/iitcUpdate.apk"); | ||||
|                 if (file != null) file.delete(); | ||||
|  | ||||
|             default: | ||||
| @@ -643,14 +650,22 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis | ||||
|     } | ||||
|  | ||||
|     public void updateIitc(String url) { | ||||
|         final DownloadIitcUpdate updateTask = new DownloadIitcUpdate(this); | ||||
|         updateTask.execute(url); | ||||
|         mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { | ||||
|             @Override | ||||
|             public void onCancel(DialogInterface dialog) { | ||||
|                 updateTask.cancel(true); | ||||
|         DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); | ||||
|         request.setDescription("downloading IITCm update apk..."); | ||||
|         request.setTitle("IITCm Update"); | ||||
|         request.allowScanningByMediaScanner(); | ||||
|         request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "iitcUpdate.apk"); | ||||
|         // get download service and enqueue file | ||||
|         DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); | ||||
|         manager.enqueue(request); | ||||
|     } | ||||
|         }); | ||||
|  | ||||
|     private void installIitcUpdate() { | ||||
|         String iitcUpdatePath = Environment.getExternalStorageDirectory().getAbsolutePath() + '/' + | ||||
|                 Environment.DIRECTORY_DOWNLOADS + "/iitcUpdate.apk"; | ||||
|         Intent intent = new Intent(Intent.ACTION_VIEW); | ||||
|         intent.setDataAndType(Uri.fromFile(new File(iitcUpdatePath)), "application/vnd.android.package-archive"); | ||||
|         startActivityForResult(intent, REQUEST_UPDATE_FINISHED); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -670,8 +685,4 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis | ||||
|     public IITC_MapSettings getMapSettings() { | ||||
|         return mMapSettings; | ||||
|     } | ||||
|  | ||||
|     public ProgressDialog getProgressDialog() { | ||||
|         return mProgressDialog; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,99 +0,0 @@ | ||||
| package com.cradle.iitc_mobile.async; | ||||
|  | ||||
| import android.app.ProgressDialog; | ||||
| import android.content.Intent; | ||||
| import android.net.Uri; | ||||
| import android.os.AsyncTask; | ||||
| import android.os.Environment; | ||||
| import android.util.Log; | ||||
|  | ||||
| import com.cradle.iitc_mobile.IITC_Mobile; | ||||
|  | ||||
| import java.io.BufferedInputStream; | ||||
| import java.io.File; | ||||
| import java.io.FileOutputStream; | ||||
| import java.io.InputStream; | ||||
| import java.io.OutputStream; | ||||
| import java.net.URL; | ||||
| import java.net.URLConnection; | ||||
|  | ||||
| /** | ||||
|  * Background Async Task to download file | ||||
|  * */ | ||||
| public class DownloadIitcUpdate extends AsyncTask<String, Integer, String> { | ||||
|  | ||||
|     private final IITC_Mobile mIitc; | ||||
|     private final ProgressDialog mProgressDialog; | ||||
|  | ||||
|     public DownloadIitcUpdate(IITC_Mobile iitcm) { | ||||
|         mIitc = iitcm; | ||||
|         mProgressDialog = iitcm.getProgressDialog(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void onPreExecute() { | ||||
|         super.onPreExecute(); | ||||
|         mProgressDialog.show(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected String doInBackground(String... fileUrl) { | ||||
|         int count; | ||||
|         try { | ||||
|             URL url = new URL(fileUrl[0]); | ||||
|             URLConnection connection = url.openConnection(); | ||||
|             connection.connect(); | ||||
|             int lengthOfFile = connection.getContentLength(); | ||||
|  | ||||
|             // input stream to read file - with 8k buffer | ||||
|             InputStream input = new BufferedInputStream(url.openStream(), 8192); | ||||
|  | ||||
|             // Output stream to write file | ||||
|             OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory().toString() | ||||
|                     + "/iitc_update.apk"); | ||||
|  | ||||
|             byte data[] = new byte[8192]; | ||||
|  | ||||
|             long total = 0; | ||||
|  | ||||
|             while ((count = input.read(data)) != -1) { | ||||
|                 total += count; | ||||
|                 // publishing the progress.... | ||||
|                 publishProgress((int)(total*100)/lengthOfFile); | ||||
|  | ||||
|                 // writing data to file | ||||
|                 output.write(data, 0, count); | ||||
|             } | ||||
|  | ||||
|             output.flush(); | ||||
|  | ||||
|             // closing streams | ||||
|             output.close(); | ||||
|             input.close(); | ||||
|  | ||||
|         } catch (Exception e) { | ||||
|             Log.e("iitcm:", e.getMessage()); | ||||
|         } | ||||
|  | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     protected void onProgressUpdate(Integer... progress) { | ||||
|         super.onProgressUpdate(progress); | ||||
|         // if we get here, length is known, now set indeterminate to false | ||||
|         mProgressDialog.setIndeterminate(false); | ||||
|         mProgressDialog.setMax(100); | ||||
|         mProgressDialog.setProgress(progress[0]); | ||||
|    } | ||||
|  | ||||
|     @Override | ||||
|     protected void onPostExecute(String fileUrl) { | ||||
|         // dismiss the dialog after the file was downloaded | ||||
|         mProgressDialog.dismiss(); | ||||
|  | ||||
|         String iitcPath = Environment.getExternalStorageDirectory().toString() + "/iitc_update.apk"; | ||||
|         Intent intent = new Intent(Intent.ACTION_VIEW); | ||||
|         intent.setDataAndType(Uri.fromFile(new File(iitcPath)), "application/vnd.android.package-archive"); | ||||
|         mIitc.startActivityForResult(intent, mIitc.REQUEST_UPDATE_FINISHED); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user