129 lines
3.5 KiB
Java
129 lines
3.5 KiB
Java
package btools.routingapp;
|
|
|
|
import android.app.Activity;
|
|
import android.app.AlertDialog;
|
|
import android.app.Dialog;
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.Context;
|
|
import android.content.DialogInterface;
|
|
import android.content.Intent;
|
|
import android.content.IntentFilter;
|
|
import android.content.pm.ActivityInfo;
|
|
import android.os.Build;
|
|
import android.os.Bundle;
|
|
import android.os.PowerManager;
|
|
import android.os.PowerManager.WakeLock;
|
|
import android.os.StatFs;
|
|
|
|
public class BInstallerActivity extends Activity {
|
|
|
|
public static final String DOWNLOAD_ACTION = "btools.routingapp.download";
|
|
|
|
private static final int DIALOG_CONFIRM_DELETE_ID = 1;
|
|
private BInstallerView mBInstallerView;
|
|
private PowerManager mPowerManager;
|
|
private WakeLock mWakeLock;
|
|
private DownloadReceiver myReceiver;
|
|
|
|
static public long getAvailableSpace(String baseDir) {
|
|
StatFs stat = new StatFs(baseDir);
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
|
return stat.getAvailableBlocksLong() * stat.getBlockSizeLong();
|
|
} else {
|
|
//noinspection deprecation
|
|
return (long) stat.getAvailableBlocks() * stat.getBlockSize();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
|
|
// Get an instance of the PowerManager
|
|
mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);
|
|
|
|
// Create a bright wake lock
|
|
mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass()
|
|
.getName());
|
|
|
|
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
|
|
|
|
mBInstallerView = new BInstallerView(this);
|
|
setContentView(mBInstallerView);
|
|
}
|
|
|
|
@Override
|
|
protected void onResume() {
|
|
super.onResume();
|
|
/*
|
|
* when the activity is resumed, we acquire a wake-lock so that the
|
|
* screen stays on, since the user will likely not be fiddling with the
|
|
* screen or buttons.
|
|
*/
|
|
mWakeLock.acquire();
|
|
|
|
IntentFilter filter = new IntentFilter();
|
|
filter.addAction(DOWNLOAD_ACTION);
|
|
|
|
myReceiver = new DownloadReceiver();
|
|
registerReceiver(myReceiver, filter);
|
|
}
|
|
|
|
@Override
|
|
protected void onPause() {
|
|
super.onPause();
|
|
|
|
|
|
super.onPause();
|
|
|
|
mWakeLock.release();
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onDestroy() {
|
|
super.onDestroy();
|
|
if (myReceiver != null) unregisterReceiver(myReceiver);
|
|
System.exit(0);
|
|
}
|
|
|
|
@Override
|
|
protected Dialog onCreateDialog(int id) {
|
|
AlertDialog.Builder builder;
|
|
switch (id) {
|
|
case DIALOG_CONFIRM_DELETE_ID:
|
|
builder = new AlertDialog.Builder(this);
|
|
builder
|
|
.setTitle("Confirm Delete")
|
|
.setMessage("Really delete?").setPositiveButton("Yes", new DialogInterface.OnClickListener() {
|
|
public void onClick(DialogInterface dialog, int id) {
|
|
mBInstallerView.deleteSelectedTiles();
|
|
}
|
|
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
|
|
public void onClick(DialogInterface dialog, int id) {
|
|
}
|
|
});
|
|
return builder.create();
|
|
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public void showConfirmDelete() {
|
|
showDialog(DIALOG_CONFIRM_DELETE_ID);
|
|
}
|
|
|
|
public class DownloadReceiver extends BroadcastReceiver {
|
|
|
|
@Override
|
|
public void onReceive(Context context, Intent intent) {
|
|
if (intent.hasExtra("txt")) {
|
|
String txt = intent.getStringExtra("txt");
|
|
boolean ready = intent.getBooleanExtra("ready", false);
|
|
mBInstallerView.setState(txt, ready);
|
|
}
|
|
}
|
|
}
|
|
}
|