]> Joshua Wise's Git repositories - dumload.git/blob - src/com/joshuawise/dumload/NotifSlave.java
Use the new icon
[dumload.git] / src / com / joshuawise / dumload / NotifSlave.java
1 /* NotifSlave.java
2  * Notification interface glue for Dumload.
3  *
4  * This program is free software: you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License, version 3, as
6  * published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15  */
16
17 package com.joshuawise.dumload;
18
19 import android.app.Activity;
20 import android.app.AlertDialog;
21 import android.app.Dialog;
22 import android.content.DialogInterface;
23 import android.content.Intent;
24 import android.os.Bundle;
25 import android.os.Message;
26 import android.os.Messenger;
27 import android.util.Log;
28 import android.view.View;
29 import android.widget.Button;
30 import android.widget.TextView;
31 import android.widget.Toast;
32
33 public class NotifSlave extends Activity {
34         /** Called when the activity is first created. */
35         @Override
36         public void onCreate(Bundle savedInstanceState) {
37                 super.onCreate(savedInstanceState);
38 //              setContentView(R.layout.main);
39 //              TextView tv = (TextView)findViewById(R.id.suckit);
40 //              tv.setText("Suck it.");
41         }
42         
43         private void say(String s) {
44                 Toast.makeText(getApplicationContext(), s, Toast.LENGTH_SHORT).show();
45         }
46         
47         private int _nextdialog = 0;
48         private Dialog _hell_ass_balls = null;
49         
50         @Override
51         protected Dialog onCreateDialog(int id)
52         {
53                 Log.e("DumLoad.NotifSlave", "Create for dialog "+(Integer.toString(id)));
54                 if (id != _nextdialog)
55                         return null;
56                 return _hell_ass_balls;
57         }
58         
59         private void showDialog(Dialog d)
60         {
61                 _nextdialog++;
62                 _hell_ass_balls = d;
63                 Log.e("DumLoad.NotifSlave", "Attempting to show dialog "+(Integer.toString(_nextdialog)));
64                 showDialog(_nextdialog);
65         }
66         
67         public void onStart() {
68                 super.onStart();
69         
70                 Intent i = getIntent(); /* i *am* not an intent! */
71                 final Activity thisact = this;
72                 
73                 final Messenger m = (Messenger)i.getParcelableExtra("com.joshuawise.dumload.returnmessenger");
74                 String reqtype = i.getStringExtra("com.joshuawise.dumload.reqtype");
75                 String prompt = i.getStringExtra("com.joshuawise.dumload.prompt");
76                 
77                 if (prompt == null || reqtype == null || m == null)     /* i.e., we got called by a dummy notification */
78                 {
79                         this.finish();
80                         return;
81                 }
82         
83                 if (reqtype.equals("yesno")) {
84                         AlertDialog.Builder builder = new AlertDialog.Builder(this);
85                         builder.setTitle("Dumload");
86                         builder.setMessage(prompt);
87                         builder.setCancelable(false);
88                         builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
89                                 public void onClick(DialogInterface dialog, int id) {
90                                         Log.e("Dumload.NotifSlave", "Responding with a 1.");
91                                         try {
92                                                 Message me = Message.obtain();
93                                                 me.arg1 = 1;
94                                                 m.send(me);
95                                         } catch (Exception e) {
96                                                 Log.e("Dumload.NotifSlave", "Failed to send a message back to my buddy.");
97                                         }
98                                         dialog.cancel();
99                                         thisact.finish();
100                                 }
101                         });
102                         builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
103                                 public void onClick(DialogInterface dialog, int id) {
104                                         Log.e("Dumload.NotifSlave", "Responding with a 1.");
105                                         try {
106                                                 Message me = Message.obtain();
107                                                 me.arg1 = 0;
108                                                 m.send(me);
109                                         } catch (Exception e) {
110                                                 Log.e("Dumload.NotifSlave", "Failed to send a message back to my buddy.");
111                                         }
112                                         dialog.cancel();
113                                         thisact.finish();
114                                 }
115                         });
116                         AlertDialog alert = builder.create();
117                         showDialog(alert);
118                 } else if (reqtype.equals("message")) {
119                         AlertDialog.Builder builder = new AlertDialog.Builder(this);
120                         builder.setTitle("Dumload");
121                         builder.setMessage(prompt);
122                         builder.setCancelable(false);
123                         builder.setNeutralButton("OK", new DialogInterface.OnClickListener() {
124                                 public void onClick(DialogInterface dialog, int id) {
125                                         try {
126                                                 Message me = Message.obtain();
127                                                 m.send(me);
128                                         } catch (Exception e) {
129                                                 Log.e("Dumload.NotifSlave", "Failed to send a message back to my buddy.");
130                                         }
131                                         dialog.cancel();
132                                         thisact.finish();
133                                 }
134                         });
135                         AlertDialog alert = builder.create();
136                         showDialog(alert);
137                 } else if (reqtype.equals("password")) {
138                         final Dialog d = new Dialog(this);
139                         
140                         d.setContentView(R.layout.passwd);
141                         d.setTitle("Dumload");
142                         d.setCancelable(false);
143                         
144                         TextView text = (TextView) d.findViewById(R.id.prompt);
145                         text.setText(prompt);
146                         
147                         Button ok = (Button) d.findViewById(R.id.ok);
148                         ok.setOnClickListener(new View.OnClickListener() {
149                                 public void onClick(View v) {
150                                         try {
151                                                 Message me = Message.obtain();
152                                                 me.arg1 = 1;
153                                                 TextView entry = (TextView) d.findViewById(R.id.entry);
154                                                 Bundle b = new Bundle(1);
155                                                 b.putString("response", entry.getText().toString());
156                                                 me.setData(b);
157                                                 m.send(me);
158                                         } catch (Exception e) {
159                                                 Log.e("Dumload.NotifSlave", "Failed to send a message back to my buddy.");
160                                         }
161                                         d.cancel();
162                                         thisact.finish();
163                                 }
164                         });
165                         
166                         Button cancel = (Button) d.findViewById(R.id.cancel);
167                         cancel.setOnClickListener(new View.OnClickListener() {
168                                 public void onClick(View v) {
169                                         try {
170                                                 Message me = Message.obtain();
171                                                 me.arg1 = 0;
172                                                 m.send(me);
173                                         } catch (Exception e) {
174                                                 Log.e("Dumload.NotifSlave", "Failed to send a message back to my buddy.");
175                                         }
176                                         d.cancel();
177                                         thisact.finish();
178                                 }
179                         });
180                         
181                         
182                         showDialog(d);
183                 } else {
184                         Log.e("Dumload.NotifSlave", "What's a "+reqtype+"?");
185                 }
186         }
187 }
This page took 0.039817 seconds and 4 git commands to generate.