1*90c8c64dSAndroid Build Coastguard Worker /*
2*90c8c64dSAndroid Build Coastguard Worker  * Copyright (C) 2014 The Android Open Source Project
3*90c8c64dSAndroid Build Coastguard Worker  *
4*90c8c64dSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*90c8c64dSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*90c8c64dSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*90c8c64dSAndroid Build Coastguard Worker  *
8*90c8c64dSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*90c8c64dSAndroid Build Coastguard Worker  *
10*90c8c64dSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*90c8c64dSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*90c8c64dSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*90c8c64dSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*90c8c64dSAndroid Build Coastguard Worker  * limitations under the License.
15*90c8c64dSAndroid Build Coastguard Worker  */
16*90c8c64dSAndroid Build Coastguard Worker 
17*90c8c64dSAndroid Build Coastguard Worker package com.example.android.wearable.elizachat;
18*90c8c64dSAndroid Build Coastguard Worker 
19*90c8c64dSAndroid Build Coastguard Worker import android.app.Activity;
20*90c8c64dSAndroid Build Coastguard Worker import android.content.BroadcastReceiver;
21*90c8c64dSAndroid Build Coastguard Worker import android.content.Context;
22*90c8c64dSAndroid Build Coastguard Worker import android.content.Intent;
23*90c8c64dSAndroid Build Coastguard Worker import android.content.IntentFilter;
24*90c8c64dSAndroid Build Coastguard Worker import android.os.Bundle;
25*90c8c64dSAndroid Build Coastguard Worker import android.support.v4.content.LocalBroadcastManager;
26*90c8c64dSAndroid Build Coastguard Worker import android.text.TextUtils;
27*90c8c64dSAndroid Build Coastguard Worker import android.view.Menu;
28*90c8c64dSAndroid Build Coastguard Worker import android.view.MenuItem;
29*90c8c64dSAndroid Build Coastguard Worker import android.widget.TextView;
30*90c8c64dSAndroid Build Coastguard Worker 
31*90c8c64dSAndroid Build Coastguard Worker public class MainActivity extends Activity {
32*90c8c64dSAndroid Build Coastguard Worker 
33*90c8c64dSAndroid Build Coastguard Worker     @SuppressWarnings("unused")
34*90c8c64dSAndroid Build Coastguard Worker     private static final String TAG = "MainActivity";
35*90c8c64dSAndroid Build Coastguard Worker 
36*90c8c64dSAndroid Build Coastguard Worker     public static final String EXTRA_MESSAGE = "message";
37*90c8c64dSAndroid Build Coastguard Worker 
38*90c8c64dSAndroid Build Coastguard Worker     public static final String ACTION_NOTIFY = "com.example.android.wearable.elizachat.NOTIFY";
39*90c8c64dSAndroid Build Coastguard Worker 
40*90c8c64dSAndroid Build Coastguard Worker     public static final String ACTION_GET_CONVERSATION
41*90c8c64dSAndroid Build Coastguard Worker             = "com.example.android.wearable.elizachat.CONVERSATION";
42*90c8c64dSAndroid Build Coastguard Worker 
43*90c8c64dSAndroid Build Coastguard Worker     private BroadcastReceiver mReceiver;
44*90c8c64dSAndroid Build Coastguard Worker 
45*90c8c64dSAndroid Build Coastguard Worker     private TextView mHistoryView;
46*90c8c64dSAndroid Build Coastguard Worker 
47*90c8c64dSAndroid Build Coastguard Worker     @Override
onCreate(Bundle saved)48*90c8c64dSAndroid Build Coastguard Worker     protected void onCreate(Bundle saved) {
49*90c8c64dSAndroid Build Coastguard Worker         super.onCreate(saved);
50*90c8c64dSAndroid Build Coastguard Worker         setContentView(R.layout.main);
51*90c8c64dSAndroid Build Coastguard Worker         mReceiver = new BroadcastReceiver() {
52*90c8c64dSAndroid Build Coastguard Worker             @Override
53*90c8c64dSAndroid Build Coastguard Worker             public void onReceive(Context context, Intent intent) {
54*90c8c64dSAndroid Build Coastguard Worker                 processMessage(intent);
55*90c8c64dSAndroid Build Coastguard Worker             }
56*90c8c64dSAndroid Build Coastguard Worker         };
57*90c8c64dSAndroid Build Coastguard Worker         mHistoryView = (TextView) findViewById(R.id.history);
58*90c8c64dSAndroid Build Coastguard Worker         startResponderService(ResponderService.ACTION_INCOMING);
59*90c8c64dSAndroid Build Coastguard Worker     }
60*90c8c64dSAndroid Build Coastguard Worker 
startResponderService(String action)61*90c8c64dSAndroid Build Coastguard Worker     private void startResponderService(String action) {
62*90c8c64dSAndroid Build Coastguard Worker         Intent serviceIntent = new Intent(this, ResponderService.class);
63*90c8c64dSAndroid Build Coastguard Worker         serviceIntent.setAction(action);
64*90c8c64dSAndroid Build Coastguard Worker         startService(serviceIntent);
65*90c8c64dSAndroid Build Coastguard Worker     }
66*90c8c64dSAndroid Build Coastguard Worker 
67*90c8c64dSAndroid Build Coastguard Worker     @Override
onResume()68*90c8c64dSAndroid Build Coastguard Worker     protected void onResume() {
69*90c8c64dSAndroid Build Coastguard Worker         super.onResume();
70*90c8c64dSAndroid Build Coastguard Worker         LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver,
71*90c8c64dSAndroid Build Coastguard Worker                 new IntentFilter(ACTION_NOTIFY));
72*90c8c64dSAndroid Build Coastguard Worker         mHistoryView.setText("");
73*90c8c64dSAndroid Build Coastguard Worker         startResponderService(ACTION_GET_CONVERSATION);
74*90c8c64dSAndroid Build Coastguard Worker     }
75*90c8c64dSAndroid Build Coastguard Worker 
76*90c8c64dSAndroid Build Coastguard Worker     @Override
onPause()77*90c8c64dSAndroid Build Coastguard Worker     protected void onPause() {
78*90c8c64dSAndroid Build Coastguard Worker         LocalBroadcastManager.getInstance(this).unregisterReceiver(mReceiver);
79*90c8c64dSAndroid Build Coastguard Worker         super.onPause();
80*90c8c64dSAndroid Build Coastguard Worker     }
81*90c8c64dSAndroid Build Coastguard Worker 
processMessage(Intent intent)82*90c8c64dSAndroid Build Coastguard Worker     private void processMessage(Intent intent) {
83*90c8c64dSAndroid Build Coastguard Worker         String text = intent.getStringExtra(EXTRA_MESSAGE);
84*90c8c64dSAndroid Build Coastguard Worker         if (!TextUtils.isEmpty(text)) {
85*90c8c64dSAndroid Build Coastguard Worker             mHistoryView.append("\n" + text);
86*90c8c64dSAndroid Build Coastguard Worker         }
87*90c8c64dSAndroid Build Coastguard Worker     }
88*90c8c64dSAndroid Build Coastguard Worker 
89*90c8c64dSAndroid Build Coastguard Worker     @Override
onCreateOptionsMenu(Menu menu)90*90c8c64dSAndroid Build Coastguard Worker     public boolean onCreateOptionsMenu(Menu menu) {
91*90c8c64dSAndroid Build Coastguard Worker         super.onCreateOptionsMenu(menu);
92*90c8c64dSAndroid Build Coastguard Worker         getMenuInflater().inflate(R.menu.main, menu);
93*90c8c64dSAndroid Build Coastguard Worker         return true;
94*90c8c64dSAndroid Build Coastguard Worker     }
95*90c8c64dSAndroid Build Coastguard Worker 
96*90c8c64dSAndroid Build Coastguard Worker     @Override
onOptionsItemSelected(MenuItem item)97*90c8c64dSAndroid Build Coastguard Worker     public boolean onOptionsItemSelected(MenuItem item) {
98*90c8c64dSAndroid Build Coastguard Worker         switch (item.getItemId()) {
99*90c8c64dSAndroid Build Coastguard Worker             case R.id.action_stop_service:
100*90c8c64dSAndroid Build Coastguard Worker                 stopService(new Intent(this, ResponderService.class));
101*90c8c64dSAndroid Build Coastguard Worker                 finish();
102*90c8c64dSAndroid Build Coastguard Worker                 break;
103*90c8c64dSAndroid Build Coastguard Worker         }
104*90c8c64dSAndroid Build Coastguard Worker         return true;
105*90c8c64dSAndroid Build Coastguard Worker     }
106*90c8c64dSAndroid Build Coastguard Worker }
107