initial version
[headphoneindicator.git] / src / de / cweiske / headphoneindicator / MainActivity.java
1 package de.cweiske.headphoneindicator;
2
3 import android.app.Activity;
4 import android.content.BroadcastReceiver;
5 import android.content.Context;
6 import android.content.Intent;
7 import android.content.IntentFilter;
8 import android.os.Bundle;
9 import android.widget.ImageView;
10 import android.widget.TextView;
11
12 /**
13  * Shows headphone icon and text, and starts the background service
14  *
15  * @author Christian Weiske, cweiske@cweiske.de
16  */
17 public class MainActivity extends Activity {
18     BroadcastReceiver headsetPlugReceiver = new BroadcastReceiver() {
19         @Override
20         public void onReceive(Context context, Intent intent) {
21             Bundle extras = intent.getExtras();
22             if (extras == null) {
23                 return;
24             }
25             if (extras.getInt("state") == 1) {
26                 setPlugged(true);
27             } else {
28                 setPlugged(false);
29             }
30         }
31     };
32
33     @Override
34     protected void onCreate(Bundle savedInstanceState) {
35         super.onCreate(savedInstanceState);
36         setContentView(R.layout.activity_main);
37         startService(new Intent(this, BackgroundService.class));
38     }
39
40     @Override
41     protected void onResume() {
42         super.onResume();
43         IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
44         registerReceiver(this.headsetPlugReceiver, filter);
45     }
46
47     @Override
48     protected void onPause() {
49         super.onPause();
50         this.unregisterReceiver(this.headsetPlugReceiver);
51     }
52
53     public void setPlugged(boolean plugged)
54     {
55         ImageView view = (ImageView) findViewById(R.id.image);
56         TextView label = (TextView) findViewById(R.id.label);
57         if (plugged) {
58             view.setImageResource(R.drawable.headphones_w);
59             label.setText(R.string.plugged);
60         } else {
61             view.setImageResource(0);
62             label.setText(R.string.unplugged);
63         }
64     }
65 }