aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/net/onefang/toyboxInstaller/MainActivity.java
blob: 753d6f3b05c5f43374a6cf7cdec0944f38475e5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package net.onefang.toyboxInstaller;

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import java.lang.System.*;
import android.net.*;
import android.speech.*;

public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener
{
  private String requestedVersion = "latest";
  private String requestedCPU = "";
  private String requestedPath = "";

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    requestedCPU = java.lang.System.getProperty("os.arch");

    TextView version = (TextView) findViewById(R.id.version);
    String   VERSION = getString(R.string.version);
    Spinner  versions = (Spinner) findViewById(R.id.versions);
    ArrayAdapter<CharSequence> VERSIONS = ArrayAdapter.createFromResource(this, R.array.versions, android.R.layout.simple_spinner_item);
    TextView cpu = (TextView) findViewById(R.id.cpusPrompt);
    String   CPU = getString(R.string.cpusPrompt);
    String   CPU2 = getString(R.string.cpusPrompt2);
    Spinner  cpus = (Spinner) findViewById(R.id.cpus);
    ArrayAdapter<CharSequence> CPUS = ArrayAdapter.createFromResource(this, R.array.cpus, android.R.layout.simple_spinner_item);
    TextView path = (TextView) findViewById(R.id.path);
    String   PATH = getString(R.string.path);
    Spinner  paths = (Spinner) findViewById(R.id.paths);
    ArrayAdapter<String> PATHS;
    String   pathSep = java.lang.System.getProperty("path.separator");
    TextView folder = (TextView) findViewById(R.id.folder);
    String   FOLDER = getString(R.string.folder);
    TextView source = (TextView) findViewById(R.id.source);
    String   SOURCE = getString(R.string.source);
    TextView destination = (TextView) findViewById(R.id.destination);
    String   DESTINATION = getString(R.string.destination);

    version.setText(VERSION + " " + "unknown" + ".\n");
    VERSIONS.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    versions.setAdapter(VERSIONS);
    versions.setOnItemSelectedListener(this);
    cpu.setText(CPU + " " + requestedCPU + " " + CPU2 + "\n");
    CPUS.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    cpus.setAdapter(CPUS);
    cpus.setSelection(CPUS.getPosition(requestedCPU));
    cpus.setOnItemSelectedListener(this);
    PATHS = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,
      java.lang.System.getenv("PATH").split("\\" + pathSep));
    PATHS.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    paths.setAdapter(PATHS);
    paths.setOnItemSelectedListener(this);
    folder.setText(FOLDER + " " + "" + "\n");
    source.setText(SOURCE + " " + ""  + "\n");
    destination.setText(DESTINATION + " " + ""  + "\n");
  }

  @Override
  public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
  {
    String s = (String) parent.getItemAtPosition(pos);
    TextView source = (TextView) findViewById(R.id.source);
    String   SOURCE = getString(R.string.source);
    TextView destination = (TextView) findViewById(R.id.destination);
    String   DESTINATION = getString(R.string.destination);

    switch (parent.getId())
    {
      case R.id.versions :
      {
	requestedVersion = s;
	break;
      }

      case R.id.cpus :
      {
	requestedCPU = s;
	break;
      }

      case R.id.paths:
      {
	requestedPath = s;
	break;
      }
    }
    source.setText(SOURCE + " http://landley.net/code/toybox/downloads/binaries/" + requestedVersion + "/toybox-" + requestedCPU + "\n");
    destination.setText(DESTINATION + " " + requestedPath + "\n");
  }

  @Override
  public void onNothingSelected(AdapterView<?> parent)
  {
    // TODO: Nothing to do here, maybe?
  }

  public void installToybox(View view)
  {
    String url = "http://landley.net/code/toybox/downloads/binaries/" + requestedVersion + "/toybox-" + requestedCPU;
    DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
    DownloadManager manager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);

		Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).mkdirs();
    request.setDescription("v " + requestedVersion + " CPU " + requestedCPU);
    request.setTitle("toybox");
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
    request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "toybox-" + requestedCPU + "-" + requestedVersion);
    manager.enqueue(request);
  }
}